Dashboard-Auth komplett entfernt statt nur optional: Caddy ist einzige Auth-Schicht
Hermes' eigenes Auth-Gate (dashboard.basic_auth/HERMES_DASHBOARD_PASSWORD_HASH) engagiert sich laut eigener Fehlermeldung ohnehin nur bei einem 0.0.0.0-Bind, der Dashboard-Container bindet aber fest auf 127.0.0.1 -- das Gate haette hier nie gegriffen. Statt es als "Fallback falls Bind mal wieder wandert" zu behalten, jetzt sauber raus: HERMES_DASHBOARD_PASSWORD_HASH aus .env.example und docker-compose.yml, der auskommentierte dashboard:-Block aus config.yaml.example, README-Setup auf 8 statt 9 Schritte umnummeriert. Caddy (TLS + eigene Basic-Auth) ist damit die einzige noetige Auth-Schicht -- ein Layer statt zwei, weniger Setup, weniger Verwirrung. Stale Kommentare im Caddy-Compose-Block (redeten noch von "zweiter Basic-Auth-Schicht noetig weil unklar ob dashboard.basic_auth greift") ebenfalls korrigiert.
This commit is contained in:
+9
-41
@@ -20,49 +20,17 @@ HERMES_GATEWAY_PORT=8447
|
||||
HERMES_UID=10000
|
||||
HERMES_GID=10000
|
||||
|
||||
# NICHT MEHR NOETIG im Normalbetrieb (seit dem Caddy-Umbau, 19.07.2026 spaeter
|
||||
# Abend): das Dashboard bindet nur noch auf 127.0.0.1, Hermes' eigenes
|
||||
# Auth-Gate engagiert sich laut eigener Fehlermeldung NUR bei einem 0.0.0.0-
|
||||
# Bind. Caddy (siehe CADDY_BASIC_AUTH_HASH unten) macht die eigentliche
|
||||
# Absicherung nach aussen. Einfach leer lassen.
|
||||
#
|
||||
# Nur falls der Dashboard-Bind mal wieder auf 0.0.0.0 gestellt wird, ist ein
|
||||
# Wert hier noetig (sonst verweigert Hermes den Start hart mit "no auth
|
||||
# providers are registered") — dann zusaetzlich den dashboard:-Block in
|
||||
# hermes-agent-config/config.yaml.example (bzw. der echten config.yaml)
|
||||
# einkommentieren. HERMES_DASHBOARD_USER ist Klartext (frei waehlbar),
|
||||
# HERMES_DASHBOARD_PASSWORD_HASH ist NIEMALS das Klartext-Passwort, sondern
|
||||
# der Hash daraus. Erzeugen (einmalig, gegen den "hermes-agent"-Container,
|
||||
# NICHT "hermes-agent-dashboard" — der braucht den Hash schon zum Hochfahren,
|
||||
# Henne-Ei-Problem):
|
||||
# docker exec -it hermes-agent python -c \
|
||||
# "from plugins.dashboard_auth.basic import hash_password; print(hash_password('DEIN-PASSWORT'))"
|
||||
# Den Output (nicht das Passwort selbst!) hier eintragen.
|
||||
#
|
||||
# ACHTUNG DOLLARZEICHEN-FALLE falls Du's doch brauchst: der erzeugte Hash hat
|
||||
# das Format "pbkdf2:sha256:<n>$<salt>$<hash>" - also ZWEI rohe "$"-Zeichen
|
||||
# drin. Docker Compose interpretiert "$xyz" in .env-Werten selbst als
|
||||
# Variablen-Referenz und ersetzt nicht aufloesbare Teile stillschweigend
|
||||
# durch Leerstring (sichtbar als "WARN The "xyz" variable is not set"
|
||||
# beim "docker-compose up"). Ergebnis: ein verstuemmelter Hash, das
|
||||
# Dashboard startet trotzdem nicht ("no auth providers are registered"),
|
||||
# obwohl alles "richtig" eingetragen aussieht.
|
||||
# FIX: jedes einzelne "$" im Hash durch "$$" ersetzen bevor Du ihn hier
|
||||
# eintraegst, z.B. aus
|
||||
# pbkdf2:sha256:260000$f2kwriK6aYVRG5$BRps7npu2Tzg...
|
||||
# wird
|
||||
# pbkdf2:sha256:260000$$f2kwriK6aYVRG5$$BRps7npu2Tzg...
|
||||
# Am schnellsten mit dem sed-Trick:
|
||||
# sed -i '/^HERMES_DASHBOARD_PASSWORD_HASH=/ s/\$/$$/g' .env
|
||||
# HERMES_DASHBOARD_USER ist der Login-Username fuer Caddys Basic-Auth vor dem
|
||||
# Dashboard (siehe CADDY_BASIC_AUTH_HASH unten) — Klartext, frei waehlbar.
|
||||
# Kein Hermes-eigener Auth-Provider mehr noetig: das Dashboard bindet fest auf
|
||||
# 127.0.0.1, Hermes' eingebautes Auth-Gate engagiert sich laut eigener
|
||||
# Fehlermeldung nur bei einem 0.0.0.0-Bind, greift hier also gar nicht.
|
||||
HERMES_DASHBOARD_USER=admin
|
||||
HERMES_DASHBOARD_PASSWORD_HASH=
|
||||
|
||||
# Seit 19.07.2026, spaeter Abend: Caddy (Service "caddy" in docker-compose.yml)
|
||||
# macht TLS-Termination auf Port 443 + eine EIGENE Basic-Auth-Schicht vor dem
|
||||
# Dashboard (das selbst nur noch auf 127.0.0.1 bindet). Selber HERMES_DASHBOARD_USER
|
||||
# wie oben, aber ein EIGENER Hash noetig — Caddy will bcrypt, Hermes' Hash ist
|
||||
# pbkdf2, die Formate sind nicht austauschbar. Erzeugen (einmalig, gleiches
|
||||
# Klartext-Passwort wie beim Dashboard-Hash oben verwenden, muss aber nicht):
|
||||
# Caddy (Service "caddy" in docker-compose.yml) macht TLS-Termination auf Port
|
||||
# 443 + eine eigene Basic-Auth-Schicht vor dem Dashboard (das selbst nur noch
|
||||
# auf 127.0.0.1 bindet). Nutzt HERMES_DASHBOARD_USER von oben als Login-Name,
|
||||
# aber einen eigenen Hash — Caddy will bcrypt. Erzeugen (einmalig):
|
||||
# docker run --rm caddy:2-alpine caddy hash-password --plaintext 'DEIN-PASSWORT'
|
||||
# Output hier eintragen.
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user