NocoDB (Airtable Alternative) on Debian 12 (Docker + Nginx + SSL)

NocoDB is an open-source Airtable alternative that turns any existing SQL database into a smart spreadsheet interface. It enables teams to collaborate, visualize, and manage data without writing code — offering REST and GraphQL APIs, role-based permissions, and automation features. NocoDB is ideal for building internal tools, dashboards, CRMs, and data management systems that integrate directly with your existing SQL databases.

Running NocoDB on Debian 12 (Bookworm) ensures a stable, secure, and production-grade environment with long-term support. Debian 12 ships with systemd 252, OpenSSL 3, and up-to-date Docker and Nginx packages, providing an excellent foundation for deploying NocoDB via Docker Compose, secured with Nginx and SSL certificates for enterprise-ready performance.


Architecture Overview

LayerComponentRole
OSDebian 12 (Bookworm)Stable, LTS base for hosting web applications
Container RuntimeDocker Engine + ComposeOrchestrates NocoDB and supporting services
ApplicationNocoDB (Node.js)Main web interface and backend API layer
DatabasePostgreSQL / MySQL / MariaDBStores data and schema definitions
Reverse ProxyNginxHandles HTTPS termination, routing, and compression
TLSLet’s Encrypt / PKIProvides HTTPS security via SSL certificates

Why Use NocoDB?

  • Open-source Airtable replacement – no subscription, no vendor lock-in.
  • Connect any SQL database – supports MySQL, PostgreSQL, MariaDB, SQLite, and SQL Server.
  • Spreadsheet-like interface – manage and visualize data easily.
  • Auto-generated REST & GraphQL APIs – instantly expose your data for integrations.
  • Team collaboration – manage users, roles, and access permissions.
  • Custom views and dashboards – grid, gallery, form, and Kanban modes.
  • Secure and scalable – perfect for startups, developers, and enterprise users alike.

NocoDB vs Other No-Code / Data Platforms

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

NocoDB delivers the flexibility of Airtable combined with the power of SQL — making it the top open-source solution for teams that want no-code simplicity with enterprise scalability.


Security & Best Practices

  • Deploy behind Nginx with HTTPS via Let’s Encrypt or your SSL provider.
  • Store environment variables and credentials securely in a .env file or Docker secrets.
  • Restrict NocoDB’s internal port (8080) to localhost only.
  • Keep Docker images, NocoDB, and Debian packages up to date.
  • Enable UFW and allow only ports 80 and 443.
  • Automate certificate renewals using Certbot or Traefik ACME integration.
  • Schedule regular database backups for PostgreSQL or MySQL.
  • Configure RBAC (Role-Based Access Control) for granular permissions.
  • Apply fail2ban or rate limiting on Nginx to protect authentication endpoints.

Typical Use Cases

  • Internal business tools – build dashboards, forms, and reports quickly.
  • CRM systems – manage leads, sales pipelines, and customer data.
  • Inventory & product management – real-time inventory tracking with data views.
  • Data visualization – transform SQL tables into visual spreadsheets.
  • API integration layer – expose relational data for external applications.
  • Collaboration platform – empower non-technical users to work with databases easily.

Deploying NocoDB on Debian 12 with Docker, Nginx, and SSL gives you a secure, self-hosted Airtable alternative — combining the freedom of open-source software with enterprise-grade reliability, privacy, and performance.


Create Your Cloud Server Instance on Shape.Host

Before installing NocoDB, you need a Debian 12 VPS.

Follow these steps to create one on Shape.Host:

Go to https://shape.host and log in.

Click Create in the upper-right corner.

Select Instance.

Shape.host Resources dashboard with Create > Instance highlighted.

Choose the closest data center.

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

Select Debian 12 (64-bit) as your operating system.

Choose a plan. Recommended minimum:

2 vCPUs

4 GB RAM

20 GB NVMe storage

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

Click Create Instance.

Wait 20–40 seconds for deployment.

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

Copy the public IP address from the “Resources” section.

Your Debian 12 instance is ready for SSH access.

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

Step 1: Connect to Your Instance (SSH)

Connect remotely to your new server.

On macOS or Linux

Open Terminal and run:

ssh root@YOUR_SERVER_IP

On Windows

You can use:

  • Windows Terminal
  • PowerShell
  • PuTTY

Using Windows Terminal / PowerShell:

ssh root@YOUR_SERVER_IP

When prompted to trust the fingerprint, type yes.

You are now logged into your Debian 12 server as root.


Step 2: Update Your System

apt update

This refreshes the list of available packages to ensure everything you install is up to date.

Terminal showing APT package management commands and output.

Step 3: Install Required Dependencies

apt install apt-transport-https ca-certificates curl gnupg lsb-release software-properties-common

Explanation of packages:

  • apt-transport-https – enables HTTPS downloads
  • ca-certificates – verifies SSL certificates
  • curl – used to fetch files
  • gnupg – needed for secure key import
  • lsb-release – used to detect system version
  • software-properties-common – adds repo management tools

All of these are needed to install Docker securely.

Terminal showing APT package management commands and output.

Step 4: Add Docker’s GPG Key

curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

This securely imports Docker’s official signing key.


Step 5: Add Docker’s Official Repository

echo   "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/debian $(lsb_release -cs) stable"   | tee /etc/apt/sources.list.d/docker.list > /dev/null

This registers the Docker repository for Debian 12.


Step 6: Update Again

apt update

This loads the newly added Docker repository.

Terminal showing APT package management commands and output.

Step 7: Install Docker Engine + Docker Compose

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

This installs both the Docker runtime and the Compose v2 plugin.

Terminal showing APT package management commands and output.

Step 8: Enable Docker on Boot

systemctl enable docker

Step 9: Start Docker

systemctl start docker

Step 10: Add User to Docker Group

usermod -aG docker $USER

This allows you to run Docker without using sudo after logging out and back in.


Step 11: Create NocoDB Directory

mkdir ~/nocodb

Step 12: Enter the Directory

cd ~/nocodb
Terminal showing systemd service management commands or output.

Step 13: Generate a Secure JWT Secret

openssl rand -hex 32

Copy this secret for later use.

Terminal showing an OpenSSL random-value generation command.

Step 14: Create docker-compose.yml

nano docker-compose.yml

Paste your configuration:

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 the latest NocoDB image
  • Exposes port 8080
  • Stores persistent data inside a Docker volume
  • Sets your secure JWT secret
  • Enables automatic restarts

Save and exit:
CTRL+O, ENTER, then CTRL+X

Terminal showing the GNU nano editor and configuration text.

Step 15: Start NocoDB

docker compose up -d

NocoDB starts in the background.

Terminal showing container image download progress.

Step 16: Check Running Containers

docker ps
Terminal showing the Docker container listing.

You should see:

nocodb   Up

Step 17: View Logs (Optional)

docker compose logs

Useful if something does not start correctly.


Step 18: Install Nginx and Certbot

apt install nginx certbot python3-certbot-nginx

This installs the reverse proxy and SSL automation tools.

Terminal showing APT package management commands and output.

Step 19: Create Nginx Reverse Proxy Config

nano /etc/nginx/sites-available/nocodb.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;
    }
}
Terminal showing web server configuration text.

Step 20: Enable the Site

ln -s /etc/nginx/sites-available/nocodb.conf /etc/nginx/sites-enabled/

Step 21: Test Nginx

nginx -t

Step 22: Reload Nginx

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

Step 23: Enable HTTPS with Certbot

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

Certbot automatically:

  • Issues a free SSL certificate
  • Updates the Nginx config
  • Enables HTTPS
  • Reloads Nginx
Terminal showing Certbot certificate commands and messages.

Step 24: Access NocoDB

Open:

https://your.domain.com

NocoDB is now fully installed, secured, and ready to use.

NocoDB account creation form.
NocoDB dashboard.

For hosting modern applications like NocoDB, HedgeDoc, Paperless-ngx, Appwrite, Focalboard, and others, Shape.Host Linux SSD VPS provides:

  • High-performance NVMe storage
  • Fast deployment
  • Clean OS images
  • Excellent uptime
  • Scalable cloud resources

Ideal for developers, businesses, and self-hosted platforms.