- Live System Metrics: CPU, Memory, Swap, and Load Average
- Docker Integration: Shows container image, status, health, uptime, restart count, ports, CPU/RAM, and recent logs
- Process Monitoring: Shows the top 5 processes by CPU and Memory usage
- Disk & Network: Tracks used/free space across all mounts and live network Rx/Tx speeds
- Listening Sockets: Audits TCP listeners and bound UDP sockets, highlighting services bound to all interfaces
- Optional GPU Monitoring: Shows NVIDIA (
nvidia-smi) or AMD ROCm (amd-smi) GPU utilization, VRAM, and temperature when available - Built-in Security: Password-protected Web UI (bcrypt) with login rate-limiting, optionally disabled for trusted networks or authenticating proxies
- Ultra Lightweight: Single Go binary with zero dependencies and ~5MB RAM footprint
curl -sL https://raw.githubusercontent.com/leodeim/vpsmon/main/scripts/install.sh | sudo bashOnce installed on your VPS, you can manage the monitor using these commands:
- Check status:
sudo systemctl status vpsmon - View live logs:
sudo journalctl -u vpsmon -f - Update to latest:
sudo bash /opt/vpsmon/update.sh - Restart service:
sudo systemctl restart vpsmon - Edit configuration:
sudo nano /opt/vpsmon/.env(Restart required after changing port or credentials) - Uninstall:
sudo bash /opt/vpsmon/uninstall.sh
| Variable | Default | Description |
|---|---|---|
MONITOR_ADDR |
:8088 |
Listen address |
MONITOR_USER |
admin |
Web UI username |
MONITOR_PASS_HASH |
(hash of changeme) |
Web UI password (bcrypt hash) |
MONITOR_SKIN |
terminal |
Dashboard skin: terminal or modern; chosen during installation |
MONITOR_NO_AUTH |
false |
Set to true, yes, on, or 1 to disable the login screen and session checks |
Caddy is the easiest way to expose vpsmon with automatic HTTPS. Add the following to your Caddyfile:
monitor.yourdomain.com {
reverse_proxy 127.0.0.1:8088
}