Added README.md

This commit is contained in:
Tronax 2026-06-13 10:24:54 +02:00
parent e7c3d20c8e
commit 6acb101293
Signed by: Tronax
SSH key fingerprint: SHA256:2pKKXDZucWvaF/GzXNz0FY53EAO1YDLN80bqS+TTz/o

64
README.md Normal file
View file

@ -0,0 +1,64 @@
# 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 |