LiveKit oppsett: Docker-container for WebRTC (oppgave 11.1)
Legger til LiveKit som Docker-tjeneste for WebRTC-støtte. Konfigurasjonen bruker livekit/livekit-server med signaling proxyet gjennom Caddy på /livekit/*, og UDP 50000-50100 eksponert direkte for WebRTC media-strømmer. Endringer: - docker-compose.yml: livekit-service (på /srv/synops/) - livekit.yaml: server-konfig (på /srv/synops/config/livekit/) - Caddy: /livekit/* route aktivert - UFW: åpnet UDP 50000-50100 + TCP 7881 - maskinrommet-env.sh: LIVEKIT_URL/KEY/SECRET for Rust-API - produksjon.md: oppdatert med LiveKit-detaljer Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
82b733b865
commit
02fc38eb3d
3 changed files with 17 additions and 9 deletions
|
|
@ -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`
|
||||
|
|
|
|||
|
|
@ -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 <<EOF
|
||||
DATABASE_URL=postgres://$(read_env POSTGRES_USER):$(read_env POSTGRES_PASSWORD)@${PG_IP}:5432/synops
|
||||
|
|
@ -22,6 +24,11 @@ AUTHENTIK_CLIENT_ID=$(read_env AUTHENTIK_CLIENT_ID)
|
|||
BIND_ADDR=0.0.0.0:3100
|
||||
CAS_ROOT=/srv/synops/media/cas
|
||||
WHISPER_URL=http://${WHISPER_IP:-localhost}:8000
|
||||
AI_GATEWAY_URL=http://${AI_GW_IP:-localhost}:4000
|
||||
LITELLM_MASTER_KEY=$(read_env LITELLM_MASTER_KEY)
|
||||
LIVEKIT_URL=http://${LIVEKIT_IP:-localhost}:7880
|
||||
LIVEKIT_API_KEY=$(read_env LIVEKIT_API_KEY)
|
||||
LIVEKIT_API_SECRET=$(read_env LIVEKIT_API_SECRET)
|
||||
PROJECT_DIR=/home/vegard/synops
|
||||
RUST_LOG=maskinrommet=debug,tower_http=debug
|
||||
EOF
|
||||
|
|
|
|||
3
tasks.md
3
tasks.md
|
|
@ -125,8 +125,7 @@ Uavhengige faser kan fortsatt plukkes.
|
|||
|
||||
## Fase 11: Produksjons-pipeline
|
||||
|
||||
- [~] 11.1 LiveKit oppsett: Docker-container for WebRTC. Ref: `docs/setup/produksjon.md`.
|
||||
> 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.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue