Skip to content

JorenS15/device-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 Device Monitoring Dashboard

A lightweight real-time system monitoring dashboard for multiple devices (Raspberry Pi, servers, PCs).

This project consists of:

  • A Python API (Flask) that exposes system metrics
  • A frontend dashboard that visualizes metrics in real-time

🚀 Features

  • 🔥 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)

🧠 How it works

  • 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

⚙️ Tech Stack

  • Python 3
  • Flask
  • psutil
  • Chart.js
  • HTML / CSS / JavaScript

🔧 Setup

  1. Clone repository
git clone https://github.com/JorenS15/device-dashboard.git
  1. Create virtual environment
python3 -m venv venv
source venv/bin/activate
  1. Install dependencies
pip install -r requirements.txt
  1. 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/metrics

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

⚠️ Notes

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

📌 Status

Actively used in a personal homelab environment.

Future improvements could include:

  • Authentication
  • Historical data storage
  • Alerts via notifications (e.g. Home Assistant)

Dashboard

Dashboard

Warning of cpu/ram/disk/temperature/...

Warning pop-up

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors