README: TRMNL feed is BYOS-only, no cloud account

This commit is contained in:
2026-10-05 17:06:42 +02:00
parent cb69ab879f
commit 5ffc980ccd
+9 -16
View File
@@ -40,10 +40,9 @@ docker compose up -d --build
- `GET /trmnl.json` — JSON feed for TRMNL e-ink displays (see `trmnl-plugin/`)
- `GET /health` — JSON: whether today's jokes exist / retries exhausted
## TRMNL e-ink feed
## TRMNL e-ink feed (BYOS — no TRMNL account)
`GET /trmnl.json` returns the day's jokes in a shape ready for a TRMNL
Private Plugin with the **polling** strategy:
`GET /trmnl.json` returns the day's jokes as JSON:
```json
{
@@ -56,17 +55,11 @@ Private Plugin with the **polling** strategy:
}
```
This is the data source for **trmnl-jokes-server** (BYOS): a small server that
renders the jokes into the 800x480 1-bit BMP the TRMNL firmware expects and
answers `/api/setup` + `/api/display` directly, so the device never talks to
the TRMNL cloud. See the trmnl-jokes-server repo README.
Optional access token: set `TRMNL_TOKEN` in `.env`; requests must then carry
`?token=<token>` or the header `trmnl-token: <token>` (put the token directly
in TRMNL's polling URL or polling headers). Without the env var the endpoint
is open — the jokes themselves are public anyway.
Setup on my.trmnl.com:
1. Plugins → New private plugin. Strategy **Polling**, URL
`https://wiki-jokes.obahan.xyz/trmnl.json` (+ token if enabled).
2. Markup (Full layout): paste `trmnl-plugin/full.liquid`.
3. Assign the plugin to your device's playlist.
The template was verified to render against the live payload with
python-liquid (5 items, day, stale flag).
`?token=<token>` or the header `trmnl-token: <token>`. Without the env var the
endpoint is open — the jokes themselves are public anyway.