A lightweight real-time system monitoring dashboard for multiple devices (Raspberry Pi, servers, PCs).
- A Python API (Flask) that exposes system metrics
- A frontend dashboard that visualizes metrics in real-time
- 🔥 Real-time CPU usage (total + per core)
- 🌡️ CPU temperature monitoring
- ⚡ CPU power usage (if supported)
- 🧠 RAM usage (GB + %)
- 💾 Disk usage
- 🌐 Network traffic (sent / received)
- 🔋 Battery status (for laptops)
- ⏱️ Uptime tracking
⚠️ Automatic warnings for:- High CPU usage
- High RAM usage
- High temperature
- 📡 Multi-device support (monitor multiple machines at once)
- Backend (Python API)
- Uses Flask to expose a /metrics endpoint
- Uses psutil to collect system stats
- Returns all metrics as JSON
- Frontend (Dashboard)
- Fetches /metrics every 5 seconds
- Uses Chart.js for visualization
- Displays: CPU per core (bar chart) RAM & disk usage (doughnut charts) Temperature (bar) Shows warnings dynamically
- Python 3
- Flask
- psutil
- Chart.js
- HTML / CSS / JavaScript
- Clone repository
git clone https://github.com/JorenS15/device-dashboard.git- Create virtual environment
python3 -m venv venv
source venv/bin/activate- Install dependencies
pip install -r requirements.txt- Run backend (I use docker for making this run in the background. But it doesn't matter how you do it)
python3 app.py
API runs on:
http://<device-ip>:5000/metrics5. Configure frontend
Open the HTML file and change the placeholder Device names and ip adresses to yours:
const devices = [
{ name: "Raspberry Pi 5", url: "http://<ip>:5000/metrics" },
{ name: "Desktop PC", url: "http://<ip>:5000/metrics" },
];6. Open dashboard
Open the HTML file in your browser.
CPU temperature & power: Works best on Linux / Raspberry Pi
May not work on all systems
CPU power (RAPL):
Only supported on some Intel CPUs
This project is designed for local network usage
Not secured for public internet exposure
Actively used in a personal homelab environment.
Future improvements could include:
- Authentication
- Historical data storage
- Alerts via notifications (e.g. Home Assistant)

