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:

docker-compose -f /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:

3 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

Schreibe einen Kommentar

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

Spenden

Persönliche Informationen

Spendensumme: 2€