Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

n8n no VPS Linux: instale e automatize em 2026

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:

  1. Atualize o sistema e instale o Docker no Debian 12
  2. Crie o diretório de dados e o arquivo docker-compose.yml do n8n
  3. Suba o container com docker compose up -d
  4. Configure o Nginx como proxy reverso com HTTPS
  5. Acesse o n8n via navegador e crie o usuário administrador
  6. 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.

  1. Preencha o formulário de criação do usuário administrador: nome, e-mail e senha forte.
  2. Clique em Get started para entrar na interface principal.
  3. Na tela inicial, clique em New Workflow para criar seu primeiro fluxo de trabalho.
  4. Explore o painel de nodes clicando no botão + para adicionar integrações (HTTP Request, Webhook, Gmail, Slack, MySQL, entre outros).
  5. 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.

  1. Acesse o diretório do projeto: cd /opt/n8n
  2. Baixe a imagem mais recente: docker compose pull
  3. Recrie o container com a nova imagem: docker compose up -d --force-recreate
  4. 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

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.

Conheça os planos de VPS Linux da AviraHost

  • 0 Os usuários acharam isso útil
  • n8n, automacao, Docker, VPS, AviraHost
Esta resposta foi útil?

Artigos Relacionados

Otimizar cache Redis para aplicações PHP no Ubuntu 22.04

Para otimizar o cache Redis para aplicações PHP no Ubuntu 22.04, instale e configure o Redis,...

Configurar Alertas Automáticos com Zabbix no Ubuntu

Para configurar alertas automáticos com Zabbix no Ubuntu, instale o Zabbix Server, configure...

Otimizar MySQL: como reduzir uso de memória e acelerar consultas

Otimizar MySQL é o processo de ajustar configurações e consultas para reduzir o consumo de...

Entenda o que é Swap no Linux: como funciona e quando usar

Swap no Linux é um espaço em disco usado como extensão da memória RAM quando esta se esgota. O...

Guia Definitivo: Configurar Nginx como Proxy Reverso

Para configurar o Nginx como proxy reverso, instale o Nginx, crie um arquivo de configuração de...