Como instalar o n8n na VPS com Docker e HTTPS

João Guilherme

João Guilherme

Última atualização em Sep 29, 2026

O n8n é uma das ferramentas mais instaladas nas VPS da LuraHosting. Este guia deixa ele no ar com domínio e HTTPS em cerca de 15 minutos, em uma VPS Ubuntu/Debian com 2 vCores e 4 GB (mínimo recomendado).

1. Aponte o domínio

No seu provedor de DNS, crie um registro A n8n.seudominio.com → IP da VPS. Espere propagar (ping n8n.seudominio.com deve responder o IP).

2. Instale o Docker

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

3. Crie o projeto

mkdir -p /opt/n8n && cd /opt/n8n
nano docker-compose.yml

Conteúdo (troque n8n.seudominio.com, o e-mail e a senha):

services:
  traefik:
    image: traefik:v3
    command:
      - --providers.docker=true
      - --providers.docker.exposedbydefault=false
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --entrypoints.web.http.redirections.entrypoint.to=websecure
      - --certificatesresolvers.le.acme.tlschallenge=true
      - --certificatesresolvers.le.acme.email=seu@email.com
      - --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json
    ports: ["80:80", "443:443"]
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - traefik_le:/letsencrypt
    restart: unless-stopped

  n8n:
    image: n8nio/n8n:latest
    environment:
      - N8N_HOST=n8n.seudominio.com
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.seudominio.com/
      - GENERIC_TIMEZONE=America/Sao_Paulo
      - N8N_ENCRYPTION_KEY=troque-por-uma-chave-longa-e-aleatoria
    volumes:
      - n8n_data:/home/node/.n8n
    labels:
      - traefik.enable=true
      - traefik.http.routers.n8n.rule=Host(`n8n.seudominio.com`)
      - traefik.http.routers.n8n.entrypoints=websecure
      - traefik.http.routers.n8n.tls.certresolver=le
      - traefik.http.services.n8n.loadbalancer.server.port=5678
    restart: unless-stopped

volumes:
  n8n_data:
  traefik_le:

4. Libere as portas e suba

sudo ufw allow 80/tcp && sudo ufw allow 443/tcp
docker compose up -d
docker compose logs -f n8n     # aguarde "Editor is now accessible"

Acesse https://n8n.seudominio.com e crie o usuário administrador. O certificado é emitido automaticamente pelo Let's Encrypt.

Atualizar

cd /opt/n8n && docker compose pull && docker compose up -d

Backup

Os fluxos e credenciais ficam no volume n8n_data. Inclua /var/lib/docker/volumes/n8n_n8n_data no seu backup automático para o Object Storage e guarde a N8N_ENCRYPTION_KEY, sem ela as credenciais do backup não abrem.

Problemas comuns

  • Certificado não emite: o DNS ainda não propagou ou a porta 80 está bloqueada.
  • Webhooks não chegam: WEBHOOK_URL precisa ser exatamente a URL pública com https:// e barra final.
  • n8n lento com muitos fluxos: use Postgres em vez do SQLite padrão e considere upgrade de RAM.