Por que usar n8n com Docker Compose para automação?
Configurar o n8n com Docker Compose te dá controle total sobre suas automações, sem pagar por serviços proprietários como Zapier ou Make. Você roda tudo em um servidor próprio ou VPS, com privacidade total dos dados e flexibilidade para escalar conforme sua necessidade.
Comparado ao n8n.cloud (serviço oficial pago), o modelo self-hosted com Docker evita limites de execuções e cobranças por uso, além de permitir integrações com bancos de dados locais e APIs internas sem restrições. Veja a tabela abaixo:
| Critério | n8n com Docker Compose | n8n.cloud (pago) | Zapier | Make (ex-Integromat) |
|---|---|---|---|---|
| Custo | R$ 0 (custo do servidor) | US$ 20–US$ 100/mês | US$ 19–US$ 3.599/mês | US$ 9–US$ 299/mês |
| Privacidade | Total (seus dados) | Parcial (servidor da n8n) | Baixa (servidores externos) | Baixa (servidores externos) |
| Escalabilidade | Limitada apenas pelo hardware | Limitada pelo plano | Limitada pelo plano | Limitada pelo plano |
| Integrações personalizadas | Total (APIs locais, bancos de dados) | Parcial (depende de conectores) | Parcial (apenas apps oficiais) | Parcial (apenas apps oficiais) |
Dica técnica: Se você já usa Docker em outros projetos, o n8n com Docker Compose roda isolado em containers, facilitando a manutenção e atualizações sem conflitos com outras aplicações.
Pré-requisitos: o que você precisa antes de começar
Antes de instalar o n8n com Docker Compose, você precisa de: Docker instalado, Docker Compose, um servidor (Linux/Windows/Mac ou VPS) e pelo menos 2GB de RAM.
Verifique se o Docker está instalado com:
docker --version→ Deve mostrar versão 20.10 ou superiordocker-compose --version→ Deve mostrar versão 1.29 ou superior
Se estiver no Linux, instale o Docker com:
sudo apt update && sudo apt install -y docker.io docker-compose
Hardware mínimo: 1 CPU core e 2GB RAM são suficientes para automações leves. Para workloads pesados (muitos workflows ou nós de IA), recomenda-se 4GB RAM e 2 cores.
Instalando o n8n com Docker Compose: passo a passo completo
Para instalar o n8n com Docker Compose, crie um arquivo docker-compose.yml com a configuração mínima abaixo e execute docker-compose up -d.
- Crie o arquivo
docker-compose.ymlcom o seguinte conteúdo:version: '3.8' services: n8n: image: n8nio/n8n:latest restart: unless-stopped ports: - "5678:5678" environment: - N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_USER=admin - N8N_BASIC_AUTH_PASSWORD=secreto123 volumes: - n8n_data:/home/node/.n8n volumes: n8n_data: - Execute o comando:
Resultado: O container do n8n será baixado e iniciado em segundo plano. Acessedocker-compose up -dhttp://seu-servidor:5678para ver a interface. - Verifique o status com:
Resultado: Deve mostrar o container do n8n no estado "Up (healthy)".docker-compose ps
Nota técnica: O volume n8n_data garante que seus workflows, credenciais e logs persistam mesmo se o container for removido ou atualizado.
Configurando o n8n com Docker Compose: ambiente ideal para automação
Para um ambiente seguro e funcional, configure variáveis de ambiente no docker-compose.yml e use um proxy reverso como Nginx para expor o n8n via HTTPS.
Adicione estas variáveis no serviço n8n do seu docker-compose.yml:
| Variável | Valor | Exemplo |
|---|---|---|
N8N_HOST |
Domínio ou IP do servidor | n8n.seudominio.com |
N8N_PORT |
Porta interna (5678) | 5678 |
N8N_PROTOCOL |
https (se usar proxy) | https |
N8N_BASIC_AUTH_ACTIVE |
Ativa autenticação | true |
N8N_BASIC_AUTH_USER |
Usuário para login | admin |
N8N_BASIC_AUTH_PASSWORD |
Senha forte | MinhaSenha@123! |
Exemplo de configuração com Nginx como proxy reverso:
server { listen 80; server_name n8n.seudominio.com;location / { proxy_pass http://localhost:5678; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }
}
Dica de segurança: Sempre use HTTPS (via Let’s Encrypt com Certbot) para proteger credenciais e dados trafegados. O n8n não expõe HTTPS nativamente no container.
Personalizando o n8n com Docker Compose: bancos de dados e persistência
Use um banco de dados externo como PostgreSQL ou MySQL para armazenar workflows, execuções e credenciais de forma segura e escalável. O SQLite é uma opção leve para testes, mas não é recomendado para produção.
Configure o docker-compose.yml para conectar o n8n a um PostgreSQL externo (recomendado para produção):
version: '3.8' services: n8n: image: n8nio/n8n:latest restart: unless-stopped ports: - "5678:5678" environment: - DB_TYPE=postgresdb - DB_POSTGRESDB_DATABASE=n8n - DB_POSTGRESDB_HOST=postgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_USER=n8n - DB_POSTGRESDB_PASSWORD=senha_postgres_segura - N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_USER=admin - N8N_BASIC_AUTH_PASSWORD=MinhaSenha@123! volumes: - n8n_data:/home/node/.n8n depends_on: postgres: condition: service_healthypostgres: image: postgres:15 restart: unless-stopped environment: - POSTGRES_USER=n8n - POSTGRES_PASSWORD=senha_postgres_segura - POSTGRES_DB=n8n volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: [“CMD-SHELL”, “pg_isready -U n8n”] interval: 5s timeout: 5s retries: 5
volumes: n8n_data: postgres_data:
Dica técnica: O healthcheck no PostgreSQL garante que o n8n só inicie após o banco estar pronto, evitando erros de conexão no startup.
Conectando o n8n Docker a APIs de IA: ChatGPT, Google e outras
Adicione as chaves de API das ferramentas de IA no ambiente do container via variáveis de ambiente. O n8n usa essas chaves para autenticar requisições sem expor credenciais no código dos workflows.
No docker-compose.yml, adicione as variáveis para APIs de IA:
| API | Variável de ambiente | Exemplo de valor |
|---|---|---|
| OpenAI (ChatGPT) | OPENAI_API_KEY |
sk-proj-abc123... |
| Google AI (Gemini) | GOOGLE_API_KEY |
AIzaSyBvXy... |
| Hugging Face | HUGGINGFACE_API_KEY |
hf_AbCdEfG... |
Exemplo de workflow com OpenAI no n8n:
- Crie um novo workflow.
- Adicione um nó HTTP Request com a URL
https://api.openai.com/v1/chat/completions. - No cabeçalho, adicione
Authorization: Bearer {{ $env.OPENAI_API_KEY }}. - No corpo da requisição, use:
{ "model": "gpt-4", "messages": [{"role": "user", "content": "Automatize meu processo de vendas"}] } - Execute o workflow e veja a resposta da IA no nó seguinte.
Link útil: Veja a documentação oficial da OpenAI para entender os endpoints e limites de requisições: OpenAI API Reference.
Otimizando performance do n8n no Docker: dicas para iniciantes
Ajuste os recursos do container para evitar crashes em workloads pesados e use ferramentas como docker stats para monitorar consumo de CPU e memória em tempo real.
Adicione limites de recursos no docker-compose.yml:
services:
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=MinhaSenha@123!
volumes:
- n8n_data:/home/node/.n8n
deploy:
resources:
limits:
cpus: '1.5'
memory: 2G
reservations:
cpus: '0.5'
memory: 1G
Comandos úteis para monitoramento:
| Comando | Descrição |
|---|---|
docker stats |
Exibe uso de CPU, memória e rede do container em tempo real. |
docker logs n8n-n8n-1 --tail 100 |
Mostra os últimos 100 logs do container n8n. |
docker system df |
Verifica o uso de espaço em disco pelos containers. |
Dica técnica: Use .dockerignore para evitar copiar arquivos desnecessários para o container, reduzindo o tamanho da imagem e acelerando builds.
Segurança no n8n com Docker Compose: proteja suas automações
Impeça acessos não autorizados com autenticação básica, HTTPS obrigatório e restrição de IPs. Desabilite nós inseguros como "Execute Command" para evitar execução de código arbitrário.
Configuração segura no docker-compose.yml:
services:
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678" # Restringe acesso à máquina local
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin_seguro
- N8N_BASIC_AUTH_PASSWORD=SenhaComplexa@123!456
- N8N_DISABLE_DIRECT_EXECUTION_NODE=true # Desabilita nós perigosos
volumes:
- n8n_data:/home/node/.n8n
Para restringir acesso por IP, configure o Nginx com:
server { listen 443 ssl; server_name n8n.seudominio.com;allow 192.168.1.100; # IP autorizado allow 192.168.1.101; # Outro IP autorizado deny all; ssl_certificate /etc/letsencrypt/live/n8n.seudominio.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/n8n.seudominio.com/privkey.pem; location / { proxy_pass http://localhost:5678; }
}
Checklist de segurança:
- Sempre use HTTPS (Certbot + Let’s Encrypt).
- Atualize as imagens do n8n regularmente com
docker-compose pull && docker-compose up -d. - Remova nós "Execute Command" ou "Execute Code" se não forem essenciais.
- Revogue chaves de API de IA que não estão em uso.
Perguntas frequentes sobre configurar n8n com Docker Compose
Preciso saber programar para usar o n8n com Docker Compose?
Não é necessário programar para começar. O n8n tem interface visual (low-code) onde você arrasta e conecta nós (nodes) para criar automações. Conhecimentos básicos de YAML ajudam na configuração do Docker Compose, mas não são obrigatórios para usar a ferramenta.
Qual a diferença entre usar n8n na nuvem e self-hosted com Docker?
A versão self-hosted com Docker oferece controle total sobre seus dados e evita limites de execuções pagas. Na nuvem (n8n.cloud), você paga por uso e tem menos flexibilidade para integrações personalizadas ou bancos de dados locais. O custo é zero no modelo self-hosted, exceto pelo servidor.
O n8n com Docker consome muita memória RAM?
Para automações leves, o n8n consome cerca de 200-400MB de RAM. Workflows complexos ou com nós de IA podem exigir 1-2GB. Com 2GB de RAM você já consegue rodar o n8n + PostgreSQL sem problemas para uso pessoal ou pequeno negócio.
Posso usar o n8n com Docker em um servidor com apenas 1GB de RAM?
Sim, mas com limitações. O n8n pode rodar em 1GB de RAM usando SQLite e workflows simples, mas você terá que evitar nós pesados (como IA) e monitorar o consumo. Para produção, recomenda-se no mínimo 2GB de RAM.
Como faço backup dos meus workflows no n8n Docker?
O backup é feito automaticamente pelo volume Docker configurado. Para restaurar, basta copiar o volume n8n_data ou o banco de dados externo (PostgreSQL/MySQL). Também é recomendado exportar workflows manualmente via interface ou API.
É possível usar o n8n com Docker em um Raspberry Pi?
Sim! O n8n funciona bem em Raspberry Pi com 4GB de RAM. Use a imagem n8nio/n8n:latest e configure o Docker para usar menos recursos. É ideal para automações residenciais ou testes, mas workflows pesados podem ficar lentos.
Como conecto o n8n Docker a outras ferramentas como ChatGPT ou Google Sheets?
Adicione as chaves de API das ferramentas no ambiente do container via variáveis de ambiente (ex: OPENAI_API_KEY). No n8n, use nós como "HTTP Request" ou "Google Sheets" com as credenciais configuradas. A documentação oficial de cada ferramenta tem exemplos de autenticação.
Qual banco de dados é melhor para o n8n: SQLite, PostgreSQL ou MySQL?
Para produção, PostgreSQL ou MySQL são as melhores opções por oferecerem performance e escalabilidade. SQLite é ideal para testes ou ambientes com poucos recursos, mas não suporta múltiplos usuários e tem limitações de concorrência.
Automação self-hosted é o futuro: seu controle começa aqui
Configurar o n8n com Docker Compose é o primeiro passo para ter automações poderosas sem depender de serviços externos ou pagar por execuções limitadas. Você ganhou controle total sobre seus dados, pode integrar qualquer ferramenta local ou API, e ainda tem a liberdade de escalar conforme sua necessidade — tudo com custo zero além do servidor. Agora que seu n8n está rodando, explore os templates prontos na biblioteca do n8n ou crie seus próprios workflows para automatizar marketing, vendas ou atendimento.
Resumo rápido do que você aprendeu:
- Instalação: Um arquivo
docker-compose.ymledocker-compose up -dsão suficientes para começar. - Segurança: Autenticação básica + HTTPS + restrição de nós perigosos mantêm suas automações seguras.
- Performance: Limites de CPU/memória e monitoramento com
docker statsevitam crashes. - Integrações: Chaves de API no ambiente do container permitem conectar ChatGPT, Google Sheets e muito mais.
- Persistência: Volumes Docker garantem que seus dados sobrevivam a atualizações ou reinicializações.
Pronto para automatizar? Explore a categoria Automação do site para mais tutoriais, templates e guias sobre como transformar seus processos manuais em fluxos automáticos com o n8n e outras ferramentas self-hosted.
Quer mais sobre o assunto? Veja todos os artigos de Ferramentas de IA ou a lista completa de artigos.