-
Was ist ein VPS?
-
VPS und Sicherheit
-
VPS - Anwendungsfälle
-
VPS bei METANET
-
VPS und Plesk
-
VPS - Einrichtung & Konfiguration
0. Überblick
- Verwendetes System: Debian 11 64 bit
- Genutzter User: Ich nehme alles als «root» vor
- Testsystem: Cloud Server M
- Zeitdauer: ca. 50 Minuten, je nach Serverleistung
- Schwierigkeit: Einfach. Nur Code kopieren 😉
- Besonderheiten:
- Grundlage ist folgende Anleitung: Traefik Reverseproxy installieren Diese Anleitung muss zuerst ausgeführt werden.
- Die Installation von Docker / Docker Compose wird hier vorausgesetzt.
1. BigBlueButton installieren
1.1 Einleitung
BigBlueButton (https://bigbluebutton.org) ist ein open Source Webkonferenzsystem. Die Besonderheit von BigBlueButton ist, dass es sich in viele Lernsysteme integrieren lässt, weshalb aktuell viele Bundesländer BigBlueButton nutzen. BigBlueButton kann auf dem eigenen Server betrieben werden, wodurch der Datenschutz besser gewährleistet werden kann.
1.2 Systemvoraussetzungen
BigBlueButton hat ziemlich hohe Systemvoraussetzungen. Diese können Sie hier nachlesen:
VPS Server von METANET
Finden Sie den Server der zu Ihren Anforderungen passt – jetzt einfach vergleichen.
Ich habe es hier mit einem vServer mit 4 CPUs und 6 GB RAM getestet. BigBlueButton lässt sich mit 3 Leuten in einer Videokonferenz ohne Probleme nutzen. In manchen Situationen (z. B. Hochladen einer Präsentation / PDF) merkt man jedoch, dass alle CPUs zu 100 % ausgelastet sind. Man benötigt also einen sehr leistungsstarken Server, wenn man BigBlueButton mit vielen Leuten nutzen möchte.
1.3 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.4 Vorbereitung
Diese Anleitung basiert auf dem aktuellen Debian 10 Betriebssystem. BigBlueButton werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation. Ebenfalls haben wir den enormen Vorteil, dass wir kein bestimmtes Betriebssystem nutzen müssen. Würden wir BigBlueButton normal installieren, so müssen wir eine bestimmte Ubuntu Version nutzen.
Um BigBlueButton neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik.
1.4.1 Daten von git kopieren
Nun kopieren wir uns die aktuelle Version von BigBlueButton. Dazu geben Sie folgendes ein.
apt-get update
apt-get install git
git clone -b main --recurse-submodules https://github.com/bigbluebutton/docker.git /opt/containers/bigbluebutton/
cd /opt/containers/bigbluebutton
git submodule update --init
Dabei werden die Daten ins Verzeichnis /opt/containers/bigbluebutton kopiert. Sie können hier auch ein anderes Verzeichnis verwenden. Müssen dann aber die gesamte Anleitung entsprechend anpassen.
1.4.2 Setup ausführen
Nachdem wir uns die aktuelle Version von BigBlueButton installiert haben, beginnen wir das Setup auszuführen. Dabei werden bestimmte Einstellungen an unseren Server angepasst. Geben Sie dazu folgendes ein:
./scripts/setup
Als erstes werden Sie gefragt, ob Sie Greenlight (https://bigbluebutton.org/2018/07/09/greenlight-2-0/) installieren wollen. Bei Greenlight handelt es sich um eine bequeme Weboberfläche. Daher bestätige ich das mit «y».
Should greenlight be included? (y/n): y
Als nächstes werden Sie gefragt, ob Sie einen HTTPS Proxy nutzen möchten. Da wir bereits Traefik nutzen, benötigen wir keinen weiteren.
Should an automatic HTTPS Proxy be included? (y/n): n
Als nächstes werden wir gefragt, ob wir «coturn» (https://github.com/coturn/coturn), einen TURN und STUN Server installieren möchten. Diesen benötigen wir nicht.
Should a coturn be included? (y/n): n
Nun müssen wir noch unsere Domain angeben, über welche später BigBlueButton erreichbar sein soll. Meine lautet: video.testbereich.net
Please enter the domain name: video.testbereich.net
Nun werden wir noch gefragt, ob es möglich sein soll die Videokonferenzen aufzuzeichnen. Dies wollen wir nicht, da dies zu Datenschutzproblemen führen kann.
Choice (y/n): n
Jetzt können wir wählen, ob wir die Daten an Prometheus exportieren möchten. Prometheus kann diese Daten sammeln und wir könnten sie mit anderen Programmen wie Grafana darstellen. Dies benötigen wir hier aber auch nicht.
Should a Prometheus exporter be included? (y/n): n
Als nächstes müssen wir nur noch unsere IP-Adresse bestätigen.
Is 178.250.170.125 your external IPv4 address? (y/n): y
Hier der gesamte Dialog.
1.4.3 weitere Einstellungen anpassen (optional)
Nun können Sie noch weitere Einstellungen anpassen. Ich werde dies jedoch nicht tun. Sie können das einfach in folgender Datei machen.
nano .env
Wenn Sie etwas verändert haben, so müssen Sie sich eine neue docker-compose.yml erzeugen lassen.
Dies geht mit folgendem Befehl:
./scripts/generate-compose
1.4.4 docker-compose.override.yml erstellen
Nun erstellen wir eine neue Datei, damit BigBlueButton zusammen mit Traefik nutzen können. Dazu geben Sie folgendes ein.
nano docker-compose.override.yml
Dort geben Sie folgendes ein:
version: '3'
services:
nginx:
labels:
- "traefik.enable=true"
- "traefik.http.routers.bbb.entrypoints=http"
- "traefik.http.routers.bbb.rule=Host(`video.euredomain.de`)"
- "traefik.http.middlewares.bbb-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.bbb.middlewares=bbb-https-redirect"
- "traefik.http.routers.bbb-secure.entrypoints=https"
- "traefik.http.routers.bbb-secure.rule=Host(`video.euredomain.de`)"
- "traefik.http.routers.bbb-secure.tls=true"
- "traefik.http.routers.bbb-secure.tls.certresolver=http"
- "traefik.http.routers.bbb-secure.service=bbb"
- "traefik.http.services.bbb.loadbalancer.server.port=48087"
- "traefik.http.routers.bbb-secure.middlewares=secHeaders@file"
- "traefik.docker.network=proxy"
networks:
- proxy
- bbb-net
networks:
proxy:
external: true
1.4.5 Hostname anpassen
Nun passen wir den Hostnamen an. Geben Sie hier den Namen an, welchen Sie auch im Schritt 1.4.2 als Domain angegeben haben.
vorher:
- "traefik.http.routers.bbb.rule=Host(video.euredomain.de)"
- "traefik.http.routers.bbb-secure.rule=Host(video.euredomain.de)"
angepasst:
- "traefik.http.routers.bbb.rule=Host(video.testbereich.net)"
- "traefik.http.routers.bbb-secure.rule=Host(video.testbereich.net)"
1.4.6 Zeile aus docker-compose.yml löschen
Nun löschen wir noch eine Zeile aus der bisherigen docker-compose Datei.
Dazu öffnen wir die Datei:
nano docker-compose.yml
Scrollen Sie bis Zeile 169. Dort steht «network_mode: host». Diese Zeile entfernen Sie. Dazu gehen Sie in diese Zeile und drücken einfach «STRG+K». Danach sollte es so aussehen.
1.4.7 kleines Bugfix
Die zur Zeit der Anleitung aktuelle Version hat einen Bug, weshalb es später bei der Imageerstellung zu einem Fehler kommt. Diesen können Sie folgendermassen beheben. Öffnen Sie dazu folgende Datei:
nano mod/webrtc-sfu/bbb-webrtc-sfu/package.json
Jetzt sehen Sie folgendes:
Wenn die Version wie hier < 3.10.3 ist, dann ändern Sie es folgendermassen ab:
Nun löschen Sie noch folgende Datei:
rm mod/webrtc-sfu/bbb-webrtc-sfu/package-lock.json
2. Container erstellen
Nun werden wir unsere Container erstellen lassen. Dieser Vorgang hat bei meinem Server (4 CPUs und 6 GB RAM) ca. 30 Minuten gedauert. Also seien Sie geduldig, auch wenn es zwischenzeitlich so aussieht, als würde nichts mehr passieren. Wichtig ist hier zu wissen, dass ca. 18 verschiedene Container erstellt werden. Dies benötigt Zeit.
Um die Container zu erstellen, geben Sie folgenden Befehl ein:
docker compose build
Anschliessend laden wir uns die restlichen Container noch herunter. Dazu geben wir folgendes ein:
docker compose pull
3. Container starten
Nachdem Ihre Container erstellt sind, können wir diese starten. Dazu geben Sie folgendes ein:
docker compose up -d
Jetzt werden alle 18 Container gestartet. Dies kann einige Zeit dauern. Nach 2-3 Minuten können Sie dann auf Ihre Webseite gehen. Bei mir ist dies https://video.testbereich.net.
4. Administrator anlegen
Nachdem Sie nun BigBlueButton gestartet haben und die Webseite erreichbar ist, können Sie einen Administrator anlegen. Wichtig ist, dass der Container in dieser Zeit laufen muss. Beenden Sie diesen also NICHT.
Um einen Administrator anzulegen, geben Sie folgenden Befehl ein:
docker exec bigbluebutton-greenlight-1 bundle exec rake admin:create
Nun bekommen Sie folgendes angezeigt:
Mit diesen Daten können Sie sich nun anmelden und sollten folgendes sehen:
5. Administratorkennwort ändern
Nachdem Sie sich angemeldet haben, sollten Sie unbedingt Ihr Kennwort ändern. Klicken Sie dazu auf Ihren Account rechts oben und wählen Sie «Profil» aus.
Hier können Sie nun Ihren Namen sowie die E-Mail-Adresse anpassen.
Unter dem Reiter «Passwort» können Sie dann ein neues, sicheres Kennwort vergeben.