- HTML 78.7%
- Python 20.3%
- Dockerfile 1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| templates | ||
| .env.example | ||
| .gitignore | ||
| app.py | ||
| docker-compose.yml | ||
| Dockerfile | ||
| README.md | ||
| requirements.txt | ||
Proxmox Disk Monitor (Web-Dashboard & Docker)
Ein leichtgewichtiges Web-Dashboard, das über die offizielle Proxmox REST-API den Festplattenspeicher aller VMs (KVM) und CTs (LXC) überwacht und visuell hervorhebt, wenn der freie Speicherplatz unter 15% (oder kritisch unter 5%) fällt.
🚀 Features
- Modernes Web-Dashboard: Übersicht über alle VMs und LXC Container inklusive Speicherbelegung, freiem Speicher, Status und Uptime.
- Speicher-Schwellenwerte:
- 🟢 Normal:
\ge15% freier Speicher - 🟡 Warnung:
<15% freier Speicher (oder frei konfigurierbar via.env) - 🔴 Kritisch:
<5% freier Speicher
- 🟢 Normal:
- Filter & Suche: Filtern nach Warnungen, nur VMs, nur CTs oder laufenden Systemen; Live-Suchfeld.
- Auto-Refresh: Aktualisiert Daten alle 30 Sekunden automatisch im Hintergrund via AJAX.
- Sicher: Authentifizierung über Proxmox API Tokens (kein Passwort im Klartext erforderlich).
- Vorbereitet für Benachrichtigungen: Saubere Python-Struktur, an die später Alerts (Mail, Telegram, Gotify, Webhook, n8n) angebunden werden können.
🛠️ Schritt 1: Proxmox API-Token erstellen (im Proxmox Web-UI)
- Proxmox Web-UI aufrufen:
https://<DEINE-PROXMOX-IP>:8006 - Unter Datacenter (Rechenzentrum)
\rightarrowPermissions (Rechte)\rightarrowAPI Tokens:- Klicke auf Add (Hinzufügen).
- User: z.B.
root@pam(oder ein separater User wiemonitor@pve). - Token ID:
monitoring - Privilege Separation: Haken entfernen (oder sicherstellen, dass der Token Leserechte hat:
PVEAuditorauf/). - Klicke auf Add.
- Kopiere dir den angezeigten Secret Value (Token-Wert, UUID). Er wird nur ein einziges Mal angezeigt!
📦 Schritt 2: Auf dem Docker-Host (z.B. CT/VM 107) einrichten
Option A: Ordner auf 107 kopieren
Kopiere den Ordner proxmox-disk-monitor auf deinen Docker-Server 107 (z.B. nach /opt/proxmox-disk-monitor oder ~/proxmox-disk-monitor):
mkdir -p /opt/proxmox-disk-monitor
cd /opt/proxmox-disk-monitor
Erstelle die Dateien (docker-compose.yml, Dockerfile, requirements.txt, app.py, templates/index.html) oder lade sie hoch.
Option B: .env Datei anlegen
Erstelle eine .env Datei im Projektverzeichnis auf 107:
cp .env.example .env
nano .env
Trage deine Proxmox-Daten ein:
PROXMOX_HOST=192.168.178.10
PROXMOX_PORT=8006
PROXMOX_USER=root@pam
PROXMOX_TOKEN_NAME=monitoring
PROXMOX_TOKEN_VALUE=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
PROXMOX_VERIFY_SSL=false
WEB_PORT=5050
WARN_FREE_PERCENT=15.0
CRIT_FREE_PERCENT=5.0
▶️ Schritt 3: Container starten
Starte den Docker-Container einfach mit Docker Compose:
docker compose up -d --build
Logs prüfen:
docker compose logs -f
🌐 Schritt 4: Dashboard aufrufen
Öffne im Browser:
http://<IP-VON-107>:5050
🔔 Spätere Warnungen / Alerting
Die Datenverarbeitung in app.py ermittelt bereits für jeden Gast den health_status ("warning" oder "critical"). Sobald du Benachrichtigungen (Telegram, Gotify, Discord, E-Mail oder Webhooks z.B. an n8n) aktivieren möchtest, können wir ein Scheduler-Modul (z.B. alle 10 Minuten prüfen und Benachrichtigung senden) nahtlos ergänzen.