N8N Auto-Hospedado: Deploy em VPS com Docker

12 min 3 N8n

Implante o N8N em Seu Servidor: O Poder da Automação Self-Hosted

Você decidiu que o N8N é a ferramenta certa para automatizar seus processos, e agora quer levá-lo para o seu ambiente. Excelente escolha! Hospedar o N8N em um servidor próprio (self-hosted) oferece controle total, segurança aprimorada e flexibilidade para integrar qualquer aplicação sem depender de terceiros. Se você já tem um VPS ou está pensando em adquirir um, este guia é para você. Vamos focar em como implantar o N8N de forma robusta e eficiente utilizando Docker em um servidor Linux, com exemplos práticos e requisitos essenciais para rodar em produção.

N8N é uma plataforma de automação de fluxos de trabalho (workflows) open-source que permite conectar diversas aplicações e serviços para automatizar tarefas repetitivas. Ao optar pelo self-hosted, você garante que seus dados permaneçam sob seu controle e que os custos sejam previsíveis. A principal vantagem de usar Docker para essa implantação é a portabilidade e o isolamento: seu N8N rodará consistentemente em qualquer ambiente que suporte Docker, minimizando conflitos de dependência.

Para quem é este guia? Este artigo é ideal para administradores de sistemas, desenvolvedores e entusiastas de automação que já possuem um servidor VPS (ou estão planejando adquirir um) e desejam instalar e gerenciar sua própria instância do N8N. Se você busca uma solução de automação escalável e segura, está no lugar certo.

Requisitos de Sistema para Produção do N8N

O que seu servidor precisa ter?

Para garantir que sua instância do N8N funcione de maneira fluida e confiável em um ambiente de produção, é crucial atender a certos requisitos de hardware e software. Baseado em minha experiência ajudando clientes a configurar suas automações, posso afirmar que subestimar esses requisitos pode levar a lentidão e instabilidade nos fluxos de trabalho.

Requisitos Mínimos Recomendados para Produção:

  • RAM: 2GB (para cargas de trabalho leves e poucos workflows ativos)
  • CPU: 2 vCPUs (essencial para processar tarefas de forma eficiente)
  • Armazenamento: 20GB de espaço livre (para o sistema operacional, Docker, imagens e dados do N8N). O crescimento do banco de dados e logs pode exigir mais espaço ao longo do tempo.

Requisitos Recomendados para Cargas de Trabalho Moderadas a Intensas:

  • RAM: 4GB ou mais
  • CPU: 4 vCPUs ou mais
  • Armazenamento: 50GB ou mais (SSD é altamente recomendado para melhor performance I/O)

Além do hardware, você precisará ter o Docker e o Docker Compose instalados em seu sistema operacional Linux. Estes são os pilares para uma implantação simplificada e eficiente do N8N. O consumo de RAM do container do N8N em repouso, com poucos workflows, pode variar entre 300MB a 600MB. Sob carga, executando várias automações complexas simultaneamente, esse consumo pode facilmente dobrar ou triplicar, justificando os 2GB de RAM como mínimo absoluto para produção.

Portas Essenciais para o N8N

O N8N, ao rodar via Docker, geralmente utiliza a porta 5678 por padrão para sua interface web. É fundamental que esta porta esteja acessível e não esteja em conflito com outros serviços em seu servidor. Se você pretende expor o N8N diretamente à internet, é crucial configurar um firewall para permitir o tráfego apenas para esta porta e, idealmente, utilizar um proxy reverso (como Nginx ou Traefik) para gerenciar o acesso, aplicar certificados SSL e expor o serviço através da porta 443 (HTTPS).

Tutorial de Deploy do N8N com Docker Compose em VPS Linux

Passo a Passo: Da Instalação ao Funcionamento

Este tutorial guiará você pela implantação do N8N em um VPS Ubuntu utilizando Docker Compose. Esta abordagem facilita a gestão de múltiplos containers e suas configurações.

  1. Pré-requisitos: Certifique-se de que seu VPS com Ubuntu tenha Docker e Docker Compose instalados. Se não tiver, siga estas instruções: Instale Docker e Docker Compose em seu VPS.
  2. Crie um diretório para o N8N:
    mkdir n8n-docker
    cd n8n-docker
  3. Crie o arquivo docker-compose.yml: Este arquivo definirá como o N8N será executado. Copie e cole o conteúdo abaixo em um novo arquivo chamado docker-compose.yml dentro do diretório n8n-docker.
version: "3.8"

services:
  n8n:
    image: n8nio/n8n
    container_name: n8n
    restart: always
    ports:
      - "5678:5678"
    volumes:
      - n8n_data:/home/node/.n8n
    environment:
      - N8N_HOST=localhost
      - N8N_PORT=5678
      - N8N_PROTOCOL=http
      # Para produção, é altamente recomendado usar um proxy reverso com HTTPS
      # - NODE_ENV=production
      # - WEBHOOK_URL=https://seu-dominio.com/
      # - ENCRYPTION_KEY=sua_chave_secreta_muito_segura
      # - DB_TYPE=postgres
      # - DB_HOST=meu-banco-de-dados-host
      # - DB_PORT=5432
      # - DB_DATABASE=n8n
      # - DB_USER=n8n
      # - DB_PASSWORD=sua_senha_de_banco

volumes:
  n8n_data:

Observações importantes sobre o docker-compose.yml:

  • image: n8nio/n8n: Especifica a imagem oficial do N8N.
  • container_name: n8n: Define um nome fácil de identificar para o container.
  • restart: always: Garante que o N8N reinicie automaticamente se o servidor for reiniciado ou se o container falhar.
  • ports: - "5678:5678": Mapeia a porta 5678 do seu host para a porta 5678 do container. Esta é a porta que você usará para acessar a interface do N8N.
  • volumes: - n8n_data:/home/node/.n8n: Cria um volume persistente para armazenar os dados do N8N (workflows, credenciais, etc.), garantindo que eles não sejam perdidos caso o container seja recriado.
  • environment:: Aqui você configura variáveis de ambiente. Para um setup básico, `N8N_HOST` e `N8N_PORT` são suficientes. Para produção, considere configurar `ENCRYPTION_KEY` (gerada com `openssl rand -base64 32`), `WEBHOOK_URL` (seu domínio público) e, opcionalmente, conectar a um banco de dados externo (PostgreSQL é recomendado) para melhor performance e escalabilidade.

Exemplo de geração de chave de criptografia:

openssl rand -base64 32

Copie a saída deste comando e cole-a no campo ENCRYPTION_KEY no seu arquivo docker-compose.yml.

A configuração padrão com o banco de dados SQLite (embutido no container) é adequada para testes e uso pessoal, mas para produção, o uso de um banco de dados externo como PostgreSQL é altamente recomendado. Ele oferece melhor performance, escalabilidade e resiliência. A configuração das variáveis de ambiente para PostgreSQL está comentada no exemplo acima, mostrando como você pode habilitá-la.

A porta 5678 é a porta padrão para o N8N. Se você já usa essa porta em seu VPS, pode alterá-la no arquivo docker-compose.yml. Por exemplo, para usar a porta 8080 do seu host, mude para - "8080:5678". Lembre-se que ao expor diretamente, é essencial ter um firewall configurado.

  • Inicie os containers: No mesmo diretório onde está o docker-compose.yml, execute o comando abaixo para baixar a imagem do N8N e iniciar o container:
    docker-compose up -d
    O comando -d (detached) roda o container em segundo plano.
  • Verifique o status: Para confirmar que o N8N está rodando:
    docker ps
    Você deve ver um container chamado n8n listado.
  • Acesse o N8N: Abra seu navegador e acesse http://SEU_IP_DO_VPS:5678. Você será direcionado para a página de registro ou login do N8N.
  • Configurações Avançadas e Otimização

    Segurança: HTTPS e Proxy Reverso

    Expor o N8N diretamente via HTTP na porta 5678 não é recomendado para ambientes de produção. A primeira e mais crucial etapa de segurança é configurar um proxy reverso para gerenciar o acesso. O Nginx é uma escolha popular e eficiente para esta tarefa.

    Passos para configurar Nginx como proxy reverso:

    • Instale o Nginx em seu VPS (sudo apt update && sudo apt install nginx).
    • Configure um Virtual Host para o seu domínio. Crie um arquivo em /etc/nginx/sites-available/n8n (substitua n8n pelo nome do seu domínio ou um identificador).
    • Adicione a seguinte configuração básica, substituindo seu-dominio.com pelo seu domínio real:
      server {
          listen 80;
          server_name seu-dominio.com;
      
          location / {
              proxy_pass http://localhost:5678;
              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_set_header Host $http_host;
              proxy_buffering off;
          }
      }
    • Habilite o site e reinicie o Nginx: sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/ && sudo systemctl restart nginx.
    • Para HTTPS, use o Certbot para obter um certificado Let's Encrypt e configure o Nginx automaticamente: sudo apt install certbot python3-certbot-nginx && sudo certbot --nginx -d seu-dominio.com. O Certbot ajustará a configuração do Nginx para usar HTTPS e redirecionar o tráfego HTTP para HTTPS.

    Após configurar o proxy reverso com HTTPS, acesse seu N8N através de https://seu-dominio.com. Lembre-se de atualizar a variável de ambiente WEBHOOK_URL no seu docker-compose.yml para corresponder ao seu domínio público, especialmente se você for usar webhooks externos.

    Gerenciamento de Banco de Dados

    Como mencionei, para produção, é altamente recomendável usar um banco de dados externo como PostgreSQL. Isso não só melhora o desempenho, mas também permite gerenciar backups e a recuperação de dados de forma mais robusta. Você pode provisionar um banco de dados PostgreSQL em outro VPS ou usar um serviço gerenciado de banco de dados.

    Ao configurar o N8N para usar PostgreSQL, lembre-se de preencher corretamente as variáveis de ambiente DB_TYPE, DB_HOST, DB_PORT, DB_DATABASE, DB_USER e DB_PASSWORD no seu arquivo docker-compose.yml. Garanta que o servidor do banco de dados permita conexões do seu VPS onde o N8N está rodando, configurando corretamente as regras de firewall.

    Monitoramento e Logs

    Monitorar a saúde do seu container N8N é vital. Você pode usar comandos Docker para verificar logs e status:

    • Ver logs: docker logs n8n
    • Ver logs em tempo real: docker logs -f n8n
    • Ver o status do container: docker stats n8n (mostra uso de CPU e memória)

    Para um monitoramento mais avançado, considere integrar o N8N com ferramentas como Uptime Kuma ou Prometheus/Grafana. O Uptime Kuma, por exemplo, é uma excelente opção self-hosted para monitorar a disponibilidade do seu N8N (e outros serviços), alertando você caso algo saia do ar. Rodar o Uptime Kuma em um VPS adicional é uma prática recomendada para garantir que seu monitoramento esteja independente da aplicação monitorada.

    N8N em Produção: Qual o melhor plano?

    Comparativo de Planos e Requisitos

    A escolha do plano de VPS ideal para hospedar o N8N depende diretamente da complexidade e do volume dos seus fluxos de trabalho. Um setup simples com poucos automações pode rodar tranquilamente em um plano básico, enquanto um ambiente com centenas de workflows, integrações pesadas e execução frequente demandará mais recursos.

    Recurso N8N Básico/Teste N8N Produção Leve N8N Produção Moderada/Intensa
    RAM 1 GB 2 GB 4 GB+
    vCPUs 1 2 4+
    Armazenamento 10 GB SSD 20 GB SSD 50 GB+ SSD
    Banco de Dados SQLite (embutido) PostgreSQL (externo/gerenciado recomendado) PostgreSQL (externo/gerenciado otimizado)
    Proxy Reverso Opcional (para teste) Nginx/Traefik com HTTPS (Essencial) Nginx/Traefik com HTTPS e Otimizações

    Para quem está começando ou tem um volume moderado de automações, um plano VPS com 2GB de RAM e 2 vCPUs é um excelente ponto de partida. Ele oferece um equilíbrio entre custo e performance, permitindo rodar o N8N de forma estável com Docker e um banco de dados externo. Na Host You Secure, o plano VPS Brasil Starter oferece exatamente essa configuração: 2GB de RAM e 2 vCPUs por apenas R$ 49/mês. Este plano é ideal para rodar esse exato setup de N8N com Docker, garantindo que suas automações tenham a infraestrutura necessária para operar sem interrupções.

    Se sua necessidade for maior, com centenas de workflows rodando simultaneamente, ou se você integra sistemas que geram um tráfego de dados muito alto, planos com mais RAM (4GB ou 8GB) e CPUs (4 ou mais) oferecerão a performance necessária. É sempre melhor começar com o que você precisa e escalar conforme a demanda cresce, e o plano Starter é perfeito para iniciar essa jornada de automação self-hosted.

    Erros Comuns ao Implantar N8N e Como Evitá-los

    Problemas de Conectividade e Acesso

    Um dos erros mais comuns é a dificuldade em acessar a interface do N8N após a implantação. Isso geralmente se deve a:

    • Firewall: A porta 5678 (ou a porta que você configurou) não está aberta no firewall do seu VPS. Certifique-se de que a porta esteja liberada (sudo ufw allow 5678/tcp, por exemplo, se estiver usando UFW).
    • Configuração do Proxy Reverso: Erros na configuração do Nginx (ou outro proxy) podem impedir que as requisições cheguem ao container do N8N. Verifique os logs do Nginx (/var/log/nginx/error.log) para diagnosticar problemas.
    • Variáveis de Ambiente Incorretas: Principalmente N8N_HOST e WEBHOOK_URL. Se você usa um domínio, WEBHOOK_URL deve ser o seu domínio público com o protocolo correto (https:// se estiver usando SSL).

    Problemas de Persistência de Dados

    Se ao reiniciar o container do N8N, seus workflows desaparecem, o problema está na configuração do volume. Certifique-se de que a linha volumes: - n8n_data:/home/node/.n8n está presente e correta no seu docker-compose.yml, e que o volume n8n_data foi criado corretamente pelo Docker.

    Performance Lenta

    A lentidão na interface ou na execução dos workflows geralmente aponta para recursos insuficientes do servidor ou um banco de dados subdimensionado. Se você está usando o SQLite padrão e tem muitos workflows complexos, a performance degradará. Considere migrar para PostgreSQL e/ou fazer upgrade do seu plano de VPS (mais RAM e CPU).

    Perguntas Relacionadas ao N8N

    O N8N é gratuito?

    O N8N em si é open-source e gratuito para auto-hospedagem (self-hosted). Você só paga pelos recursos do servidor onde ele roda. A versão cloud oficial do N8N tem planos pagos com funcionalidades e limites diferenciados.

    Preciso de um domínio para rodar o N8N?

    Não é estritamente necessário para testes ou uso interno. Você pode acessar via IP do VPS. No entanto, para produção, especialmente se usar webhooks ou quiser um acesso seguro via HTTPS, um domínio próprio é essencial.

    Conclusão e Próximos Passos

    Hospedar o N8N em seu próprio VPS é um passo poderoso para assumir o controle da sua estratégia de automação. Com o Docker e um bom plano de hospedagem, você constrói uma base sólida, escalável e segura para seus fluxos de trabalho. A capacidade de integrar qualquer API ou serviço, combinada com a flexibilidade do self-hosted, desbloqueia um potencial imenso para otimizar suas operações de negócio.

    Recomendação Final: Para começar com o pé direito e garantir que sua instância do N8N tenha a performance necessária desde o início, recomendamos o plano VPS Brasil Starter da Host You Secure. Com 2GB de RAM e 2 vCPUs por R$ 49/mês, ele é a solução ideal para rodar seu N8N com Docker de forma eficiente. Dê o próximo passo em suas automações!

    Está pronto para levar sua automação para o próximo nível? Adquira seu VPS Brasil Starter agora e comece a construir seus workflows no N8N!

    Leia também: Veja mais tutoriais de N8N

    Perguntas Frequentes

    Hospedar o N8N em um VPS (self-hosted) oferece controle total sobre seus dados e infraestrutura, maior segurança e personalização, além de custos potencialmente mais baixos a longo prazo, especialmente para volumes de uso mais altos. Você não fica restrito aos limites de planos de terceiros e pode otimizar os recursos conforme sua necessidade.

    Embora o N8N possa ser executado em Windows através do Docker Desktop, a recomendação geral e o foco deste guia é o ambiente Linux (como Ubuntu). Servidores Linux são frequentemente preferidos para rodar aplicações self-hosted e containers devido à sua estabilidade, performance e ecossistema robusto de ferramentas de linha de comando e gerenciamento.

    A principal diferença é o modelo de hospedagem. Zapier e Make são serviços SaaS (Software as a Service) totalmente gerenciados. O N8N é open-source e permite self-hosting, o que significa que você gerencia a infraestrutura. N8N oferece mais flexibilidade e controle, especialmente para integrações complexas e grandes volumes de dados, enquanto SaaS oferecem conveniência e menos complexidade de configuração inicial.

    O container do N8N em si não ocupa muito espaço (geralmente menos de 1GB para a imagem). No entanto, os dados persistentes (workflows, credenciais, logs) e o banco de dados (se não for externo) podem crescer. Para um início em produção, recomendamos um mínimo de 20GB de espaço livre no VPS, e é prudente prever expansão, especialmente se você armazenar dados de execução dentro do próprio N8N ou usar seu banco de dados interno.

    Sim, o N8N suporta outros bancos de dados como MySQL e SQLite. No entanto, para ambientes de produção que exigem alta disponibilidade, performance e escalabilidade, o PostgreSQL é o banco de dados mais recomendado e otimizado para o N8N. SQLite é adequado para testes e pequenos fluxos de trabalho.

    Se você usa o volume persistente padrão do Docker para os dados do N8N, o backup envolve copiar o conteúdo desse volume. Se você configurou um banco de dados externo (como PostgreSQL), o backup deve ser feito diretamente no banco de dados usando as ferramentas apropriadas (ex: `pg_dump`). É crucial ter uma estratégia de backup regular para seus dados de automação.

    Workflows no N8N são sequências de tarefas automatizadas que conectam diferentes aplicações. Cada workflow é composto por nós (nodes), que representam ações específicas como buscar dados de um serviço, processar informações, enviar notificações, etc. Você visualiza e constrói esses fluxos em um editor gráfico intuitivo.

    Usar Docker com N8N traz consistência ao ambiente de execução (evitando conflitos de dependência), facilidade de implantação e escalabilidade. O Docker encapsula o N8N e suas dependências em um container isolado, tornando a instalação e o gerenciamento mais simples e previsíveis em qualquer servidor Linux compatível.

    Comentários (0)

    Ainda não há comentários. Seja o primeiro!