1

Como instalar o n8n numa VPS com Docker e HTTPS automático (passo a passo)

Por que hospedar o próprio n8n

O n8n é uma das ferramentas de automação mais usadas por quem integra sistemas, CRMs, planilhas e WhatsApp. Ele pode ser usado na nuvem oficial, que cobra por execução, ou instalado no seu próprio servidor.

Rodando numa VPS, você tem:

  • execuções ilimitadas: o limite é o tamanho da máquina, não o plano;
  • dados no seu controle: credenciais e históricos ficam no seu servidor;
  • IP fixo: útil quando uma API de terceiros só aceita chamadas de IPs liberados;
  • custo previsível: um valor mensal fixo, independente de quantos fluxos você roda.

O que você vai precisar

  • Uma VPS Linux (Ubuntu ou Debian) com pelo menos 2 GB de RAM. Para começar, um VPS Start (1 vCPU, 2 GB de RAM, 20 GB NVMe) dá conta de dezenas de fluxos.
  • Acesso root por SSH.
  • Um domínio ou subdomínio, por exemplo n8n.suaempresa.com.br.

1. Aponte o domínio para a VPS

No painel de DNS do seu domínio, crie um registro A:

TipoNomeValor
An8nIP da sua VPS

A propagação costuma levar poucos minutos. Para conferir, rode ping n8n.suaempresa.com.br e veja se responde o IP da VPS.

2. Instale o Docker

Entre na VPS:

ssh root@IP_DA_VPS

Instale o Docker com o script oficial:

curl -fsSL https://get.docker.com | sh

O Docker Compose já vem junto. Confira com docker compose version.

3. Crie o projeto

mkdir -p /opt/n8n && cd /opt/n8n

Crie o arquivo docker-compose.yml:

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: unless-stopped
    environment:
      - N8N_HOST=n8n.suaempresa.com.br
      - N8N_PROTOCOL=https
      - N8N_PORT=5678
      - WEBHOOK_URL=https://n8n.suaempresa.com.br/
      - GENERIC_TIMEZONE=America/Sao_Paulo
      - TZ=America/Sao_Paulo
    volumes:
      - n8n_data:/home/node/.n8n

  caddy:
    image: caddy:2
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data

volumes:
  n8n_data:
  caddy_data:

E o Caddyfile, que cuida do HTTPS:

n8n.suaempresa.com.br {
    reverse_proxy n8n:5678
}

O Caddy emite e renova o certificado HTTPS sozinho. Não precisa configurar Certbot.

4. Suba tudo

docker compose up -d

Em menos de um minuto, abra https://n8n.suaempresa.com.br e crie a conta de administrador.

5. Cuidados para produção

  • Backup: os fluxos e credenciais ficam no volume n8n_data. Exporte de tempos em tempos, ou use o backup da própria hospedagem.
  • Atualização: para atualizar o n8n, rode docker compose pull && docker compose up -d. Os dados continuam no volume.
  • Firewall: só as portas 22, 80 e 443 precisam ficar abertas. A 5678 fica fechada, porque o acesso passa pelo Caddy.
  • Webhooks: com WEBHOOK_URL configurado, os links de webhook do n8n já saem com o seu domínio e HTTPS, prontos para usar em WhatsApp, formulários e gateways de pagamento.

Problemas comuns

O navegador mostra erro de certificado. O DNS ainda não apontou para a VPS, ou a porta 80 está bloqueada. O Caddy precisa da porta 80 para validar o domínio.

Os webhooks saem com localhost. Falta a variável WEBHOOK_URL. Ajuste o docker-compose.yml e rode docker compose up -d de novo.

O n8n fica lento com muitos fluxos. Veja o uso de memória com docker stats. Se passar de 80% com frequência, é hora de uma VPS com mais RAM.


Escrevi esse passo a passo para o blog da NullNinja, uma hospedagem brasileira (VPS com IP fixo e datacenter em São Paulo). Se travar em alguma etapa, comenta aqui que eu ajudo.

Carregando publicação patrocinada...