Nobreakspace
Ausstattung
Dienste
Chaotikum
Nobreakspace
Ausstattung
Dienste
Chaotikum
Verantwortung | Malte |
Container | keine, dedizierter Root-Server |
W. Ports | keine, dedizierter Root-Server |
OS | Ubuntu 18.04.6 LTS |
Server | skaro |
Zustand | Produktiv |
Hier findet sich die technische Dokumentation des Chaotikum Big Blue Buttons. Diese Dokumentation beinhaltet alle Konfigurationen, die nicht direkt mit dem Datenschutz in Verbindung stehen.
Alle für den Datenschutz relevanten Konfigurationen stehen hier.
Serviceübersicht | Version |
---|---|
BigBlueButton | BigBlueButton Server 2.4.9 (3072) |
Greenlight | release-2.14.6 |
BigBlueButton Exporter | 0.6.1 |
BigBlueButton ist eine Sammlung sehr vieler verschiedener Dienste. Die Versionsnummer von BigBlueButton beschreibt eine aufeinander abgestimmte Sammlung von Diensten.
Nach Änderungen an der Config muss BBB neugestartet werden:
bbb-conf --restart
Greenlight wird im Ordner /home/linadmin/greenlight
neugestartet mit
docker-compose down docker-compose up -d
bbb-conf --version
gibt sehr viele verschiedenen Versionen von allem möglichen aus, aber nicht die Gesamt-Version von BBB. Die kriegt man am Anfang als Ausgabe von
bbb-conf --check
LDAP-Authentifizierung in Greenlight-Konfiguration /home/linadmin/greenlight/.env
aktivieren:
LDAP_SERVER=ldap.chaotikum.net LDAP_PORT=636 LDAP_METHOD=ssl LDAP_UID=uid LDAP_BASE=dc=chaotikum,dc=org LDAP_AUTH=simple LDAP_BIND_DN=uid=bigbluebutton,ou=users,ou=internal,dc=chaotikum,dc=org LDAP_PASSWORD=PASSWORD LDAP_ATTRIBUTE_MAPPING=uid=dn;name=displayName;email=mail;nickname=uid;image=jpegPhoto LDAP_FILTER=(memberOf=cn=freigeschaltet,ou=groups,ou=internal,dc=chaotikum,dc=org)
In der gleichen Konfigurationsdatei wird die Registrierung von Accounts über Greenlight deaktiviert:
ALLOW_GREENLIGHT_ACCOUNTS=false
E-Mail-Benachrichtigung in Greenlight-Konfiguration /home/linadmin/greenlight/.env
aktivieren:
ALLOW_MAIL_NOTIFICATIONS=true
SMTP-Server in Greenlight-Konfiguration /home/linadmin/greenlight/.env
einrichten:
SMTP_SERVER=mail.chaotikum.net SMTP_PORT=587 SMTP_DOMAIN=chaotikum.org SMTP_USERNAME=bigbluebutton@chaotikum.org SMTP_PASSWORD=PASSWORD SMTP_AUTH=plain SMTP_STARTTLS_AUTO=true # Specify the email address that all mail is sent from SMTP_SENDER=bigbluebutton@chaotikum.org
Konfiguration testen im Verzeichnis /home/linadmin/greenlight
:
docker run --rm --env-file .env bigbluebutton/greenlight:v2 bundle exec rake conf:check
Greenlight neustarten im Verzeichnis /home/linadmin/greenlight
:
docker-compose down docker-compose up -d
Wir verwenden Let's Encrypt gemäß der Anleitung Using Let’s Encrypt von BBB.
Damit der Certbot den Nginx neustartet, wenn ein Zertifikat erneuert wurde, muss die Zeile
deploy-hook = systemctl reload nginx
in der Datei /etc/letsencrypt/cli.ini
ergänzt werden.
Am Anfang von /etc/nginx/sites-available/bigbluebutton
einen weiteren Server für HTTPS ergänzen:
server { listen *:80; listen [::]:80; server_name plaudern.chaotikum.org; server_tokens off; ## Don't show the nginx version number, a security best practice location / { return 301 https://plaudern.chaotikum.org:443$request_uri; } error_log /var/log/nginx/bigbluebutton.error.log; access_log /dev/null; }
Im folgenden Server listen 80;
und listen [::]:80;
auskommentieren.
Außerdem kann /etc/nginx/sites-available/default
gelöscht werden.
Die Ansagen You are now muted. und You are now unmuted sind zu lang und nerven, wenn man sich mal schnell muten will.
In der Konfiguration /opt/freeswitch/etc/freeswitch/autoload_configs/conference.conf.xml
die Parameter muted-sound
und unmuted-sound
in allen Profilen anpassen:
<!-- File to play to acknowledge muted --> <param name="muted-sound" value="tone_stream://%(100,0,500)"/> <!-- was conference/conf-muted.wav --> <!-- File to play to acknowledge unmuted --> <param name="unmuted-sound" value="tone_stream://%(100,0,700)"/> <!-- was conference/conf-unmuted.wav -->
In /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
wird der Client konfiguriert. Alle Optionen befinden sich unter dem Wurzelnknoten public
. Dort im Knoten layout
die Option autoSwapLayout
auf true
setzen, damit die Präsentation initial ausgeblendet wird. Sie kann dann von allen Teilnehmern individuell eingeblendet werden.
Im Knoten presentation
die Option restoreOnUpdate
auf true
setzen, damit bei allen die Präsentation automatisch eingblendet wird, sobald jemand etwas mit der Präsentation tut.
Um die Bandbreite zu verringern, die Qualität der Webcams reduzieren.
In /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
wird der Client konfiguriert. Alle Optionen befinden sich unter dem Wurzelnknoten public
.
Im Knoten kurento
werden die Profile konfiguriert. Nach der Installation gab es folgende relevante Profile:
cameraProfiles: - id: low name: Low quality default: false bitrate: 100 - id: medium name: Medium quality default: true bitrate: 200 - id: high name: High quality default: false bitrate: 500 - id: hd name: High definition default: false bitrate: 800
Hier kann man einfach den default von medium
auf low
verschieben.
Die Doku sagt
The settings for bitrate are in kbits/sec (i.e. 100 kbits/sec). The lowest setting allowed for WebRTC is 30 Kbits/sec.
Anpassung des Begrüßungstexts im Chat in der Datei /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties
folgende Konfigurationen anpassen:
defaultWelcomeMessage=Willkommen im Raum <b>%%CONFNAME%%</b> defaultWelcomeMessageFooter=auf dem <a href="https://wiki.chaotikum.org/hackspace:infrastruktur:bbb" target="_blank"><u>BigBlueButton des Chaotikums</u></a>
In der /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties
:
disableRecordingDefault=false
autoStartRecording=false
allowStartStopRecording=true
breakoutRoomsRecord=false
Damit die Aufzeichnungen nicht auf der SSD, sondern auf einem externen NFS-Laufwerk landen, ist dies über /etc/fstab
eingebunden:
# netcup storage 46.38.248.210:/voln101829a1/bbb /mnt/bbb nfs rw 0 0
Damit NFS funktioniert:
apt-get install nfs-utils
Folgende Symlinks:
/var/bigbluebutton/recording -> /mnt/bbb/bigbluebutton/recording /var/freeswitch/meetings -> /mnt/bbb/freeswitch/meetings /var/kurento/recordings -> /mnt/bbb/kurento/recordings /var/kurento/screenshare -> /mnt/bbb/kurento/screenshare
Rechte der Symlinks richtig setzen:
chown -h bigbluebutton:bigbluebutton /var/bigbluebutton/recording chown -h freeswitch:freeswitch /var/freeswitch/meetings chown -h kurento:kurento /var/kurento/screenshare /var/kurento/recordings
Datei /etc/nginx/conf.d/bigbluebutton_sip_addr_map.conf
:
map $remote_addr $freeswitch_addr { "~:" [2a03:4000:37:6fe::3]; default 91.132.145.214; }
In /etc/bigbluebutton/nginx/sip.nginx
das vorhandene proxy_pass
durch
proxy_pass http://$freeswitch_addr:5066;
ersetzen.
In /opt/freeswitch/etc/freeswitch/sip_profiles/external-ipv6.xml
ergänzen:
<param name="enable-3pcc" value="proxy"/>
Wir betreiben unter stun.chaotikum.org einen coturn Server. Siehe alderaan.
Anleitungen:
In /opt/freeswitch/etc/freeswitch/vars.xml
anpassen:
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=stun:stun.chaotikum.org"/> <X-PRE-PROCESS cmd="set" data="external_sip_ip=stun:stun.chaotikum.org"/>
Datei /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml
:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd "> <bean id="stun1" class="org.bigbluebutton.web.services.turn.StunServer"> <constructor-arg index="0" value="stun:stun.chaotikum.org"/> </bean> <bean id="turn1" class="org.bigbluebutton.web.services.turn.TurnServer"> <constructor-arg index="0" value="SECRET"/> <constructor-arg index="1" value="turns:stun.chaotikum.org:443?transport=tcp"/> <constructor-arg index="2" value="86400"/> </bean> <bean id="turn2" class="org.bigbluebutton.web.services.turn.TurnServer"> <constructor-arg index="0" value="SECRET"/> <constructor-arg index="1" value="turn:stun.chaotikum.org:443?transport=tcp"/> <constructor-arg index="2" value="86400"/> </bean> <bean id="stunTurnService" class="org.bigbluebutton.web.services.turn.StunTurnService"> <property name="stunServers"> <set> <ref bean="stun1" /> </set> </property> <property name="turnServers"> <set> <ref bean="turn1"/> <ref bean="turn2"/> </set> </property> </bean> </beans>
SECRET
ist das static-auth-secret
das im coturn konfiguriert ist.
Wir verwenden die Docker Installation.
Datei /root/bbb-exporter/docker-compose.yaml
und /root/bbb-exporter/secrets.env
nach Anleitung.
Datei /etc/bigbluebutton/nginx/monitoring.nginx
:
location /metrics/ { proxy_pass http://127.0.0.1:9688/; include proxy_params; }
Läuft unter https://plaudern.chaotikum.org/metrics/
Die Version aus Paketquellen
apt install prometheus-node-exporter
ist leider viel zu alt. Deswegen müssen wir selber installieren. Dazu
wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz tar xvf node_exporter-1.1.2.linux-amd64.tar.gz mv node_exporter-1.1.2.linux-amd64/node_exporter /usr/local/bin/node_exporter
User anlegen:
useradd -rs /bin/false node_exporter
Datei /lib/systemd/system/node_exporter.service
:
[Unit] Description=Node Exporter After=network.target [Service] User=node_exporter Group=node_exporter Type=simple ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target
systemctl enable node_exporter systemctl start node_exporter
Läuft nur über IPv6 unter http://plaudern.chaotikum.org:9100/metrics
Wir haben eine eigene Default-Präsentation unter
/var/www/bigbluebutton-default/chaotikum.pdf
Damit diese verwendet wird, muss in der Datei
/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties
folgende Zeile angepasst werden:
# Default Uploaded presentation file beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/chaotikum.pdf
Wir haben eigene Hintergrundbilder unter
/usr/share/meteor/bundle/programs/web.browser/app/resources/images/virtual-backgrounds
Damit diese verwendet werden, muss in der Datei
/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
folgende Information angepasst werden:
public: virtualBackgrounds: enabled: true storedOnBBB: true showThumbnails: true imagesPath: /resources/images/virtual-backgrounds/ thumbnailsPath: /resources/images/virtual-backgrounds/thumbnails/ fileNames: - sofaecke.jpg - werkstatt.jpg - chaotikum-logo.jpg - chaotikum.jpg - home.jpg - coffeeshop.jpg - board.jpg
Anleitung: Use custom images for virtual background
Die Beschreibungen der Hintergründe könnte man in den Dateien
/usr/share/meteor/bundle/programs/web.browser/app/locales/en.json /usr/share/meteor/bundle/programs/web.browser/app/locales/de.json
anpassen. Dafür muss man aber die SHA1 der angepasste Dateien neu generieren. Siehe GitHub Issue #12937
Wir haben das
breakoutRoomLimit
in der Datei
/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
von 8 auf 20 erhöht:
# Warning: increasing the limit of breakout rooms per meeting # can generate excessive overhead to the server. We recommend # this value to be kept under 12. breakoutRoomLimit: 20
Das ist damit deutlich höher als die Empfehlung in dieser Datei. Ich verstehe allerdings das Risiko nicht so ganz. Wieso sollte ein Breakout-Raum mehr Ressourcen brauchen, als ein normaler Raum? Mit unseren Ressourcen können wir auch in 20 normalen Räumen parallele Konferenzen nur ab, wenn dort die Teilnehmer größtenteils auf ihre Webcam verzichten. Das wird in Breakout-Räumen natürlich nicht anders sein.
pip3 install uwsgi requests flask flask-caching flask-cors git clone https://git.chaotikum.org/chaotikum/bbbstatus.git
Datei /home/linadmin/bbbstatus/config.py
:
url = 'https://plaudern.chaotikum.org/bigbluebutton/api/' action = 'getMeetingInfo' meetingID = 'sb5cz439t1u5cxgflyehsqszzvv23arldqe7qxsz' secret = 'SECRET_SECRET_SECRET'
Secret übernehmen aus bbb-conf --secret
Datei /etc/bigbluebutton/nginx/bbbstatus.nginx
:
location /status { proxy_pass http://127.0.0.1:9009/status; include proxy_params; }
Datei /lib/systemd/system/bbbstatus.service
:
[Unit] Description=uWSGI BBB Status After=syslog.target [Service] ExecStart=/usr/local/bin/uwsgi --socket localhost:9009 --protocol=http --chdir /home/linadmin/bbbstatus -w status # Requires systemd version 211 or newer RuntimeDirectory=uwsgi Restart=always KillSignal=SIGQUIT Type=notify StandardError=syslog NotifyAccess=all [Install] WantedBy=multi-user.target
systemctl enable bbbstatus systemctl start bbbstatus
Läuft unter https://plaudern.chaotikum.org/status
In das Textfeld einfach das Datum der Wartung eintragen, am besten in der Form yyyy-mm-dd.
Du besitzt nicht die Benutzerrechte um Seiten hinzuzufügen.Wartung Big Blue Button | Wartung Big Blue Button Wann 08.03.2022 23:00 Warum Update System bbb Ansprechperson Malte wartungsfenster bbb done Agenda * Update auf BigBlueButton Server 2.4.4 (2965) |
Wartung Big Blue Button | Wartung Big Blue Button Wann 15.01.2022 11:00 Warum Update auf 2.4 System bbb Ansprechperson Malte wartungsfenster done bbb |
Wartung Big Blue Button | Wartung Big Blue Button Wann 07.11.2021 11:00 Warum Update System bbb Ansprechperson Malte wartungsfenster bbb done Agenda * Update |
Wartung Big Blue Button | Wartung Big Blue Button Wann 19.09.2021 11:00 Warum Update System bbb Ansprechperson Malte wartungsfenster done bbb Agenda * Update auf BBB 2.3.13 und Greenlight 0.9.2 |
BBB Wartung (01.08.2021) | BBB Wartung (01.08.2021) Wann 01.08.2021 11:00 bis 13:00 Warum Wartung System BBB Ansprechperson Malte wartungsfenster done bbb Agenda * Updates * Eventuell Partitionen aufräumen und alte Installation löschen |
BBB Wartung (13.07.2021) | BBB Wartung (13.07.2021) Wann 13.07.2021 19:00 bis 23:53 Warum Wartung System BBB Ansprechperson Malte wartungsfenster done bbb Agenda * Update auf (oder eher Neuinstallation von) BBB 2.3 |
BBB Wartung (03.05.2021) | BBB Wartung (03.05.2021) Wann 03.05.2021 15:00 bis 16:00 Warum Wartung System BBB Ansprechperson Malte wartungsfenster done bbb Agenda * Serverausfall laut Monitoring seit 03:30 Uhr heute Nacht. Ursache unklar. |
BBB Wartung (28.03.2021) | BBB Wartung (28.03.2021) Wann 28.03.2021 13:00 bis 14:00 Warum Wartung System BBB Ansprechperson Malte wartungsfenster done bbb Agenda * System aktualisieren * Greenlight aktuaisieren |
BBB Wartung (21.02.2021) | BBB Wartung (21.02.2021) Wann 21.02.2021 12:11 bis 13:32 Warum Wartung System BBB Ansprechperson Malte wartungsfenster done bbb Agenda * System aktualisieren * Greenlight aktuaisieren |
BBB Wartung (10.01.2021) | BBB Wartung (10.01.2021) Wann 10.01.2021 19:00 bis 22:30 Warum Wartung und Experimente System BBB Ansprechperson Malte wartungsfenster done bbb |