1.4 KiB
Reverse proxy Caddy
Caddyfile attuale:
your-domain.com {
reverse_proxy gitea:3000
}
Caddy gestisce da solo certificato Let's Encrypt, rinnovi, redirect HTTP→HTTPS e WebSocket (/-/ws, aggiornamenti in tempo reale) con reverse_proxy. Passa Host e X-Forwarded-Proto correttamente.
Requisiti in Gitea
[server]
ROOT_URL = https://your-domain.com/
DOMAIN = your-domain.com
[security]
REVERSE_PROXY_LIMIT = 1
REVERSE_PROXY_TRUSTED_PROXIES = 172.16.0.0/12 ; subnet rete docker compose (verificare)
Senza trusted proxies corretto Gitea (e fail2ban/log) vede l'IP del container Caddy invece del client.
Sub-path (sconsigliato)
git.example.com {
route /git/* {
uri strip_prefix /git
reverse_proxy gitea:3000
}
}
ROOT_URL = https://git.example.com/git/. Il proxy non deve decodificare %2F. Il registry container richiede /v2 alla radice del dominio.
Comandi
docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile
docker compose logs caddy
Il certificato non viene emesso se 80/443 non sono raggiungibili o il DNS non punta all'IP pubblico. Per test senza rate limit, usare in Caddyfile la direttiva globale { acme_ca https://acme-staging-v02.api.letsencrypt.org/directory }.
Limiti upload
Caddy non limita il body di default; i limiti sono in Gitea ([attachment] MAX_SIZE, [repository.upload], [packages] LIMIT_SIZE_*).