This plugin allows you to display Proxmox VE resource statistics (CPU, RAM, Disk, Uptime) inside TRMNL by polling a simple HTTP endpoint exposed by your Proxmox host.
It is designed to work with TRMNL’s polling mechanism and a custom Blade view.
The plugin retrieves system statistics from your Proxmox VE server via a JSON endpoint and renders them inside TRMNL.
Displayed metrics:
- CPU usage (%)
- RAM usage (%)
- Disk usage (%)
- Uptime (days)
- Last update time
- A running Proxmox VE host
- A reachable HTTP/HTTPS endpoint on your Proxmox server
- TRMNL configured with a polling URL
- Network access from TRMNL to your Proxmox server
Before using this plugin, you must expose a status endpoint on your Proxmox server.
Example polling URL:
https://{ip-or-domain-of-your-proxmox}/status
This endpoint must return JSON data containing at least:
{
"cpu": 23,
"ram": 61,
"disk": 48,
"uptime_days": 12
}How you implement this endpoint is up to you. Common approaches:
- A small web server (nginx, Apache, etc.) serving a generated JSON file
- A custom API endpoint
- A script that queries Proxmox (for example via
pveshor the Proxmox API) and outputs JSON - A reverse proxy mapping
/statusto an internal stats script
Important:
- Ensure the endpoint is accessible from the TRMNL device.
- If using HTTPS with a self-signed certificate, make sure TRMNL can access it.
- Consider authentication or network restrictions for security.
In TRMNL, configure the plugin to use the following Polling URL:
https://{ip-or-domain-of-your-proxmox}/status
TRMNL will periodically request this endpoint and pass the JSON response into the Blade template as $data.
The template expects the following keys:
cpuramdiskuptime_days
If a key is missing, the display will fall back to N/A.
All percentage values should be numeric (without the % sign).
Example:
{
"cpu": 45,
"ram": 72,
"disk": 51,
"uptime_days": 4
}The template automatically:
- Adds the percent symbol
- Adjusts progress bar width
- Displays the last update time
Do not expose sensitive system information publicly.
Recommended approaches:
- Restrict access by IP
- Use firewall rules
- Place the endpoint behind a VPN
- Use authentication if exposed beyond your local network
If no data appears in TRMNL:
- Open the polling URL in a browser.
- Verify that valid JSON is returned.
- Confirm that TRMNL can reach the Proxmox host.
- Check firewall and certificate configuration.
-
Expose a JSON endpoint on Proxmox at:
https://{ip-or-domain-of-your-proxmox}/status -
Configure TRMNL to poll that URL.
-
Ensure the JSON format matches the expected keys.
-
Verify network access and security settings.
Once configured correctly, TRMNL will automatically display live Proxmox VE statistics.