Commit Graph

  • dcc347e1ea Phase 7+11: token-based publishing — MediaMTX authMethod http -> dumpd /mtx-auth (bridge-only port 8081); dumpd mints 12 h HMAC tokens for Discord-authenticated streamers; dock rewritten (no passwords, naming rules with live preview, prefix/suffix, manual-setup accordion with hidden token); portal uses tokens; configure.py drops streamers; MediaMTX hot-reload, Caddy reload — no stream interruption Brandyn / Techy 2026-10-31 15:22:15 -05:00
  • 2a74cb7b40 Logout ends the Authentik session: copyparty idp-logout -> outpost sign_out; live portal Sign out link Brandyn / Techy 2026-10-31 15:11:53 -05:00
  • 268a6a2f81 copyparty idp-h-key: Caddy injects a header with a secret name (COPYPARTY_IDP_KEY); IdP headers ignored without it Brandyn / Techy 2026-10-31 15:09:13 -05:00
  • b89afb50d2 Caddy: /whoami on the main host echoes the Authentik identity headers for debugging Brandyn / Techy 2026-10-31 15:08:16 -05:00
  • c4a79c3316 README/plan: note WebDAV is available via app passwords but deliberately not set up Brandyn / Techy 2026-10-31 15:01:14 -05:00
  • 15402eeb82 Discord-only login: drop WebDAV/app-password path from docs and generated config comments Brandyn / Techy 2026-10-31 15:00:48 -05:00
  • 50c037e514 Phase 5+6: main host behind Authentik — copyparty trusts X-Authentik-* headers with group permissions (editors, media-admins), dumpd authorizes from headers (admins/media-admins), /sync gated to media-admins, dock drops its dump password; configure.py loses editors/admin Brandyn / Techy 2026-10-31 14:55:48 -05:00
  • 76a7d06df4 Go Live: state the Windows-only quality/audio reality in the form; STATUS note Brandyn / Techy 2026-10-31 13:37:21 -05:00
  • e4656b9293 Go Live quality: prefer H.264 High/Main (hardware) then Baseline then VP9; start/min bitrate hints to skip the ramp; motion content hint; show encoder + profile in stats Brandyn / Techy 2026-10-31 13:33:45 -05:00
  • e02accb855 Streams published flat as <user>/<Title>__<ts>.mp4 so each recording is its own Jellyfin episode; plugin 0.1.3 parses the title from the name Brandyn / Techy 2026-10-31 03:42:53 -05:00
  • d28c2335d0 Go Live: recording warning before start and a REC badge while live Brandyn / Techy 2026-10-31 01:48:25 -05:00
  • f737fc6289 Go Live: state the Windows-only window-audio limitation in the UI and docs Brandyn / Techy 2026-10-31 01:47:45 -05:00
  • b634413773 Go Live: request window-scoped audio (windowAudio: window, Chrome 141+); keep the picker window-only Brandyn / Techy 2026-10-31 01:44:45 -05:00
  • f3388f52bc Plan: media-admins group for full copyparty rights in phase 5 Brandyn / Techy 2026-10-31 01:24:46 -05:00
  • e3fb5db424 STATUS: Go Live verified end to end; remaining items Brandyn / Techy 2026-10-31 01:22:14 -05:00
  • 2510cfaceb sweep: portable VFR detection (mawk has no asort; the check silently passed every file on Debian) Brandyn / Techy 2026-10-31 01:20:32 -05:00
  • f17e57db63 MediaMTX container TZ=America/New_York so recording filenames match the server clock Brandyn / Techy 2026-10-31 01:18:54 -05:00
  • 94db824243 configure.py: optional bare-domain Caddy block (redirect to the watch site by default) Brandyn / Techy 2026-10-31 01:12:22 -05:00
  • f06ebc1ec1 Plan: phase 11 — MediaMTX auth via Authentik (JWT for the browser, app passwords for OBS, no stream keys) Brandyn / Techy 2026-10-31 00:58:50 -05:00
  • 4b4c7eaedf Go Live: MediaMTX credentials via X-Stream-Auth -> Authorization on the Caddy->MediaMTX hop (WebRTC ignores query params); fix WHIP session DELETE path Brandyn / Techy 2026-10-31 00:56:56 -05:00
  • dff31b0b37 Docs audit: phase-1 script prints domain-level forward-auth + roles sync; install.sh creates /srv/live; STATUS current Brandyn / Techy 2026-10-31 00:55:33 -05:00
  • 37b619055b compose: MediaMTX -ffmpeg image, loopback HLS/WebRTC/API ports, 8189, hook env (earlier edit never applied) Brandyn / Techy 2026-10-31 00:53:09 -05:00
  • 8333941e3d MediaMTX: disable MoQ (unused; noisy cert warnings on 1.21) Brandyn / Techy 2026-10-31 00:50:12 -05:00
  • 357bb61b65 MediaMTX: write webrtcAdditionalHosts into the generated config (env-based value left it empty and MediaMTX refused to start) Brandyn / Techy 2026-10-31 00:48:27 -05:00
  • b2869c3740 Generated configs out of the repo: *.example.* templates only; configure.py refuses to apply over CHANGEME placeholders Brandyn / Techy 2026-10-31 00:32:30 -05:00
  • 50d2f1c21d Caddy: mount /srv/live (live portal returned 404 inside the container) Brandyn / Techy 2026-10-31 00:25:44 -05:00
  • 384a7ed552 Per-host group gating in Caddy from X-Authentik-Groups; Discord roles -> Authentik groups policy; domain-level forward auth documented Brandyn / Techy 2026-10-30 23:22:20 -05:00
  • bee53f2718 README: domain-level forward auth as the recommended Authentik setup Brandyn / Techy 2026-10-30 23:19:45 -05:00
  • 4b4053a407 README: Authentik forward-auth setup for live/bot hosts Brandyn / Techy 2026-10-30 23:12:56 -05:00
  • 82df0b1583 Live portal: Go Live — browser window capture published over WHIP as <user>/HelmetCam-<date>; dumpd /me/stream-key Brandyn / Techy 2026-10-30 23:04:33 -05:00
  • 463d9b2385 Live portal: React + dockview multi-stream viewer behind Authentik; MediaMTX HLS/WebRTC/API re-enabled; is-live Discord hook Brandyn / Techy 2026-10-30 23:01:11 -05:00
  • 3d42271ae2 Record streams into hidden .live/ and publish finished files via the sweep; plugin 0.1.2 feed wording Brandyn / Techy 2026-10-30 22:45:30 -05:00
  • 6fb0f6da30 STATUS: repo now hosted on the stack's Gitea Brandyn / Techy 2026-10-30 15:56:44 -05:00
  • c602a6ff52 Vanguard media stack: ingest, copyparty, Syncthing, normalize sweep, Authentik, Jellyfin + Vanguard Metadata plugin, MariaDB, Gitea, bot runtime Brandyn / Techy 2026-10-30 15:43:30 -05:00