16 min de leitura · Guia técnico
n8n no VPS Linux é uma plataforma de automação de workflows self-hosted que permite conectar APIs, bancos de dados e serviços web por meio de uma interface visual, sem depender de serviços pagos por execução. Para instalar e colocar o n8n em produção no seu VPS, siga estes passos:
- Atualize o sistema e instale o Docker no Debian 12
- Crie o diretório de dados e o arquivo
docker-compose.ymldo n8n - Suba o container com
docker compose up -d - Configure o Nginx como proxy reverso com HTTPS
- Acesse o n8n via navegador e crie o usuário administrador
- Configure backup automático do volume de dados
Pré-requisitos para instalar o n8n no VPS Linux
- Sistema operacional: Debian 12 (Bookworm) — os comandos deste tutorial foram testados nesta distribuição
- Acesso root ou sudo via SSH ao servidor
- Docker Engine versão 24 ou superior e o plugin Docker Compose v2
- Recursos mínimos: 1 vCPU e 1 GB de RAM; recomendado 2 GB para workflows complexos
- Domínio apontado para o IP do VPS (ex.:
n8n.seudominio.com.br) para configurar HTTPS - Porta 80 e 443 abertas no firewall do servidor
- Familiaridade básica com linha de comando Linux
Se você ainda não configurou o acesso SSH ao seu servidor, consulte o artigo Acessando servidores VPS Linux da AviraHost antes de continuar.
Instalando o Docker no Debian 12 para rodar o n8n
O n8n é distribuído oficialmente como imagem Docker, o que simplifica a instalação e o isolamento de dependências. O primeiro passo é garantir que o Docker Engine esteja instalado corretamente no Debian 12.
Conecte-se ao servidor via SSH e execute os comandos abaixo em sequência:
apt update && apt upgrade -y
apt install -y ca-certificates curl gnupg lsb-release
Adicione o repositório oficial do Docker:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
| tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Verifique se a instalação foi bem-sucedida:
docker --version
docker compose version
Docker version 26.1.4, build 5650f9b
Docker Compose version v2.27.1
Habilite o Docker para iniciar automaticamente com o sistema:
systemctl enable --now docker
Criando o ambiente Docker Compose para o n8n
A forma mais organizada de gerenciar o container do n8n em produção é usando um arquivo docker-compose.yml. Isso facilita atualizações, reinicializações e a adição de serviços como PostgreSQL para n8n no futuro. Se preferir uma administração mais limpa, você também pode mover as variáveis de ambiente para um arquivo .env, mantendo o mesmo Compose.
Crie o diretório de trabalho e o arquivo de configuração:
mkdir -p /opt/n8n
cd /opt/n8n
Crie o arquivo docker-compose.yml com o editor de sua preferência:
nano docker-compose.yml
Cole o conteúdo abaixo, substituindo os valores entre colchetes pelos seus dados reais:
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.seudominio.com.br
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.seudominio.com.br/
- N8N_BASIC_AUTH_ACTIVE=false
- GENERIC_TIMEZONE=America/Sao_Paulo
- TZ=America/Sao_Paulo
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
Suba o container em modo detached:
docker compose up -d
[+] Running 2/2
✔ Volume "n8n_n8n_data" Created
✔ Container n8n Started
Confirme que o container está em execução:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a3f1c2d4e5b6 n8nio/n8n:latest "tini -- /docker-ent…" 10 seconds ago Up 9 seconds 0.0.0.0:5678->5678/tcp n8n
Neste ponto, o n8n já está acessível em http://IP-DO-SEU-VPS:5678. Para produção, o próximo passo é configurar HTTPS com Nginx e SSL Let's Encrypt.
Configurando o Nginx como proxy reverso com HTTPS para o n8n
Expor o n8n diretamente na porta 5678 sem criptografia é inadequado para produção. O Nginx atuará como proxy reverso, terminando o TLS e repassando as requisições ao container. Para entender melhor o conceito, veja o artigo Configurando um Servidor Linux para Hospedagem de Sites.
Se o seu público e suas integrações estiverem no Brasil, hospedar em um VPS com data center no Brasil pode ajudar a reduzir latência em webhooks, APIs locais e automações sensíveis a tempo de resposta. Um IP fixo também facilita liberações em firewalls, callbacks e integrações corporativas.
Instale o Nginx e o Certbot:
apt install -y nginx certbot python3-certbot-nginx
Crie o arquivo de configuração do virtual host para o n8n:
nano /etc/nginx/sites-available/n8n
server {
listen 80;
server_name n8n.seudominio.com.br;
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
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_read_timeout 88400s;
proxy_send_timeout 88400s;
chunked_transfer_encoding on;
}
}
Ative o site e teste a configuração:
ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Emita o certificado TLS com o Certbot:
certbot --nginx -d n8n.seudominio.com.br --non-interactive --agree-tos -m [email protected]
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/n8n.seudominio.com.br/fullchain.pem
...
Deploying certificate to VirtualHost /etc/nginx/sites-enabled/n8n
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/n8n
O Certbot modifica automaticamente o arquivo do Nginx para redirecionar HTTP para HTTPS. Após este passo, o n8n estará disponível em https://n8n.seudominio.com.br.
Primeiro acesso e configuração inicial do n8n
Com a automação de workflows acessível via HTTPS, abra o navegador e acesse https://n8n.seudominio.com.br. Na primeira visita, o n8n exibirá o assistente de configuração inicial.
- Preencha o formulário de criação do usuário administrador: nome, e-mail e senha forte.
- Clique em Get started para entrar na interface principal.
- Na tela inicial, clique em New Workflow para criar seu primeiro fluxo de trabalho.
- Explore o painel de nodes clicando no botão + para adicionar integrações (HTTP Request, Webhook, Gmail, Slack, MySQL, entre outros).
- Salve o workflow com Ctrl+S e ative-o com o toggle no canto superior direito.
Para testar um webhook simples, adicione um node Webhook como trigger, copie a URL gerada e faça uma requisição de teste com curl:
curl -X POST https://n8n.seudominio.com.br/webhook/teste \
-H "Content-Type: application/json" \
-d '{"mensagem": "Olá n8n!"}'
{"mensagem":"Olá n8n!"}
Se o n8n retornar os dados enviados, o webhook está funcionando corretamente.
Configurando backup automático dos dados do n8n
Os workflows, credenciais e histórico de execuções ficam armazenados no volume Docker n8n_data, mapeado internamente em /home/node/.n8n. Perder esse diretório significa perder todas as automações configuradas.
Identifique o caminho físico do volume no host:
docker volume inspect n8n_n8n_data
[
{
"CreatedAt": "2026-11-10T14:22:00Z",
"Driver": "local",
"Mountpoint": "/var/lib/docker/volumes/n8n_n8n_data/_data",
...
}
]
Crie um script de backup que compacta o volume e o envia para um diretório seguro:
nano /opt/n8n/backup.sh
#!/bin/bash
BACKUP_DIR="/var/backups/n8n"
DATE=$(date +%Y%m%d_%H%M%S)
SOURCE="/var/lib/docker/volumes/n8n_n8n_data/_data"
mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/n8n_backup_$DATE.tar.gz" -C "$SOURCE" .
# Manter apenas os últimos 7 backups
ls -tp "$BACKUP_DIR"/n8n_backup_*.tar.gz | grep -v '/$' | tail -n +8 | xargs -I {} rm -- {}
echo "Backup concluído: n8n_backup_$DATE.tar.gz"
chmod +x /opt/n8n/backup.sh
Agende o backup diário via cron:
crontab -e
0 3 * * * /opt/n8n/backup.sh >> /var/log/n8n_backup.log 2>&1
Para restaurar um backup, pare o container, extraia o arquivo e reinicie:
Atenção: o comando abaixo sobrescreve todos os dados atuais do n8n. Certifique-se de que está restaurando o arquivo correto.
docker compose -f /opt/n8n/docker-compose.yml stop n8n
tar -xzf /var/backups/n8n/n8n_backup_YYYYMMDD_HHMMSS.tar.gz \
-C /var/lib/docker/volumes/n8n_n8n_data/_data
docker compose -f /opt/n8n/docker-compose.yml start n8n
Atualizando o n8n para a versão mais recente
Manter o n8n atualizado garante acesso a novos nodes, correções de segurança e melhorias de desempenho. O processo de atualização com Docker Compose é simples e não exige reinstalação.
- Acesse o diretório do projeto:
cd /opt/n8n - Baixe a imagem mais recente:
docker compose pull - Recrie o container com a nova imagem:
docker compose up -d --force-recreate - Verifique os logs para confirmar que o n8n iniciou sem erros:
docker compose logs -f n8n
docker compose pull
docker compose up -d --force-recreate
[+] Pulling 1/1
✔ n8n Pulled
[+] Running 1/1
✔ Container n8n Started
O volume de dados é preservado durante a atualização, pois está declarado separadamente no docker-compose.yml. Seus workflows e credenciais não são afetados.
Problemas comuns e como resolver
Sintoma: container n8n não inicia e exibe erro de permissão no volume
Causa: o diretório do volume Docker pertence ao usuário root, mas o processo interno do n8n roda como o usuário node (UID 1000), sem permissão de escrita.
Solução: ajuste as permissões do diretório do volume:
chown -R 1000:1000 /var/lib/docker/volumes/n8n_n8n_data/_data
docker compose restart n8n
Sintoma: webhooks não recebem requisições externas
Causa: a variável WEBHOOK_URL no docker-compose.yml está incorreta ou aponta para http:// em vez de https://, fazendo o n8n gerar URLs de webhook erradas.
Solução: edite o arquivo docker-compose.yml, corrija o valor de WEBHOOK_URL para incluir o protocolo e domínio corretos (https://n8n.seudominio.com.br/) e recrie o container:
docker compose up -d --force-recreate
Sintoma: interface do n8n lenta ou workflows com timeout
Causa: o VPS está com pouca memória disponível. O n8n consome mais RAM conforme o número de workflows ativos e o histórico de execuções cresce.
Solução: verifique o uso de memória com docker stats n8n. Se o container estiver próximo do limite, considere aumentar o plano do VPS ou limpar o histórico de execuções em Configurações > Pruning dentro do n8n. Também é possível adicionar swap ao servidor para aliviar a pressão de memória.
Sintoma: erro "502 Bad Gateway" ao acessar o domínio
Causa: o Nginx não consegue se conectar ao container na porta 5678, geralmente porque o container parou ou a porta não está sendo escutada.
Solução: verifique o status do container e os logs:
docker ps -a
docker compose logs n8n
Se o container estiver parado (Exited), reinicie-o com docker compose start n8n. Confirme que a porta está ativa com ss -tlnp | grep 5678.
Sintoma: certificado TLS expirado após 90 dias
Causa: o Certbot não renovou o certificado automaticamente porque o timer do systemd ou o cron do Certbot não está ativo.
Solução: verifique e habilite o timer de renovação automática:
systemctl status certbot.timer
systemctl enable --now certbot.timer
Para forçar uma renovação manual de teste: certbot renew --dry-run.
Perguntas frequentes sobre n8n no VPS Linux
O que é o n8n e para que serve?
O n8n é uma plataforma de automação de fluxos de trabalho (workflows) de código aberto, similar ao Zapier e ao Make, mas que pode ser hospedada no seu próprio servidor. Ele permite conectar APIs, bancos de dados, serviços web e ferramentas internas sem escrever código complexo, usando uma interface visual baseada em nós (nodes). Por ser self-hosted, você mantém controle total sobre os dados e não paga por execuções.
Preciso de um VPS potente para rodar o n8n?
Para uso individual ou pequenas equipes, o n8n roda bem em um VPS com 1 vCPU e 1 GB de RAM, embora 2 GB seja o recomendado para evitar lentidão em workflows complexos. Para ambientes de produção com muitos workflows simultâneos ou integrações pesadas, recomenda-se 2 vCPUs e 4 GB de RAM. O uso de Docker facilita o isolamento e o controle de recursos.
O n8n é gratuito para uso self-hosted?
Sim, o n8n possui uma licença fair-code que permite uso self-hosted gratuito para a maioria dos casos, incluindo uso comercial interno. Funcionalidades avançadas como SSO (Single Sign-On) e auditoria de logs são exclusivas da versão paga (n8n Cloud ou licença Enterprise). Para automações pessoais e de pequenas empresas, a versão gratuita self-hosted é suficiente.
Como acessar o n8n após a instalação no VPS?
Após iniciar o container Docker do n8n, ele fica disponível na porta 5678 do seu servidor. Você acessa via navegador em http://IP-DO-SEU-VPS:5678. Para produção, é recomendado configurar um proxy reverso com Nginx e um certificado TLS para acessar via HTTPS com domínio próprio, como https://n8n.seudominio.com.br.
Como fazer backup dos workflows do n8n?
Os workflows e credenciais do n8n ficam armazenados no banco de dados interno (SQLite por padrão) ou em um banco externo como PostgreSQL. Para backup, basta copiar o volume Docker mapeado para o diretório de dados do n8n (geralmente /home/node/.n8n ou o diretório configurado em N8N_USER_FOLDER). Você também pode exportar workflows individualmente pela interface web em formato JSON, em Configurações > Exportar.
Conclusão
- Instale o n8n via Docker Compose no Debian 12 para ter um ambiente isolado, fácil de atualizar e de fazer backup — o processo completo leva menos de 30 minutos.
- Configure o Nginx como proxy reverso com HTTPS usando o Certbot e SSL Let's Encrypt antes de expor o n8n publicamente; nunca deixe a porta 5678 aberta sem autenticação em produção.
- Automatize o backup diário do volume Docker com um script cron para proteger seus workflows e credenciais contra perda acidental de dados.
Leia também
- Comparativo: Portainer vs CLI Docker para gerenciar containers
- Migrar banco de dados MySQL entre servidores Linux sem perda
- Checklist: Kubernetes ou Docker Compose para VPS em 2026
Precisa de ajuda com n8n e automações no VPS?
Rodar o n8n em produção exige um VPS estável, com boa conectividade e recursos garantidos. Na AviraHost, os planos de VPS Linux oferecem acesso root completo, suporte a Docker e infraestrutura otimizada para aplicações self-hosted como o n8n, com opção de data center no Brasil, menor latência para integrações locais e IP fixo para cenários corporativos.