Roku setup

Important: Roku has no web browser.

This dashboard and the /display pages will not play directly on a Roku TV. Each TV needs a small custom Roku player (SceneGraph/BrightScript) sideloaded in Developer Mode and pointed at its feed URL below. That Roku player has not been built or installed yet. Until it is, use the Download PNG button and a USB stick as a fallback.

Feed URLs (public, read-only)

TV 1 · Coffee & Drinks
/api/public/feed/coffeeTest in browser
TV 2 · Ice Cream & Desserts
/api/public/feed/ice-creamTest in browser
TV 3 · Food & Snacks
/api/public/feed/foodTest in browser

Use the published site address (not the editor preview) on the TVs. Feed returns { version, poll_interval_seconds, slides: [{ url, duration }] }. Send If-None-Match with the last ETag to get a cheap 304 when nothing changed. Poll every 1–60 minutes.

Pairing a TV (once the player exists)

  1. On the Roku remote press Home ×3, Up ×2, Right, Left, Right, Left, Right to enable Developer Mode; set a password and note the TV's IP.
  2. On a laptop on the same Wi-Fi, open http://<TV-IP> and upload the player .zip.
  3. In the player's settings, enter that TV's feed URL from above.
  4. Repeat for each TV. Only one sideloaded app is allowed per Roku.

Implemented

  • Owner-only editing, separate publish per screen
  • 1920×1080 PNG generated on Publish and stored
  • Menu + slides or Slides only, independently per screen
  • Enabled slides repeat in order with their durations; Slides only omits the menu entirely
  • Draft mode changes do not affect TVs until Publish; saved menu items are retained
  • Public JSON feed with version + ETag
  • Browser display pages and PNG download

Not implemented yet

  • The Roku SceneGraph player app
  • Remote device status / heartbeat