Nextcloud Talk – High Performance Backend II

Überblick

  • Verwendetes System: Ubuntu 20.04 64 bit
  • Reverse Proxy: Apache Webserver
  • Zeitdauer: 10 Minuten
  • Voraussetzungen:
    • Bestehende Nextcloud Instanz für die Verwendung von Talk
    • Installierter Docker Daemon inkl. Docker Compose

Einleitung

In meinem Artikel Nextcloud Talk – High Performance Backend habe ich beschrieben, wie man das Backend installieren kann. Allerdings hatte ich dabei immer wieder Probleme: Nutzer wurden aus Meetings geworfen, und es kam häufig zu Verbindungsabbrüchen.

Auf der Suche nach einer Alternative bin ich auf Nextcloud AIO gestoßen. Dieses Projekt ermöglicht eine einfache Installation aller Nextcloud-Komponenten über Docker – unkompliziert und schnell. Für meine Zwecke nutze ich jedoch ausschließlich den Container, der für Nextcloud Talk erforderlich ist.

Passwörter generieren

Auch in diesem Setup gilt es, einige Passwörter für unseren Server zu erstellen. Verwendet die folgenden Befehle, um die Kennwörter zu generieren, und speichert sie anschließend in einem Textdokument. Ihr benötigt diese Passwörter später für die Konfiguration.

TURN_SECRET: openssl rand -hex 32
SIGNALING_SECRET: openssl rand -hex 32
INTERNAL_SECRET: openssl rand -hex 32

Notwendige Verzeichnisse anlegen

Im Anschluss führen wir die folgenden Befehle aus:

mkdir /private/docker/nextcloud-hpbe-aio -p
cd /private/docker/nextcloud-hpbe-aio

docker-compose.yml erstellen

Jetzt können wir mit der eigentlichen Installation von Nextcloud HPBE beginnen. Öffnet dazu die folgende Datei:

nano /private/docker/nextcloud-hpbe-aio/docker-compose.yml

Nun kopiert ihr den folgenden Code in die Datei. Dieser Code dient als Bauplan für den Nextcloud HPBE Container.

name: 'hpb'

services:

nc-talk:
container_name: talk_hpb
image: nextcloud/aio-talk:latest
init: true
ports:
- 3478:3478/tcp
- 3478:3478/udp
- 8181:8081/tcp
environment:
- NC_DOMAIN=cloud.yourdomain.tld
- TALK_HOST=mysignal.mydomain.tld
- TURN_SECRET=<TURN_SECRET>
- SIGNALING_SECRET=<SIGNALING_SECRET>
- TZ=Europe/Berlin
- TALK_PORT=3478
- INTERNAL_SECRET=<INTERNAL_SECRET>
restart: unless-stopped

Ersetzt dort die beiden Domainnamen und die in „<>“ eingeschlossenen Keys mit den zuvor erstellten Werten.

HPBE starten

Gebt nun folgenden Befehl ein, um den HPBE-Container zu starten:

docker compose -f /private/docker/nextcloud-hpbe-aio/docker-compose.yml up -d

Apache als Reverse Proxy konfigurieren

Ich verwende einen Apache Webserver als Reverse Proxy. Für die Nutzung mit dem Nextcloud Talk High Performance Backend müssen einige Proxy-Module aktiviert werden.

a2enmod proxy proxy_http proxy_wstunnel

Zum Schluss muss die passende vHost Konfiguration um folgendes Snippet erweitert werden:

# Enable proxying Websocket requests to the standalone signaling server.
ProxyPass "/standalone-signaling/" "ws://127.0.0.1:8181/"

RewriteEngine On
# Websocket connections from the clients.
RewriteRule ^/standalone-signaling/spreed$ - [L]
# Backend connections from Nextcloud.
RewriteRule ^/standalone-signaling/api/(.*) http://127.0.0.1:8181/api/$1 [L,P]

Damit diese aktiv wird ist ein Neustart des Apache Webservers notwendig:

systemctl restart apache2.service 

Nextcloud Konfiguration

Folgende Einstellungen sind in der Nextcloud zu tätigen:

  • Hochleistungs-Backend
    • Hochleistungs-Backend-URL: https://mysignal.mydomain.tld/standalone-signaling/
    • Gemeinsames Geheimnis: <SIGNALING_SECRET>
  • STUN-Server: mysignal.mydomain.tld:3478
  • TURN-Server
    • TURN-Server-URL: mysignal.mydomain.tld:3478
    • TURN-Server-Secret: <TURN_SECRET>

Ersetzt dort die beiden Domainnamen und die in „<>“ eingeschlossenen Keys mit den zuvor erstellten Werten.

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

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