GitHub GitHub Hover Bluesky Bluesky Hover Medium Medium Hover CodePen CodePen Hover YouTube YouTube Hover

🖥️ SystemMonitor – Live Raspberry Pi Dashboard mit Flask

SystemMonitor Screenshot

📍 🔗 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

📍 rubinhood.de/status

(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://:5000/status/


🔁 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.

Überblick über die Server-Infrastruktur
Überblick über die Server-Infrastruktur
Hier findest du ein Beispiel für eine durchdachte Serverlandschaft, wie sie in Unternehmen eingesetzt wird – mit klar definierten Rollen,...