From 55dd4c2fd8d4c8a4a671331598c9ad0bc7ab8f90 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 13 Aug 2026 18:05:06 +0000 Subject: [PATCH] docs: create betrieb/turn-server --- betrieb/turn-server.md | 63 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 betrieb/turn-server.md diff --git a/betrieb/turn-server.md b/betrieb/turn-server.md new file mode 100644 index 0000000..f148e21 --- /dev/null +++ b/betrieb/turn-server.md @@ -0,0 +1,63 @@ +--- +title: TURN Server +description: coturn für WebRTC-Video-Calls +published: true +date: 2026-08-13T18:05:00.737Z +tags: +editor: markdown +dateCreated: 2026-08-13T18:05:00.737Z +--- + +**Status**: ✅ Vollständig deployed +**Domain**: `turn.axion1337.chat` +**Public IP**: `49.13.132.245` + +## Problem & Lösung + +Videocalls scheitern mit DTLS-Timeout bei Clients hinter NAT/Firewall. **Lösung**: coturn als TURN-Relay. + +## Architektur + +Client A ──→ coturn (turn.axion1337.chat) ──→ Client B + +- **Ports**: 3478/udp, 3478/tcp, 5349/tcp, 49152-65535/udp +- **Auth**: HMAC-basiert mit Shared Secret zwischen coturn + Synapse +- **Deployment**: K3S Deployment mit `hostNetwork: true` + +## Dateien (in `apps/production/`) + +| Datei | Inhalt | +|-------|--------| +| `coturn.yaml` | ConfigMap + Deployment + Service | +| `coturn-secret.yaml` | SOPS-Secret: `TURN_SECRET` | +| `synapse-turn-secret.yaml` | SOPS-Secret: TURN URIs + shared secret für Synapse (seit 2026-07-28, vorher fälschlich im Klartext in `custom-configs/synapse-values.yaml` - siehe Issue #38) | +| `turn-secret-rotation-secret.yaml` + `turn-secret-rotation.yaml` | Monatlicher automatisierter Rotations-CronJob (Issue #38) - eigener gescopter age-Key, öffnet PR statt direkt zu pushen | +| `matrix-certificates.yaml` | cert-manager Cert für `turn.axion1337.chat` | + +## DNS & Firewall (manuell) + +``` +DNS A-Record: turn.axion1337.chat → 49.13.132.245 + +Firewall (K3S Host): +ufw allow 3478/udp +ufw allow 3478/tcp +ufw allow 5349/tcp +ufw allow 49152:65535/udp +``` + +## Verifikation + +```bash +# Pod läuft? +kubectl get pods -n matrix -l app=coturn + +# Certificate ready? +kubectl get certificate -n matrix | grep turn + +# Extern testen +docker run -it instrumentisto/coturn \ + turnutils_uclient -v -T -u test -w test turn.axion1337.chat +``` + +**Weitere Details**: Siehe vollständige Dokumentation oben.