A simple dashboard to monitor Linux system resources using Flask.
A beautiful, responsive system dashboard to monitor your Linux server's performance in real-time — built with HTML, Tailwind CSS, Chart.js, and a Flask backend. It supports standalone mode or can be deployed easily using Docker.
This lightweight dashboard displays real-time server statistics:
- ✅ CPU Usage
- ✅ Memory Usage
- ✅ Disk Usage
- ✅ Uptime, OS info, Process count
- ✅ Temperature (if available)
Built for Linux systems, and perfect for both local monitoring or deploying on a remote server.
└── 📁linux-monitor-dashboard
└── 📁backend
├── app.py # Flask API
├── requirements.txt # Python dependencies
└── 📁frontend
├── index.html # Dashboard UI
├── script.js # Chart rendering + API fetching
├── style.css # Optional extra styles (or Tailwind via CDN)
├── .DS_Store
├── docker-compose.yml # Optional for multi-container setup
└── Dockerfile # Multi-stage Docker build
└── README.md
git clone https://github.com/Ravindulakmina/Linux-monitor-dashboard.git
cd linux-monitor-dashboard
# Go to the backend folder
cd backend
# Create virtual environment (Mac/Linux)
python3 -m venv venv
# Activate it
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run the Flask app
python app.py
Flask server will run on
http://localhost:5000
or similar.
In a new terminal tab/window:
cd frontend
# Run simple HTTP server (Python 3)
python3 -m http.server 8080
Open browser at:
http://localhost:8080
Make sure Docker is installed on your system.
docker build -t linux-dashboard .
docker run -d -p 5000:5000 --name dashboard linux-dashboard
cd frontend
python3 -m http.server 8080
Now open:
➡️ http://localhost:8080
→ Loads HTML
➡️ HTML fetches stats from: http://localhost:5000/api/stats
- SSH into your server.
- Clone this repository or upload project files.
- Run the following:
docker build -t linux-dashboard .
docker run -d -p 5000:5000 --name dashboard linux-dashboard
- Allow the firewall port:
sudo ufw allow 5000
- Serve the frontend (
index.html
) via NGINX, Apache or Python HTTP server:
cd frontend
python3 -m http.server 80
- Access via browser:
http://<your-server-ip>/
Make sure script.js
points to your Flask API:
const res = await fetch('http://<your-server-ip>:5000/api/stats');
Save this file under /backend/requirements.txt
flask
psutil
flask-cors
Install with:
pip install -r requirements.txt
Once everything is running:
- Flask API:
http://localhost:5000/api/stats
- Frontend:
http://localhost:8080
(locally) - Remote:
http://<server-ip>
- Ravindu Lakmina – GitHub
This project is licensed under the MIT License.
Found a bug? Have an idea? Feel free to open an issue or contribute via pull request!
---
🎁 **Extra Tips**:
- Want to bundle frontend + backend in a single Docker container? I can update the Dockerfile and give you `nginx + flask` in one container.
- If you deploy on a VPS, ensure ports `80` (frontend) and `5000` (backend API) are open.