0eec139a9367415bfb46e16c01793483dc9a5959
mesh-configs — Konfigurations- und Service-Store des Hermes-Mesh
Dieses Repository ist der versionierte Konfigurationsspeicher des Mesh.
Es wird vom Master (VPSHermes) automatisch gesichert (Cron: alle 6 h git add -A
→ Commit → Push nach Gitea mehlzoerwer/mesh-configs).
Inhalt
| Pfad | Inhalt |
|---|---|
config.yaml |
Hermes-Konfiguration des Masters |
app.py |
Hilfsanwendung im Wurzelverzeichnis (wird mitgesichert) |
cron/ |
Cron-Jobs und deren Output-Historie |
mesh-services/ |
docker-compose.yml (Gitea + ntfy), docker-compose.monitoring.yml (Monitoring) |
sites-available/ |
nginx-VHost-Vorlagen |
scripts/update_mesh.sh |
Fleet-Update-Helfer |
skills/ |
Spiegel der Skill-Bibliothek |
Nicht in diesem Repo: die operativen Betriebsskripte. Sie liegen direkt im Dateisystem (siehe unten) und werden hier nur dokumentiert.
Mesh-Topologie
| Knoten | ZeroTier-IP | Rolle | Betriebsskripte |
|---|---|---|---|
| VPSHermes (Master) | 172.24.196.119 | Orchestrator + Deployer | /usr/local/bin/mesh-*.{sh,py} |
| UnraidHermes | 172.24.34.142 | Entwickler | ~/.local/bin/mesh-* |
| SwitchHermes | 172.24.20.26 | Cockpit (ARM64) | ~/.local/bin/mesh-* |
| LaptopHermes | 172.24.178.202 | Worker (RTX 2060) | ~/.local/bin/mesh-* |
Netz: ein ZeroTier-Netz 6ab565387a75e498 (172.24.0.0/16). Kein öffentlicher
Zugang, kein Drittanbieter-Sync.
Task-Austausch
- Gemeinsamer Ordner:
/srv/work/tasks/— ausschliesslich über NFS (Samba/CIFS ist blockiert). - Ablauf:
offen/→in_arbeit/(atomarermv-Lock) →fertig/→ bei Bedarfbugfix/→archiv/. - Dateiname:
JJJJMMTT.<C>.<D>.<Auftrag>.json, wobeiC.Ddie letzten beiden Oktette der Ziel-IP sind (z. B.20261008.34.142.ModelAssignment.json). - Der Sub-Agent-Poller (
mesh-agent-poller.sh, getaktet vommesh-poller-daemon.shalle 10 s) zieht Tasks per SSH/scp vom Master.
Kosten und Budget
- Hartes Tageslimit: 1 USD pro Agent; zusätzlich Guthaben-Stopp bei 0.
- Zeitreihe:
/srv/work/costs/costs.jsonl - Tagesverbrauch:
/srv/work/costs/daily.jsonl - Monatssumme:
/srv/work/costs/month.json - Bremse (Kill-Switch):
/srv/work/costs/kill_switches.json, Logik inmesh-cost-break.py, Limits inbudget.yaml. - Cron-Kette stündlich:
mesh-cost-track.sh→mesh-cost-break.py→mesh-cost-month.py(immer mit/usr/bin/python3starten, siehe CONTRIB.md).
Logs (Master)
| Log | Quelle |
|---|---|
/var/log/mesh-doku.log |
mesh-master-report.sh (Doku-Website) |
/var/log/mesh-poller.log |
mesh-master-poller.sh (Ausfall-Fallback) |
/var/log/mesh-cost.log |
Kosten-Kette |
/var/log/mesh-budget-watch.log |
mesh-budget-watch.sh (Guthaben alle 30 min) |
/var/log/wissensbasis-sync.log |
Wissensbasis- und Session-Archiv-Sync |
Websites des Mesh
dokumentationen.perfekt-ohne-en.de— Live-Panel (nginx-Root/var/www/dokumentationen.perfekt-ohne-en.de, kleingeschrieben)archiv.perfekt-ohne-en.de— Tagesarchivkanban.perfekt-ohne-en.de— Aufgabenboard
Bekannte Betriebsregeln
Siehe CONTRIB.md. Kurzfassung: ein Fix pro Schritt, Backup mit Datum,
Rollback-Weg notieren, jedes Script vor dem Einsatz syntaktisch prüfen.