| .idea | ||
| Rust-Workers | ||
| tui/tcss | ||
| .gitignore | ||
| main.py | ||
| README.md | ||
| requirements.txt | ||
| setup.sh | ||
| system_compress.txt | ||
Homelab Watchdog
Überwacht Server, Container und Netzwerkgeräte im Homelab. Eine Liste von Hosts wird zyklisch geprüft, nicht erreichbare dienste werden rot markiert und in MariaDB geloggt.
Architektur: Hybrid Python + Rust
Nach Evaluation wurde eine hybride Architektur gewählt, um die steile Lernkurve von Rust (async, TUI, DB-Handling) zu vermeiden und trotzdem Rust zu lernen.
| Layer | Sprache | Aufgabe |
|---|---|---|
| Manager | Python | TUI (textual/rich), Timer, Config, MariaDB, ruft Worker auf |
| Worker | Rust | Kleine, synchron CLI-Binaries (z.B. ping_worker). IP als Arg, JSON auf stdout. |
| Datenbank | MariaDB | Zentrale Wahrheit für Status, Fehler, Zeitstempel |
Datenfluss
- Python Manager liest Host-Liste (JSON/DB).
- Alle X Minuten:
subprocess.run(["./ping_worker", "<ip>"])pro Host. - Rust Worker pingt synchron, gibt
{"address":"...","reachable":true,"rtt_ms":12}aus. - Python parst JSON, schreibt in MariaDB, aktualisiert TUI.