From 8b9aa73f9892329427cab19346b82f2850732f6e Mon Sep 17 00:00:00 2001 From: ARIA Date: Sun, 19 Jul 2026 21:52:37 +0000 Subject: [PATCH] Doku: Dollarzeichen-Falle beim Passwort-Hash in .env dokumentieren MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docker-compose interpretiert rohe $-Zeichen im pbkdf2-Hash (.env) selbst als Variablen-Referenzen und ersetzt sie stillschweigend durch Leerstring (sichtbar als "WARN variable is not set"). Ergebnis: verstümmelter Hash, Dashboard bleibt trotz "richtig" eingetragener Werte bei "no auth providers are registered" haengen. Fix: jedes $ im Hash durch $$ ersetzen. --- .env.example | 14 ++++++++++++++ README.md | 16 ++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 6d6969d..506df0c 100644 --- a/.env.example +++ b/.env.example @@ -30,6 +30,20 @@ HERMES_GID=10000 # der braucht HERMES_DASHBOARD_PASSWORD_HASH schon zum Hochfahren (Henne-Ei- # Problem, siehe docker-compose.yml), "hermes-agent" laeuft auch ohne. # Den Output (nicht das Passwort selbst!) hier eintragen. +# +# ACHTUNG DOLLARZEICHEN-FALLE: der erzeugte Hash hat das Format +# "pbkdf2:sha256:$$" - 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... HERMES_DASHBOARD_USER=admin HERMES_DASHBOARD_PASSWORD_HASH= diff --git a/README.md b/README.md index 4143f15..2bff02a 100644 --- a/README.md +++ b/README.md @@ -98,8 +98,20 @@ aussen — kein anderer Rechner kommt mehr direkt ran. docker exec -it hermes-agent python -c \ "from plugins.dashboard_auth.basic import hash_password; print(hash_password('DEIN-PASSWORT'))" ``` - Output (den Hash, nicht das Passwort) in `.env` bei `HERMES_DASHBOARD_PASSWORD_HASH` - eintragen, `HERMES_DASHBOARD_USER` nach Belieben setzen (Default `admin`). + **ACHTUNG DOLLARZEICHEN-FALLE:** der Hash hat das Format + `pbkdf2:sha256:$$` — 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`). Ohne Escaping kommt im Container ein + verstuemmelter Hash an und das Dashboard bleibt bei "no auth providers + are registered" haengen, obwohl alles "richtig" eingetragen aussieht. + **Jedes `$` im Hash durch `$$` ersetzen**, bevor Du ihn in `.env` + eintraegst (z.B. `260000$abc$def` → `260000$$abc$$def`). + + Output (den escapeten Hash, nicht das Passwort) in `.env` bei + `HERMES_DASHBOARD_PASSWORD_HASH` eintragen, `HERMES_DASHBOARD_USER` + nach Belieben setzen (Default `admin`). Der `dashboard.basic_auth`-Block dazu liegt schon fertig in `hermes-agent-config/config.yaml.example` (Platzhalter, die Hermes selbst aus den Container-Env-Vars expandiert — kein manuelles Ausfuellen noetig,