NocoDB (Airtable Alternative) on AlmaLinux 9 (Docker + Nginx + SSL)

NocoDB is a modern, open-source Airtable alternative that transforms any SQL database into a smart spreadsheet interface. It allows teams to collaborate, visualize, and manage data without writing code, while automatically generating REST and GraphQL APIs for every table. With features such as role-based access control (RBAC), custom dashboards, and automation, NocoDB is perfect for building internal tools, CRMs, and data-driven applications.

Running NocoDB on AlmaLinux 9, a RHEL-compatible enterprise operating system, ensures long-term stability, security, and performance. With Docker Compose, Nginx, and SSL encryption, AlmaLinux 9 provides a robust, production-ready environment for hosting NocoDB with full control over data and scalability.


Architecture Overview

LayerComponentRole
OSAlmaLinux 9RHEL-compatible, enterprise-grade Linux base
Container RuntimeDocker Engine + ComposeOrchestrates NocoDB and related services
ApplicationNocoDB (Node.js)Web-based spreadsheet interface and backend API
DatabasePostgreSQL / MySQL / MariaDBStores data, schema definitions, and user configurations
Reverse ProxyNginxHandles HTTPS termination, caching, and routing
TLSLet’s Encrypt / PKIProvides SSL encryption for secure web access

Why Use NocoDB?

  • Self-hosted Airtable replacement – build collaborative databases with full data control.
  • Spreadsheet-like UI – manage SQL tables visually with sorting, filters, and formulas.
  • REST & GraphQL APIs – instantly expose database data for developers and integrations.
  • No-code/low-code platform – connect, visualize, and automate workflows easily.
  • Supports all major SQL databases – MySQL, PostgreSQL, MariaDB, SQLite, and SQL Server.
  • User and role management – control who can view, edit, or share datasets.
  • Open-source and extensible – integrate via webhooks, plugins, and APIs.

NocoDB vs Other No-Code Platforms

Feature/CapabilityNocoDB (Self-hosted)AirtableBaserowSeaTable
HostingSelf-hosted / CloudCloud onlySelf-hosted / CloudSelf-hosted / Cloud
Database backendMySQL / PostgreSQL / SQLiteProprietaryPostgreSQLProprietary
API AccessREST + GraphQLLimitedRESTREST
Data OwnershipFull controlCloud storageFull controlPartial
CostFree, open-sourceSubscriptionFree/PaidPaid
CustomizationHighLimitedModerateModerate

NocoDB combines the ease of Airtable with the flexibility of SQL, offering a scalable, enterprise-ready solution for teams seeking data freedom and extensibility.


Security & Best Practices

  • Run behind Nginx with HTTPS (Let’s Encrypt or internal CA).
  • Use Docker secrets or .env files to store credentials securely.
  • Restrict NocoDB’s application port (8080) to localhost.
  • Limit database access to internal Docker networks only.
  • Enable SELinux enforcing mode and open only ports 80 and 443 via firewalld.
  • Automate SSL renewals using Certbot or Traefik ACME integration.
  • Keep AlmaLinux, Docker, and NocoDB images updated.
  • Schedule regular database backups using pg_dump or mysqldump.
  • Implement Nginx rate limiting and fail2ban for login protection.

Typical Use Cases

  • Internal dashboards – connect existing SQL data and visualize it instantly.
  • CRM systems – manage leads, clients, and sales pipelines.
  • Project & task management – track progress using Kanban and grid views.
  • Inventory management – maintain real-time product and supplier data.
  • Data collaboration – enable teams to manage databases without SQL expertise.
  • API automation – integrate backend services using auto-generated APIs.

Deploying NocoDB on AlmaLinux 9 with Docker, Nginx, and SSL provides a secure, enterprise-ready Airtable alternative — combining the power of SQL with the simplicity of spreadsheets, all hosted in your own infrastructure for maximum privacy and flexibility.


Create a Cloud Server Instance on Shape.Host

Before installing NocoDB, you need a clean AlmaLinux 9 VPS.

Follow these steps at Shape.Host:

Go to https://shape.host and log into your account.

Click Create from the top-right menu.

Select Instance.

Shape.host Resources dashboard with Create > Instance highlighted.

Choose your preferred data center.

Shape.host instance form with the data center location selector highlighted.

Under “Operating System,” select AlmaLinux 9 (64-bit).

Choose a plan. Recommended minimum for NocoDB:

2 vCPUs

4 GB RAM

20 GB NVMe SSD

Shape.host instance form with the operating system image selector highlighted.

Click Create Instance.

Wait ~30 seconds for deployment.

Shape.host instance form with the Create Instance button highlighted.

Copy your server’s public IP address from the “Resources” page.

Your server is now ready for SSH access.

Shape.host Resources dashboard with the server IP address highlighted.

Step 1: Connect to Your Instance (SSH)

On macOS or Linux

Open Terminal and run:

ssh root@YOUR_SERVER_IP

On Windows

You can use:

  • Windows Terminal
  • PowerShell
  • PuTTY

Example using Windows Terminal / PowerShell:

ssh root@YOUR_SERVER_IP

When asked to confirm the fingerprint, type yes.

You are now logged in as root on your AlmaLinux 9 server.


Step 2: Update Your Server

dnf update

This updates package lists and ensures your system has the latest security patches.

Terminal showing DNF/YUM package management commands and output.

Step 3: Install Required Tools

dnf install curl git tar

Explanation:

  • curl – used to download files
  • git – optional version control
  • tar – used for extraction operations

Step 4: Add the Docker Repository

dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Docker uses the CentOS repository for RHEL-based systems like AlmaLinux.


Step 5: Install Docker Engine + Docker Compose

dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

This installs:

  • Docker Engine
  • Docker CLI
  • Container runtime (containerd)
  • Buildx plugin
  • Docker Compose v2 plugin
Terminal showing DNF/YUM package management commands and output.

Step 6: Enable Docker at Boot

systemctl enable docker

Step 7: Start Docker

systemctl start docker
usermod -aG docker $USER

Step 8: Check Docker Compose Version

docker compose version

Confirms that Docker Compose v2 is installed correctly.

Terminal showing docker commands or output during Check Docker Compose Version.

Step 9: Create the NocoDB Directory

mkdir -p /opt/paperless

This directory will store NocoDB’s Docker configuration and volumes.
(The folder name matches your history exactly.)


Step 10: Enter the Directory

cd /opt/paperless

Step 11: Generate a Secure JWT Secret

openssl rand -base64 32

Copy this key. You will use it in the compose file.

Terminal showing an OpenSSL random-value generation command.

Step 12: Create the Docker Compose File

nano /opt/paperless/docker-compose.yml

Paste the exact configuration from your history:

version: '3.8'

services:
  nocodb:
    image: nocodb/nocodb:latest
    container_name: nocodb
    ports:
      - "8080:8080"
    volumes:
      - nocodb_data:/usr/app/data
    environment:
      - NC_AUTH_JWT_SECRET=YOUR_RANDOM_JWT_SECRET
    restart: unless-stopped

volumes:
  nocodb_data:

This file:

  • Runs NocoDB using the official image
  • Exposes NocoDB on port 8080
  • Stores your data persistently in a Docker volume
  • Sets your JWT secret
  • Ensures NocoDB auto-restarts

Save and exit the editor (CTRL+O, ENTER, CTRL+X).

Terminal showing the GNU nano editor and configuration text.

Step 13: Start NocoDB

docker compose up -d

Runs NocoDB in the background.

Terminal showing container image download progress.

Step 14: Check Running Containers

docker ps

You should see the nocodb container running.

Terminal showing the Docker container listing.

Verify NocoDB from Your Browser (Before Installing Nginx)

Before setting up Nginx and SSL, you can confirm that NocoDB is running correctly by accessing it directly from the server’s IP address.

Open your browser and enter:

http://YOUR_SERVER_IP:8080

For example:

http://123.456.78.90:8080

If everything started correctly, you should see the NocoDB web interface.
If the page doesn’t load:

  • Ensure the container is running: docker ps
  • Make sure no firewall is blocking port 8080
  • Wait 10–20 seconds after startup, as NocoDB may take a moment to initialize

Once you confirm it works, you can proceed with the reverse proxy and SSL configuration.


Step 15: Install Nginx

dnf install nginx
Terminal showing DNF/YUM package management commands and output.

Step 16: Enable Nginx at Boot

systemctl enable nginx

Step 17: Start Nginx

systemctl start nginx
Terminal showing systemd service management commands or output.

Step 18: Create the Nginx Reverse Proxy

nano /etc/nginx/conf.d/paperless.conf

Paste:

server {
    listen 80;
    server_name your.domain.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

This forwards web traffic to your NocoDB container.

Terminal showing web server configuration text.

Step 19: Test Nginx Configuration

nginx -t

Step 20: Reload Nginx

systemctl reload nginx
Terminal showing systemd service management commands or output.

Step 21: Install Certbot for SSL

dnf install certbot python3-certbot-nginx
Terminal showing DNF/YUM package management commands and output.

Step 22: Request a Free SSL Certificate

certbot --nginx -d almalinux-tutorials.shape.host

Certbot will automatically configure HTTPS inside Nginx.

Terminal showing Certbot certificate commands and messages.

Step 23: Reload Nginx After SSL Installation

systemctl reload nginx

Your NocoDB Installation Is Ready

You can now access NocoDB at:

https://your.domain.com

You have successfully installed NocoDB on AlmaLinux 9 with Docker, Nginx, and SSL.

NocoDB account creation form.
NocoDB dashboard.

For the best performance when deploying applications like NocoDB, Paperless-ngx, Appwrite, HedgeDoc, or Focalboard, Shape.Host offers:

  • High-performance NVMe Cloud VPS
  • Instant deployment
  • Clean OS images
  • Excellent uptime
  • Scalable and reliable hosting

Visit https://shape.host to launch your next application.