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.
54 lines
2.7 KiB
Bash
54 lines
2.7 KiB
Bash
# Nach /shared/projects/hermes_agent/.env kopieren und Werte anpassen.
|
|
# .env ist in .gitignore und wird NICHT committet.
|
|
|
|
# Shared Secret zwischen hermes-gateway und Hermes Agent (config.yaml -> api_key).
|
|
# Mindestens 32 zufaellige Zeichen, z.B. erzeugen mit:
|
|
# openssl rand -hex 32
|
|
HERMES_GATEWAY_TOKEN=
|
|
|
|
# Port auf dem hermes-gateway auf dieser Maschine lauscht. Seit "alles auf
|
|
# einer Maschine" nur noch auf 127.0.0.1 gebunden (siehe docker-compose.yml) -
|
|
# Hermes Agent selbst (network_mode: host) erreicht das trotzdem ueber
|
|
# localhost, kein anderer Rechner kommt mehr direkt ran.
|
|
HERMES_GATEWAY_PORT=8447
|
|
|
|
# UID/GID des Host-Users, dem hermes-data/agent-home gehoeren soll, damit
|
|
# Dateien die Hermes im Container schreibt (Sessions, Memory, Config) auf dem
|
|
# Host lesbar/schreibbar bleiben. Default 10000 (Hermes' eingebauter Default)
|
|
# ist ok wenn Dir das egal ist; setze es sonst auf `id -u`/`id -g` des Users
|
|
# der hermes-data/ auf dem Host verwaltet.
|
|
HERMES_UID=10000
|
|
HERMES_GID=10000
|
|
|
|
# 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
|
|
|
|
# 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.
|
|
#
|
|
# ACHTUNG, GLEICHE DOLLARZEICHEN-FALLE WIE OBEN: ein bcrypt-Hash sieht aus wie
|
|
# $2a$14$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS
|
|
# Docker Compose interpretiert "$xyz" in .env als Variablen-Referenz und
|
|
# ersetzt still durch Leerstring ("WARN ... variable is not set"). FIX: jedes
|
|
# einzelne "$" durch "$$" ersetzen, z.B.
|
|
# $$2a$$14$$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS
|
|
# Am schnellsten mit demselben sed-Trick wie beim Dashboard-Hash:
|
|
# sed -i '/^CADDY_BASIC_AUTH_HASH=/ s/\$/$$/g' .env
|
|
CADDY_BASIC_AUTH_HASH=
|
|
|
|
# Optional: NUR setzen wenn Du Hermes' EIGENEN OpenAI-kompatiblen API-Server
|
|
# aktivierst (siehe API_SERVER_HOST/API_SERVER_KEY-Kommentar im
|
|
# hermes-agent-Service in docker-compose.yml) — z.B. um einen mobilen Client
|
|
# wie gpt_mobile/Maid/OpenWebUI direkt gegen Hermes sprechen zu lassen, statt
|
|
# nur ueber CLI/Dashboard. Andere Richtung als HERMES_GATEWAY_TOKEN oben!
|
|
# Mindestens 32 zufaellige Zeichen, z.B. openssl rand -hex 32.
|
|
# API_SERVER_KEY=
|