docs: README.md + CONTRIB.md ergaenzt (Mesh-Setup, Aenderungsregeln, Review-Korrekturen)

This commit is contained in:
Master-Bot
2026-10-08 20:52:54 +02:00
parent 8c92824663
commit 0eec139a93
2 changed files with 154 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
# 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.