Flipper - Display server for TRMNL e-ink devices
Self-hosted Go server that drives TRMNL e-ink displays — no cloud, no subscription, one binary.
Flipper is a self-hosted display server for TRMNL e-ink devices, written in Go. Point a device at Flipper and it serves images from a local directory — resized, dithered, and encoded for the panel. Everything runs on the local network: no cloud account, no subscription, a single binary.
From image folder to device fleet
Drop images into a directory and Flipper handles the rest. Beyond static images, built-in screens render weather, Hacker News, and news headlines programmatically. Playlists control what shows when — globally or per device.
- Supports TRMNL OG (800×480, B&W) and TRMNL X (1872×1404, 16-level grayscale), detected automatically from device headers
- Playlists with per-entry duration and parameters; each device can be assigned its own
- Device registry with telemetry: firmware version, battery, WiFi signal strength
- One-shot, model-matched firmware updates (OTA) straight from the CLI
Deliberately simple
The design follows the Go standard library, not a framework. Device state lives in a JSON file, processed images in memory, and TLS works out of the box with an auto-generated self-signed certificate — TRMNL devices require HTTPS.
- Single binary, TOML config, environment variable overrides
- No database, no external runtime dependencies
- HTTPS by default, self-signed certificate with local IPs baked in
- MIT licensed