• jessikitty released this 2026-05-22 19:52:12 +10:00 | 48 commits to dev since this release

    Frambe v1.4.0-dev — Server/Client Admin Dashboard

    Admin Dashboard (/admin)

    • Real-time client management via WebSocket
    • Cards for each connected frame showing IP, status (idle/playing/sleeping), and editable name
    • Source selector — dropdown with all albums and people from Immich, plus Random and Favorites
    • Playback controls — Start, Stop, Next, Prev
    • Power controls — Sleep (blacks out screen), Wake, Refresh (reloads page)
    • Slide interval — range slider (5-120s) applied live
    • Toggle switches — Clock, Date, EXIF, Progress bar — all applied instantly
    • Auto-reconnecting WebSocket with connection status indicator
    • Client names persist across reconnects (stored by IP in server memory)

    WebSocket Architecture

    • Server runs WebSocket on /ws (same port as HTTP)
    • Frame clients auto-connect and register with role frame, reporting status and config
    • Admin dashboard connects with role admin and receives live client list updates
    • Commands: setSource, start, stop, next, prev, sleep, wake, refresh, setConfig
    • Clients report status changes back to server, which broadcasts to all admin sessions

    Client Changes

    • WebSocket client connects on init, auto-reconnects every 5s
    • Handles all remote commands from admin
    • Sleep mode: full black overlay at z-index 9999
    • Config changes (clock, exif, timing) applied live without restart
    • Status reported back to server on every state change

    Dependencies

    • Added ws ^8.18.0 for WebSocket server
    Downloads