Back to articles
Technology Insight

Deploying NocoDB on a VPS: Transforming Existing Relational Databases into Airtable-Like Smart Spreadsheets

June 2, 2026

Introduction: The Gap Between Relational Databases and Business Agility

In modern enterprise environments, data is often locked away in robust relational database management systems (RDBMS) like MySQL or PostgreSQL. While these engines offer unmatched reliability, performance, and data integrity, they present a significant barrier to entry for non-technical team members. Traditionally, modifying a schema, generating a custom view, or inputting data required structured query language (SQL) expertise or dedicated internal administrative tools built from scratch.

On the other end of the spectrum, no-code platforms like Airtable have revolutionized data accessibility, allowing business teams to collaborate in real-time using an intuitive, spreadsheet-like interface. However, relying solely on SaaS no-code tools raises critical concerns regarding data ownership, compliance, vendor lock-in, and seat-based pricing scalability.

Enter NocoDB: a powerful, open-source no-code platform that acts as a smart spreadsheet layer directly on top of your existing production databases. By deploying NocoDB on a Virtual Private Server (VPS), enterprises can retain absolute control over their infrastructure while offering teams an Airtable-like experience. This article provides an architectural blueprint and step-by-step implementation guide for deploying NocoDB on a VPS to liberate your relational data.

Why NocoDB on a Private VPS Beats Public Cloud SaaS

Choosing to self-host NocoDB on a VPS offers distinct strategic advantages over public SaaS alternatives, particularly for businesses handling proprietary or regulated data:

  • Data Sovereignty and Compliance: Your data never leaves your infrastructure. This is critical for organizations adhering to GDPR, HIPAA, or local data localization laws.
  • Zero Performance Overhead on Production: NocoDB reads your existing database metadata and directly interacts with it without copying or duplicating your datasets into a proprietary cloud storage system.
  • Cost-Effective Scalability: SaaS platforms charge per user/seat, which can become prohibitively expensive as your operation grows. A VPS deployment scales based on compute resources, allowing unlimited users and projects at a predictable flat rate.
  • Seamless Integration with Existing Infrastructure: Since NocoDB connects to your live database, any updates made by backend applications are immediately visible in the spreadsheet interface, and vice versa.

Architectural Overview and Prerequisites

Before initiating the deployment, it is vital to understand how NocoDB interacts with your ecosystem. NocoDB operates as a lightweight middleware application. It requires its own metadata store (which can be a local SQLite instance or a separate logical database within your RDBMS) and connects via standard drivers to your target (source) database.

Note on Production Safety: While NocoDB allows write operations directly to your database, it is highly recommended to test the connection first using a staging environment or a read-only database replica if your primary concern is strictly data visualization.

System Requirements for the VPS:

  • Operating System: Ubuntu 22.04 LTS or Ubuntu 24.04 LTS recommended.
  • Hardware Specs: Minimum 1 vCPU, 2GB RAM (2 vCPUs and 4GB RAM preferred for high-concurrency enterprise teams).
  • Software Dependencies: Docker Engine and Docker Compose installed.
  • Network: A registered domain name or subdomain pointing to your VPS IP address, with ports 80 and 443 open.

Step-by-Step Deployment Blueprint via Docker Compose

Utilizing Docker Compose is the industry standard for deploying NocoDB, ensuring isolation, easy updates, and environment reproducibility. Follow these steps to provision the service.

Step 1: Environment Preparation

Connect to your VPS via SSH and update the system packages:

sudo apt update && sudo apt upgrade -y

Create a dedicated directory for your NocoDB stack to maintain a clean filesystem organization:

mkdir -p /opt/nocodb && cd /opt/nocodb

Step 2: Crafting the Docker Compose Configuration

Create a docker-compose.yml file using your preferred text editor. In this architecture, we will configure NocoDB to use an independent PostgreSQL instance as its internal metadata store to guarantee performance stability, separate from your primary data source.

Here is an optimized configuration blueprint:

version: '3.8'

services:
  nocodb-db:
    image: postgres:15-alpine
    container_name: nocodb-metadata-db
    environment:
      POSTGRES_DB: nocodb_metadata
      POSTGRES_USER: noco_admin
      POSTGRES_PASSWORD: SecureMetadataPassword123!
    volumes:
      - nocodb_meta_data:/var/lib/postgresql/data
    networks:
      - nocodb-network
    restart: always

  nocodb:
    image: nocodb/nocodb:latest
    container_name: nocodb-app
    environment:
      NC_DB: "pg://nocodb-db:5432?u=noco_admin&p=SecureMetadataPassword123!&d=nocodb_metadata"
      PORT: 8080
    ports:
      - "127.0.0.1:8080:8080"
    depends_on:
      - nocodb-db
    networks:
      - nocodb-network
    restart: always

networks:
  nocodb-network:
    driver: bridge

volumes:
  nocodb_meta_data:

Step 3: Launching the Services

Execute the following command to download the container images and launch NocoDB in detached (background) mode:

sudo docker compose up -d

Verify that the containers are running properly by checking the process status: sudo docker compose ps.

Securing NocoDB with Nginx and Let's Encrypt SSL

Exposing NocoDB raw to the internet over HTTP is a significant security risk, especially when it connects to enterprise infrastructure. Implementing a Reverse Proxy via Nginx paired with a free Let's Encrypt SSL certificate ensures all traffic is encrypted over TLS.

1. Install Nginx

sudo apt install nginx -y

2. Configure the Nginx Virtual Host

Create a new configuration file: sudo nano /etc/nginx/sites-available/nocodb.conf and add the following proxy block:

server {
    listen 80;
    server_name nocodb.yourcompany.com;

    location / {
        proxy_pass [http://127.0.0.1:8080](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;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Enable the site and restart Nginx:

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

3. Automate SSL via Certbot

Run the following commands to provision a valid SSL certificate automatically:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d nocodb.yourcompany.com

Certbot will handle the verification process and automatically configure Nginx to force secure HTTPS connections.

Connecting Your Target Database to the Smart Spreadsheet

With the platform securely deployed, you can now navigate to [https://nocodb.yourcompany.com](https://nocodb.yourcompany.com) in your browser. Upon your first visit, you will be prompted to create the super-administrator account.

To transform your existing relational data into a smart spreadsheet, follow these procedural steps within the dashboard UI:

  1. Create a New Project: Select "Create New Project" and choose "Connect to External Database".
  2. Select Connection Type: Choose either MySQL or PostgreSQL depending on your target infrastructure.
  3. Input Database Credentials: Provide the connection string parameters (Host IP, Port, Database Name, Username, and Password). If your target database is hosted on the same server, you may use the internal Docker gateway IP or network alias.
  4. Map Advanced Options: You can explicitly specify schemas or toggle the "Read-Only" mode if you want to prevent NocoDB users from modifying the underlying data structures.
  5. Finalize Synchronization: Click "Submit". NocoDB will instantaneously scan your database tables, foreign key constraints, and indexes, transforming them into structured spreadsheet views.

Best Practices for Enterprise Usage

To maximize operational efficiency and maintain a robust posture while using NocoDB, consider implementing the following best practices:

Fine-Grained Role-Based Access Control (RBAC)

Do not grant universal access to the primary database credentials. Use NocoDB's built-in RBAC features to assign specific permissions. Ensure business teams are classified into roles such as Viewer, Commenter, Editor, or Creator based strictly on the principle of least privilege.

Optimizing Database Performance

Because NocoDB generates SQL queries dynamically based on the spreadsheet views (sorting, filtering, grouping), it is imperative that your underlying target tables are correctly indexed. Frequently queried columns within the smart spreadsheet interface should possess indexes on the database layer to prevent performance degradation during peak usage hours.

Conclusion

Deploying NocoDB on a private VPS successfully bridges the technical gap between complex relational databases and user-centric operations. It delivers the agility, ease of use, and visual charm of Airtable without compromising data ownership, structural integrity, or cloud budgets. By following this deployment framework, your organization can foster a data-driven culture, empowering cross-functional teams to securely visualize, manage, and scale internal workflows with confidence.

Deploying NocoDB on a VPS: Transforming Existing Relational Databases into Airtable-Like Smart Spreadsheets | DPTCloud