Hier zeige ich euch, wie ihr schnell Big Blue Button mit Docker und Traefik installieren könnt.

Diese Anleitung nutzt das Programm Traefik als Reverse Proxy. Ein Reverse Proxy ermöglicht es beispielsweise, dass mehre Anwendungen der Port 80 (HTTP) nutzen können. Wer Traefik noch nicht installiert hat kann sich meine Anleitungen dazu hier anschauen. Diese Anleitung basiert auch auf meiner Traefik Anleitung.

Wer Big Blue Button ohne Reverse Proxy nutzen möchte, der kann sich diese Anleitung anschauen.

1. Big Blue Button per git downloaden

Zuerst legen wir uns ein Verzeichnis für Big Blue Button an.

mkdir -p /opt/containers/
cd /opt/containers/

Nun beginnen wir damit uns alle benötigten Dateien per git zu downloaden.

apt-get update
apt-get install git

git clone --recurse-submodules https://github.com/alangecker/bigbluebutton-docker.git bbb-docker
cd bbb-docker

Nach kurzer Zeit habt ihr nun alle Dateien auf eurem Server. Nun starten wir das Konfigurationsskript.

Dazu gebt ihr folgendes ein:

./scripts/setup

Nun wählt ihr folgendes aus:

root@xxxx:/opt/containers/bbb-docker# ./scripts/setup
Should greenlight be included? (y/n): y
Should an automatic HTTPS Proxy be included? (y/n): n   <-- sehr wichtig
Should a coturn be included? (y/n): n                   <-- sehr wichtig               
Please enter the domain name: euredomain.de oder bbb.euredomain.de   <--- hier könnt ihr eure Domain angeben
Should the recording feature be included?
   IMPORTANT: this is currently a big privacy issues, because it will
   record everything which happens in the conference, even when the button
   suggets, that it does not.
   make sure that you awalys get peoples consent, before they join a room!
   https://github.com/bigbluebutton/bigbluebutton/issues/9202
Choice (y/n): n                                                                <--- Hier könnt ihr auswählen, ob Aufnahmen aktiviert sein sollen
Is 37.xxx.xxx.xxx your external IPv4 address? (y/n): y
Is 2a03::1233:1234:1234 your external IPv6 address? (y/n): y
--------------------------------------------------
configuration file .env got successfully created!
you can look through it for further adjusments
  $ nano .env
to start bigbluebutton run
  $ ./scripts/compose up -d

2. Anpassungen für Traefik

Damit wir Traefik nutzen können müssen wir noch die Docker Compose Datei etwas anpassen. Gebt dazu folgendes ein:

nano /opt/containers/bbb-docker/docker-compose.yml

Hier fügt ihr nun im Service „nginx“ folgendes hinzu:

   labels:   
      - "traefik.enable=true"
      - "traefik.http.routers.bbb.entrypoints=http"
      - "traefik.http.routers.bbb.rule=Host(`bbb.euredomain.de`)"     ### Bitte anpassen wie im Schritt 1###
      - "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(`bbb.euredomain.de`)"     ### Bitte anpassen wie im Schritt 1 ###
      - "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=8080"
      - "traefik.docker.network=proxy"

    networks:
      - proxy
      - bbb-net

Löscht anschließend noch folgende Zeile im Server „nginx“:

network_mode: host

Notwendige Anpassungen:

  • 2x eure URL eingeben. Wählt bitte die identische URL, die ihr auch beim Setup in Schritt 1 gewählt habt.

So sieht der Service nun bei mir aus:

  nginx:
    build: mod/nginx
    restart: unless-stopped
    depends_on:
      - etherpad
      - webrtc-sfu
      - html5
    volumes:
      - bigbluebutton:/var/bigbluebutton
      - html5-static:/html5-static:ro
      - ${DEFAULT_PRESENTATION:-/dev/null}:/etc/nginx/html/default.pdf
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.bbb.entrypoints=http"
      - "traefik.http.routers.bbb.rule=Host(`bbb.euredomain.de`)"     ### Bitte anpassen wie im Schritt 1 ###
      - "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(`bbb.euredomain.de`)"    ### Bitte anpassen wie im Schritt 1 ###
      - "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=8080"
      - "traefik.docker.network=proxy"
    networks:
      - proxy
      - bbb-net
    extra_hosts:
      - "host.docker.internal:10.7.7.1"
      - "core:10.7.7.2"
      - "etherpad:10.7.7.4"
      - "webrtc-sfu:10.7.7.10"
      - "html5:10.7.7.11"

Am Ende der Datei fügt ihr noch folgendes hinzu:

 proxy:
    external: true

So sieht es bei mir aus:

networks:
  bbb-net:
    ipam:
      driver: default
      config:
        - subnet: "10.7.7.0/24"

  proxy:
    external: true

Das wars nun schon.

3. Container erstellen

Anschließend müsst ihr nur noch die Container erstellen lassen.

Wichtiger Hinweis

Es werden ca. 10 Container ! erstellt und diese werden alle selbst „gebaut“. Insgesamt werden so ca. 10 GB ! Festplattenspeicher belegt und der Vorgang dauerte bei mir fast 30 Minuten!

Zum Erstellen der Container gebt ihr folgendes ein:

/opt/containers/bbb-docker/scripts/compose up -d

Dieser Vorgang dauert wie gesagt nun fast 30 Minuten und an einigen Stellen sieht es so aus als würde er sich aufhängen. Hier müsst ihr jedoch einfach warten.

An diesen Stellen dauerte es bei mir sehr lange:

4. Administrator anlegen

Wenn nun alle Server gestartet sind könnt ihr noch euren Administrator anlegen. Dazu gebt ihr folgendes ein:

/opt/containers/bbb-docker/./scripts/compose exec greenlight bundle exec rake admin:create 

Ausgabe:

root@xxxx:/opt/containers/bbb-docker# /opt/containers/bbb-docker/./scripts/compose exec greenlight bundle exec rake admin:create                                                                                              Account successfully created.
Email: admin@example.com
Password: administrator
Role: admin
PLEASE CHANGE YOUR PASSWORD IMMEDIATELY

Also ihr habt nun folgenden Benutzer erstellt:

  • E-Mail: admin@example.com
  • Passwort: administrator

5. Login bei Big Blue Button

Wenn ihr nun auf euredomain.de geht, sollte es so aussehen:

Mit eurem Administrator Account könnt ihr euch nun auf direkt einloggen und seht folgende Möglichkeiten.

6. Quellen

https://github.com/alangecker/bigbluebutton-docker

Teile diesen Beitrag
Christian

Categories:

14 Kommentare

  1. Vielen Dank fuer diese tolle Anleitung.

    Ein Fehler habe ich noch gefunden und zwar wird in Schritt 3 keine docker-compose Datei ausgefuehrt, sondern ein Shell-Script.

    Ich habe diesen Befehl eingegeben.

    /opt/containers/bbb-docker/scripts/compose up -d
    oder wie auf der Github Seite
    ./scripts/compose up -d

    kommt drauf an, ob der Pfad relativ, oder absolute ist und wo man sich zurzeit befindet.

    Dies kann man auch auf der Github Seite von alangecker/bigbluebutton-docker einsehen.

    Mit freundlichen Gruessen

  2. Hallo,

    danke für die Anleitung.

    Eine Sache ist mir noch aufgefallen. Bei der Verwendung von traefik musste ich noch den Port 5000, der von Greenlight verwendet wird für die IP 10.7.7.3 (der interne nginx) in meiner Firewall (ufw) freigegeben werden. Sonst lief meine Installation in einen Timeout.

    ufw allow from 10.7.7.3 to any port 5000

    Möglicherweise liegt das an meiner ufw Installation, die aber an sich Ubuntu-Standard ist.

    • Nachtrag:

      Nachdem ich dann doch noch Probleme mit der Audio und Video Verbindung bekommen habe, habe ich das komplette Subnetz freigegeben…. und, siehe da, alles funktioniert.

      ufw allow from 10.7.7.0/24

  3. Hallo,
    leider lädt bei mir keine Präsentation – habe alles nach Anleitung gemacht, mein traefik läuft mit wildcard gemäß Anleitung von hier.
    Es kommt kein Fehler, es lädt einfachsten nicht, auch von mir hochgeladene Präsentationen werden nicht angezeigt.

    Danke für die Hilfe

      • Das selbe Problem habe ich auch, die rechte im /var/bigbluebutton Ordner passen auch überein.

        Ich kann mir nur vorstellen, dass die Presentation zwar geladen werden kann, aber nicht durch den Treafik geleteitet werden kann. Vielleicht muss man dort noch etwas Konfigurieren.

        Hier die Links die ich mir dazu angeschaut habe zum Problem:

        https://docs.bigbluebutton.org/2.2/troubleshooting.html#blank-presentation-area-on-create-or-upload
        und
        https://github.com/bigbluebutton/bigbluebutton/issues/9867

        • Selbiges Problem hier.

          Ich habe das auch noch etwas weiter eingegrenzt, es müsste ein clientseitiges Problem sein, denn:

          bei einer funktionierenden BBB-Installation wird z.B. beim Umblättern eine Nachricht per WebSocket an den Server geschickt und auch wieder eine empfangen. Daraufhin wird die neue Seite geladen. (Firefox -> Entwicklerkonsole -> Netzwerkanalyse)

          Bei der Docker-Traefik-Installation werden die selben WebSocket-Nachrichten geschickt/empfangen*, es wird allerdings kein Download der Bild-Datei ausgelöst.

          * zumindest die Nachrichten, die für den Seitenwechsel zuständig sind. Bei der anderen BBB-Installation werden nach dem Laden der Seite weitere Nachrichten verschickt, wie z.B. Zoom,… Da bei der Docker-Installation das Bild gar nicht erst geladen wird, passiert das natürlich hier nicht.

          Wenn ich allerdings hingehe und das Bild manuell lade, also einfach die Adresse manuell aufrufe

          https://bbb.meinserver.de/bigbluebutton/presentation////svg/1

          dann wird mir die Seite angezeigt! Also kann es doch eigentlich nicht am Traefik liegen? 🤔

          • Nachtrag: ich habe es inzwischen mit der 2.3-beta1 versucht, hier wird die Präsentation richtig angezeigt.

            Allerdings gibt es damit zwei andere Probleme:

            1. Die Standard-Präsentation lädt nicht. Das ist jetzt auch nicht sooo tragisch. (Im Gegensatz zur v2.2 funktionieren Umfragen auch ohne Präsentation.)

            2. Was aber das größere Problem ist: die Bildschirmfreigabe funktioniert nicht richtig. Der Bildschirm wird freigegeben, bei den Teilnehmern erscheinen die drehenden Pfeile, aber statt das Bild bei denen angezeigt wird, erscheint beim Präsentator die Meldung „Bildschirmfreigabe wurde gestoppt“. Die WebRTC-Verbindung wurde davor aber auf jeden Fall aufgebaut (about:webrtc zeigt eine erfolgreiche Verbindung an.)
            Da bin ich jetzt noch nicht duchgestiegen, wo das Problem liegt…

  4. Berechtigung auf /var/bigbluebutton passt aber, die Dateien werden auch hochgeladen.
    Nur nicht in der Präsentation angezeigt.

    In den Logs kann ich nicht wirklich was finden 🙁

  5. Hallo Christian,
    Danke für den tollen Beitrag! Habe nach deiner Anleitung die Schritte bis einschließlich 4. nachvollziehen können, die Seite kann ich aber nicht erreichen (Bad Gateway). Das docker-netzwerk (‚proxy‘) läuft grundsätzlich, denn Nextcloud ist erreichbar. Hast du vielleicht eine Idee, wo ich mich verkonfiguriert haben könnte?

  6. Moin,
    tja und ich habe das Problem das ich den Docker nicht starten kann.

    Wenn ich „/opt/containers/bbb-docker/scripts/compose up -d“ kommt folgende Fehlermeldung:
    ERROR: yaml.parser.ParserError: while parsing a block mapping in „./docker-compose.yml“, line 4, column 3
    expected , but found “ in „./docker-compose.yml“, line 62, column 4

    In Line 4 steht: core:
    In Line 62 steht labels: (also das was ich eingefügt habe)
    Das Problem hatte ich auch bei Jitsi.

    Gruß

  7. Hallo

    Also Versuche es jetzt seit Tagen…alles andere läuft einwandfrei nach Deinen Beschreibungen… Aber BBB bekomm ich nicht zum laufen… Also laufen schon, aber es geht wieder Video…kommt immer Media Server offline Error 2001 und die Default Präsentation ist nur schwarz und kann keine neue hoch laden…. Habe schon alles probiert…muss noch UDP Port geöffnet werden? Brauche ich noch einen Turn Server?…irgendwie klappt es nicht.. Jitsibwar kein Problem und auch Talk von Nextcloud geht…. Würde gerne die BBB Lösung aber in Nextcloud integrieren…kann jemand helfen hier? Hat jemand gleiche Probleme und irgendwie gelöst??

    DANKE FÜR Hilfe jeder Art

  8. Hallo,

    erstmal vielen Dank für die tollen Anleitungen!

    Bzgl. BBB: seit einigen Tagen gibt es die erste Beta-Version der v2.3, diese bietet einige sehr nütliche Funktionen. Die Installation per Docker läuft quasi identisch ab, man muss jedoch aufpassen, statt dem Befehl

    ./script/compose up -d

    wird jetzt die docker-compose.yml direkt zusammengestellt, so dass man es wie von anderen Containern geohnt auch mit

    docker-compose up -d

    starten kann. Ändert man was an den Einstellungen (.env) so muss diese Datei mit dem Befehl

    ./script/generate-compose

    aktualisiert werden. Dabei werden sämtliche manuelle Änderungen aber überschrieben! Z.B. betrifft das manuell gemachte Änderungen für Traefik! Damit diese auch bei einer Aktualisierung erhalten bleiben, ist es empfehlenswert, sie in die Template-Datei docker-compose.tmpl.yml einzutragen.
    Alles andere aus der Anleitung bleibt identisch und läuft 👍 (bis auf die Bildschirmfreigabe, s. oben)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.