A real-time, flicker-free, ultra-compact Streamlit dashboard for monitoring server vital statistics.
573
Welcome to SrvrMon! This is a real-time, ultra-compact, and flicker-free web dashboard designed to monitor your server's vital statistics. Built entirely in Python using Streamlit, psutil, and Docker, it acts as a lightweight command center for your home lab, VPS, or dedicated server.
Unlike traditional monitoring tools that require heavy databases (like Prometheus/Grafana) or complex frontends, SrvrMon runs entirely in a single lightweight container and pushes data directly to your browser via WebSockets.
Because SrvrMon monitors the host machine from inside a container, it requires a few specific permissions. It needs pid: "host" to see the host's processes, and a few read-only volume mounts (/sys, /var/run/docker.sock) to read hardware sensors and Docker states.
The easiest and most reliable way to deploy SrvrMon is using Docker Compose.
docker-compose.ymlCreate a file named docker-compose.yml and paste the following configuration:
services:
srvrmon:
build: .
image: weasts/srvrmon:latest
container_name: live-server-monitor
ports:
- "8501:8501"
pid: "host"
privileged: true
environment:
- POLLING_INTERVAL_MS=5000
- STORAGE_PATHS=/host_root
- LOG_CONFIG=Host Syslog:/host_root/var/log/syslog
volumes:
- /:/host_root:ro
- /sys:/sys:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
devices:
- /dev/dri:/dev/dri
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
Run the following command in the same directory as your docker-compose.yml file:
docker-compose up -d
Open your web browser and navigate to: http://:8501 āļø Configuration (Environment Variables)
You can easily customize the monitor's behavior by adjusting the environment: variables in your Compose file:
POLLING_INTERVAL_MS: How often the dashboard updates in milliseconds. (Default: 5000 for 5 seconds).
STORAGE_PATHS: Comma-separated list of mounted paths to monitor for disk space. (Example: /host_root,/mnt/media_drive).
LOG_CONFIG: Comma-separated list of Display Name:Path pairs for log tailing. (Example: Syslog:/host_root/var/log/syslog,AppLog:/host_root/var/log/myapp.log).
Content type
Image
Digest
sha256:7b4194373ā¦
Size
164.7 MB
Last updated
7 months ago
docker pull weasts/srvrmon