Hermes-Terminal same-origin + Passwort-Login; Engine/OS-Update-Fixes
Terminals (wie die Box-Konsole): - hermes-terminal bindet jetzt NUR Loopback (--interface lo --base-path /hermes-terminal) und wird von MC2 same-origin durchgereicht (routers/console.py generalisiert auf beide ttyd-Instanzen). Kein eigener Firewall-Port mehr noetig. - Beide Terminals starten die Shell/CLI ueber `su - hitonabi` → fragen beim Oeffnen das Box-Passwort ab (PAM gegen das echte Konto, nichts gespeichert). „Login mit sudo-PW". - agent_status.terminal_url = /hermes-terminal/ (+ reachable via Loopback-Check). Engine-Update (llama.cpp) — Fix „nicht moeglich": - update-engine.sh/update-swap.sh sind per sudoers NOPASSWD freigegeben → das fruehere `sudo true`-Passwort-Gate hat sie faelschlich blockiert (wenn kein/falsches Box-PW). Gate entfernt → Engine-/Router-Update laufen jetzt passwortlos. OS-Update (apt) — Fix „nicht moeglich": - DEBIAN_FRONTEND wird jetzt INNERHALB `sudo bash -c '…'` gesetzt statt `sudo VAR=… cmd` (sonst lehnt sudos env-Policy die Variable ab und das Upgrade bricht ab). - Frontend verschluckt password_required/incorrect_password nicht mehr still, sondern zeigt einen klaren Hinweis (Box-Passwort in „Box-Zugang" setzen/pruefen). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -10,12 +10,13 @@ After=network.target
|
||||
#
|
||||
# SICHERHEIT: Bindet NUR an Loopback (lo/127.0.0.1) und läuft hinter dem MC2-Reverse-Proxy
|
||||
# (routers/console.py → same-origin /console/ auf dem offenen Port 9001). Port 7682 ist von
|
||||
# außen dicht → keine eigene Firewall-Regel nötig. Kein Passwort — bewusst, gleiches LAN-Trust-
|
||||
# Modell wie das Dashboard/Hermes-Terminal (kein Internet-Exposure).
|
||||
# außen dicht → keine eigene Firewall-Regel nötig. Login-Schutz: ttyd startet die Shell über
|
||||
# `su - hitonabi` → fragt beim Öffnen das Box-Passwort ab (kein gespeichertes Passwort, PAM
|
||||
# prüft gegen das echte Konto). Trusted-Home-LAN, kein Internet-Exposure.
|
||||
Type=simple
|
||||
# --interface lo = nur Loopback. --base-path /console = ttyd bedient /console/* (Reverse-Proxy).
|
||||
# -t = Terminal-Optionen (dunkles Theme passend zum UI).
|
||||
ExecStart=/usr/bin/ttyd --writable --interface lo --port 7682 --base-path /console --max-clients 2 --cwd %h -t 'theme={"background":"#0b0f1a"}' /bin/bash -l
|
||||
# `su - hitonabi` = Passwort-Login (Box-Passwort) vor der Shell. -t = dunkles Theme.
|
||||
ExecStart=/usr/bin/ttyd --writable --interface lo --port 7682 --base-path /console --max-clients 2 --cwd %h -t 'theme={"background":"#0b0f1a"}' /bin/su - hitonabi
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
|
||||
|
||||
@@ -7,13 +7,15 @@ After=network.target
|
||||
# Exponiert die interaktive Hermes-Agent-CLI (`hermes chat`, voller Agent mit Tools/PC) als
|
||||
# Web-Terminal. Wird in MC2 per iframe eingebettet (Terminal-Seite) — Ersatz fuer AnythingLLM.
|
||||
#
|
||||
# SICHERHEIT: --writable + LAN-Bind ohne Auth = dasselbe Trust-Modell wie das MC2-Dashboard
|
||||
# (vertrautes Heim-LAN, kein Internet-Exposure). Fuer Basic-Auth: am ExecStart
|
||||
# --credential <user>:<pass>
|
||||
# ergaenzen (Browser fragt dann einmalig im iframe nach).
|
||||
# SICHERHEIT: Bindet NUR an Loopback (lo) und laeuft hinter dem MC2-Reverse-Proxy
|
||||
# (routers/console.py → same-origin /hermes-terminal/ auf dem offenen Port 9001) — keine eigene
|
||||
# Firewall-Freigabe noetig. Login-Schutz: ttyd startet die Agent-CLI ueber `su - hitonabi -c …`
|
||||
# → fragt beim Oeffnen das Box-Passwort ab (PAM gegen das echte Konto, nichts gespeichert).
|
||||
# Trusted-Home-LAN, kein Internet-Exposure.
|
||||
Type=simple
|
||||
# --interface eno1 = LAN-Bind (box-spezifisch; eno1 traegt 192.168.178.151).
|
||||
ExecStart=/usr/bin/ttyd --writable --interface eno1 --port 7681 --max-clients 2 --cwd %h/.hermes %h/.hermes/hermes-agent/venv/bin/python -m hermes_cli.main chat
|
||||
# --interface lo = nur Loopback. --base-path /hermes-terminal = ttyd bedient /hermes-terminal/*.
|
||||
# `su - hitonabi -c` = Passwort-Login (Box-Passwort), danach `exec` in die Hermes-Agent-CLI.
|
||||
ExecStart=/usr/bin/ttyd --writable --interface lo --port 7681 --base-path /hermes-terminal --max-clients 2 --cwd %h/.hermes /bin/su - hitonabi -c "cd %h/.hermes && exec %h/.hermes/hermes-agent/venv/bin/python -m hermes_cli.main chat"
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
|
||||
|
||||
Reference in New Issue
Block a user