Deploy a streaming server and an ABR ladder for the hero reel

FeatureKlusterServices
Shipped
August 19, 2026 at 2:22 AM UTC
Author
Kamo
Commit
8193920

MediaMTX serves live channels over HLS, WebRTC, RTSP and RTMP, and loops the marketing reel as an always-available channel via alwaysAvailableFile — no ffmpeg sidecar, and any RTMP/RTSP publisher transparently takes the channel over and reverts to the reel on disconnect. The homepage video itself is NOT served through MediaMTX. MediaMTX is a live server with no VOD mode; looping a file into a live channel would drop every visitor into the middle of the reel instead of the first frame. So hero-hls-encode-job builds a 720p/540p/360p HLS ladder from the same MP4 and publishes it to MinIO, routed as /vod/ on the streaming host. Measured against the 31.8 MB single-bitrate original: 18.8 MB at 720p (SSIM 0.989), 9.8 MB at 540p, 5.4 MB at 360p, in ~4s segments the player fetches only while watching. The job is ETag-idempotent, so it no-ops on every deploy that is not a video swap, and it also publishes public/kamo12-poster.jpg — referenced by the homepage since it was written, but a 404 until now. Routes live on stream.* and theme.*: theme.<domain> already has DNS and a certificate for every tenant, so this works today, and the stream.* form activates on its own once a DNS record exists. The WebRTC route matches **************** rather than a prefix deliberately — MediaMTX serves WHIP on the same port, and a prefix match would publish an unauthenticated ingest endpoint to the internet. This touches .forgejo/, which forces FULL=true and a full-cluster reconcile. Audited first per the documented procedure: kubectl diff over all 112 apply targets is clean on 104; five are these new files, two are the nats/mail bootstrap Jobs the workflow deliberately deletes and re-applies, and mail/mysql-permissions-job.yaml fails as an immutable completed Job, which the workflow already tolerates with `|| echo`. Every kubectl delete target was confirmed absent.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing