# 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

Lars.Weiss@gmail.com?l|Lars Weiß Lars Weiß 04.06.2025 11:27