Files
alan/docs/architecture.md

2.3 KiB

Architektur

Ziele

  • Hermes parallel zu OpenClaw betreiben, ohne Port-, Volume- oder Netzwerk-Kollisionen.
  • Reproduzierbares Setup fuer eine Arch-Linux-Workstation.
  • Resilienter Betrieb mit Healthchecks, Restart-Policy, Backups und Update-Weg.
  • Komfortabler Workflow ueber ein einziges Wrapper-Skript.
  • Internetzugang fuer Hermes ueber die Host-Bridge br0.

Trennungsprinzipien

1. Eigene Datenverzeichnisse

  • Hermes: ./state/hermes
  • OpenClaw: separat, z. B. ./state/openclaw

Hermes schreibt seine komplette Identitaet, Konfiguration, Skills, Sessions und Memory in das gemountete Datenverzeichnis. Das darf nicht mit einem zweiten Hermes-Gateway geteilt werden.

2. Eigene Host-Ports

Default in diesem Repo:

  • Hermes API: 127.0.0.1:18642 -> 8642
  • Hermes Dashboard: 127.0.0.1:19119 -> 9119

Die absichtlich ungewohnten Host-Ports reduzieren Kollisionen mit anderen lokalen Stacks. Dass die Bindung auf 127.0.0.1 erfolgt, ist Absicht: der LAN-Uplink laeuft separat ueber br0, die Bedienoberflaechen bleiben lokal.

3. Eigene Netzrollen

  • hermes_private: internes Docker-Bridge-Netz fuer Compose-interne Kommunikation
  • br0_uplink: externes Docker-Macvlan-Netz auf Parent br0
  • alan_agents_shared: optionales Querverbindungsnetz fuer Hermes/OpenClaw

Damit ist die Verkehrsrichtung klar getrennt:

  • Internet/LAN raus ueber br0_uplink
  • interne Service-Aufloesung ueber hermes_private
  • bewusste Interconnects ueber alan_agents_shared

4. Eigene Compose-Projektkennung

Der Standard-Projektname ist alan. Dadurch bleiben Container, Netzwerke und sonstige Docker-Ressourcen sauber benannt.

Resilienz

  • restart: unless-stopped
  • HTTP-Healthchecks fuer Gateway und Dashboard
  • no-new-privileges
  • definierte Ressourcenlimits
  • Backup- und Restore-Skripte
  • idempotentes Bootstrap fuer .env, Verzeichnisse und Shared-Netz
  • explizite Validierung des externen br0-Netzes vor dem Start

Nicht absichtlich eingebaut

  • kein Reverse-Proxy per Default
  • kein gemeinsamer Docker-Socket fuer Hermes und OpenClaw
  • kein wildes Mounten von /home
  • kein direkter Zwang, OpenClaw in denselben Compose-Stack zu ziehen
  • keine blind automatische Ermittlung deiner LAN-Parameter

Das ist Absicht: weniger Seiteneffekte, weniger Sicherheitsrisiko, bessere Fehlersuche.