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

VPS Server von METANET
Finden Sie den Server der zu Ihren Anforderungen passt – jetzt einfach vergleichen.

0. Überblick

  • Verwendetes System: Debian 11 64 bit (vServer)
  • Genutzter User: Ich nehme alles als „root“ vor
  • Zeitdauer: ca. 10 Minuten
  • Schwierigkeit: Einfach. Nur Code kopieren 😉
  • Besonderheiten:
     
    • Grundlage ist folgende Anleitung: Traefik Reverseproxy auf vServer installieren Diese Anleitung muss zuerst ausgeführt werden.
    • Eine Nextcloud Instanz ist später nötig
    • Die Installation von Docker / Docker Compose wird hier vorausgesetzt.

Systemvoraussetzungen

Für 150 Benutzer werden folgende minimalen Systemvoraussetzungen angegeben:

  • 8GB RAM
  • 32 GB Festplatte
  • 4 Kerne i7 / Xeon

1. Nextcloud High Performance Back-End installieren

1.1 Einleitung

Das Nextcloud High Performance Back End (HPBE) ermöglicht es grössere Videokonferenzen mit mehr Teilnehmern zu starten. Bis vor kurzem war diese Software nur für bezahlende Kunden verfügbar. Jetzt steht sie unter einer open source Lizenz.

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. Sie können 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 Vorbereitung

Diese Anleitung basiert auf dem aktuellen Debian 10 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. 

1.3.1 Aktuelle Version von git downloaden

Wir downloaden uns die aktuelle Version von git. Dazu installieren wir zuerst git auf unserem Server.

apt-get install git

Anschliessend führend wir folgende Befehle aus:

cd /opt/containers/
git clone https://github.com/strukturag/nextcloud-spreed-signaling.git nextcloud-hpbe
cd nextcloud-hpbe

Kurze Zeit später habt ihr die neuste Version auf eurem Server. Jetzt müssen wir noch einige Dateien anpassen.

1.3.2 Passwörter generieren

Nun müssen wir uns noch einige Passwörter für unseren Server generieren. Generieren Sie sich also die Kennwörter mit den nachfolgenden Befehlen und kopieren Sie sich diese dann in ein Textdokument, da Sie die Kennwörter später in der Konfiguration angeben müssen.

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

Bei mir sieht es dann so aus:

Terminalfenster mit Root-Prompt; mehrere Eingaben von openssl rand -base64 16 und Base64-Ausgaben.
Editor-Fenster mit Menüleiste; Felder Hashkey, Blockkey, API Key, Shared Secret, Static Secret und langen Zeichenfolgen.

1.3.3 docker-compose.yml erstellen

Nun können wir mit der eigentlichen „Installation“ von Nextcloud HPBE beginnen. Dazu öffnen Sie die folgende Datei:

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

Nun kopieren Sie folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren 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
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.hpbe-app.entrypoints=http"
      - "traefik.http.routers.hpbe-app.rule=Host(`signal.euredomain.de`)"
      - "traefik.http.middlewares.hpbe-app-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.hpbe-app.middlewares=hpbe-app-https-redirect"
      - "traefik.http.routers.hpbe-app-secure.entrypoints=https"
      - "traefik.http.routers.hpbe-app-secure.rule=Host(`signal.euredomain.de`)"
      - "traefik.http.routers.hpbe-app-secure.tls=true"
      - "traefik.http.routers.hpbe-app-secure.tls.certresolver=http"
      - "traefik.http.routers.hpbe-app-secure.service=hpbe-app"
      - "traefik.http.services.hpbe-app.loadbalancer.server.port=8080"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.hpbe-app-secure.middlewares=spreed_headers,spreed_location"
      - "traefik.http.middlewares.spreed_headers.headers.customRequestHeaders.X-Forwarded-Proto=https"
      - "traefik.http.middlewares.spreed_location.stripprefix.prefixes=/standalone-signaling/"
    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
    restart: unless-stopped

  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

Nun müssen wir noch einiges anpassen.

1.3.4 Hostname anpassen

Nun müssen Sie noch den Hostnamen anpassen, über welchen später Nextcloud HPBE erreichbar sein soll.

Diese beiden Zeilen müssen Sie anpassen.

- "traefik.http.routers.hpbe-app.rule=Host(`signal.euredomain.de `)"
- "traefik.http.routers.hpbe-app-secure.rule=Host(`signal.euredomain.de`)"

In meinem Fall also:

- "traefik.http.routers.hpbe-app.rule=Host(`signal.testbereich.net`)"
- "traefik.http.routers.hpbe-app-secure.rule=Host(`signal.testbereich.net`)"

1.3.5 STATIC SECRET einfügen

Nun fügen wir noch unser STATIC SECRET in die Docker Compose Datei ein. Verwenden Sie hier die Passwörter, welche wir eben generiert haben.

vorher:

STATIC_SECRET: <STATIC SECRET>

nachher:

STATIC_SECRET: 6b9b487e269d8c82de9d85bba898d526286bdb185c54b6edbda3b31ad7943333

1.3.6 REALM anpassen

Nun müssen wir noch einen Wert anpassen. Geben Sie hier denselben Wert wie bei eurem Hostnamen an.

vorher:

REALM: signal.euredomain.de

nachher:

REALM: signal.testbereich.net

1.3.7 server.conf anlegen

Nun erstellen wir uns eine neue Konfigurationsdatei. Gebt dazu folgendes ein:

nano server.conf

Hier kopierten Sie 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.example.com
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

Speichern Sie nun die Datei ab und passen Sie die Berechtigungen mit folgendem Befehl an:

chmod 644 server.conf

1.3.8 Keys anpassen

Nun müssen wir in der server.conf noch einige Keys austauschen. Verwendet hier die Keys, welche wir vorher generiert haben.

vorher:

hashkey = <Hashkey>
blockkey = <Blockkey>
secret = <SHARED-SECRET>
apikey = <API-Key>
secret = <STATIC-SECRET>

nachher:

hashkey = YAFOxNTL6T9wBX+902y+JA==
blockkey = JsToqjvRHURpLHZFXnvROg==
secret = 94d55a6ef145b8959de8d83ccf257196
apikey = xGLkDgiu5ZtfWRuufxOJMQ==
secret = 6b9b487e269d8c82de9d85bba898d526286bdb185c54b6edbda3b31ad7943333

1.3.9 Backend URL anpassen

Nun passen wir in der server.conf noch eine URL an. Gebt dort die URL von eurem Nextcloud Server an. Bei mir ist das „nextcloud.testbereich.net“.

vorher:

[backend-1]
url = https://nextcloud.example.com

nachher:

[backend-1]
url = https://nextcloud.testbereich.net

1.3.10 Docker Image erstellen

Nun lassen wir unseren Server die Images erstellen. Dazu geben Sie den folgenden Befehl ein.

docker compose build

Je nach Leistung Ihres Servers kann dies einige Minuten dauern. Am Schluss sollte es so aussehen:

Terminalfenster mit blauem Text auf schwarzem Hintergrund; viele Zeilen Code/Ausgaben, oben docker compose build.

2. HPBE starten

Geben Sie nun folgendes ein, um den HPBE Container zu starten:

docker compose -f /opt/containers/nextcloud-hpbe/docker-compose.yml up

Wenn alles korrekt funktioniert, dann sollten Sie folgendes sehen:

Terminal mit schwarzem Hintergrund; magentafarbene Logzeilen, unten: main.go:339: Listening on speedboard:8080.

Wenn Sie dies sehen, dann können Sie die Ausgabe mittels „STRG+C“ beenden und die Container im Hintergrund starten.

docker compose -f /opt/containers/nextcloud-hpbe/docker-compose.yml up -d

3. Nextcloud TALK installieren

Nun installieren wir TALK (https://apps.nextcloud.com/apps/spreed) auf unserem Nextcloud Server.

Dazu klicken Sie auf Ihren „Buchstaben“ und wählen „Apps“ aus.

Mobile App-Menü; oben dogado mit blauem Avatar D. Einträge: Status setzen, Einstellungen, + Apps, Über, Benutzer.

Nun gehen Sie auf „Kommunikation“.

Seitliche Menüleiste mit Icons und deutschen Bezeichnungen; hervorgehoben ist der Eintrag 'Kommunikation'.

Nun müssen Sie bis fast nach unten scrollen, bis Sie „TALK“ finden.

Screenshot einer Gruppen-Videokonferenz mit mehreren Teilnehmern in Rasteransicht; rechts Chatbereich.

Installieren Sie dies nun.

4. Nextcloud TALK konfigurieren

Nun müssen wir TALK noch konfigurieren. Klicken Sie dazu auf Ihren „Buchstaben“ und wählen Sie „Einstellungen“ aus.

Dropdown-Menü mit dem Eintrag 'Einstellungen' hervorgehoben; Status setzen mit grünem Punkt; oben blauer Balken; Avatar mit D.

Scrollen Sie nun auf der linken Seiten nach unten, bis Sie „Talk“ finden.

Vertikales Seitenmenü mit Icons; Eintrag 'Talk' rot markiert; weitere Punkte: Mobil & Desktop, Datenschutz.

Nun sehen Sie folgendes:

Screenshot eines Windows-ähnlichen Einstellungsfensters auf Deutsch; linkes Menü, rechtes Fenster mit Textfeldern.

Scrollen Sie nun nach unten und geben Sie folgendes ein:

Konfigurationsseite mit drei Abschnitten: STUN-Server, TURN-Server und Hochleistungs-Backend; Felder sichtbar.

Der Link im Bereich „Hochleistungs-Backend“ ist:

https://signal.euredomain.de/standalone-signaling/

Meine Konfiguration sieht folgendermaßen aus. Dies müssen Sie an Ihre URL / Keys anpassen.

STUN-Server Abschnitt mit Pluszeichen; Hinweistext; Eingabefeld mit signal.testbereich.net:3478; Papierkorb-Icon rechts.

Beim TURN Server sollte der „Haken“ erscheinen, wenn Sie alles korrekt eingeben haben.

TURN-Server-Einstellungen in einer Benutzeroberfläche; Text, Eingabefelder, rote Markierung um eine UDP/TCP-Dropdown-Schaltfläche.

Beim Hochleistungs-Backend sollte „OK“ erscheinen, wenn Sie alles korrekt eingegeben haben.

UI: Hochleistungs-Backend, Hinweistext, Checkbox, Status 'OK: Laufende Version: ...', Feld 'Gemeinsames Geheimnis'.

5. TALK Konferenz starten

Um eine Videokonferenz mit TALK zu starten klicken Sie auf den „Kreis“ oben.

Blaue Symbolleiste mit Icons: Kreis, Ordner, Bild, Blitz; rechts eine Lupe im roten Rahmen.

Jetzt sehen Sie folgendes:

App-UI: Obere blaue Leiste, grauer Kreis mit Plus im roten Rahmen; Logo Talk Aktualisierungen mit Haken; Text 27.

Hier klicken Sie jetzt auf das „+“ und vergeben dann einen Namen für die Konferenz. Ich wähle zusätzlich noch aus, dass Nextcloud „fremde Person“ per Link eingeladen werden können.

Dialog mit Titel Allgemeine-Konferenz, markierte Checkbox 'Gästen die Teilnahme per Link erlauben' und Button 'Teilnehmer hinzufügen'.

Anschließend klicken Sie auf „Teilnehmer“ hinzufügen.

Hier können Sie jetzt die Leute in die Konferenz einladen, welche bei Nextcloud registriert sind. In meinem Fall bin ich bei Nextcloud allein. Daher klicke ich „Unterhaltung erstellen“.

Modal mit Suchfeld, Link 'Benutzer oder Gruppen hinzufügen', Keine Suchergebnisse, Button 'Unterhaltung erstellen'.

Jetzt bekomme ich einen Link zum Kopieren angezeigt, durch welchen ich andere Leute in die Konferenz einladen kann.

Weißes Fenster mit Häkchen, Text 'Alle eingestellt'; grauer Knopf 'Unterhaltungs-Link kopieren' und blaue Schließen-Taste.

Mit dem Button „Anruf starten“ kann ich nun die Videokonferenz starten.

Grauer Hintergrund mit weißem, abgerundeten Dialog; Häkchen, Text 'Alle eingestellt', Knopf 'Unterhaltungs-Link kopieren' und blauer 'Schließen'-Button.

VPS Server von METANET
Finden Sie den Server der zu Ihren Anforderungen passt – jetzt einfach vergleichen.

Nächster Artikel
nginx via Docker auf vServer installieren
Weitere passende Themen