Clients, the container, the upstreams
The SPA and IPTV clients talk to the Express control plane, which owns MongoDB and drives the Rust data-plane sidecar for stream bytes.
- Sources adapter framework — a source-agnostic core (sync → normalize → dedupe → resolve) with ~17 adapters plus proxy-only
direct/hdhomerun/localsources. See Sources. - Channel model — a pristine
sourcechannelsreference projected into an editableplaylistchannels; edits survive re-syncs. Channels can be grouped into failover groups — one parent, ordered backups. See Playlists. - EPG + scheduler — multiple ingesters behind one sync path, driven by a
cronerscheduler overcronjobs. See EPG. - Video proxy engine — the remux-free Rust data plane. See Video proxy engine.
- Local origin — an opt-in inversion of the data plane: one shared ingest per channel fills a RAM ring and masqueradarr publishes a playlist it authored itself. On a demuxed source each ring entry carries both the video and its audio partner, and raw TS is woven from the pair. See Local origin.