Mitchell R
cbb1683c5d
feat: deployment artifacts + CEC relay + auth-check endpoint
...
Deployment (deploy/):
- systemd units for server (system) and kiosk (user session)
- Angie/nginx proxy config — routes admin, api, ws, node-red
- Dockerfile + docker-compose for containerized deployment
- deploy/README.md with install instructions
Auth:
- /api/admin/_check endpoint for proxy auth_request subrequest
- Returns 200 if admin session valid, 401/403 otherwise
- Sets X-BetterFrame-User header for upstream
CEC (Pi5 HDMI control):
- kiosk/src/cec.rs wraps cec-ctl subprocess
- Standby/wake/active-source commands
- WS message types "standby" / "wake" dispatched to CEC
- Admin UI: Wake/Standby buttons on kiosk edit page
- Server sendToKiosk via coordinator
2026-05-10 22:45:56 +02:00
Mitchell R
16ab165b06
feat: live updates via WebSocket — server pushes, kiosk reloads
...
Server side:
- service-coordinator-ws: full WS implementation using ws package
- Auth via ?token=<kiosk_key> query param
- Coordinator registry for cross-plugin notification
- Admin mutations call notifyKiosks() → server pushes reload-bundle
- 30s ping/pong heartbeat
Kiosk side:
- Rust ws_client with tokio runtime + tokio-tungstenite
- Auto-reconnect with exponential backoff (1s → 60s cap)
- On reload-bundle: re-fetches bundle, re-renders layout
- Pong replies to server pings
Also fix: auto-suffix kiosk name on UNIQUE collision (re-pair with
same hostname no longer fails).
2026-05-10 22:15:58 +02:00
Mitchell R
72d8ad717f
fix: import PluginFeatureExtManual for set_rank
2026-05-10 20:59:23 +02:00
Mitchell R
61ab099f87
fix: demote Pi5 hw H265 decoder — sw fallback for non-standard resolutions
2026-05-10 20:52:25 +02:00
Mitchell R
527a62d2e5
fix: drop HANDLES_COMMAND_LINE flag
2026-05-10 20:13:01 +02:00
Mitchell R
f6dec4bf39
fix: import ApplicationExt for set_flags
2026-05-10 20:12:14 +02:00
Mitchell R
e7237d077f
fix: suppress GTK file-open warning, read server URL from env
2026-05-10 20:11:31 +02:00
Mitchell R
c4315917d8
fix: resolve all Rust compile errors in kiosk app
2026-05-10 20:04:43 +02:00
Mitchell R
371c023c81
feat: Rust kiosk app — GTK4 + GStreamer multi-camera display
...
- Server discovery (localhost → betterframe.local → cloud)
- Pairing flow with fullscreen code display
- Bundle fetch and layout rendering
- GTK4 Grid layout matching template regions
- GStreamer pipelines per camera cell via gtk4paintablesink
- Heartbeat loop in background thread
- Placeholder widgets for web/html cells
2026-05-10 04:18:40 +02:00