Wähle einen Artikel
Nextcloud Talk auf vServer installieren
Nextcloud Talk auf vServer installieren

VPS von dogado - gehostet in Deutschland

Behalte die Kontrolle über deinen vServer/VPS und steuere deine Online-Präsenz souverän. Profitiere von Hochgeschwindigkeits-NVME-SSDs, die bis zu 6-mal schneller sind als herkömmliche.

Server-Racks mit blauer Beleuchtung, Frontpaneele mit Laufwerkschächten, Lüftungsgitter und Netzwerkausrüstung.

0. Überblick

Systemvoraussetzungen

Für 150 Benutzer werden folgende minimale Systemvoraussetzungen (https://portal.nextcloud.com/article/Nextcloud-Talk/High-Performance-Backend/Requirements) angegeben:

  • 8 GB RAM
  • 32 GB Festplatte
  • 4 CPU-Kerne

1. Was ist das Nextcloud High Performance Back End?

1.1 Einleitung

Das Nextcloud High Performance Back End (HPBE) ermöglicht es euch, Videokonferenzen und Chats mit einer großen Teilnehmerzahl direkt in eurer Nextcloud durchzuführen. Allein mit Nextcloud wäre das so nicht möglich, da jeder Teilnehmer sein Video an alle anderen Teilnehmer schickt, was schnell zu einer Überlastung führt. HPBE stellt hier einen zentralen Punkt bereit, der das Video entgegennimmt und an alle Teilnehmer verteilt.

1.2 Infos zu yml-Dateien

Bei yml-Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Ihr könnt den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator

1.3 Auflistung aller HPBE-Dienste

Das Hochleistungs-Backend besteht aus mehreren Diensten, welche alle in einem Container bereitgestellt werden. Dieser „Nextcloud All-in-One“-Container (https://github.com/nextcloud/all-in-one) wird direkt durch Nextcloud bereitgestellt und gewartet. Folgende Dienste nutzen wir zur Realisierung:

DienstFunktion
SignalisierungsserverDient als Vermittler zwischen Nextcloud und den Nutzern.
JanusNimmt alle Video- und Audioinhalte entgegen und verteilt sie an alle Teilnehmer.
NATSDient zur internen Kommunikation zwischen den Diensten.
eturnalStellt einen TURN- und STUN-Server bereit, der Verbindungen von Teilnehmern durch Firewalls leitet.

2. Vorbereitung

Diese Anleitung basiert auf dem aktuellen Debian-13-Betriebssystem. HPBE werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.

Um HPBE neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik. Die Anleitung dazu findet ihr hier: https://www.dogado.de/vps/vserver-anwendungsfaelle/traefik-reverseproxy-auf-vserver-installieren

2.1 Firewall-Ports freigeben

Der TURN-Server benötigt den Port 3478 TCP / UDP, damit dieser korrekt funktioniert. Diesen müsst ihr auf eurer Firewall freigeben. Solltet ihr die UFW-Firewall verwenden, so gebt ihr Folgendes ein:

ufw allow 3478/tcp
ufw allow 3478/udp

Die Ports 80 und 443 benötigt ihr für Traefik. Gebt diese ebenfalls frei:

ufw allow 80/tcp
ufw allow 443/tcp

2.2 Verzeichnis anlegen

Nun legt ihr das Verzeichnis an, in dem sich später die Konfiguration für HPBE befindet:

mkdir -p /opt/containers/nextcloud-hpbe

2.3 Domain und Schlüssel festlegen

Damit das HPBE korrekt funktioniert, benötigt es die Domain eurer aktuellen Nextcloud-Instanz, eine eigene Domain sowie drei zufällige Schlüssel. Nachfolgendes Skript erstellt diese für euch:

read -rp "Domain eurer Nextcloud (z. B. nextcloud.euredomain.de): " NC_DOMAIN && \
read -rp "Domain des Hochleistungs-Backends (z. B. signal.euredomain.de): " TALK_DOMAIN && \
cat > /opt/containers/nextcloud-hpbe/.env << EOF && chmod 600 /opt/containers/nextcloud-hpbe/.env
NC_DOMAIN=${NC_DOMAIN}
TALK_DOMAIN=${TALK_DOMAIN}
TURN_SECRET=$(openssl rand -hex 32)
SIGNALING_SECRET=$(openssl rand -hex 32)
INTERNAL_SECRET=$(openssl rand -hex 32)
EOF

Gebt bei der Domain nicht „https“ ein, sondern nur die eigentliche Domain. So sieht der Dialog bei mir aus:

Linux-Terminal mit Root-Prompt; zeigt Bash-Befehle und Umgebungsvariablen (TALK_DOMAIN, NEXTCLOUD_DOMAIN).

Anschließend kontrolliert ihr, ob die Konfigurationsdatei korrekt erstellt wurde. Gebt dazu Folgendes ein:

cat /opt/containers/nextcloud-hpbe/.env

Ihr solltet nun eine solche Ausgabe sehen:

NC_DOMAIN=nextcloud.testbereich.net
TALK_DOMAIN=signal.testbereich.net
TURN_SECRET=06e82ee00ccdc04884199d01882a39e31c8954bbfaccadcd1e01309124b51cfc
SIGNALING_SECRET=60a7fc62dd2d2444cc9114356388fbaa7acc209399a0ef390e6f56cbafb7a9a8
INTERNAL_SECRET=a306c491d185ffed4760425e1a1171077a5d3504e6bf7fe5e5bb9c12097c6cab

2.4 Docker Compose anlegen

Nun erstellt ihr den eigentlichen Server:

nano /opt/containers/nextcloud-hpbe/docker-compose.yml

Inhalt:

services:
  talk-hpb:
    image: ghcr.io/nextcloud-releases/aio-talk:latest
    container_name: nextcloud-hpbe
    restart: unless-stopped
    init: true
    environment:
      NC_DOMAIN: ${NC_DOMAIN}
      TALK_HOST: ${TALK_DOMAIN}
      TURN_DOMAIN: ${TALK_DOMAIN}
      TALK_PORT: 3478
      TURN_SECRET: ${TURN_SECRET}
      SIGNALING_SECRET: ${SIGNALING_SECRET}
      INTERNAL_SECRET: ${INTERNAL_SECRET}
      TZ: Europe/Berlin
    ports:
      - "3478:3478/tcp"
      - "3478:3478/udp"
    networks:
      - proxy
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.talk-hpb.rule=Host(`${TALK_DOMAIN}`)"
      - "traefik.http.routers.talk-hpb.entrypoints=websecure"
      - "traefik.http.services.talk-hpb.loadbalancer.server.port=8081"

networks:
  proxy:
    external: true

Hier müsst ihr nichts ändern, da die Docker-Compose-Datei sich alle Parameter aus der zuvor erstellten Konfigurationsdatei zieht.

3. Nextcloud HPBE starten

Startet nun euren HPBE-Server:

cd /opt/containers/nextcloud-hpbe/
docker compose up -d

4. Funktion testen

Wartet nun eine Minute. Um zu verifizieren, ob der Container korrekt läuft, gebt ihr Folgendes ein:

docker compose ps

Dort solltet ihr nun Folgendes sehen:

Terminalfenster zeigt docker ps-Ausgabe mit Spalten CONTAINER ID, IMAGE, COMMAND, CREATED, STATUS, PORTS, NAMES.

Wichtig ist, dass bei STATUS „Up“ und „healthy“ steht. Anschließend prüfen wir die Erreichbarkeit. Gebt dazu Folgendes ein:

curl https://signal.euredomain.de/api/v1/welcome

Hier müsst ihr die Domain auf eure Domain abändern. Ihr solltet dann solch eine Antwort bekommen:

{"nextcloud-spreed-signaling":"Welcome","version":"2.1.1~docker"}

Jetzt haben wir sichergestellt, dass der HPBE-Dienst von außen erreichbar ist.

5. Nextcloud-Talk-App installieren

Meldet euch nun als Administrator auf eurer Nextcloud-Instanz an. Anschließend klickt ihr auf „Apps“.

Offenes Menü auf blauem Hintergrund; Optionen: Status setzen, Aussehen und Barrierefreiheit, Apps (+, hervorgehoben), Konten.

Gebt hier nun oben links ins Suchfeld „talk“ ein. Hier solltet ihr nun die „Talk“-App finden und mit einem Klick installieren können. Es kann auch sein, dass diese App bereits bei euch installiert ist. In dem Fall müsst ihr sie nicht neu installieren.

Screenshot einer Suchergebnisseite für Apps; linke Navigation, rechte Liste; die App 'Talk' ist orange markiert.

Abschließend prüft ihr noch, ob HPBE eure Nextcloud-Instanz erreichen kann. Ändert bei nachfolgendem Befehl eure Domain entsprechend ab:

docker exec nextcloud-hpbe wget -qO- --header "OCS-APIRequest: true" --header "Accept: application/json" https://nextcloud.euredomain.de/ocs/v2.php/cloud/capabilities | grep -o '"hello-v2-token-key":"[^"]\{40\}'

Wenn alles korrekt ist, solltet ihr folgende Ausgabe sehen:

Terminalfenster mit dunklem Hintergrund und mehrzeiligem, farbigem Text; Eingabeaufforderung sichtbar.

Sollte der Befehl nichts ausgeben, so brecht ihn mittels STRG+C ab. In diesem Fall prüft bitte in Kapitel 2.1, dass ihr die Ports korrekt freigegeben habt.

6. Nextcloud-Talk-App mit HPBE verbinden

In diesem Schritt verbinden wir die Nextcloud-Instanz mit unserer zuvor erstellten Nextcloud-HPBE-Instanz. Dazu klickt ihr auf euer Profil und wählt „Administrationseinstellungen“ aus:

Weißes Menü mit test; Status setzen, grüner Haken; Aussehen, Persönliche Einstellungen, Button, Apps, Konten, Informationen.

Scrollt nun auf der linken Seite nach unten, bis ihr „Talk“ findet:

Vertikales Seitenmenü mit Symbolen; Einträge: AppAPI, Administrationsrechte, Aktivität, Benachrichtigungen, Talk (orange Umrandung).

Jetzt solltet ihr Folgendes sehen:

Administrationsoberfläche: gelber Hinweisbanner, blaue Buttons; Text zur Talk-Einrichtung und Backend-Server hinzufügen.

Klickt nun auf „Hochleistungs-Backend-Server hinzufügen“. Anschließend erscheint folgender Dialog:

UI-Panel: Titel Hochleistungs-Backend, kurzer Text, Felder Hochleistungs-Backend-URL und Geteiltes Geheimnis, SSL-Check.

Diese Daten lassen wir uns auf unserem Server anzeigen. Dies hilft auch Tippfehler zu vermeiden, da ihr sie dann einfach kopieren könnt:

cat /opt/containers/nextcloud-hpbe/.env

Hier seht ihr nun Folgendes. Die beiden wichtigen Parameter habe ich markiert:

Terminalanzeige; .env-Datei sichtbar, orange markierte Zeilen: SIGNING SECRET und langer Hex-Wert.

Ihr braucht Folgendes:

  • Hochleistungs-Backend-URL = https:// + TALK_DOMAIN
  • Geteiltes Geheimnis = SIGNALING_SECRET

Achtet bei der Domain darauf, dass ihr vor der Domain noch „https://“ schreibt. Anschließend sollte es so bei euch aussehen, wenn alles funktioniert hat:

Screenshot eines Browserfensters mit Versionshinweis, drei URLs (Backend, Talk, WebSocket) und Funktionsliste.

Ladet die Seite nach der Eingabe mittels F5 neu, damit alles korrekt angezeigt wird. Bei mir sah es davor so aus. Den Fehler konnte ich mit F5 lösen.

UI: Hochleistungs-Backend; URL-Feld (blurred), SSL-Zertifikat prüfen, Fehlermeldung: Server antwortete 0, geteiltes Geheimnis.

Solltet ihr dieselbe Meldung wie ich erhalten: „Laufende Version: 2.1.1~docker; Der Server …“ ist dies kein Problem. Die Talk-App kennt bereits ein weiteres Feature „changed-users“, welches der Server aktuell noch nicht bereitstellt. Alles funktioniert trotzdem korrekt.

Scrollt nun nach unten, bis ihr den STUN-Server seht:

STUN-Server-Verwaltungsseite: Eingabefeld stun.nextcloud.com:443, Copy-Icon, Button 'Einen neuen STUN-Server hinzufügen'.

Ersetzt den bisherigen Eintrag durch Folgendes:

signal.euredomain.de:3478

Bei mir sieht es dann so aus:

STUN-Server: Überschrift; Text erklärt STUN; Feld: stun: signal.testbereich.net:3478; Button: Einen neuen STUN-Server hinzufügen.

Direkt darunter findet ihr den TURN-Server:

UI-Screenshot: Überschrift TURN-Server, Text über TURN-Server, Button 'Einen neuen TURN-Server hinzufügen'.

Klickt auf „Einen neuen TURN-Server hinzufügen“, damit ihr Folgendes seht:

Screenshot einer Weboberfläche zur TURN-Server-Konfiguration mit Feldern für TURN-Server, Secret und Protokoll UDP/TCP.

Lasst euch hier euer TURN-Secret auf eurem Server anzeigen:

cat /opt/containers/nextcloud-hpbe/.env

Ausgabe:

Terminal-Ausgabe: cat /opt/containers/nextcloud-hpe/.env; TURN_SECRET=... und INTERNAL_SECRET=... (lange Hex-Werte)

Bei TURN-SERVER-URL gebt ihr Folgendes ein: signal.euredomain.de:3478

Das Secret entnehmt ihr der .env-Datei und fügt es entsprechend ein. So sieht es bei mir aus:

Screenshot einer Weboberfläche zur TURN-Server-Konfiguration: Felder für Adresse, Secret, UDP/TCP; Button zum Hinzufügen.

Ihr solltet ebenfalls einen grünen Haken am Ende sehen. Dies heißt, dass alles korrekt ist.

Nun habt ihr Nextcloud Talk zusammen mit eurem HPBE erfolgreich eingerichtet.

7. Videokonferenz-Test starten

Zum Testen startet ihr eine Videokonferenz. Klickt dazu im Dashboard auf „Talk“:

Benutzeroberfläche mit runden Symbolen in zwei Reihen; orange umrandetes Talk-Symbol unten links.

In Talk wählt ihr „Neue Unterhaltung“ aus:

Screenshot einer Chat-App: linke Navigationsleiste, zentrale Ansicht mit Hallo test und dem Button + Neue Unterhaltung.

Gebt hier einen Namen ein:

Dialog zur Erstellung einer Gruppenunterhaltung mit Namens- und Beschreibungsfeldern; grauer runder Avatar.

Scrollt nach unten und erlaubt Gästen per Link teilzunehmen:

Panel 'Sichtbarkeit der Unterhaltung' mit drei Toggles, erster an, zweiter und dritter aus; Button 'Teilnehmer hinzufügen'.

Erstellt nun die Konferenz. Öffnet anschließend den angezeigten Link an verschiedenen Geräten und tretet der Konferenz bei. Anschließend könnt ihr das Video starten. Wenn ihr euch dann gegenseitig hört bzw. seht, funktioniert alles korrekt:

Vier Videofenster in einer Konferenzansicht: drei graue Kreise mit D, ein weißer Kreis mit T; rechts ein Chatfenster.

8. Nextcloud HPBE updaten

Durch den Einsatz von Docker könnt ihr das Update sehr schnell erledigen. Es reicht, wenn ihr folgende Befehle eingebt:

cd /opt/containers/nextcloud-hpbe
docker compose down
docker compose pull
docker compose up -d
Nächster Artikel
nginx via Docker auf vServer installieren
Weitere passende Themen
Finde den passenden vServer zu deinem Projekt