Nextcloud Talk – High Performance Backend
Überblick
- Verwendetes System: Ubuntu 20.04 64 bit
- Reverse Proxy: Apache Webserver
- Zeitdauer: 10 – 15 Minuten
- Voraussetzungen:
- Bestehende Nextcloud Instanz für die Verwendung von Talk
- Installierter Docker Daemon
Nextcloud High Performance Back-End installieren
Einleitung
Das Nextcloud High Performance Back End (HPBE) ermöglicht die Durchführung größerer Videokonferenzen mit einer höheren Teilnehmerzahl. Bis vor Kurzem war diese Software ausschließlich zahlenden Kunden vorbehalten. Jetzt ist sie jedoch unter einer Open-Source-Lizenz verfügbar.
Aktuelle Version von git downloaden
Zuerst laden wir die neueste Version von Git herunter und installieren Git anschließend auf unserem Server.
apt-get install git
Im Anschluss führen wir die folgenden Befehle aus:
mkdir /private/docker/ -p
cd /private/docker/
git clone https://github.com/strukturag/nextcloud-spreed-signaling.git nextcloud-hpbe
cd nextcloud-hpbe
Nach kurzer Zeit ist die neueste Version auf eurem Server installiert. Jetzt müssen noch einige Dateien angepasst werden.
Passwörter generieren
Nun 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
Hashkey: openssl rand -base64 16
Blockkey: openssl rand -base64 16
API-Key: openssl rand -base64 16
SHARED-SECRET: openssl rand -hex 16
STATIC-SECRET: openssl rand -hex 32
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/docker-compose.yml
Nun kopiert ihr den folgenden Code in die Datei. Dieser Code dient als Bauplan für den Nextcloud HPBE Container.
version: '3'
services:
spreedbackend:
build:
context: .
dockerfile: docker/server/Dockerfile
container_name: spreedbackend
volumes:
- ./server.conf:/config/server.conf
restart: unless-stopped
depends_on:
- nats
- janus
- coturn
ports:
- 127.0.0.1:9090:8080
networks:
- proxy
nats:
image: nats:2.2.1
container_name: nats
volumes:
- ./gnatsd.conf:/config/gnatsd.conf
command: ["-c", "/config/gnatsd.conf"]
restart: unless-stopped
networks:
- proxy
janus:
build: docker/janus
container_name: janus
command: ["janus", "--full-trickle"]
restart: unless-stopped
networks:
- proxy
coturn:
image: coturn/coturn:latest
container_name: coturn
networks:
- proxy
environment:
REALM: signal.euredomain.de
STATIC_SECRET: <STATIC SECRET>
restart: unless-stopped
ports:
- "3478:3478/tcp"
- "3478:3478/udp"
networks:
proxy:
external: true
Ersetzt dort den REALM sowie die in „<>“ eingeschlossenen Keys mit den zuvor erstellten Werten.
server.conf anlegen
Jetzt erstellen wir eine neue Konfigurationsdatei. Ich lege solche Dateien gerne in Docker Volumes ab, da diese so automatisch in mein Backup integriert werden. Gebt dazu folgenden Befehl ein:
docker volume create nchp
/var/lib/docker/volumes/nchpba/_data/server.conf
Hier kopiert ihr folgenden Code hinein:
[http]
listen = spreedbackend:8080
[app]
debug = false
[sessions]
hashkey = <Hashkey>
blockkey = <Blockkey>
[backend]
backends = backend-1 #Hier kommen weitere Server hin backend-1, backend-2, backend-3
allowall = false
timeout = 10
connectionsperhost = 8
[backend-1]
url = https://nextcloud.gnilebein.de
secret = <SHARED-SECRET>
#[backend-2]
#url = https://nextcloud2.example.com
#secret = openssl rand -hex 16
#[backend-3]
#url = https://nextcloud3.example.com
#secret = openssl rand -hex 16
[nats]
url = nats://nats:4222
[mcu]
type = janus
url = ws://janus:8188
[turn]
apikey = <API-Key>
secret = <STATIC-SECRET>
servers = turn:coturn:3478?transport=udp,turn:coturn:3478?transport=tcp
Ersetzt auch hier die in „<>“ eingeschlossenen Secrets sowie die URLs der erlaubten Quellen. Speichert anschließend die Datei und passt die Berechtigungen mit folgendem Befehl an:
chmod 644 server.conf
Docker Image erstellen
Nun lassen wir unseren Server die Images erstellen. Gebt dazu folgenden Befehl ein:
docker compose build
Je nach Leistung eures Servers kann dies einige Minuten dauern.
HPBE starten
Gebt nun folgenden Befehl ein, um den HPBE-Container zu starten:
docker compose -f /private/docker/nextcloud-hpbe/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:9090/"
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:9090/api/$1 [L,P]
Damit diese aktiv wird ist ein Neustart des Apache Webservers notwendig:
systemctl restart apache2.service
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!