🖥️ SystemMonitor – Live Raspberry Pi Dashboard mit Flask
📍 🔗 Live-Demo
(Falls der Link nicht funktioniert: Zugriff wurde aus Sicherheitsgründen auf das lokale Netzwerk beschränkt – allow 192.168.0.0/16; deny all;
)
Ein minimalistisches, datenschutzfreundliches Monitoring-Tool
In diesem Beitrag stelle ich mein eigenes System-Dashboard vor: SystemMonitor – ein leichtgewichtiges Monitoring-Tool, das in Echtzeit Informationen vom Raspberry Pi erfasst und in einem klaren, modernen Web-Interface anzeigt.
Das Projekt basiert auf Python mit dem Microframework Flask und bietet eine einfache Möglichkeit, wichtige Systemdaten sichtbar zu machen – ohne externe Abhängigkeiten, ohne Cookies, ohne Cloud.
🔍 Was zeigt das Dashboard?
Der Fokus liegt auf Transparenz und Nützlichkeit – übersichtlich, informativ und lokal auswertbar. Angezeigt werden:
Icon | Komponente | Beschreibung |
---|---|---|
🖥️ | Hostname | Gerätename |
💽 | Betriebssystem | OS + Kernel |
⚙️ | CPU-Auslastung | in % mit Ampelklassifizierung |
🧠 | RAM-Nutzung | verwendet / gesamt in MB |
💾 | Speicherplatz | verwendet / gesamt in GB |
🌡️ | Temperatur | CPU-Temperatur via vcgencmd |
🌍 | IP-Adresse(n) | lokale Netzwerk-IPs |
⏱️ | Ping-Zeit | zu 8.8.8.8 (Google DNS) |
📦 | Verfügbare Updates | Anzahl apt-upgradabler Pakete |
🔁 | Uptime | seit letztem Reboot |
🕓 | Aktualisiert um | Zeitstempel der letzten Erfassung |
🟢 Die Daten werden live per Python mit psutil
, subprocess
und nativen Kommandos erhoben und alle 30 Sekunden automatisch aktualisiert.
🎨 Design & Technik
Das Frontend wurde bewusst minimalistisch in HTML5 und CSS gehalten – ohne JS-Frameworks oder externe Assets.
Einige visuelle Highlights:
- ✅ Farbige Klassifizierung (🟢 ok, 🟡 mittel, 🔴 kritisch) bei CPU, RAM, Temperatur & Updates
- ✅ Klar strukturierte Tabellen mit Icons zur schnellen Erfassung
- ✅ Mobilfreundlich (responsiv)
- ✅ Logo mit Link zurück zur Hauptseite
- ✅ Kein Tracking, keine Analytics, keine Fonts von Google
Das Flask-Backend rendert die Daten serverseitig direkt ins Template. Zusätzlich läuft das Projekt als systemd-Dienst, dauerhaft im Hintergrund. Ein Reverse Proxy über Nginx sorgt für:
- Weiterleitung unter
/status/
- HTTPS-Verschlüsselung via Let’s Encrypt
- automatische Umleitung von HTTP → HTTPS
🔐 Datenschutz & Sicherheit
SystemMonitor ist komplett lokal und datensparsam konzipiert:
- ❌ keine Cookies
- ❌ kein JavaScript-Tracking
- ❌ keine externen Schriften oder Skripte
Die Seite ist standardmäßig nur im lokalen Netzwerk erreichbar:
location /status/ {
allow 192.168.0.0/16; # Zugriff nur im Heimnetz
deny all;
}
✅ Für Präsentationen kann der Zugriff gezielt freigegeben werden.
📌 Hinweis:
Falls der Live-Link nicht funktioniert, wurde der Zugriff aus Sicherheitsgründen temporär deaktiviert.
🛠️ Technischer Stack (Zusammenfassung)
- Python 3, Flask
- psutil, subprocess, vcgencmd, apt
- systemd (als Dienst
status-dashboard.service
) - Nginx (mit
proxy_pass
+ HTTPS via Certbot) - HTML5 + CSS (mobiloptimiert, Cookie-frei)
🚀 Fazit
Mit SystemMonitor habe ich ein eigenes, datensparsames Dashboard für den Raspberry Pi entwickelt, das vollständig selbst gehostet ist und alle Systeminformationen übersichtlich darstellt – ohne Overhead, ohne Drittanbieter.
Es ist schnell, funktional und eignet sich sowohl für den Heimgebrauch als auch als aussagekräftiges Projekt im DevOps-, Infrastruktur- oder Web-Bereich.
🔗 Live-Demo
(Falls der Link nicht funktioniert: Zugriff wurde aus Sicherheitsgründen auf das lokale Netzwerk beschränkt – allow 192.168.0.0/16; deny all;
)
🛠️ Anleitung: Eigene Raspberry Pi Systemüberwachung mit Flask
Mit diesem Guide kannst du selbst ein Live-System-Dashboard wie SystemMonitor auf deinem Raspberry Pi betreiben – komplett lokal, minimalistisch und ohne Cookies oder externe Abhängigkeiten.
✅ Voraussetzungen
- Raspberry Pi (z. B. 3/4)
- Raspberry Pi OS (empfohlen: Lite oder Desktop)
- SSH-Zugang oder direktes Terminal
- Internetverbindung
- Optional: Eigene Domain + HTTPS via Let’s Encrypt
📦 1. System vorbereiten
sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip nginx git -y
🐍 2. Python-Umgebung & Flask einrichten
pip3 install flask psutil
🧠 3. Projektstruktur erstellen
mkdir -p ~/systemmonitor/templates
cd ~/systemmonitor
📄 Datei: app.py
# → (hier deinen aktuellen app.py-Code einfügen)
📄 Datei: templates/index.html
<!-- → (hier dein index.html-Code mit Logo und Tabellen einfügen) -->
⚙️ 4. Flask lokal testen
python3 app.py
Besuche im Browser:
http://
🔁 5. Dauerbetrieb per systemd
sudo nano /etc/systemd/system/status-dashboard.service
Inhalt:
[Unit]
Description=Flask Raspberry Pi SystemMonitor
After=network.target
[Service]
ExecStart=/usr/bin/python3 /home/pi/systemmonitor/app.py
WorkingDirectory=/home/pi/systemmonitor
Restart=always
User=pi
[Install]
WantedBy=multi-user.target
Aktivieren:
sudo systemctl daemon-reexec
sudo systemctl enable --now status-dashboard
🌐 6. Nginx als Reverse Proxy (optional)
sudo nano /etc/nginx/sites-available/status
Inhalt:
server {
listen 80;
server_name deine-domain.de;
location /status {
return 301 /status/;
}
location /status/ {
allow 192.168.0.0/16; # Nur Heimnetz erlauben
deny all;
proxy_pass http://127.0.0.1:5000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Dann aktivieren:
sudo ln -s /etc/nginx/sites-available/status /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
🔐 7. HTTPS mit Let’s Encrypt (optional)
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d deine-domain.de
🧪 8. Status testen
curl http://127.0.0.1:5000/status/
curl https://deine-domain.de/status/
🎨 9. Design verfeinern (optional)
- Unicode-Icons ergänzen (🧠 ⚙️ 🌡️ …)
- Statusfarben (z. B. mit CSS-Klassen
ok
,warn
,crit
) - Auto-Refresh mit
<meta http-equiv="refresh">
- Logo oben einfügen
🛡️ 10. Sicherheit & Privatsphäre
-
Zugriff lokal einschränken:
nginx KopierenBearbeiten allow 192.168.0.0/16; deny all;
- Keine Cookies oder Tracker einbinden
- HTTPS erzwingen
- Firewall nur für Ports 80, 443 offen lassen
📁 Bonus: Als Git-Projekt versionieren
git init
git remote add origin https://github.com/deinuser/systemmonitor.git
git add .
git commit -m "Initial version"
git push -u origin main
🧩 Erweiterungen (optional)
- Verlaufsgrafiken mit Chart.js
- CSV/JSON-Export
- Prometheus/Grafana-Integration
- Temperaturhistorie speichern
- Diagramme als PNG rendern
🧠 Fazit
Mit dieser Anleitung kannst du in wenigen Schritten ein eigenes, professionelles Monitoring-Tool für den Raspberry Pi bauen – ideal als Smart-Home-Zentrale, DevOps-Demo oder Lernprojekt. Und das Beste: Alles läuft lokal, ressourcenschonend und datenschutzfreundlich.