Files
hermes-agent/Caddyfile
T
ARIA 4be51faa07 Caddy: Host-Header beim Reverse-Proxy auf 127.0.0.1:9119 setzen (Fix Invalid Host header)
Hermes' Dashboard-Backend prueft den eingehenden Host-Header gegen den
Host, an den es gebunden ist -- Caddy reichte bisher den originalen
Host-Header vom Browser (Server-IP/Domain) durch, was Hermes als
'Invalid Host header' ablehnte. header_up ueberschreibt den Host jetzt
explizit. Plus Troubleshooting-Eintrag in der README.
2026-07-19 22:37:38 +00:00

36 lines
1.6 KiB
Caddyfile

# Caddy-Config fuer den Hermes-Dashboard-Reverse-Proxy.
# Keine Secrets hier drin — Username/Passwort-Hash kommen als {$ENV_VAR}
# (Caddyfile-Shorthand fuer {env.ENV_VAR}) aus dem Container-Environment,
# das wiederum aus .env kommt (siehe docker-compose.yml, Service "caddy").
#
# TLS: bewusst kein "tls internal" (Caddys eigene interne CA, Zertifikate nur
# ~12h gueltig, auto-rotiert) und kein Let's Encrypt (braucht oeffentliche
# Domain + Port 80). Stattdessen ein selbstsigniertes Zertifikat mit 100
# Jahren Laufzeit — wird beim allerersten Container-Start automatisch vom
# Entrypoint in docker-compose.yml erzeugt (kein manueller openssl-Befehl
# noetig), landet persistent im /certs-Volume. Einmalig im Browser als
# Sicherheits-Ausnahme akzeptieren, danach nie wieder Renewal-Aerger.
:443 {
tls /certs/dashboard.crt /certs/dashboard.key
basic_auth {
{$HERMES_DASHBOARD_USER} {$CADDY_BASIC_AUTH_HASH}
}
# Hermes' Dashboard-Backend validiert den eingehenden Host-Header gegen
# den Host, an den es gebunden wurde (127.0.0.1:9119) -- Schutz gegen
# DNS-Rebinding. Caddy reicht per Default den ORIGINALEN Host-Header
# vom Browser durch (die Server-IP/Domain), das lehnt Hermes mit
# "Invalid Host header" ab. Deshalb hier den Host-Header explizit auf
# das ueberschreiben, worauf das Dashboard tatsaechlich lauscht.
reverse_proxy 127.0.0.1:9119 {
header_up Host 127.0.0.1:9119
}
}
# Optional-freundlich: wer versehentlich mit http:// statt https:// draufklickt,
# landet trotzdem verschluesselt statt an "connection refused".
:80 {
redir https://{host}{uri} permanent
}