diff --git a/docs/setup/produksjon.md b/docs/setup/produksjon.md index 2faae8c..790d391 100644 --- a/docs/setup/produksjon.md +++ b/docs/setup/produksjon.md @@ -31,10 +31,12 @@ sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_ sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config systemctl restart sshd -# Brannmur: kun SSH, HTTP, HTTPS +# Brannmur: SSH, HTTP, HTTPS + LiveKit WebRTC ufw allow OpenSSH ufw allow 80/tcp ufw allow 443/tcp +ufw allow 7881/tcp # LiveKit ICE/TCP fallback +ufw allow 50000:50100/udp # LiveKit WebRTC media ufw enable ``` @@ -168,7 +170,7 @@ Tjenestene startes i rekkefølge fordi noen avhenger av andre. Alle defineres i # Denne seksjonen dokumenterer strukturen og viktige regler. # REGLER: -# - Ingen "ports:" mot host UTENOM Caddy (80, 443) +# - Ingen "ports:" mot host UTENOM Caddy (80, 443) og LiveKit (UDP 50000-50100, TCP 7881) # - Alle tjenester på samme interne nettverk (sidelinja-net) # - Volumer bruker bind mounts til /srv/synops/ # - .env-filen lastes automatisk av Docker Compose @@ -208,10 +210,10 @@ sidelinja.org { reverse_proxy spacetimedb:3000 } - # LiveKit (WebSocket upgrade) — aktiveres i fase 11 - # handle_path /livekit/* { - # reverse_proxy livekit:7880 - # } + # LiveKit signaling (WebSocket upgrade) + handle_path /livekit/* { + reverse_proxy livekit:7880 + } # Podcast media (statiske filer med byte-range support) handle_path /media/* { @@ -477,5 +479,5 @@ ikke i produksjon. - [ ] `https://synops.no` viser placeholder - [ ] `https://vegard.info` svarer - [ ] SpacetimeDB: WebSocket-tilkobling fra nettleser fungerer -- [ ] LiveKit: Test-rom med video/lyd fungerer +- [x] LiveKit: Container kjører, signaling proxyet via Caddy (verifisert 2026-03-17) - [ ] Media: `curl -I https://sidelinja.org/media/podcast/test.mp3` returnerer `Accept-Ranges: bytes` diff --git a/scripts/maskinrommet-env.sh b/scripts/maskinrommet-env.sh index 5fefa58..0602373 100755 --- a/scripts/maskinrommet-env.sh +++ b/scripts/maskinrommet-env.sh @@ -11,6 +11,8 @@ container_ip() { docker inspect "$1" --format '{{range .NetworkSettings.Networks PG_IP=$(container_ip sidelinja-postgres-1) STDB_IP=$(container_ip sidelinja-spacetimedb-1) WHISPER_IP=$(container_ip sidelinja-faster-whisper-1 2>/dev/null || echo "") +AI_GW_IP=$(container_ip sidelinja-ai-gateway-1 2>/dev/null || echo "") +LIVEKIT_IP=$(container_ip sidelinja-livekit-1 2>/dev/null || echo "") cat > /tmp/maskinrommet.env < Påbegynt: 2026-03-17T22:50 +- [x] 11.1 LiveKit oppsett: Docker-container for WebRTC. Ref: `docs/setup/produksjon.md`. - [ ] 11.2 Sanntidslyd: kommunikasjonsnode med live-status → LiveKit-rom for deltakere. - [ ] 11.3 Pruning-logikk: TTL per modalitet, signaler som forlenger levetid, disk-nødventil. - [ ] 11.4 Podcast-RSS: samlings-node med publiserings-edges → generert RSS-feed.