# Nextcloud Talk Hochleistungs-Backend (Signaling + TURN) – Docker Setup ## Übersicht Dieses Setup beinhaltet die vollständige Konfiguration für das Hochleistungs-Backend von Nextcloud Talk: - Signaling Server (spreed-signaling) - Coturn (TURN/STUN) - Reverse Proxy via Traefik - SSL via Let's Encrypt --- ## Docker-Verzeichnisstruktur (`/opt/docker/talk`) ``` docker-compose.yml server.conf # Signaling Config turnserver.conf # Coturn Config ``` --- ## docker-compose.yml ```yaml version: "3.8" services: signaling: image: strukturag/nextcloud-spreed-signaling container_name: signaling restart: unless-stopped ports: - "8080:8080" volumes: - ./server.conf:/config/server.conf networks: - docker_backend environment: - DOMAIN=talk.example.org - SIGNALING_SECRET=SuperSecret123 - NATS_ENABLED=false labels: - "traefik.enable=true" - "traefik.http.routers.talk.rule=Host(`talk.example.org`)" - "traefik.http.routers.talk.entrypoints=websecure" - "traefik.http.routers.talk.tls.certresolver=le" - "traefik.http.services.talk.loadbalancer.server.port=8080" - "traefik.docker.network=docker_backend" coturn: image: instrumentisto/coturn restart: always networks: - docker_backend ports: - "3478:3478/udp" - "3478:3478" volumes: - ./turnserver.conf:/etc/coturn/turnserver.conf command: ["-c", "/etc/coturn/turnserver.conf"] networks: docker_backend: external: true ``` --- ## server.conf (Signaling) ```ini listen = 0.0.0.0:8080 tls_listen = 0.0.0.0:8443 tls = false shared-secret = SuperSecret123 http-origin = * nats-enabled = false ``` --- ## turnserver.conf (Coturn) ```ini listening-port=3478 fingerprint use-auth-secret static-auth-secret=SuperSecret123 realm=talk.example.org total-quota=100 bps-capacity=0 stale-nonce no-loopback-peers no-multicast-peers cli-password=SuperSecret123 ``` --- ## Bekannte Fehlerquellen & Lösungen | Fehlerbild | Ursache | Lösung | |-----------|---------|--------| | `502 Bad Gateway` | Signaling nicht gestartet oder crashed | Volume prüfen, Config korrekt referenziert (`/config/server.conf`) | | `Could not create connection (nats: no servers...)` | Default NATS-Loopback aktiv | Setze `nats-enabled = false` in der `server.conf` | | `Connection refused` auf Port 8080 | Container hat Config nicht geladen | `docker exec -it signaling cat /config/server.conf` prüfen | | Coturn TLS-Zertifikatsfehler | Datei nicht vorhanden | Coturn nicht mit TLS starten oder TLS über Traefik absichern | | Docker `restarting` Loop | Falscher Pfad in Volume-Zuweisung | `volumes:`-Abschnitte prüfen auf absolute vs. relative Pfade | | `/healthz` liefert 404 | Endpoint existiert nicht bei diesem Image | Ist normal, keine Problemquelle | --- ## Test-URLs ```bash # Signaling curl -vk https://talk.example.org # TURN echo "Test" | openssl s_client -connect talk.example.org:3478 ``` --- ## Nützliche Zusatzbefehle ```bash # Container Logs docker logs -f signaling docker exec -it signaling sh # curl intern im Container apk add curl curl -v http://127.0.0.1:8080/ ``` --- ## Empfehlung für Backup Erstelle regelmäßig ein Backup dieser Dateien: - `docker-compose.yml` - `server.conf` - `turnserver.conf` - `.env` falls vorhanden --- {{avatar>lars|Lars.Weiss@gmail.com?l|Lars Weiß}} //[[Lars.Weiss@gmail.com|Lars Weiß]] 04.06.2025 11:27//