Go to file
2026-09-08 19:40:48 +02:00
.idea init 2026-09-07 15:47:31 +02:00
src init 2026-09-08 19:40:48 +02:00
.gitignore init 2026-09-07 15:47:31 +02:00
Cargo.lock init 2026-09-07 15:47:31 +02:00
Cargo.toml init 2026-09-07 15:47:31 +02:00
README.md init 2026-09-08 19:40:48 +02:00
system_compress.txt init 2026-09-08 19:40:48 +02:00

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

  1. Python Manager liest Host-Liste (JSON/DB).
  2. Alle X Minuten: subprocess.run(["./ping_worker", "<ip>"]) pro Host.
  3. Rust Worker pingt synchron, gibt {"address":"...","reachable":true,"rtt_ms":12} aus.
  4. Python parst JSON, schreibt in MariaDB, aktualisiert TUI.

Projektstruktur (geplant)