• Warum dogado?
Wähle ein Artikel
Nextcloud Talk auf vServer installieren
Nextcloud Talk auf vServer installieren

0. Überblick

  • Verwendetes System: Debian 10 64 bit (vServer XXL 2.0)
  • Genutzter User: Ich nehme alles als „root“ vor
  • Zeitdauer: ca. 10 Minuten
  • Schwierigkeit: Einfach. Nur Code kopieren 😉
  • Besonderheiten:
    • 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ößere 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. 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 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

Anschließend führend wir folgende Befehle aus:

cd /opt/containers/ 

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

cd nextcloud-hpbe 

rm docker-compose.yml

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. Generiert euch also die Kennwörter mit den nachfolgenden Befehlen und kopiert euch diese dann in ein Textdokument, da ihr die Kennwörter später in der Konfiguration angeben müsst.

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:

1.3.3 docker-compose.yml erstellen

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

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

Nun kopiert ihr folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren Nextcloud HPBE Container.

version: '3' 

services: 

  spreedbackend: 

    build: . 

    container_name: spreed 

    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 

    expose: 

      - '4222' 

    networks: 

      - proxy

  janus: 

    build: docker/janus 

    container_name: janus 

    command: ["janus", "--full-trickle"] 

    restart: unless-stopped 

    networks: 

      - proxy 

    restart: unless-stopped 

    expose: 

      - '8188' 

    ports: 

      - "20000-20100:20000-20100/udp" 

  coturn: 

    build: docker/coturn 

    container_name: coturn 

    network_mode: host 

    environment: 

      REALM: signal.euredomain.de 

      STATIC_SECRET: <STATIC SECRET> 

    restart: unless-stopped 

networks: 

  proxy: 

    external: true

Nun müssen wir noch einiges anpassen.

1.3.4 Hostname anpassen

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

Diese beiden Zeilen müsst ihr 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. Verwendet 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. Gebt 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 kopiert ihr folgenden Code hinein:

[http] 

listen = spreed: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

Speichert nun die Datei ab und passt 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 gebt ihr folgenden Befehl ein.

docker-compose build

Je nach Leistung eures Servers kann dies einige Minuten dauern.

2. HPBE starten

Gebt 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 solltet ihr folgendes sehen:

Wenn ihr dies seht, dann könnt ihr 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 klickt ihr auf euren „Buchstaben“ und wählt „Apps“ aus.

Nun geht ihr auf „Kommunikation“.

Nun müsst ihr bis fast nach unten scrollen, bis ihr „TALK“ findet.

Installiert dies nun.

4. Nextcloud TALK konfigurieren

Nun müssen wir TALK noch konfigurieren. Klickt dazu auf euren „Buchstaben“ und wählt „Einstellungen“ aus.

Scrollt nun auf der linken Seiten nach unten, bis ihr „Talk“ findet.

Nun seht ihr folgendes:

Scrollt nun nach unten und gebt folgendes ein:

Der Link im Bereich „Hochleistungs-Backend“ ist:

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

Meine Konfiguration sieht folgendermaßen aus. Dies müsst ihr an eure URL / Keys anpassen.

Beim TURN Server sollte der „Haken“ erscheinen, wenn ihr alles korrekt eingeben habt.

Beim Hochleistungs-Backend sollte „OK“ erscheinen, wenn ihr alles korrekt eingegeben habt.

5. TALK Konferenz starten

Um eine Videokonferenz mit TALK zu starten klickt ihr auf den „Kreis“ oben.

Jetzt seht ihr folgendes:

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

Anschließend klickt ihr auf „Teilnehmer“ hinzufügen.

Hier könnt ihr 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“.

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

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

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