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:
+16
-21
@@ -187,18 +187,13 @@ services:
|
||||
environment:
|
||||
- HERMES_UID=${HERMES_UID:-10000}
|
||||
- HERMES_GID=${HERMES_GID:-10000}
|
||||
# NICHT MEHR PFLICHT seit dem Caddy-Umbau (19.07.2026, spaeter Abend):
|
||||
# Hermes' eigenes Auth-Gate "engagiert sich" laut seiner eigenen
|
||||
# Fehlermeldung NUR bei einem 0.0.0.0-Bind ("the auth gate engages on
|
||||
# non-loopback binds"). Der Service unten bindet per `command:` auf
|
||||
# 127.0.0.1 — das Gate greift also gar nicht, Caddy (siehe unten) macht
|
||||
# die eigentliche Absicherung nach aussen (TLS + eigene Basic-Auth).
|
||||
# HERMES_DASHBOARD_PASSWORD_HASH ist daher optional: leer lassen ist ok,
|
||||
# kein Hash-Erzeugen mehr noetig fuer den Normalbetrieb. Nur falls der
|
||||
# Dashboard-Bind mal wieder auf 0.0.0.0 wandert, braucht's wieder einen
|
||||
# Wert (siehe .env.example fuer die Erzeugung).
|
||||
# HERMES_DASHBOARD_USER wird hier NICHT fuer Hermes' eigenes Auth-Gate
|
||||
# gebraucht (das Gate engagiert sich laut eigener Fehlermeldung nur bei
|
||||
# einem 0.0.0.0-Bind, der Service unten bindet aber fest auf 127.0.0.1
|
||||
# per `command:`) — steht nur der Vollstaendigkeit halber mit drin,
|
||||
# tatsaechlich genutzt wird die Variable von Caddy (siehe unten) fuer
|
||||
# dessen Basic-Auth. Absicherung nach aussen laeuft komplett ueber Caddy.
|
||||
- HERMES_DASHBOARD_USER=${HERMES_DASHBOARD_USER:-admin}
|
||||
- HERMES_DASHBOARD_PASSWORD_HASH=${HERMES_DASHBOARD_PASSWORD_HASH:-}
|
||||
# Kurskorrektur 19.07.2026, spaeter Abend: Stefan wollte erst 0.0.0.0
|
||||
# (SSH-Tunnel machte mit SSL Probleme), jetzt aber die richtige Loesung:
|
||||
# Dashboard bleibt auf 127.0.0.1 (Hermes' eigenes Auth-Gate verlangt dann
|
||||
@@ -210,16 +205,16 @@ services:
|
||||
|
||||
# ─── Caddy (TLS-Reverse-Proxy + Basic-Auth vor dem Dashboard) ──────────
|
||||
# Stefans Entscheidung 19.07.2026: Dashboard bleibt intern auf 127.0.0.1,
|
||||
# Caddy uebernimmt TLS-Termination auf Port 443 UND eine zweite Basic-Auth-
|
||||
# Schicht davor. Der zweite Punkt ist kein Overkill, sondern noetig: Hermes'
|
||||
# eigenes Auth-Gate "engagiert" laut seiner eigenen Fehlermeldung NUR bei
|
||||
# einem 0.0.0.0-Bind. Auf 127.0.0.1 (das Caddy hier anspricht) ist unklar/
|
||||
# nicht garantiert, ob dashboard.basic_auth trotzdem noch durchgesetzt wird
|
||||
# - deshalb sichert Caddy selbst zusaetzlich ab, statt sich darauf zu
|
||||
# verlassen. Nutzt denselben HERMES_DASHBOARD_USER wie Hermes (aus .env),
|
||||
# aber einen EIGENEN Hash: Caddys basic_auth will bcrypt, Hermes' Hash ist
|
||||
# pbkdf2 — Formate sind nicht kompatibel, siehe .env.example fuer die
|
||||
# Erzeugung von CADDY_BASIC_AUTH_HASH.
|
||||
# Caddy uebernimmt TLS-Termination auf Port 443 UND die Basic-Auth davor.
|
||||
# Caddy ist die EINZIGE Auth-/TLS-Schicht (aufgeraeumt 20.07.2026): Hermes'
|
||||
# eigenes Dashboard-Auth-Gate (dashboard.basic_auth) wurde komplett entfernt,
|
||||
# weil es sich laut eigener Fehlermeldung ohnehin nur bei einem 0.0.0.0-Bind
|
||||
# engagiert — der Dashboard-Container bindet aber fest auf 127.0.0.1, das
|
||||
# Gate haette hier nie gegriffen. Ein zweiter, nie greifender Auth-Layer
|
||||
# haette nur Setup-Schritte gekostet, kein Sicherheitsgewinn. Nutzt
|
||||
# HERMES_DASHBOARD_USER (aus .env) als Login-Name + einen eigenen bcrypt-
|
||||
# Hash in CADDY_BASIC_AUTH_HASH (Caddy verlangt bcrypt, siehe .env.example
|
||||
# fuer die Erzeugung).
|
||||
#
|
||||
# Zertifikat: bewusst KEIN Let's Encrypt (bräuchte oeffentliche Domain +
|
||||
# Port-80-Challenge). Stefans Wunsch: ein selbstsigniertes Zertifikat mit
|
||||
|
||||
Reference in New Issue
Block a user