# ───────────────────────────────────────────────────────────────────────────── # LiveKit + coturn — Produktions-Compose (NEW VPS, netralax.de) # # Dies ist die PROD-Variante von infra/livekit/docker-compose.yml (das ist nur # Dev: coturn läuft dort mit --no-tls/--no-dtls, ohne 5349, ohne Zertifikat). # # Auf den Server kopieren als /opt/livekit/docker-compose.yml und daneben: # /opt/livekit/livekit.yaml <- infra/livekit/livekit.prod.yaml.example (Keys eintragen) # /opt/livekit/coturn.conf <- infra/livekit/coturn.prod.conf.example (external-ip + Cert) # Start: cd /opt/livekit && docker compose up -d && docker compose ps # # network_mode: host — auf einem Linux-Server ist das für WebRTC der robusteste # Weg: die RTC-UDP-Range (50000-50100) und die TURN-Relay-Range (50200-50300) # müssen NICHT einzeln gemappt werden, und coturn/LiveKit sehen die echten # Quell-IPs. Welche Ports tatsächlich erreichbar sind, regelt ufw (siehe # Runbook §6.4). Auf macOS/Docker-Desktop wird host-networking NICHT unterstützt # — dort gilt weiterhin die Dev-Compose mit explizitem Port-Mapping. # ───────────────────────────────────────────────────────────────────────────── services: livekit: image: livekit/livekit-server:latest restart: unless-stopped network_mode: host command: ["--config", "/etc/livekit.yaml"] volumes: - ./livekit.yaml:/etc/livekit.yaml:ro turn: image: coturn/coturn:4.6 restart: unless-stopped network_mode: host # Prod: vollständige turnserver.conf statt der Dev-CLI-Flags. Diese Datei # aktiviert TURNS auf 5349 mit dem Zertifikat für turn.netralax.de. command: ["-c", "/etc/coturn/turnserver.conf"] volumes: - ./coturn.conf:/etc/coturn/turnserver.conf:ro # TLS-Material für turn.netralax.de. coturn.conf verweist mit # cert=/etc/letsencrypt/live/turn.netralax.de/fullchain.pem (und privkey) # auf genau diese Pfade — daher /etc/letsencrypt read-only einhängen. - /etc/letsencrypt:/etc/letsencrypt:ro