Files
mission-control-v2/deploy/hermes-terminal.service
T
Hitonabi eff23643e6 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>
2026-07-04 21:18:55 +02:00

24 lines
1.3 KiB
Desktop File

[Unit]
Description=Hermes Terminal — ttyd web terminal wrapping `hermes chat` (interaktiver Agent)
Documentation=https://github.com/tsl0922/ttyd
After=network.target
[Service]
# 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: 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 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
[Install]
WantedBy=default.target