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.
Antes de começar
- VPS mínima
- 1 vCPU · 2 GB RAM · 20 GB SSD (Runstack Micro ou superior)
- Sistema
- Ubuntu 24.04 LTS
- Também
- 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
Atualizar o sistema e instalar Docker
Garanta que Docker e Docker Compose estão instalados.
bashapt update && apt upgrade -y curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh docker --version && docker compose version - 2
Criar o diretório do projeto
Crie a pasta de trabalho para o NocoDB.
bashmkdir -p /opt/nocodb cd /opt/nocodb - 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 - 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 - 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
Subir os containers
Inicie o NocoDB e acompanhe a inicialização.
bashcd /opt/nocodb docker compose up -d # Aguardar inicialização (~30s) docker compose ps docker compose logs nocodb --follow - 7
Configurar Nginx e SSL
Configure o reverse proxy e emita o certificado SSL.
bashapt 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 - 8
Configurar firewall e criar conta admin
Libere as portas e registre a conta de administrador.
bashufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp ufw --force enable # Testar acesso curl -I https://nocodb.seudominio.com.br
Não quer configurar manualmente?
Implante o NocoDB em menos de 5 minutos com a Runstack. Infraestrutura da OPEN Datacenter, com servidores em São Paulo.
Se der problema
Verifique a sintaxe da variável NC_DB no .env. O formato correto para PostgreSQL é `pg://host:porta?u=usuario&p=senha&d=banco`.
docker compose logs nocodb --tail=50O volume `nocodb_data` deve estar mapeado para `/usr/app/data`. Confirme no docker-compose e recrie se necessário.
docker volume ls | grep nocodbAumente o `client_max_body_size` no Nginx.
# No bloco server do Nginx, altere para:
# client_max_body_size 100M;
nginx -t && systemctl reload nginxVerifique se o NC_AUTH_JWT_SECRET está definido. Sem ele, a autenticação falha silenciosamente.
docker compose exec nocodb env | grep NC_AUTHNo painel do NocoDB, após o login, clique em "+ New Project" → "Connect External DB" e informe as credenciais do banco externo. Não é necessário alterar NC_DB para isso.
Perguntas frequentes
Sim. O NocoDB oferece visualizações de planilha, galeria, Kanban, calendário e formulários em cima de qualquer banco de dados SQL. É uma alternativa self-hosted ao Airtable e ao Notion Databases, sem limites de linhas ou custo por usuário.
Sim. No painel, crie um novo projeto com "Connect External DB" e informe as credenciais do seu PostgreSQL. O NocoDB adiciona tabelas de metadados próprias mas não modifica suas tabelas existentes.
Sim. O NocoDB tem sistema de workspaces, bases e permissões por usuário (Viewer, Editor, Commenter, Creator, Owner). Convide usuários pelo e-mail diretamente no painel.
Faça backup do volume Docker `nocodb_data` e do PostgreSQL: `docker compose exec nocodb-postgres pg_dump -U nocodb nocodb > backup.sql`.
Execute `docker compose pull && docker compose up -d` no diretório /opt/nocodb. O NocoDB aplica migrações de banco automaticamente.