Skip to main content
NocoDB can be installed using various methods depending on your requirements. This guide covers all available installation options.

Docker Installation

Docker is the recommended way to install NocoDB for both development and production use.

Docker with SQLite

The simplest way to get started. SQLite is embedded and requires no additional database setup:
docker run -d \
  --name noco \
  -v "$(pwd)"/nocodb:/usr/app/data/ \
  -p 8080:8080 \
  nocodb/nocodb:latest
SQLite is perfect for development and small to medium workloads. For production deployments with multiple users, consider using PostgreSQL or MySQL.

Docker with PostgreSQL

For production deployments, PostgreSQL offers better performance and scalability:
docker run -d \
  --name noco \
  -v "$(pwd)"/nocodb:/usr/app/data/ \
  -p 8080:8080 \
  -e NC_DB="pg://host.docker.internal:5432?u=root&p=password&d=d1" \
  -e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
  nocodb/nocodb:latest
Always change the NC_AUTH_JWT_SECRET to a secure random string in production. You can generate one using: openssl rand -hex 32

Docker Compose with PostgreSQL

For a complete setup with both NocoDB and PostgreSQL in containers:
version: '2.1'
services: 
  nocodb: 
    depends_on: 
      root_db: 
        condition: service_healthy
    environment: 
      NC_DB: "pg://root_db:5432?u=postgres&p=password&d=root_db"
    image: "nocodb/nocodb:latest"
    ports: 
      - "8080:8080"
    restart: always
    volumes: 
      - "nc_data:/usr/app/data"
  root_db: 
    environment: 
      POSTGRES_DB: root_db
      POSTGRES_PASSWORD: password
      POSTGRES_USER: postgres
    healthcheck: 
      interval: 10s
      retries: 10
      test: "pg_isready -U \"$$POSTGRES_USER\" -d \"$$POSTGRES_DB\""
      timeout: 2s
    image: postgres:16.6
    restart: always
    volumes: 
      - "db_data:/var/lib/postgresql/data"
volumes: 
  db_data: {}
  nc_data: {}
This configuration:
  • Sets up PostgreSQL 16.6 with automatic health checks
  • Configures NocoDB to wait for the database to be ready
  • Persists data in Docker volumes
  • Automatically restarts containers on failure

Auto-upstall (Production)

Auto-upstall is a single command that sets up a production-ready NocoDB instance with all necessary services.
bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp)

What Auto-upstall Does

This powerful script automatically:
  • 🐳 Installs all pre-requisites (Docker, Docker Compose)
  • 🚀 Installs NocoDB with PostgreSQL, Redis, Minio, and Traefik gateway
  • 🔄 Upgrades NocoDB to the latest version when run again
  • 🔒 Sets up SSL certificates and automatic renewal
Auto-upstall requires a domain or subdomain. You’ll be prompted to enter it during installation.

Requirements for Auto-upstall

  • A server running Linux (Ubuntu, Debian, CentOS, etc.)
  • Root or sudo access
  • A domain or subdomain pointing to your server
  • Ports 80 and 443 available
The auto-upstall script will modify your system by installing Docker and other dependencies. Review the script source before running.

Binary Installation

Binaries are available for quick local testing. They are not recommended for production use.
Binaries are only for quick testing locally. For production deployments, use Docker or auto-upstall.
curl http://get.nocodb.com/macos-arm64 -o nocodb -L && \
chmod +x nocodb && \
./nocodb
After running the binary, access NocoDB at:
http://localhost:8080/dashboard

Environment Variables

Customize your NocoDB installation with environment variables:
VariableDescriptionDefault
NC_DBDatabase connection stringSQLite in /usr/app/data
NC_AUTH_JWT_SECRETJWT secret for authenticationAuto-generated
NC_PUBLIC_URLPublic URL for your instancehttp://localhost:8080
NC_DISABLE_TELEDisable telemetryfalse
PORTPort to run NocoDB8080

Database Connection Strings

NC_DB="pg://host:port?u=user&p=password&d=database"

Production Deployment with Traefik

For a complete production setup with SSL, reverse proxy, and automatic updates:
1

Prepare Environment Variables

Create a .env file with your configuration:
DOMAINNAME=yourdomain.com
DATABASE_USER=nocodb
DATABASE_PW=your_secure_password
DATABASE_NAME=nocodb
CF_DNS_API_TOKEN=your_cloudflare_token
2

Deploy with Docker Compose

Use the production docker-compose configuration that includes:
  • NocoDB application
  • PostgreSQL database
  • Traefik reverse proxy with automatic SSL
  • Watchtower for automatic updates
The complete configuration is available in the source repository at /docker-compose/3_traefik/.
3

Access Your Instance

Once deployed, access your instance at:
https://nocodb.yourdomain.com
SSL certificates will be automatically generated and renewed by Let’s Encrypt.

Verification

After installation, verify NocoDB is running correctly:
1

Check Container Status

docker ps | grep noco
You should see the container running.
2

Check Logs

docker logs noco
Look for messages indicating successful startup.
3

Access Dashboard

Open your browser and navigate to http://localhost:8080/dashboardYou should see the NocoDB interface.

Upgrading

To upgrade your NocoDB installation:
docker pull nocodb/nocodb:latest
docker stop noco
docker rm noco
docker run -d \
  --name noco \
  -v "$(pwd)"/nocodb:/usr/app/data/ \
  -p 8080:8080 \
  nocodb/nocodb:latest
Your data is safely stored in Docker volumes and will persist across upgrades.

Troubleshooting

Port Already in Use

If port 8080 is already in use, specify a different port:
docker run -d \
  --name noco \
  -v "$(pwd)"/nocodb:/usr/app/data/ \
  -p 3000:8080 \
  nocodb/nocodb:latest
Access at http://localhost:3000/dashboard

Database Connection Issues

Verify your database connection string format and ensure:
  • Database server is accessible from the Docker container
  • Credentials are correct
  • Database exists and user has necessary permissions

Container Won’t Start

Check logs for specific errors:
docker logs noco

Next Steps

Quick Start

Create your first base and table

Database Configuration

Connect to external databases

Environment Variables

Advanced configuration options

Security Best Practices

Secure your NocoDB instance