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.
VPS, backups e operação de pequenos negócios
Ele compara VPS, backups, painéis, suporte, tráfego e custos operacionais para empresas pequenas.
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ção | Self-hosted tende a fazer sentido | Serviço gerenciado tende a ser melhor |
|---|---|---|
| Dados e rede | Integração com sistemas privados e regras próprias | Sem requisito especial de rede |
| Operação | Há alguém responsável por Linux, Docker e incidentes | Ninguém pode manter servidor e backup |
| Custo | Uso contínuo e previsível, após contabilizar manutenção | Prioridade é começar rápido e reduzir plantão |
| Mudanças | A equipe aceita testar versões e ter plano de volta | Atualizaçõ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:
- Entrada pública: DNS, proxy reverso e certificado TLS.
- Aplicação: o contêiner do n8n, substituível durante uma atualização.
- Estado: volume persistente ou banco de dados, além da chave usada para proteger credenciais.
- 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.
| Item | Por que guardar | Cuidado na restauração |
|---|---|---|
| Volume n8n_data | SQLite padrão, configurações e estado local | Restaurar com permissões corretas |
| Chave de criptografia | Permite ler credenciais já armazenadas | Guardar separada e com acesso restrito |
| compose.yaml | Reproduz serviços, rede e volume | Fixar versão compatível da imagem |
| Banco PostgreSQL, se usado | Guarda dados persistentes da aplicação | Fazer cópia consistente e validar versão |
| Configuração do proxy | Recupera domínio, TLS e encaminhamento | Nã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 é:
- registrar a versão atual e o estado dos contêineres;
- produzir backup consistente e confirmar a chave de criptografia;
- testar a nova versão com cópia dos dados em ambiente isolado;
- alterar a tag explícita, baixar a imagem e recriar o serviço;
- testar login, credenciais, webhooks e os fluxos mais importantes;
- 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?
SQLite serve para n8n em produção?
Posso expor a porta 5678 diretamente?
O que não pode faltar no backup do n8n?
Preparado por
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