A lightweight, real-time web dashboard built with Flask and Docker to monitor NVIDIA GPU performance, system resources, and running Ollama models.
- GPU Monitoring: Real-time tracking of Fan Speed, Temperature, Power Draw, and VRAM usage via
nvidia-smi. - Ollama Integration: Structured view of currently loaded AI models, including size and processor (CPU/GPU) type.
- System Vitals: Live updates of CPU Load Average, RAM usage, and Disk health (
nvme0n1p2). - Auto-Refresh: Uses JavaScript
fetchto update stats every 5 seconds without page flickering. - Containerized: Fully Dockerized with GPU passthrough and Docker-socket access.
Ensure your Ubuntu host has the following installed:
- Docker & Docker Compose
- NVIDIA Container Toolkit (Required for GPU passthrough)
git clone git@github.com:YOUR_USERNAME/ai-station-monitor.git
cd ai-station-monitor
Use Docker Compose to build and run the app in the background:
docker compose up -d
The dashboard will be available at: http://aistation.local:5000 or http://<your-ip>:5000.
app.py: The Flask backend that parses system commands into JSON.templates/monitor.html: The frontend UI with CSS Grid and JavaScript auto-refresh logic.docker-compose.yml: Handles GPU reservations and mounts the host Docker socket.Dockerfile: Builds the Python environment and installs the Docker CLI.
To allow the dashboard to see your Ollama container status, the container needs permission to read the host's Docker socket:
sudo chmod 666 /var/run/docker.sock
If you cannot reach the dashboard from another device, ensure port 5000 is open:
sudo ufw allow 5000/tcp
This project uses Docker Volumes. Any changes you make to app.py or the HTML template will reflect immediately inside the running container without needing a rebuild.
To view live logs for debugging:
docker compose logs -f
MIT License - Feel free to use and modify!
