Nextcloud, Talk, Coturn und Let’s Encrypt

Die Nextcloud-App Talk bietet die Möglichkeit, auf einfache Weise Chat als auch Audio- und Video-Anrufe zu integrieren. Möchte man dies nur im eigenen LAN verwenden, ist es mit der Installation und der Aktivierung der App bereits getan. Sollen z.B. die Smartphones auch außerhalb des LAN Audio- und Video-Telefonie nutzen, so wird ein STUN-/TURN-Server benötigt.

Vorausgesetzt wird ein bereits installierter LAMP mit Nextcloud und Let’s Encrypt (Certbot), so das nur noch der STUN-/TURN-Server fehlt.

Eigentlich ist alles zur Einrichtung von Coturn und Nextcloud in diesen beiden Anleitungen bereits gesagt worden:

Nextcloud – Help – HowTo: Setup Nextcloud Talk with TURN server

DECATEC – Nextcloud Talk mit eigenem TURN-Server (coturn)

Unter Debian installiert man Coturn einfach via

apt install coturn

Damit dieser bei jedem Boot automatisch startet noch folgendes Ausführen:

nano /etc/default/coturn

TURNSERVER_ENABLED=1

Anschließend passt man die Konfigurationsdatei unter

/etc/turnserver.conf

den eigenen Bedürfnissen an.

tls-listening-port=5349
fingerprint
lt-cred-mech
use-auth-secret
static-auth-secret=<Geheimnis>
realm=domain.tld
total-quota=100
bps-capacity=0
stale-nonce
cert=/etc/letsencrypt/live/domain.tld/fullchain.pem
pkey=/etc/letsencrypt/live/domain.tld/privkey.pem
cipher-list="ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AES:RSA+3DES:!ADH:!AECDH:!MD5"
no-loopback-peers
no-multicast-peers

Nun startet man den Daemon neu:

service coturn restart

Nextcloud Talk für eigenen STUN/TURN-Server konfigurieren

  • Als Administrator an Nextcloud anmelden.
  • Zu „Einstellungen – Talk“ wechseln.
  • Im Abschnitt „STUN-Server“ den eigenen Nextcloud-Server hinterlegen.
  • Im Abschnitt „TURN-Server“ den eigenen Coturn-Server samt gemeinsamen Geheimnis hinterlegen.

Let’s Encrypt Renewal und Coturn

Damit Coturn etwas von der Erneuerung des Let’s Encrypt-Zertifikats mitbekommt, sollte in Certbot bei erfolgreichem Durchlauf ein Neustart des Daemons hinterlegt werden:

Unter

/etc/letsencrypt/renewal-hooks/deploy

ein Shell-Script mit folgendem Inhalt anlegen:

#!/bin/bash

service coturn restart

Das Skript ausführbar machen:

chmod +x /etc/letsencrypt/renewal-hooks/deploy/coturn.sh

Troubleshooting

Geht die Performance von Nextcloud nach der Aktivierung von Talk in die Knie, liegt das dem Anschein nach an einer bestimmten Kombi aus Apache, PHP und dessen Einbindung. Abhilfe schafft die Umstellung auf php-fpm.

Unter Debian gelingt dies ganz simple mit

apt install libapache2-mod-php
service apache2 restart

Quellen:

Certbot – Docs – USer Guide – Renewing Certificates

GitHub – nextcloud – spreed – Performance is bad while calling

ubuntuusers – Wiki – Bash-Skripting-Guide für Anfänger

Update 26.03.2020

Aktuell bin ich kein Nextcloud-Talk Anwender. Bei einem schnellem Versuch auf meiner NextcloudPi-Installation (VM) konnte allerdings von Performance keine Rede sein. Das war laufen wenn es nicht stehen ist. Kurzfristig lösbar war es leider nicht, aber evtl. hilft folgendes anderen:

HTTP/2 macht wohl schwierigen, also besser abschalten:

a2dismod http2service apache2 restart

Quelle: Nextcloud Talk is really slow when using HTTP2#2211

Und wieder http2 in Verbindung mit mpm_prefork, daher besser mpm_event verwenden:

a2dismod mpm_prefork
a2enmod mpm_event
service apache2 restart

Quelle: Document system requirements #3139

Leider führten alle Schritte in diesem Update dazu, das der Apache nicht mehr startete. Unguterweise stand nichts in den Logs zum Grund, also woran es nun hängt. Daher und aus zeitlichen Gründen habe ich das jetzt erstmal bleiben gelassen.

8 Kommentare

  • Hallo,

    ich bekmme keine Verbindung wenn ich von Android auf Desktop telefonierenn möchte.
    Es macht kein Unterschied ob ich innnerhlab oder außerhalb des gleichen Netzwerks bin.

    An was könnte das liegen?

  • Da es innerhalb des LANs schon nicht funktioniert würde ich zuerst auf Firewall tippen.
    Parallel dazu das Nextcloud prüfen, was dort ggf. vermerkt ist.
    Zunächst mal ohne STUN/TURN testen.

  • Habe noch vergessen zu erwähnen das die Verbindung zwischen zwei Desktop Clients sowohl innerhalb als auch außerhalb ohne Probleme funktioniert

  • Gibt es zwischen Android und dem Desktop auch innerhalb des (W)LANs (auch ohne STUN/TURN) keine Verbindung?
    Funktioniert es nur in eine Richtung nicht, also z.B. Video wird nur bei einem angezeigt?

  • Hallo, vielen Dank für deine Antwort.
    Habe den Fehler gefunden:
    Habe auf meinem Smartphone ein openVPN Client installiert (damit ich unterwegs über mein LAN surfen kann), in OpenVPN war die Verbindung getrennt, in den Android Verbindungseinstellungen war die Verbindung allerdings noch aktiv, daran lag es.

    Sorry für Unannehmlichkeiten.

  • Hallo Andy,
    ich will dich nicht nerven zumal du auch nicht der support von nextcloud bist. Suche eine simple Antwort auf folgende Frage: Ich möchte nextcloud talk beruflich mit Kunden verwenden. Mit einem Freund, der es auch auf seinem Server hat funktioniert die Kommunikation. (beide haben es am desktop).
    Ist es realistisch anzunehmen, dass ich mit nextcloud talk z.B. auch mit jemandem videotelefonieren kann, dem ich nur den Link zugeschickt hab – jemand der es nicht installiert hat? Ich meine ohne Stun/Turn und andere Veränderungen, die vermutlich nur mein Provider einrichten kann. Diese einfache Frage kann ich nirgends beantwortet finden bzw. kann nicht so gut Fachenglisch dazu.

    PS: Ist diese Seite etwa auch eine Drupal Site? (wie meine)

  • Hallo Martin,

    um ehrlich zu sein bin ich nicht sicher, ob es mit „Gästen“ funktioniert.
    An manchen Stellen liest es sich so reaus, als ob das funktionieren sollte.
    Beispielsweise wird das mit „external participants“ im YouTube-Video erwähnt:

    Introduction to Nextcloud Talk

    Bis dato getestet habe ich Nextcloud Talk nur zwischen Nextcloud-Benutzern.

    Im LAN benötigt man keinen STUN-/TURN-Server, wenn es auch über das offene Internet funktionieren soll, dann wird das benötigt, allerdings nur auf der Server-Seite, wobei das nicht zwingend auf dem Nextcloud-Server laufen muss.
    Es muss also nicht jeder Teilnehmer einen STUN-/TURN-Server installiert haben.

    > PS: Ist diese Seite etwa auch eine Drupal Site? (wie meine)

    Nein, WordPress.

  • OK, dann dank dir. STUN/TURN könnte demnach auch auf meinem PC laufen wenn ich es recht verstanden habe. Nun, das ist mir zu aufwändig.
    Liebe Grüße aus Ö,
    Martin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.