melhorias de docker

This commit is contained in:
Luiz Silva 2025-12-31 11:56:10 -03:00
parent 31499a0c69
commit 67d4e86302
3 changed files with 80 additions and 0 deletions

View file

@ -117,6 +117,45 @@ DATABASE_URL='postgres://usuario:senha@host.docker.internal:5432/seu_banco?sslmo
No Linux, o `docker-compose.yml` já inclui `extra_hosts` com `host-gateway` para
esse hostname funcionar.
## Publicar com Caddy (reverse proxy)
Este repositório inclui um exemplo de `Caddyfile` para publicar o serviço em:
- `https://nps.idz.one``{ip-app}:8080`
### Pré-requisitos
- O DNS de `nps.idz.one` deve apontar para o **IP público** do servidor onde o Caddy roda.
- Portas **80/443** liberadas para o Caddy (TLS automático).
### IP real do usuário
O Caddy repassa o IP do cliente via `X-Forwarded-For` e `X-Real-IP`.
O servidor Go já usa `middleware.RealIP` (chi), então o IP real chega corretamente
e é gravado em `ip_real`.
### Check do IP real (direto / Docker / Caddy)
O painel tem um endpoint de debug que mostra o IP que a aplicação está enxergando
e os headers recebidos:
- `GET /painel/debug/ip`
Passo a passo:
1) Faça login no painel em `/painel`.
2) Acesse `/painel/debug/ip`.
O JSON retornado inclui:
- `remote_addr` (já após o `middleware.RealIP`)
- `x_forwarded_for`
- `x_real_ip`
Interpretação esperada:
- Rodando **direto** (sem proxy): `remote_addr` deve ser o IP do cliente (ou do seu balanceador).
- Rodando via **Docker**: se você acessar diretamente a porta publicada, o `remote_addr` tende a ser o IP do host/bridge; atrás de proxy (Caddy), o `remote_addr` deve refletir o IP real.
- Rodando via **Caddy**: `x_forwarded_for` deve conter o IP real do cliente e o `remote_addr` deve refletir esse IP após `RealIP`.
Depois acesse:
- Home/README: `http://localhost:8080/`
- Teste do widget: `http://localhost:8080/teste.html`