BigBlueButton
Installation et mise à jour
Version 3.0 :
wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -w -v jammy-300 -s bbb-test.paquerette.eu -e postmaster@paquerette.eu -g
-winstallation de 'the uncomplicated firewall' (UFW) pour restreindre l'accès aux ports 22, 80, et 443, et la plage de port UDP 16384-32768.-v jammy-300installation de la dernière version 3.0-sle nom de l'hôte server (par exemplebbb.paquerette.eu)-eajouter une adresse mail pour la validation du certificat Let's Encrypt.-gInstaller Greenlight version 3
Customisation/Configuration Pâquerette
Ajouter la génération des enregistrements vidéos
https://docs.bigbluebutton.org/administration/customize/#enable-generating-mp4-h264-video-output
Ajouter un bouton télécharger direct à l'interface
- aller dans le conteneur
docker exec -it greenlight-v3 /bin/bash - ajouter dans le fichier
/usr/src/app/app/javascript/components/recordings/RecordingRow.jsxentre<td className="border-start-0">et{adminTableles lignes suivantes
<a download="enregistrement.m4v" href={`/playback/video/${recording.record_id}/video-0.m4v`}>
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke-width="1.5" class="hi-s text-muted" viewBox="0 0 512 512">
<path d="M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"/>
</svg>
</a>
Présentation cachée par défaut
la configuration est disponible ici : /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
L'option s'appelle userdata-bbb_hide_presentation_on_join
Création d'un url sur mesure pour salle
Il est possible de changer l'url pour une de son choix en ligne de commande dans BBB. cf issue
greenlight v2
docker exec -it greenlight-v2 bash
bundle exec rails c
Room.find_by(uid: "CURRENT_ROOM_ID").update_attribute(:uid, "NEW_CUSTOM_ID")
Greenlight v3
docker exec -it greenlight-v3 bash
bundle exec rails c
Room.find_by(friendly_id: "CURRENT_ROOM_ID").update_attribute(:friendly_id, "NEW_CUSTOM_ID")
Changer l'adresse d'un utilisateur
docker exec -it postgres /usr/local/bin/psql -U postgres greenlight-v3-production
SELECT id, email FROM users WHERE email = 'MONADRESSE@paquerette.eu';
UPDATE users
SET email = 'NOUVEAUMAIL@paquerette.eu'
WHERE id = '31193b1a-bfee-400f-b180-086d04def4c9';
SELECT id, email FROM users WHERE id = '31193b1a-bfee-400f-b180-086d04def4c9';
Migration Greenlight V2 vers Greenlight V3
Les migrations ne fonctionnaient pas car le "provider" nommé "greenlight" n'était pas présent dans le programme de migration.
Nous avons donc modifié le code avec les éléments suivant
--- migrations.rake.old 2024-06-06 16:40:12.502232922 +0200
+++ migrations.rake 2024-06-06 16:53:53.872925118 +0200
@@ -68,7 +68,7 @@
.where.not(roles: { name: COMMON[:filtered_user_roles] }, deleted: true)
.find_each(start: start, finish: stop, batch_size: COMMON[:batch_size]) do |u|
role_name = infer_role_name(u.role.name)
- params = { user: { name: u.name, email: u.email, external_id: u.social_uid, language: u.language, role: role_name } }
+ params = { user: { name: u.name, email: u.email, external_id: u.social_uid, language: u.language, role: role_name, provider: 'greenlight' } }
response = Net::HTTP.post(uri('users'), payload(params), COMMON[:headers])
@@ -81,7 +81,7 @@
puts red "Unable to migrate User:"
puts yellow "UID: #{u.uid}"
puts yellow "Name: #{params[:user][:name]}"
- puts red "Errors: #{JSON.parse(response.body.to_s)['errors']}"
+ puts red "Errors: #{JSON.parse(response.body.to_s)}"
has_encountred_issue = 1 # At least one of the migrations failed.
end
end
@@ -133,7 +133,8 @@
last_session: r.last_session&.to_datetime,
owner_email: r.owner.email,
room_settings: room_settings,
- shared_users_emails: shared_users_emails } }
+ shared_users_emails: shared_users_emails,
+ provider: 'greenlight' } }
response = Net::HTTP.post(uri('rooms'), payload(params), COMMON[:headers])
@@ -188,7 +189,7 @@
glRequireAuthentication: infer_room_config_value(setting.get_value('Room Authentication'))
}.compact
- params = { settings: { site_settings: site_settings, room_configurations: room_configurations } }
+ params = { settings: { site_settings: site_settings, room_configurations: room_configurations, provider: 'greenlight' } }
response = Net::HTTP.post(uri('settings'), payload(params), COMMON[:headers])
@@ -197,7 +198,7 @@
puts green "Successfully migrated Settings"
else
puts red "Unable to migrate Settings"
- puts red "Errors: #{JSON.parse(response.body.to_s)['errors']}"
+ puts red "Errors: #{response}"
has_encountred_issue = 1 # At least one of the migrations failed.
end
cd greenlight/
- Migration des rôles (pas important dans le cas de Pâquerette car pas très utilisé)
docker exec -it greenlight-v2 bundle exec rake migrations:roles
* Migration des comptes
docker exec -it greenlight-v2 bundle exec rake migrations:users
* Migration des salles
docker exec -it greenlight-v2 bundle exec rake migrations:rooms
Problèmes rencontré.
-
Parfois, le passage des mises à jours système et/ou les mises à jours des conteneurs créer des erreurs de connexion audio (surtout des micro) avec des erreurs 1006 Il faut donc repasser le script d'installation.
-
GreenLight V3:
Il y avait de nombreux bug d'affichage qui sont résolu actuellement avec la version 3.0.4 Un bug d'upload était encore présent du à la configuration Nginx (peut-être lié à la version 2 de Greenlight). Il faut retirer la fin de la configuration comme expliqué ici : https://github.com/bigbluebutton/greenlight/issues/4810
Dans le fichier /usr/share/bigbluebutton/nginx/greenlight.nginx (ce qui est lié à rails).
Non support de l'ipv6
Par défaut, BBB ne supporte que l'ipv4. pour ajouter l'ipv6, il faut modifier le fichier /etc/haproxy/haproxy.cfg
frontend nginx_or_turn
+ bind :::443 v4v6 ssl crt /etc/haproxy/certbundle.pem ssl-min-ver TLSv1.2 alpn h2,http/1.1,stun.turn +
- bind *:443 ssl crt /etc/haproxy/certbundle.pem ssl-min-ver TLSv1.2 alpn h2,http/1.1,stun.turn -
mode tcp
Migrations de serveur vers une nouvelle version
On fait en sorte que le serveur de destination soit avec les mêmes configurations que le serveur actuel.
1- Arrêt du service GreenLight sur le serveur actuel et sur le serveur de destination
cd /root/greenlight-v3
docker compose down
2- Sauvegarde de la configuration du service existant sur le serveur de destination
cp -rf /root/greenlight-v3 /root/greenlight-v3.old
2- Transfert du service GreenLight à partir du serveur actuel
rsync -av /root/greenlight-v3 root@SERVEURORIGINE:/root/greenlight-v3
3- Transfert des vidéos depuis le serveur actuel
rsync -av /var/bigbluebutton/published/ root@SERVEURORIGINE:/var/bigbluebutton/published/
rsync -av /var/bigbluebutton/unpublished/ root@SERVEURORIGINE:/var/bigbluebutton/unpublished/
rsync -av /var/bigbluebutton/recording/raw/ root@SERVEURORIGINE:/var/bigbluebutton/recording/raw/