# [Anleitung] STUN- & TURN-Server (Coturn) für Nextcloud via Docker Compose einrichten
Hallo zusammen,
wer über seine Nextcloud (z. B. Nextcloud Talk) Audio- und Videoanrufe tätigen möchte, stößt oft auf das Problem, dass Verbindungen zwischen Teilnehmern hinter unterschiedlichen Routern (NAT/Firewalls) fehlschlagen. Hier schafft ein eigener **STUN- (Session Traversal Utilities for NAT)** und **TURN- (Traversal Using Relays around NAT)** Server Abhilfe. Er fungiert als intelligentes Relay, damit Gespräche weltweit stabil aufgebaut werden können.
Hier ist das fertige Docker Compose Setup für euren eigenen STUN/TURN-Server – komplett anonymisiert, im
host-Netzwerkmodus und für den Live-Einsatz optimiert.
### ⚠️ Wichtige Vorbereitung vor dem Kopieren:
Da ein TURN-Server die echten Netzwerkports des Servers verwalten muss, läuft dieser Container im
network_mode: host. Achtet darauf, dass die Pfade zu euren SSL-Zertifikaten (z. B. Let's Encrypt) auf eurem Host existieren und passt den Platzhalter
deine-domain.de im
REALM und den Pfaden auf eure tatsächliche Domain an. Die Zertifikatsdateien müssen für den Container lesbar sein.
---
### Der Docker Compose Stack
yaml
version: '3.8'
services:
# Der STUN- und TURN-Server für die Nextcloud Talk Telefonie
stun-turn-server:
image: ich777/stun-turn-server:latest
container_name: Stun-und-Turn-Server
restart: always
network_mode: host # Nutzt direkt das Host-Netzwerk des Servers für maximale Performance
environment:
- TURN_PORT=3478 # Standard-Port für unverschlüsseltes STUN/TURN
- TURN_TLS_PORT=5349 # Standard-Port für verschlüsseltes TURN (TLS)
# REALM: Bestimmt die Domain der Instanz, damit der Schlüssel dauerhaft stabil bleibt
- REALM=deine-domain.de # <--- HIER DEINE MAIN-DOMAIN EINTRAGEN!
- USE_TLS=true # Aktiviert die sichere TLS-Verschlüsselung für Telefonate
volumes:
- coturn_config:/serverdata # Konfigurationsdaten des Servers
# SSL-ZERTIFIKATE: Bindet eure vorhandenen Zertifikate direkt ein.
# WICHTIG: Ohne ':ro' am Ende, damit das Image die internen Berechtigungen korrekt setzen darf!
- /etc/letsencrypt/live/deine-domain.de/fullchain.pem:/serverdata/cert.pem # <--- PFAD ZUM SSL-ZERTIFIKAT ANPASSEN!
- /etc/letsencrypt/live/deine-domain.de/privkey.pem:/serverdata/privkey.pem # <--- PFAD ZUM PRIVATEN SCHLÜSSEL ANPASSEN!
volumes:
coturn_config:
---
### ⚙️ Einbindung in Nextcloud Talk
Sobald der Container läuft, müsst ihr die Verbindung in eurer Nextcloud hinterlegen. Geht dazu als Admin auf **Verwaltungseinstellungen** ➡️ **Talk** und tragt eure Daten in die entsprechenden Felder ein:
#### 1. STUN-Server hinzufügen:
* **Server:**
deine-domain.de:3478 *(oder Port 5349 für TLS)*
#### 2. TURN-Server hinzufügen:
* **Server:**
deine-domain.de:5349
* **Protokoll:**
udp und tcp *(udp wird dringend empfohlen)*
* **Geheimnis / Secret:** Das generierte Geheimnis findet ihr nach dem ersten Start im Docker-Volume in der Datei
/serverdata/turnserver.conf unter dem Eintrag
static-auth-secret=.... Kopiert diesen Schlüssel und fügt ihn in Nextcloud ein.
***