Pré-requisitos
- Linux com
dockeredocker composeinstalados (veja Repositório para o passo-a-passo de instalação e clone). - Usuário no grupo
docker. - Acesso de admin ao painel do registrador do domínio
example.com. - Repositório clonado em
/opt/server/.
Passos
Configurar DNS
No registrador, criar:
A @ → <IP-do-servidor>(apex aponta pro servidor)CNAME n8n → example.comCNAME npm → example.com
dig +short n8n.example.com retornar o IP do servidor — o Let’s Encrypt vai falhar depois.Preencher n8n/.env com as credenciais do DB
Editar
/opt/server/infra/n8n/.env e copiar os valores de secrets/n8n.env:Acessar a UI do NPM via SSH tunnel e trocar o login default
A porta 81 do NPM só escuta em loopback (Login inicial:
127.0.0.1:81) — não é acessível pela Internet. Pra fazer o setup inicial, use SSH tunnel:admin@example.com / changeme. O NPM força você a trocar email e senha imediatamente. Faça isso antes de qualquer outra coisa.Criar Proxy Host para n8n.example.com
Na UI do NPM → Hosts → Proxy Hosts → Add Proxy Host:Aba Details:
- Domain Names:
n8n.example.com - Scheme:
http - Forward Hostname / IP:
n8n - Forward Port:
5678 - Block Common Exploits: ligado
- Websockets Support: ligado (n8n usa)
- SSL Certificate: Request a new SSL Certificate
- Force SSL: ligado
- HTTP/2 Support: ligado
- Email: seu email (Let’s Encrypt notifica expiração por aí)
- I Agree to the Let’s Encrypt Terms: ✓
Validar n8n
Abrir
https://n8n.example.com no browser. Wizard do n8n aparece pedindo pra criar o owner account (admin interno do n8n). Criar com email + senha forte.A partir daqui, o n8n está funcional.Expor o admin do NPM via subdomínio HTTPS
A porta 81 já está bloqueada externamente (compose binda em
127.0.0.1), mas pra acessar a UI sem precisar de SSH tunnel toda vez, crie um Proxy Host:Proxy Host em Hosts → Proxy Hosts → Add:- Domain:
npm.example.com - Scheme:
http - Forward Hostname / IP:
npm - Forward Port:
81 - SSL: Request new SSL Certificate + Force SSL + HTTP/2
https://npm.example.com. O SSH tunnel fica só pra emergência (se o subdomínio quebrar).Checklist final
-
dig +short n8n.example.comretorna o IP do servidor -
docker network lsmostraserver_net -
docker psmostra 4 containers up:postgres,redis,n8n,npm -
https://n8n.example.comcarrega e owner do n8n foi criado - Login default do NPM (
admin@example.com/changeme) foi substituído - Porta 81 só escuta em loopback (
docker port npmmostra127.0.0.1:81) -
https://npm.example.comcarrega e leva pra UI do NPM - Backup automático configurado (ver Backups)