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.
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
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 24DicaCopie os dois valores gerados para usar no .env. - 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_POSTGRESAtençãoSubstitua 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
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 nginxAtençãoSubstitua nocodb.seudominio.com.br pelo seu subdomínio real. - 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.brDicaAcesse 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.