# ───────────────────────────────────────────────────────────────────────────── # LiveKit — Produktionskonfiguration (NEW VPS) # # Diese Datei ERSETZT die Dev-Werte aus infra/livekit/livekit.yaml. # Unterschiede zur Dev-Config (WICHTIG): # - rtc.use_external_ip: true (Dev: false) # - KEIN rtc.node_ip: 127.0.0.1 (Dev-only — würde im Prod jeden Client # veranlassen, Medien an seinen eigenen Loopback zu senden: Call verbindet, # aber KEIN Audio/Video). # - echte keys: (Platzhalter unten) statt der öffentlich bekannten devkey. # # Die keys: müssen EXAKT zu LIVEKIT_API_KEY / LIVEKIT_API_SECRET in # /opt/supabase/.env passen (mint-livekit-token signiert damit). Wird nur eine # Seite rotiert, lehnt die SFU die Tokens beim Join ab (403). # # ufw muss offen sein: 7880/tcp (Signaling, hinter Caddy), 7881/tcp (RTC TCP), # 50000-50100/udp (RTC). Diese Ports außer 7880 gehen NICHT über Caddy. # # Kopiere diese Datei als /opt/livekit/livekit.yaml und trage echte Keys ein. # ───────────────────────────────────────────────────────────────────────────── port: 7880 log_level: info rtc: tcp_port: 7881 port_range_start: 50000 port_range_end: 50100 # Prod: öffentliche IP des Servers ankündigen (NICHT Loopback wie im Dev). use_external_ip: true # KEIN node_ip hier — das war dev-only (127.0.0.1) und bricht im Prod die Medien. # Produktionsschlüssel — Platzhalter. Muss zu /opt/supabase/.env passen # (LIVEKIT_API_KEY = der key, LIVEKIT_API_SECRET = das secret). # Erzeugen z. B. mit: openssl rand -hex 32 keys: APIxxxxxxxxxxxx: # coturn läuft separat (siehe coturn.prod.conf.example) — eingebauter TURN aus. turn: enabled: false