BigBlueButton installieren

Aus Xinux Wiki
Version vom 30. Oktober 2026, 10:25 Uhr von Thomas.will@claude (Diskussion | Beiträge) (Neue Anleitung)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Diese Anleitung baut einen eigenen BigBlueButton-Server (Version 4.0) mit der Raumverwaltung Greenlight auf einem frischen Ubuntu 24.04 auf. Alle Namen und Adressen sind Beispiele und müssen durch die eigenen ersetzt werden.

Beispielwert Bedeutung
bbb.example.org Name des Servers (FQDN)
203.0.113.10 öffentliche IPv4-Adresse
2001:db8:100::10 öffentliche IPv6-Adresse
admin@example.org Mailadresse für Let's Encrypt

Voraussetzungen

  • Ein frischer, dedizierter Server mit Ubuntu 24.04 (64 Bit). Eine Aktualisierung von einer älteren BigBlueButton-Version ist nicht vorgesehen.
  • 8 CPU-Kerne und 16 GB RAM (mit Swap). Für Tests genügen weniger (4 Kerne, 8 GB).
  • Platte: Mit Aufzeichnungen sind 500 GB empfohlen, ohne Aufzeichnungen reichen 50 GB. Für die Aufzeichnungen am besten ein eigenes Volume.
  • Eine öffentliche IPv4-Adresse und, wenn gewünscht, eine IPv6-Adresse. Dazu etwa 250 Mbit/s symmetrisch bei vielen Teilnehmern.
  • Ein Name (FQDN) mit DNS-Eintrag, denn Kamera, Mikrofon und Bildschirmfreigabe funktionieren im Browser nur über HTTPS.
  • Port 80 und 443 dürfen von keinem anderen Webserver belegt sein.

DNS

Der Name muss auf den Server zeigen, bevor die Installation startet, sonst bekommt Let's Encrypt kein Zertifikat.

bbb.example.org.   IN  A     203.0.113.10
bbb.example.org.   IN  AAAA  2001:db8:100::10

Prüfen (von einem anderen Rechner):

dig +short A    bbb.example.org @8.8.8.8
dig +short AAAA bbb.example.org @8.8.8.8

Wichtig: Wenn ein AAAA-Eintrag existiert, versucht Let's Encrypt auch über IPv6 zu prüfen. Der Server muss dann auf Port 80 über IPv6 erreichbar sein, sonst scheitert das Zertifikat. Wer kein IPv6 anbietet, trägt keinen AAAA-Eintrag ein.

Vorbereitung

hostname -f                # muss bbb.example.org ausgeben
timedatectl                # System clock synchronized: yes
locale -a | grep en_US     # en_US.utf8 muss vorhanden sein
sudo apt update && sudo apt full-upgrade

Firewall

Das Installationsskript richtet mit der Voreinstellung die Firewall ufw ein. Das setzt voraus, dass SSH auf Port 22 läuft, sonst bricht es ab. Zusätzlich muss eine Firewall vor dem Server (Hoster, Router) die Ports durchlassen.

Port Protokoll wofür
22 TCP SSH
80 TCP HTTP, Zertifikat von Let's Encrypt
443 TCP HTTPS, Weboberfläche
3478 TCP und UDP eingebauter TURN-Server
16384–32768 UDP Audio, Video, Bildschirm

Eigener SSH-Port

Läuft SSH auf einem anderen Port (hier als Beispiel 2222), startet man das Skript mit dem Schalter -W und richtet ufw vorher selbst ein. Den SSH-Port zuerst freigeben, sonst sperrt man sich aus:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp comment "SSH"
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 3478/tcp
sudo ufw allow 3478/udp
sudo ufw allow 16384:32768/udp
sudo ufw enable
sudo ufw status numbered

In /etc/default/ufw muss IPV6=yes stehen, damit die Regeln auch für IPv6 gelten (das ist bei Ubuntu die Voreinstellung). Danach in einem zweiten Terminal prüfen, ob eine neue SSH-Verbindung klappt, bevor man das erste schließt.

Installation

Das offizielle Skript bbb-install.sh erledigt alles: Pakete, Docker, nginx, Zertifikat, TURN-Server und Greenlight. Erst herunterladen und ansehen, dann starten:

sudo -i
wget -O bbb-install.sh https://raw.githubusercontent.com/bigbluebutton/bbb-install/v4.0.x-release/bbb-install.sh
chmod 700 bbb-install.sh
./bbb-install.sh -h        # alle Schalter anzeigen

Aufruf mit der eigenen Firewall (-W) und Greenlight (-g):

nohup ./bbb-install.sh -v noble-400 -s bbb.example.org -e admin@example.org -g -W > bbb-install.log 2>&1 &
tail -f bbb-install.log

Wer SSH auf Port 22 hat und die Firewall vom Skript einrichten lässt, lässt -W weg.

Schalter Bedeutung
-v noble-400 BigBlueButton 4.0 auf Ubuntu 24.04
-s Name des Servers
-e Mailadresse für Let's Encrypt
-g Greenlight (Weboberfläche für Räume) installieren
-W keine ufw-Einrichtung durch das Skript
-m /pfad /var/bigbluebutton auf ein eigenes Volume legen (Aufzeichnungen)

Die Installation dauert einige Minuten. Das Log enthält am Ende die Datenbank-Zugangsdaten von Greenlight und gehört deshalb nach der Installation gelöscht oder in ein sicheres Verzeichnis verschoben.

Prüfen

sudo bbb-conf --status      # alle Dienste müssen active sein
sudo bbb-conf --check       # Hinweise zur Konfiguration
sudo certbot certificates   # Zertifikat und Ablaufdatum
sudo docker ps              # greenlight-v3, postgres, redis

Von einem anderen Rechner:

curl -4 https://bbb.example.org/bigbluebutton/api    # returncode SUCCESS
curl -6 https://bbb.example.org/bigbluebutton/api

Ein 502 direkt nach dem Start ist normal, solange Greenlight hochfährt. Nach einer halben Minute sollte https://bbb.example.org/b antworten.

Greenlight-Administrator

Zu Beginn gibt es noch kein Benutzerkonto. Das Administratorkonto legt man im Container an:

sudo docker exec -it greenlight-v3 bundle exec rake admin:create["Name","admin@example.org","EIN-LANGES-PASSWORT"]

Das Passwort steht dann in der Shell-Historie. Besser direkt danach in Greenlight ändern und die Historie bereinigen. Anmelden unter https://bbb.example.org/b.

IPv4 und IPv6

  • Die Weboberfläche, Greenlight und die Schnittstelle sind über IPv4 und IPv6 erreichbar (wenn A- und AAAA-Eintrag sowie die ufw-Regeln für beide da sind).
  • Die Medien (Audio, Video) und der eingebaute TURN-Server sind in der Voreinstellung nur an die IPv4-Adresse gebunden: listening-ip in /etc/turnserver.conf, announcedIp bei Mediasoup und LiveKit. Ein Teilnehmer nur mit IPv6 kommt damit ins Webinterface, aber nicht in die Medienströme. Die üblichen Rechner mit beiden Adressen nutzen für die Medien IPv4 und merken nichts davon.

Zertifikat und Updates

  • Das Zertifikat erneuert certbot automatisch (Timer certbot.timer). Test: sudo certbot renew --dry-run
  • Aktualisieren innerhalb der Version: dasselbe Skript noch einmal mit denselben Schaltern aufrufen.
  • Von einer anderen Hauptversion oder anderem Ubuntu aus wird nicht aktualisiert, sondern auf einem neuen Server neu aufgebaut.

Hinweise aus der Praxis

  • Im Log erscheinen Fehler von update-alternatives für Java-Werkzeuge. Sie sind harmlos.
  • Ein Fehler von freeswitch.service beim ersten Start wird vom Skript durch einen Neustart behoben. Kontrolle: sudo bbb-conf --status.
  • Die Meldung, eine Greenlight-Datei für nginx fehle, kommt beim ersten Lauf, danach wird sie angelegt.
  • Skript, Version und Schalter ändern sich. Immer zuerst ./bbb-install.sh -h und die Dokumentation lesen.

Quelle