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 superior
  • docker-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.

  1. Crie o arquivo docker-compose.yml com 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:
  2. Execute o comando:
    docker-compose up -d
    Resultado: O container do n8n será baixado e iniciado em segundo plano. Acesse http://seu-servidor:5678 para ver a interface.
  3. Verifique o status com:
    docker-compose ps
    Resultado: Deve mostrar o container do n8n no estado "Up (healthy)".

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_healthy

postgres: 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:

  1. Crie um novo workflow.
  2. Adicione um nó HTTP Request com a URL https://api.openai.com/v1/chat/completions.
  3. No cabeçalho, adicione Authorization: Bearer {{ $env.OPENAI_API_KEY }}.
  4. No corpo da requisição, use:
    {
      "model": "gpt-4",
      "messages": [{"role": "user", "content": "Automatize meu processo de vendas"}]
    }
  5. 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.yml e docker-compose up -d sã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 stats evitam 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.