Tutoriais/NocoDB

    Como instalar o NocoDB em uma VPS Ubuntu

    O NocoDB é uma plataforma open-source que transforma qualquer banco de dados PostgreSQL, MySQL ou SQLite em uma interface de planilha colaborativa — uma alternativa self-hosted ao Airtable. Este guia instala o NocoDB com Docker usando PostgreSQL para persistência de metadados.

    ~15 minjunho/2026 · Ubuntu 24.04 LTS

    Pré-requisitos

    • VPS mínima: 1 vCPU · 2 GB RAM · 20 GB SSD (Runstack Micro ou superior)
    • Sistema: Ubuntu 24.04 LTS
    • Docker e Docker Compose instalados (veja /tutorial/como-instalar-docker)
    • Subdomínio DNS apontado para o IP da VPS
    • Portas 80 e 443 abertas no firewall

    Instalação passo a passo

    1. 1

      Atualizar o sistema e instalar Docker

      Garanta que Docker e Docker Compose estão instalados.

      bash
      apt update && apt upgrade -y
      curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
      docker --version && docker compose version
    2. 2

      Criar o diretório do projeto

      Crie a pasta de trabalho para o NocoDB.

      bash
      mkdir -p /opt/nocodb
      cd /opt/nocodb
    3. 3

      Gerar segredos

      Gere a chave JWT e a senha do PostgreSQL.

      bash
      # Gerar JWT secret
      openssl rand -hex 32
      
      # Gerar senha do PostgreSQL
      openssl rand -hex 24
      Dica
      Copie os dois valores gerados para usar no .env.
    4. 4

      Criar o arquivo .env

      Configure as variáveis essenciais do NocoDB.

      .env
      # /opt/nocodb/.env
      NC_DB=pg://nocodb-postgres:5432?u=nocodb&p=SUA_SENHA_POSTGRES&d=nocodb
      NC_AUTH_JWT_SECRET=SEU_JWT_SECRET_AQUI
      POSTGRES_PASSWORD=SUA_SENHA_POSTGRES
      Atenção
      Substitua SUA_SENHA_POSTGRES e SEU_JWT_SECRET_AQUI pelos valores gerados. A NC_DB define a conexão com o PostgreSQL de metadados do NocoDB.
    5. 5

      Criar o docker-compose.yml

      Stack com NocoDB e PostgreSQL dedicado para metadados.

      docker-compose.yml
      # /opt/nocodb/docker-compose.yml
      services:
        nocodb:
          image: nocodb/nocodb:latest
          restart: always
          ports:
            - "127.0.0.1:8080:8080"
          env_file: .env
          volumes:
            - nocodb_data:/usr/app/data
          depends_on:
            - nocodb-postgres
      
        nocodb-postgres:
          image: postgres:16
          restart: always
          environment:
            POSTGRES_USER: nocodb
            POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
            POSTGRES_DB: nocodb
          volumes:
            - postgres_data:/var/lib/postgresql/data
          healthcheck:
            test: ["CMD-SHELL", "pg_isready -U nocodb"]
            interval: 5s
            timeout: 5s
            retries: 10
      
      volumes:
        nocodb_data:
        postgres_data:
    6. 6

      Subir os containers

      Inicie o NocoDB e acompanhe a inicialização.

      bash
      cd /opt/nocodb
      docker compose up -d
      
      # Aguardar inicialização (~30s)
      docker compose ps
      docker compose logs nocodb --follow
    7. 7

      Configurar Nginx e SSL

      Configure o reverse proxy e emita o certificado SSL.

      bash
      apt install -y nginx certbot python3-certbot-nginx
      
      cat > /etc/nginx/sites-available/nocodb << 'NGINXEOF'
      server {
          listen 80;
          server_name nocodb.seudominio.com.br;
          return 301 https://$host$request_uri;
      }
      
      server {
          listen 443 ssl;
          server_name nocodb.seudominio.com.br;
      
          ssl_certificate /etc/letsencrypt/live/nocodb.seudominio.com.br/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/nocodb.seudominio.com.br/privkey.pem;
      
          client_max_body_size 50M;
      
          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;
              proxy_set_header X-Forwarded-Proto $scheme;
              proxy_http_version 1.1;
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection "upgrade";
          }
      }
      NGINXEOF
      
      ln -s /etc/nginx/sites-available/nocodb /etc/nginx/sites-enabled/nocodb
      nginx -t
      
      certbot --nginx \
        -d nocodb.seudominio.com.br \
        --non-interactive \
        --agree-tos \
        --email seu@email.com
      
      systemctl reload nginx
      Atenção
      Substitua nocodb.seudominio.com.br pelo seu subdomínio real.
    8. 8

      Configurar firewall e criar conta admin

      Libere as portas e registre a conta de administrador.

      bash
      ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp
      ufw --force enable
      
      # Testar acesso
      curl -I https://nocodb.seudominio.com.br
      Dica
      Acesse https://nocodb.seudominio.com.br no navegador. Na primeira visita, o NocoDB solicita a criação da conta de superadmin.

    $ runstack deploy --plan starter

    Não quer configurar manualmente?

    Não quer configurar manualmente? Implante o NocoDB em menos de 3 minutos com a Runstack. Infraestrutura da OPEN DATACENTER, com servidores no Brasil.

    Troubleshooting

    Perguntas frequentes

    [VERIFICAR antes de publicar]

    • 1. Confirme a sintaxe atual de NC_DB para PostgreSQL na documentação nocodb.com — pode ter mudado.
    • 2. Verifique a tag de imagem mais recente em hub.docker.com/r/nocodb/nocodb.
    • 3. Confirme o caminho de dados do container (/usr/app/data) na versão atual.