A TRMNL plugin that displays system metrics from Beszel monitoring. This plugin shows CPU, memory, disk usage, load averages, uptime, and other system information on your TRMNL e-ink display.
- ️ Real-time system metrics from Beszel monitoring
- ️ CPU, Memory, Disk usage with load averages
- ️ System uptime and temperature monitoring
- ️ Container tracking and network bandwidth
- ️ Multiple view templates for different display sizes
- ️ Automatic updates every 5 minutes via cron scheduling
GET /Endpoint - System metrics in TRMNL format
- Clone and Install:
git clone https://github.com/yazdipour/trmnl-beszel.git
cd trmnl-beszel/
# Using Docker (recommended)
docker-compose up -d
# Or direct Node.js
cd src && npm start && npm install- Environment Setup - Create
.envinsrc/directory:
POCKETBASE_URL=http://your-pocketbase-url:port/
POCKETBASE_EMAIL=your-email@example.com
POCKETBASE_PASSWORD=your-password
PRIVATE_PLUGIN_URL=https://usetrmnl.com/api/custom_plugins/your-plugin-id
PORT=3000The server automatically sends updated metrics to your TRMNL plugin every 5 minutes when PRIVATE_PLUGIN_URL is configured. This ensures your e-ink display always shows fresh system data without manual intervention.
- Schedule: Every 5 minutes (configurable in code)
- Requirement: Valid
PRIVATE_PLUGIN_URLin environment variables - Fallback: Manual updates via
GET /endpoint
- Deploy the API server
- Create a custom plugin on TRMNL
- Copy the liquid templates to your plugin
├── docker-compose.yml # Docker deployment
├── liquid/ # TRMNL templates
│ ├── *.liquid
│ └── shared.liquid
└── src/ # API server
├── server.js
└── package.json
## Dependencies
- **express**: Web server framework
- **pocketbase**: PocketBase SDK for data access
- **node-cron**: Task scheduling for automatic updates
- **dotenv**: Environment variable management
MIT License





