2.3 KiB
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 Kommunikationbr0_uplink: externes Docker-Macvlan-Netz auf Parentbr0alan_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.