Technical

Mini Resource screen in Proxmox: build a tiny always-on monitor

Mini Resource screen in Proxmox: build a tiny always-on monitor

Mini Resource screen in Proxmox is just a small script hitting the API and spitting out CPU, RAM, and storage. You don’t need Grafana or a full dashboard. A cheap tablet or old monitor works fine.

Dual monitors with blue lighting on a gaming desk setup.

What you’re actually building

Proxmox already exposes everything through its REST API. The trick is pulling the right endpoints and formatting them for a screen that’s always on. You want three numbers: CPU usage, memory used, and storage left on the local disk.

Get an API token first

Don’t use your root password in a script. Create a token in the Proxmox UI under Datacenter → Permissions → API Tokens. Give it read-only access to the nodes and storage. Then grab the token ID and secret. It looks like PVEAPIToken=root@pam!monitor=some-long-secret.

The script

This is a bash script that runs every few seconds. It uses curl and jq. Install jq if you don’t have it: apt install jq.

#!/bin/bash
# Mini resource screen for Proxmox

API="https://your-proxmox-ip:8006/api2/json"
TOKEN="PVEAPIToken=root@pam!monitor=your-secret"

while true; do
  # CPU and memory from node status
  node=$(curl -sk -H "Authorization: $TOKEN" "$API/nodes/proxmox/status")
  cpu=$(echo "$node" | jq -r '.data.cpu')
  mem_used=$(echo "$node" | jq -r '.data.memory.used')
  mem_total=$(echo "$node" | jq -r '.data.memory.total')
  mem_pct=$((mem_used * 100 / mem_total))

  # Storage from local disk
  storage=$(curl -sk -H "Authorization: $TOKEN" "$API/nodes/proxmox/storage/local/status")
  disk_used=$(echo "$storage" | jq -r '.data.used')
  disk_total=$(echo "$storage" | jq -r '.data.total')
  disk_pct=$((disk_used * 100 / disk_total))

  clear
  echo "CPU:  $cpu%"
  echo "RAM:  $mem_pct%"
  echo "Disk: $disk_pct%"
  sleep 5
done

Replace proxmox with your node name and local with your storage ID. The script clears the screen and prints fresh numbers every five seconds. That’s the whole thing.

Stylish and functional home office with dual monitors, keyboard, and sound system, perfect for productivity and creativi

Put it on a screen

Any device with a browser can show this. Run the script over SSH on a Raspberry Pi or an old laptop. Or run it directly on the Proxmox host if you’re okay with that. If you want it on a tablet, use an SSH app like Termius and just leave it open. No need for a web server.

One thing I’d do: set the terminal font size to something huge. The whole point is glancing at it from across the room. And if you’re using a tablet, turn off auto-lock.

Why not use the built-in graphs?

Proxmox has graphs in the web UI, but they’re not meant for a dedicated screen. They need a login, they time out, and they’re not full-screen. This script is dumb and direct. It shows three numbers and nothing else. That’s what you want on a mini resource screen.

If you’re already running a separate boot disk for Proxmox, you can leave this script running on the host without worrying about it filling up logs. I covered that in Should I Install Proxmox on My 4TB SSD RAID 5 Setup? No, Use a Separate Boot Disk.

If you’d rather pay for this

There are commercial dashboards like Grafana Cloud’s free tier, but they’re overkill for three numbers. A $50 Android tablet from eBay and this script does the same job. I wouldn’t pay for anything here. The API is free and the script is twenty lines.

Leave a comment

Comments are reviewed before they appear. Your email is never published.