HowTo: BBB installieren und in NC einbinden

Vorwort:
ich musste fĂŒr ein kleines Nachhilfeinstitut wegen der Corona-Krise auf die Schnelle eine Chat-Lösung bereitstellen. Da ich selbst eine Nextcloud-Installation habe, lag die Idee nahe, hierfĂŒr Nextcloud und Talk zu verwenden. - Dies scheiterte aber daran dass bei Talk in der kostenfreien Version i.d.R. nicht mehr als 3-4 Personen Talk verwenden können, anderen falls bricht die Verbindung zusammen bzw. stockt das Video.
Momentan arbeiten die Mitarbeiter mit einer selbstgehosteten Jitsi-Lösung parallel mit Nextcloud und das funktioniert soweit auch ganz gut. Letztlich sollte aber eine fĂŒr den Lehrunterricht geeignetere Lösung gefunden werden und deshalb kam mir der Gedanke, BigBlueButton (BBB) zu installieren.
Mittlerweile gibt es auch eine App, die BBB in Nextcloud integriert.

Zum Thema:
BigBlueButton (BBB) muß auf einem separatem Server laufen. Es muss (Stand: 03.05.2020) tatsĂ€chlich Ubuntu 16.04 in der 64-bit-Version installiert sein. Auf dem Server sollte sonst nichts anderes laufen.
Ich bin kein Experte, bitte seht mir daher die eine oder andere UnzulÀnglichkeit in diesem HowTo nach. Bei mir hat es so sehr gut funktioniert und ich hoffe, hiermit etwas helfen zu können.

Da ich Kunde bei Netcup bin, habe ich dort einen Server mit 4 Kernen und ausreichend RAM fĂŒr kleines Geld (VPS 1000 G8, 7,49 €) gemietet. Dies ist keine Werbung sondern soll ggf. eine Hilfestellung bieten.
Auf dem Server habe ich Ubuntu 16.04, 64-bit in der Minimal-Variante installiert.

Doch nun zu BBB-Installation. Auf der BBB-Seite gibt es zahlreiche Hinweise zu Installation, diese sind aber fĂŒr mich als Nicht-Muttersprachler im Englischen teilweise etwas verwirrend. Deshalb hier nun mein HowTo. Wenn euch etwas fehlt, schaut auf der Seite von BBB nach.

Ich gehe in meinem Beispiel davon aus dass ihr Nextcloud ebenfalls auf einem entsprechend leistungsstarken (gemieteten) Server (Raspi reicht i.d.R. nicht) installiert habt und auf diesem Server zusĂ€tzlich auch coturn als TURN-Server fĂŒr Talk installiert habt.

## BBB installieren: ###
########################

## Vorweg: Es muss tatsÀchlich Ubuntu 16.04 in der 64 Bit-Version installiert sein!
## Sofern nicht schon wÀhrend der Systeminstallation geschehen, sollte neben dem root-User ein weiterer
## User erstellt werden um anschließend den root-User aus SicherheitsgrĂŒnden vom ssh-Login auszusperren.
## Um einen neuen Benutzer mit sudo-Rechten zu erstellen, könnt ihr folgende Befehle ausfĂŒhren. Bei
## folgenden Befehlen mĂŒsst ihr 'willi' (USERNAME) durch euren gewĂŒnschten Benutzernamen austauschen.

## Neuen Benutzer erstellen:
## Logge dich als root per ssh ein (root@deine_IP)
	
adduser willi

##USERNAME sudo-Rechte verleihen:
	
usermod -aG sudo willi

##Login als USERNAME:
	
su - willi

## Alle weiteren Schritte sollten dann mit diesem Benutzer erfolgen.


## SSH Root Login unter Debian/Ubuntu verbieten
==============================================


## Editiere die Datei /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

## und setze

PermitRootLogin yes

## auf

PermitRootLogin no

## Starte anschließend den SSH-Dienst neu:

sudo /etc/init.d/ssh restart

## (alternativ: service ssh restart)
## Nun darf sich Benutzer Root nicht mehr direkt am System anmelden. 

## Und jetzt kommen wir zum eigentlichen Thema:
## logge dich auf deinem Server per ssh ein und mach dich dann zu root:
sudo -i

## Hinweis: Du kannst den root-Modus am Schluss durch 'exit' wieder verlassen

## Dann prĂŒfen wir, ob die Domain erreichbar ist:
dig deine-domain.de @8.8.8.8

## Außerdem prĂŒfen wir, ob die Sprache richtig ist: 
cat /etc/default/locale

## es sollte 'LANG="en_US.UTF-8"' ausgegeben werden. Ist dies nicht der Fall, muss es geÀndert werden.
## Desweiteren prĂŒfen wir, ob er Server auch ĂŒber IPv6 erreichbar ist:
ip addr | grep inet6

## Es sollte sowas wie 
## inet6 ::1/128 scope host
## ...
## ausgegeben werden.

## Installiere nun BBB incl. Greenlight, dies dauert etwas:
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -g

## Eigentlich sollte man auch gleich seine Domain angeben und ein Zertifikat
## beziehen können, dies fĂŒhrte bei mir aber zu Problemen.
## Rufe nun deine IP-Adresse im Browser auf, du solltest BBB sehen können.
## Im nĂ€chsten Schritt muss ggf. die Konfiguration von Nginx bearbeitet/geprĂŒft werden.
nano /etc/nginx/nginx.conf

## Suche nach dem Eintrag '#server_names_hash_bucket_size 64;' und entferne
## das Kommentarzeichen (#) - sofern vorhanden.
## Speichere die Datei (Strg + Shift + X) und lade die Konfiguration neu:
nginx -s reload

## PrĂŒfe nun, ob alles in Ordnung bei Nginx ist:
nginx -t

## Es sollten keine Fehler angezeigt werden.
## Beziehe nun ein Zertifikat von let's encrypt:
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s deine-domain.de -e deine@mailadresse.de

## Jetzt musst du noch Nginx neu starten:
systemctl start nginx

## Jetzt sollte deine BBB-Installation auch ĂŒber deine Domain erreichbar sein. PrĂŒfe es.

## Im nÀchsten Schritt richten wir die Firewall ein:

ufw allow ssh
ufw allow http
ufw allow https
ufw allow in 16384:32768/udp

## Starte die Firewall:
ufw enable

## PrĂŒfe, ob alle OK ist:
ufw status

## KĂŒnftig sollte die BBB-Installation nur noch ĂŒber https://... aufgerufen werden können
## Da sonst z.B. Videochat ggf. nicht funktioniert. Rufe folgende Datei auf:
nano /etc/nginx/sites-available/bigbluebutton

## Ersetze...
server {
  listen 80;
  listen [::]:80;
  server_name deine-domain.de;

  listen 443 ssl;
  listen [::]:443 ssl;

## durch...
server {
  listen 80;
  listen [::]:80;
  server_name deine-domain.de;
  # enforce https
  return 301 https://$server_name:443$request_uri;
}

server {
  listen 443 ssl;
  listen [::]:443 ssl;
  server_name deine-domain.de;

## Jetzt mußt du Nginx neu starten:
systemctl restart nginx

## Abschließend prĂŒfe die Konfiguration der BBB-Installation:
bbb-conf --check

## Hier sollte unter '# Potential problems described below' nichts weiter stehen.
## Wenn alles OK ist, muss noch ein Administratorkennwort fĂŒr Greenlight vergeben werden.
## FĂŒhre folgende Befehle aus:
cd greenlight/
docker exec greenlight-v2 bundle exec rake admin:create

## Du erhÀltst folgende Ausgabe:
Account succesfully created.
'Email: admin@example.com'
'Password: administrator'
'Role: admin'
'PLEASE CHANGE YOUR PASSWORD IMMEDIATELY'

## Melde dich mit den angegeben Daten auf der Website an. Im oberen Bereich
## ist im rot unterlegten Bereich ein Link mit dem du deine Daten Àndern kannst.
## Speichere deine Zugangsdaten sicher ab und vergesse sie nicht!!

## Jetzt ist es an der Zeit, deine Installation ein erstes Mal zu sichern bzw. einen Snapshot zu erstellen.

## Nun muss noch BBB fĂŒr den Zugriff auf den Turnserver konfiguriert werden.
## Der Turnserver muss mindestens auf Ubuntu 18.04 laufen, ich verwende dabei den Turnserver (coturn), den ich 
## bereits auf dem Server meiner Nextcloud installiert habe. Ich gehe hier davon aus, dass das bei dir genauso ist.
## Bei BBB (!) musst du folgende Datei konfigurieren:
sudo nano /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml

## Ersetze 'turn.example.com' und 'stun.example.com' mit dem Hostnamen deines Turnservers, bei mir also
## die Domain meiner Nextcloud.
## Außerdem Ă€nderst du den Port 443 jeweils auf 3478 ab.
## Bei value="secret" ersetzt du secret mit dem geheimen SchlĂŒssel aus deiner turnserver.conf (siehe 'static-auth-secret=')

## In der turnserver.conf (also bei mir auf dem Nextcloud-Server !!) Ànderst du die folgenden EintrÀge:
'listening-port=3478'
'tls-listening-port=3478'

## PrĂŒfe die Portfreigaben deiner Firewall (Nextcloud-Server) ob der Port 3478 freigegeben ist.
## ZusÀtzlich gibst du noch folgende Ports frei:
sudo ufw allow in 49152:65535/udp

## Nimm einen Restart deines coturn-Servers vor:
sudo systemctl restart coturn

## Jetzt meldest du dich in deiner Nextcloud an, gehst im Adminbereich zur Talk-Konfiguration,
## sofern vorhanden, und prĂŒfst, ob dort ebenfalls der Port 3478 angegeben ist.

## Hurra!! - Dein BBB-Server sollte nun startklar sein. Teste ihn und mache ggf. wieder eine Sicherung,
## vorsichtshalber auch gleich von deiner Nextcloud-Installation.
## Im nÀchsten - und letzten Schritt -  wollen wir nun BBB in Nextcloud einbinden:

## FĂŒhre auf deinem BBB-Server folgenden Befehl aus:
sudo bbb-conf --secret

## Du bekommst dann in etwa Folgendes angezeigt:
URL: https://deine-domain.de/bigbluebutton/
    Secret: abcdefghaijklmnop123456789

    Link to the API-Mate:
    https://mconf.github.io/api-mate/#server=https://deine-domain.de/bigbluebutton/&sharedSecret=abcdefghaijklmnop123456789

## Kopiere dir die Ausgabe und speichere sie sicher ab. Als nÀchstes installierst du 
## die 'BigBlueButton Intergration'-App in deiner Nextcloud (aus dem App-Store).
## Gehe dann in den Administrationsbereich und wĂ€hle den MenĂŒpunkt
## 'ZusÀtzliche Einstellungen' (ganz unten...) und gibst dort die generierten BBB-Angaben ein:
## Bei API URL: https://deine-domain.de/bigbluebutton/
## Und bei Secret eben den geheimen SchlĂŒssel... - Den 'Link to the API-Mate:' brauchst du nicht!

=======================
== DU BIST FERTIG !! ==
=======================

## Jetzt kannst du in deinen persönlichen Einstellungen RÀume erstellen...

BBB ist wirklich fĂŒr meinen Verwendungszweck geeignet und Nextcloud auch! - Ob die Einbindung in der Form, wie sie jetzt vorliegt, einen echten Mehrwert bringt, muss jeder fĂŒr sich selbst entscheiden.

Ich hoffe, ich konnte ein wenig helfen.

2 Likes

Quelle ist wohl: https://docs.bigbluebutton.org/2.2/install.html

Liegt aber wohl auch am Script:

https://ubuntu.bigbluebutton.org/bbb-install.sh

Hallo Shopmin,
ich habe ein Frage zu BBB in Nextcloud, die sie mir hoffentlich beantworten können. Wir (mittelgroßes Gymnasium) nutzen zur Zeit ein Nextcloud als Lernplatform. Hier integriert ist BBB. Wenn man nun einen Raum erstellt und diesen per internal link mit seinen SchĂŒlern teilen möchte gelangen diese leider nicht in den BBB Raum sondern in die Dateiablage der Nextcloud. Per internal + Password RĂ€ume geht es. Allerdings mĂŒssen sich die Kinder erst aus der Nextcloud ausloggen und das kryptische Passwort fĂŒr den Raum eingeben. Hierdurch vergeht extrem viel Zeit und es ist sehr umstĂ€ndlich. Die IT-Firma, welche uns bei dem Projekt unterstĂŒtzt weis leider keine Abhilfe und wir möchten in jedem Fall sichergehen, dass wir die BBB RĂ€ume nur mit “internal link” nutzen. Also nur fĂŒr Mitglieder der Schulgemeinschaft zugĂ€nglich sind.
HĂ€tten Sie eine Idee. Das wĂŒrde uns viel weiterhelfen.
Herzlichen Dank + GrĂŒĂŸe
Jörg D.

Hallo Jörg,

habt ihr die App “Auf Gruppen beschrĂ€nkt”? Die App muss fĂŒr alle Nutzer verfĂŒgbar sein, sonst klappt das nicht, wenn man eingeloggt ist. Um zu vermeiden, dass SchĂŒler einen Raum erstellen können, kannst du als Admin in der Verwaltung -> ZusĂ€tzliche Einstellungen unter BigBlueButton -> Restrictions fĂŒr “All Users” die max. RĂ€ume auf 0 setzen. Dann die Gruppen eintragen, welche RĂ€ume erstellen sollen und diese auf -1 (beliebig viele) setzen.

Hier kannst du auch festlegen, dass neue RĂ€ume nur “internal restricted” erzeugt werden können.

Ich hoffe das löst dein Problem.

Viele GrĂŒĂŸe
Sebastian

@nervnet Vielen Dank fĂŒr die Hinweise, genauso haben wir das bei uns auch gelöst. Das erspart mir etwas Tipp-Arbeit.

Nur ist generell die Lösung zum teilen des Links aus meiner Sicht nicht ganz glĂŒcklich gelöst - Vielleicht geht es ja auch nicht besser


Wir haben uns damit beholfen den SchĂŒlern den Link via Talk bereitzustellen. Dies hat sich als akzeptabeler “Workaround” herauskristallisiert. Die SchĂŒler sind in Gruppen eingeteilt und man kann dann ganz einfach einen neuen Raum erstellen und den Link mit der Gruppe teilen.