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/ (atomarer mv-Lock) → fertig/ → bei Bedarf bugfix/ → archiv/.
  • Dateiname: JJJJMMTT.<C>.<D>.<Auftrag>.json, wobei C.D die letzten beiden Oktette der Ziel-IP sind (z. B. 20261008.34.142.ModelAssignment.json).
  • Der Sub-Agent-Poller (mesh-agent-poller.sh, getaktet vom mesh-poller-daemon.sh alle 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 in mesh-cost-break.py, Limits in budget.yaml.
  • Cron-Kette stündlich: mesh-cost-track.sh → mesh-cost-break.py → mesh-cost-month.py (immer mit /usr/bin/python3 starten, 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 — Tagesarchiv
  • kanban.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.

S
Description
Hermes Mesh Skills, Configs und Scripts
Readme MIT
21 MiB