unraid-monitor/README.md
2026-06-13 10:24:54 +02:00

64 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Unraid Monitor
Ein leichtgewichtiger Desktop-Monitor für Unraid-Server auf Basis von **C++ und Qt6**. Liest Live-Daten über die offizielle Unraid GraphQL API und zeigt sie in einem aufgeräumten Dark-Mode-Dashboard Festplatten, SMART-Werte, Docker-Container und Systemstatus auf einen Blick.
## Funktionen
- **System** Hostname, Unraid-/API-Version, Kernel, CPU, Uptime sowie CPU- und RAM-Auslastung mit Farbbalken
- **Array** Status, Kapazität, freier Speicher und Fehlerzähler
- **Pools / Cache** Belegung und Temperatur je Pool
- **Festplatten** Parität und Daten-Disks mit Größe, Temperatur (inkl. Standby-Erkennung), Status, Fehlern und Belegung
- **SMART / Laufwerke** Modell, Seriennummer, Schnittstelle, Temperatur und SMART-Status aller physischen Laufwerke
- **Docker** Container mit Status-Anzeige (läuft / pausiert / gestoppt), Image, Laufzeit und Autostart
- **Anpassbar** jedes Modul lässt sich einzeln ein- und ausblenden
- Automatische Aktualisierung mit konfigurierbarem Intervall
## Voraussetzungen
- Qt 6 (Module `Widgets` und `Network`)
- CMake ≥ 3.16
- C++17-Compiler
- Ein Unraid-Server mit aktivierter API (Unraid 7.x)
## Bauen
```bash
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
```
Das fertige Binary liegt anschließend unter `build/unraid-monitor`.
## Verwendung
```bash
./build/unraid-monitor
```
Beim ersten Start öffnet sich der Einstellungsdialog:
1. **API-Key erstellen** in der Unraid-WebGUI unter *Einstellungen → Management Access → API Keys* (Lese-Rechte genügen)
2. **Server-URL** eintragen, z. B. `http://192.168.1.10`
- Bei HTTPS auf einem abweichenden Port den Port mit angeben: `https://tower.local:8443`
- Bei selbstsigniertem Zertifikat die Option *SSL-Zertifikatsfehler ignorieren* aktivieren
3. **Intervall** (3600 s) und die gewünschten **Module** wählen
Die Einstellungen werden über `QSettings` gespeichert (unter Linux in `~/.config/tronax/unraid-monitor.conf`).
> **Hinweis zu HTTPS:** Unraids nginx bedient bei aktiviertem SSL nur den passenden Hostnamen (SNI). Ein Zugriff über `https://<IP>` schlägt mit `tlsv1 unrecognized name` fehl in dem Fall den Hostnamen statt der IP verwenden (z. B. `https://<hash>.myunraid.net` oder `https://tower.local`).
## Hinweis zur Sicherheit
Der API-Key wird unverschlüsselt in der Konfigurationsdatei abgelegt. Für eine gehärtete Speicherung (z. B. über den System-Schlüsselbund) müsste die Ablage auf QtKeychain / Secret Service umgestellt werden.
## Projektstruktur
| Datei | Zweck |
|---|---|
| `src/main.cpp` | Einstiegspunkt, Dark-Theme-Setup |
| `src/MainWindow.*` | Hauptfenster, Karten-Layout, Auto-Refresh |
| `src/UnraidClient.*` | GraphQL-Client und Antwort-Parsing |
| `src/Cards.*` | Dashboard-Module (Karten) |
| `src/SettingsDialog.*` | Konfigurationsdialog |
| `src/Settings.h` | Laden/Speichern der Einstellungen |
| `src/Theme.h` | Farbpalette und Stylesheet |