Como instalar n8n na VPS com Docker e HTTPS

Tempo de leitura: 5 minutos

Para instalar n8n na VPS de um jeito que aguente produção, não basta rodar um container: é preciso guardar os dados fora dele, colocar HTTPS na frente e não deixar a porta do editor aberta para a internet. Neste passo a passo você monta tudo isso com Docker, Nginx e um certificado grátis. Se preferir receber o servidor já pronto, o Cloud VPS n8n da Rubfy vem com o n8n pré-instalado e HTTPS configurado.

Requisitos para instalar n8n na VPS

Passo 1: criar o volume de dados

Tudo o que o n8n guarda (fluxos, credenciais, histórico) fica na pasta /home/node/.n8n dentro do container. Se ela não estiver num volume, você perde tudo ao atualizar. Crie o volume antes:

docker volume create n8n_data

Passo 2: subir o container do n8n

Troque o domínio pelo seu e rode:

docker run -d --name n8n --restart unless-stopped \
  -p 127.0.0.1:5678:5678 \
  -e N8N_HOST=automacao.seudominio.com.br \
  -e N8N_PROTOCOL=https \
  -e WEBHOOK_URL=https://automacao.seudominio.com.br/ \
  -e GENERIC_TIMEZONE=America/Sao_Paulo \
  -e TZ=America/Sao_Paulo \
  -v n8n_data:/home/node/.n8n \
  docker.n8n.io/n8nio/n8n

Pontos importantes desse comando:

  • 127.0.0.1:5678:5678 faz a porta responder só dentro do servidor. Quem vai atender o público é o Nginx, com HTTPS.
  • WEBHOOK_URL garante que as URLs de webhook sejam geradas com o seu domínio, e não com localhost.
  • --restart unless-stopped religa o n8n sozinho depois de um reboot da VPS.
  • o fuso America/Sao_Paulo faz os agendamentos (nó Schedule) dispararem no horário de Brasília.

Passo 3: Nginx como proxy reverso

Instale o Nginx e crie um site para o subdomínio. O editor do n8n usa WebSocket, então os cabeçalhos Upgrade e Connection são obrigatórios, senão a tela fica carregando para sempre:

server {
    server_name automacao.seudominio.com.br;

    location / {
        proxy_pass http://127.0.0.1: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-Forwarded-Proto $scheme;
        proxy_read_timeout 300s;
    }
}

O artigo sobre Nginx como proxy reverso explica cada diretiva com mais calma.

Passo 4: certificado SSL grátis

Com o Nginx respondendo no subdomínio, emita o certificado com o Certbot, que já ajusta a configuração para HTTPS e agenda a renovação:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d automacao.seudominio.com.br

Detalhes e solução de erros estão no guia de Let’s Encrypt com Certbot. Depois disso, acesse o domínio no navegador e crie a conta de dono da instância.

Depois de instalar n8n na VPS: segurança e atualização

  • Firewall: libere só SSH, 80 e 443. O UFW resolve em três comandos.
  • Backup: exporte os fluxos periodicamente e guarde uma cópia do volume n8n_data, principalmente antes de atualizar.
  • Atualização: baixe a imagem nova, remova o container antigo e rode o mesmo docker run. Como os dados estão no volume, nada se perde.
docker pull docker.n8n.io/n8nio/n8n
docker stop n8n && docker rm n8n
# rode de novo o mesmo comando docker run do passo 2

A documentação oficial de instalação com Docker lista todas as variáveis de ambiente disponíveis.

Perguntas frequentes

Preciso de banco de dados separado?

Não para começar. Por padrão o n8n usa SQLite, gravado dentro do volume n8n_data. Ele atende bem quem roda algumas dezenas de fluxos. Quando o volume de execuções cresce bastante, ou quando você quer rodar vários workers em paralelo, vale migrar para PostgreSQL, informando as variáveis DB_TYPE e as de conexão no comando do container.

O editor abre, mas fica carregando sem parar. O que é?

Quase sempre é o WebSocket bloqueado no proxy. Confira se as linhas proxy_set_header Upgrade e Connection "upgrade" estão no bloco do Nginx e recarregue a configuração com sudo nginx -t seguido de sudo systemctl reload nginx.

Os agendamentos disparam no horário errado

É o fuso horário. Sem as variáveis GENERIC_TIMEZONE e TZ, o container trabalha em UTC, três horas à frente de Brasília. Recrie o container com as duas variáveis, como no passo 2.

Quanto de recurso o n8n consome?

Em repouso, poucas centenas de megabytes de RAM. O consumo sobe durante as execuções, principalmente em fluxos que processam listas grandes ou arquivos. Se a VPS começar a travar, acompanhe com o htop e considere aumentar a memória.

Prefere o n8n já instalado? Conheça o Cloud VPS n8n

Se você quer pular a instalação e ir direto para os fluxos, o Cloud VPS n8n da Rubfy já vem com n8n pré-instalado em Docker, Nginx e HTTPS configurados, Ubuntu 22.04 LTS, acesso root por SSH, workflows e execuções ilimitados, tráfego ilimitado e IP dedicado em datacenter no Brasil, a partir de R$ 69 por mês.