Antes de começar
Você precisa do Docker e do Docker Compose instalados (veja o tutorial Instalando Docker e Docker Compose) e de um endereço para o n8n:- Domínio próprio (recomendado): crie um registro DNS do tipo A, por exemplo n8n.seudominio.com, apontando para o IP do servidor;
- Sem domínio: use o serviço gratuito sslip.io, trocando os pontos do IP por hífens. Para o IP 203.0.113.24, o endereço fica 203-0-113-24.sslip.io.
Criando os arquivos
Crie a pasta do projeto e o arquivo .env com o endereço escolhido (troque pelo seu):
# mkdir -p /root/n8n && cd /root/n8n
# echo "DOMINIO=n8n.seudominio.com" > .env
# nano Caddyfile
No Caddyfile, cole o conteúdo abaixo. Ele publica o n8n no seu endereço com HTTPS automático:# echo "DOMINIO=n8n.seudominio.com" > .env
# nano Caddyfile
{$DOMINIO} {
reverse_proxy n8n:5678
}
Em seguida, crie o compose.yaml:reverse_proxy n8n:5678
}
# nano compose.yaml
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: unless-stopped
environment:
- N8N_HOST=${DOMINIO}
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://${DOMINIO}/
- 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"
environment:
- DOMINIO=${DOMINIO}
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
volumes:
n8n_data:
caddy_data:
Ajuste o fuso horário (GENERIC_TIMEZONE e TZ) se precisar. Os dados do n8n ficam no volume n8n_data e os certificados no caddy_data, então sobrevivem a atualizações e reinícios.
n8n:
image: docker.n8n.io/n8nio/n8n
restart: unless-stopped
environment:
- N8N_HOST=${DOMINIO}
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://${DOMINIO}/
- 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"
environment:
- DOMINIO=${DOMINIO}
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
volumes:
n8n_data:
caddy_data:
Iniciando o n8n
# docker compose up -d
Em cerca de um minuto o Caddy obtém o certificado e o n8n fica disponível em https://seu-endereço.Importante: abra o endereço logo em seguida e crie a conta de proprietário. O primeiro acesso define o dono do n8n, e robôs costumam visitar endereços novos com HTTPS poucos segundos depois de o certificado ser emitido.
Atualizando o n8n
O n8n lança versões com frequência, inclusive correções de segurança. Para atualizar, de dentro da pasta /root/n8n:
# docker compose pull
# docker compose up -d
Os fluxos e credenciais continuam salvos no volume. Para acompanhar os logs, use docker compose logs -f n8n.# docker compose up -d
Caso tenha alguma dificuldade, abra um ticket de suporte: Abrir ticket