Self host N8n Automação

Como hospedar n8n no seu servidor com segurança

Aprenda a hospedar n8n em uma VPS com Docker, volume persistente, proxy reverso, TLS, backup testado e atualização controlada.

Ricardo Souza
Ricardo Souza

VPS, backups e operação de pequenos negócios

Ele compara VPS, backups, painéis, suporte, tráfego e custos operacionais para empresas pequenas.

8 min de leitura

Hospedar n8n no seu servidor dá controle sobre dados, integrações e custo, mas também transfere para você a segurança e a recuperação. Um começo responsável usa Docker, volume persistente, chave de criptografia guardada fora do repositório, proxy reverso com TLS e backup cuja restauração já foi testada.

O que é n8n e quando vale hospedar por conta própria

O n8n é uma plataforma de automação de fluxos. Em um editor visual, você encadeia gatilhos e ações para receber um formulário, consultar uma API, atualizar uma planilha, enviar uma mensagem ou coordenar tarefas entre sistemas. Quando o conector pronto não basta, o fluxo pode incluir lógica e chamadas HTTP.

Na versão auto-hospedada, a aplicação roda na sua infraestrutura. Isso pode fazer sentido quando a equipe precisa controlar onde os dados ficam, integrar serviços internos ou distribuir o custo por vários fluxos. Só não esconda a contrapartida na planilha: não existe equipe do serviço gerenciado cuidando do sistema operacional, certificado, cópia de segurança e atualização da sua instância.

SituaçãoSelf-hosted tende a fazer sentidoServiço gerenciado tende a ser melhor
Dados e redeIntegração com sistemas privados e regras própriasSem requisito especial de rede
OperaçãoHá alguém responsável por Linux, Docker e incidentesNinguém pode manter servidor e backup
CustoUso contínuo e previsível, após contabilizar manutençãoPrioridade é começar rápido e reduzir plantão
MudançasA equipe aceita testar versões e ter plano de voltaAtualizações precisam ser delegadas

O preço mensal da VPS é apenas uma linha da conta. Inclua armazenamento de backup, domínio, monitoramento e horas de manutenção. Suporte conta no relógio: uma economia pequena desaparece rápido se uma credencial quebrada parar um processo comercial.

A arquitetura mínima que evita a maioria dos sustos

Pense na instalação como quatro partes separadas:

  1. Entrada pública: DNS, proxy reverso e certificado TLS.
  2. Aplicação: o contêiner do n8n, substituível durante uma atualização.
  3. Estado: volume persistente ou banco de dados, além da chave usada para proteger credenciais.
  4. Recuperação: cópia independente, histórico e procedimento de restauração.

O contêiner pode ser recriado em minutos. Os dados e a chave não. No uso padrão com SQLite, o diretório /home/node/.n8n guarda o banco e informações necessárias à instância. Mesmo ao migrar para PostgreSQL, a documentação do n8n manda persistir o diretório de usuário.

Se o servidor desaparecer e você restaurar apenas o banco, mas não a chave de criptografia anterior, as credenciais salvas podem ficar ilegíveis. Por isso, trate a chave como parte do plano de recuperação, sem colocá-la no Git nem junto da única cópia do volume.

Preparação do servidor

Use uma VPS Linux atualizada, com Docker e o plugin Docker Compose instalados pelos repositórios adequados à sua distribuição. Aponte um subdomínio, como n8n.exemplo.com, para o IP do servidor. Um subdomínio dedicado costuma ser mais simples que publicar a aplicação em um caminho de outro site.

Antes da instalação, confirme:

  • acesso administrativo por SSH com chave;
  • firewall permitindo apenas SSH, HTTP e HTTPS conforme a arquitetura;
  • espaço para dados, logs temporários e atualização de imagens;
  • destino de backup fora da própria VPS;
  • responsável e janela para manutenção.

Não publique a porta 5678 diretamente na internet. O exemplo abaixo a prende ao endereço local do servidor; o proxy reverso será a entrada pública. É uma decisão pequena que corta um risco desnecessário.

Docker Compose: um ponto de partida controlável

Crie um diretório reservado para a implantação e salve este arquivo como compose.yaml:

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:${N8N_IMAGE_TAG}
    restart: unless-stopped
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      N8N_HOST: ${N8N_HOST}
      N8N_PROTOCOL: https
      WEBHOOK_URL: https://${N8N_HOST}/
      N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
      GENERIC_TIMEZONE: America/Sao_Paulo
      TZ: America/Sao_Paulo
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

No arquivo .env, defina apenas valores da sua implantação:

N8N_IMAGE_TAG=<versao-exata-testada>
N8N_HOST=n8n.exemplo.com
N8N_ENCRYPTION_KEY=<segredo-longo-gerado-fora-do-repositorio>

Substitua os marcadores antes de iniciar. Escolha uma versão explícita da imagem que você testou; não dependa da etiqueta latest em uma instalação que executa processos importantes. Gere a chave com uma fonte criptograficamente segura, restrinja a leitura do arquivo e nunca envie esse arquivo ao repositório. Em uma estrutura maior, injete o segredo pelo mecanismo de segredos da plataforma.

Valide e suba o serviço:

docker compose config
docker compose pull
docker compose up -d
docker compose logs --tail=100 n8n

Esses comandos só confirmam que o contêiner iniciou. Eles não tornam a implantação pronta para produção. Antes de receber webhooks reais, ainda faltam TLS, política de acesso, backup, teste de restauração, atualização e monitoramento.

Proxy reverso e TLS vêm antes da exposição pública

A documentação oficial recomenda colocar um proxy reverso, como Caddy, Traefik ou Nginx, na frente do n8n. Ele recebe conexões HTTPS, mantém o certificado e encaminha o tráfego para 127.0.0.1:5678. Assim, a porta interna continua fora da internet.

No proxy escolhido, preserve cabeçalhos de host e protocolo e permita conexões necessárias à interface. Mantenha WEBHOOK_URL com a URL pública em HTTPS, pois integrações externas precisam registrar o endereço correto dos webhooks.

Depois de configurar o proxy:

  • abra o endereço público do subdomínio em uma janela privada;
  • confirme que HTTP redireciona para HTTPS;
  • verifique o certificado e a renovação automática;
  • crie um webhook de teste e confira a URL gerada;
  • confirme que a porta 5678 do IP do servidor não responde pela rede externa.

Uma tela de login não substitui segurança de transporte. Credenciais, payloads e tokens não devem atravessar HTTP aberto.

Backup: copie o que realmente permite voltar

Exportar os fluxos é útil para portabilidade, mas não é um backup completo. Uma recuperação precisa considerar dados da aplicação, chave de criptografia, configuração de implantação e banco externo, se houver.

ItemPor que guardarCuidado na restauração
Volume n8n_dataSQLite padrão, configurações e estado localRestaurar com permissões corretas
Chave de criptografiaPermite ler credenciais já armazenadasGuardar separada e com acesso restrito
compose.yamlReproduz serviços, rede e volumeFixar versão compatível da imagem
Banco PostgreSQL, se usadoGuarda dados persistentes da aplicaçãoFazer cópia consistente e validar versão
Configuração do proxyRecupera domínio, TLS e encaminhamentoNão misturar certificados privados em Git

Para uma instalação pequena com SQLite, faça uma cópia consistente: pause escritas ou pare o serviço durante a captura do volume. Em PostgreSQL, use o procedimento de backup consistente do banco. Mantenha pelo menos uma cópia fora da VPS e uma política de retenção que permita voltar antes de uma alteração defeituosa.

O teste decisivo não é ver o arquivo de backup nem comemorar a mensagem de sucesso. É restaurá-lo em ambiente isolado, iniciar a mesma versão do n8n, abrir os fluxos e confirmar que uma credencial pode ser lida. Teste a restauração antes que a falha escolha o horário por você.

Atualizar sem transformar automação em loteria

Uma atualização segura começa pelo changelog da versão desejada e termina com um caminho de volta. Não use atualização automática cega em uma instância ligada a faturamento, atendimento ou dados de clientes.

Uma sequência conservadora é:

  1. registrar a versão atual e o estado dos contêineres;
  2. produzir backup consistente e confirmar a chave de criptografia;
  3. testar a nova versão com cópia dos dados em ambiente isolado;
  4. alterar a tag explícita, baixar a imagem e recriar o serviço;
  5. testar login, credenciais, webhooks e os fluxos mais importantes;
  6. observar logs e métricas durante a janela de mudança.

Se o teste falhar, volte para a tag anterior e para a cópia compatível dos dados. Apenas trocar a imagem para trás pode não bastar depois de uma migração de banco.

Segurança e rotina operacional

O n8n manipula tokens de APIs, dados recebidos por webhooks e ações capazes de alterar sistemas externos. Limite quem administra a instância, revise nós de comunidade antes de instalar e evite expor webhooks sem autenticação quando o serviço de origem permite assinatura ou segredo.

A auditoria de segurança oficial pode ser executada pela CLI:

docker compose exec n8n n8n audit

Ela ajuda a localizar configurações ausentes, webhooks desprotegidos, nós arriscados e outros sinais, mas não substitui revisão humana. Some monitoramento de disponibilidade, uso de disco, falhas repetidas de execução e validade do certificado.

VPS barato exige rotina. Reserve uma verificação periódica para atualizações do sistema e do n8n, crescimento do volume, falhas de backup, restauração amostral e contas com acesso administrativo.

Lista de verificação

  • Fixe uma versão testada do n8n e mantenha a porta 5678 acessível apenas localmente.
  • Publique o subdomínio somente atrás de proxy reverso com TLS válido e renovação automática.
  • Guarde volume, banco e chave de criptografia em cópias independentes da VPS.
  • Restaure uma cópia em ambiente isolado e valide credenciais, webhooks e fluxos críticos.
  • Planeje atualização, monitoramento e responsável antes de automatizar processo de negócio.

Quando começar simples e quando crescer a arquitetura

SQLite e um único contêiner podem atender uma primeira instalação de baixo volume quando a simplicidade operacional vale mais. Crescimento, múltiplos executores e requisitos de disponibilidade podem justificar PostgreSQL e os exemplos oficiais de fila com Redis, mas cada componente acrescenta backup, monitoramento e modos de falha.

Não copie uma arquitetura grande só porque parece profissional. Meça volume de execuções, concorrência, tempo dos fluxos e impacto de uma parada. O desenho certo é o que cabe na rotina da equipe e volta quando quebra, não o que tem mais caixas no diagrama.

Perguntas frequentes

Preciso de Docker para hospedar n8n?
Não é a única forma, mas Docker simplifica a reprodução da instalação e é bem documentado pelo projeto. O ponto crítico continua sendo persistir os dados, guardar a chave, configurar TLS e manter uma rotina de atualização.
SQLite serve para n8n em produção?
Pode atender uma instância pequena e única, desde que o volume seja persistente e o backup seja consistente. Para crescimento operacional, avalie PostgreSQL com base em concorrência, recuperação e capacidade real de manter mais componentes.
Posso expor a porta 5678 diretamente?
Não é a configuração recomendada para acesso público. Prenda a porta ao endereço local e use proxy reverso com HTTPS, domínio válido e cabeçalhos corretos para a aplicação e os webhooks.
O que não pode faltar no backup do n8n?
Guarde o volume de usuário, o banco externo se existir, a chave de criptografia e a configuração necessária para reproduzir a implantação. Depois restaure em ambiente isolado e confirme que credenciais e fluxos funcionam.

Preparado por

Ricardo Souza
Ricardo Souza

VPS, backups e operação de pequenos negócios

Ele compara VPS, backups, painéis, suporte, tráfego e custos operacionais para empresas pequenas.

Fatos verificados

HostScout editorial