mirror of
https://github.com/usetrmnl/inker.git
synced 2026-04-29 13:45:07 -07:00
0.2.1.1
Inker v0.2.1.1
Self-hosted e-ink device management system for TRMNL devices and BYOD e-ink displays. Design screens, create custom widgets, and manage your displays from a modern web interface.
Features
- Screen Designer — Drag & drop widget placement, snap guides, freehand drawing, auto-fit zoom for any resolution
- Built-in Widgets — Clock, date, text, weather, countdown, days until, QR code, image, GitHub stars, battery, WiFi, device info
- Custom Widgets — Connect to any JSON API or RSS feed (including local network sources), JavaScript transformations, grid layouts
- Playlists — Rotate multiple screens on devices automatically
- Device Management — Auto-provisioning, BYOD support with custom resolutions, real-time status, logs
- BYOD Support — Register any e-ink device manually with custom screen resolution
Screenshots
| Screen Designer | Devices | Screens |
|---|---|---|
| List of sources | Custom Data Sources | Custom Widgets |
|---|---|---|
Quick start
Docker Run
docker run -d \
--name inker \
--restart unless-stopped \
-p 80:80 \
-v inker_postgres:/var/lib/postgresql/17/main \
-v inker_redis:/data \
-v inker_uploads:/app/uploads \
wojooo/inker:latest
Docker Compose
# docker-compose.yml
services:
inker:
image: wojooo/inker:latest
container_name: inker
restart: unless-stopped
ports:
- "80:80"
volumes:
- postgres_data:/var/lib/postgresql/17/main
- redis_data:/data
- uploads_data:/app/uploads
environment:
TZ: UTC
ADMIN_PIN: "1111" # Quotes required — YAML strips leading zeros without them
volumes:
postgres_data:
redis_data:
uploads_data:
docker compose up -d
Open http://your-server-ip and log in with PIN 1111.
Configuration
| Variable | Description | Default |
|---|---|---|
ADMIN_PIN |
Login PIN | 1111 |
TZ |
Timezone for widgets | UTC |
CORS_ORIGINS |
Allowed CORS origins (comma-separated, or * for all) |
same-origin |
Pass with -e:
docker run -d \
--name inker \
--restart unless-stopped \
-p 80:80 \
-e ADMIN_PIN="1111" \
-e TZ=Europe/Warsaw \
-v inker_postgres:/var/lib/postgresql/17/main \
-v inker_redis:/data \
-v inker_uploads:/app/uploads \
wojooo/inker:latest
Build from source
git clone https://github.com/wojo-o/inker.git
cd inker
docker compose up -d --build
Troubleshooting
If something isn't working after an update or on first run, reset the volumes and start fresh:
docker compose down -v
docker compose up -d
Note: This removes all data (database, uploads). Only use on a fresh install or when you don't mind losing data.
Testing
cd backend && bun test # 395 tests
cd frontend && bun run test # 19 tests
License
Source Available — see LICENSE for details.
Languages
TypeScript
98.2%
JavaScript
0.7%
Dockerfile
0.5%
CSS
0.4%
Shell
0.2%
