Entrypoint im caddy-Service prueft beim Start ob /certs/dashboard.{crt,key}
schon existiert und erzeugt es sonst selbst (apk add openssl + req -x509,
100 Jahre). Persistent im Volume, kein manueller Schritt mehr noetig.
Manuelle Erzeugung bleibt als Fallback in der README dokumentiert (z.B.
fuer eigenes /CN).
28 lines
1.1 KiB
Caddyfile
28 lines
1.1 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}
|
|
}
|
|
|
|
reverse_proxy 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
|
|
}
|