Added README.md
This commit is contained in:
parent
e7c3d20c8e
commit
6acb101293
1 changed files with 64 additions and 0 deletions
64
README.md
Normal file
64
README.md
Normal 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** (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 |
|
||||||
Loading…
Add table
Add a link
Reference in a new issue