Live portal: React + dockview multi-stream viewer behind Authentik; MediaMTX HLS/WebRTC/API re-enabled; is-live Discord hook
live/: every active stream opens as a dockable window (WHEP, HLS fallback), audio follows the focused window, per-window mute/volume, pinning. Caddy live.HOST block with forward-auth proxies /api /webrtc /hls to MediaMTX on loopback and serves /srv/live. WebRTC media on 8189 (firewall). configure.py asks the live hostname and an optional Discord webhook; MediaMTX -ffmpeg image runs the runOnReady hook. deployLive.sh builds and ships dist/. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
18
live/README.md
Normal file
18
live/README.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# Vanguard Live — the live-stream portal
|
||||
|
||||
React + dockview page at `https://live.<domain>/` (behind Authentik): every active stream opens as a
|
||||
dockable window; audio follows the focused window; per-window mute button and volume slider.
|
||||
Playback is WebRTC (WHEP) with HLS fallback, straight from MediaMTX via Caddy.
|
||||
|
||||
npm install
|
||||
npm run build # -> dist/ (static; Caddy serves it)
|
||||
npm run dev # local dev; VITE_MTX=http://<server> to proxy to a MediaMTX
|
||||
|
||||
Deploy: build here, `scp -r live/dist debian@HOST:~/vanguard-stream/live/`, Caddy picks it up (no restart).
|
||||
|
||||
Audio rules: all windows start muted; the focused window is unmuted at its slider volume. Clicking the
|
||||
speaker on an unfocused window pins its audio on (yellow border) until you click it again. "Mute all"
|
||||
silences everything until you focus a window; "Follow focus" clears pins.
|
||||
|
||||
Endpoints (proxied by Caddy, all behind the Authentik gate):
|
||||
`/api/*` → MediaMTX API 9997 · `/webrtc/*` → WebRTC/WHEP 8889 · `/hls/*` → HLS 8888.
|
||||
Reference in New Issue
Block a user