Skip to content

Harden /token, fix bind default, document launchd + Television embedding - #2

Open
courtlandleer wants to merge 2 commits into
mainfrom
feat/television-embed-hardening
Open

Harden /token, fix bind default, document launchd + Television embedding#2
courtlandleer wants to merge 2 commits into
mainfrom
feat/television-embed-hardening

Conversation

@courtlandleer

Copy link
Copy Markdown
Collaborator

Two commits, one theme: make Rotom safe and easy to run as an always-on service surfaced in Television.

Code (behavior changes):

  • HOST now defaults to 127.0.0.1 -- the README always claimed this, but the code default was 0.0.0.0. Remote deploys must set HOST=0.0.0.0 explicitly, as the README already instructs.
  • /token answers loopback clients only (403 otherwise). It re-serves the Television bearer token -- full TV control -- and previously any LAN-bound deploy handed it to the whole network unauthenticated. ROTOM_SERVE_TOKEN=1 opts in for trusted networks. Nothing in the shipped UI fetches /token, so no user-facing breakage.

Docs:

  • macOS launchd LaunchAgent example (the service section was Linux-only -- ss doesn't exist on macOS) + lsof equivalent.
  • Recipe for embedding Rotom as a live iframe card on a Television screen (browser TV clients don't render arbitrary URL artifacts, so the reliable pattern is a small path-artifact wrapper).
  • Security note + config table updated for the guard.

Running on an always-on M1 behind exactly this setup.

Courtland Leer added 2 commits August 21, 2026 10:53
/token re-serves the Television bearer token, which grants full control
of the TV server. Previously any deploy bound to 0.0.0.0 (which was also
the undocumented default, contradicting the README) served it
unauthenticated to the whole network. Now: HOST defaults to 127.0.0.1 as
documented, and /token answers loopback clients only -- 403 otherwise --
unless ROTOM_SERVE_TOKEN=1 opts in for trusted networks. Nothing in the
shipped UI fetches /token, so no user-facing behavior changes.
The long-lived-service section was Linux-only (ss). Adds a LaunchAgent
example + kickstart commands, notes the lsof equivalent, updates the
security note and config table for the /token guard, and adds a recipe
for embedding Rotom as a live iframe card on a Television screen.
@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 6b3a99d3-6411-4728-a7be-146671244e16


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant