# TURN Server (coturn) für WebRTC Video-Calls

**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` |
| `custom-configs/synapse-values.yaml` | TURN URIs + shared secret |
| `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.
