64 lines
2.9 KiB
Markdown
64 lines
2.9 KiB
Markdown
# 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** (3–600 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 |
|