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
- VPS Linux (Ubuntu 22.04 ou 24.04) com pelo menos 2 GB de RAM. Veja o nosso guia de quanta RAM a VPS precisa.
- Um subdomínio, por exemplo
automacao.seudominio.com.br, com registro A apontando para o IP da VPS. - Acesso SSH com um usuário que possa usar
sudo. - Docker instalado. Se ainda não tem, siga como instalar o Docker na VPS Linux.
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:5678faz a porta responder só dentro do servidor. Quem vai atender o público é o Nginx, com HTTPS.WEBHOOK_URLgarante que as URLs de webhook sejam geradas com o seu domínio, e não com localhost.--restart unless-stoppedreliga o n8n sozinho depois de um reboot da VPS.- o fuso
America/Sao_Paulofaz 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.