Big Blue Button



Ce service sera installé sur un serveur Ubuntu 16.04 fraîchement installé.
Les caractéristiques du serveur sont :
  • Machine virtuelle Ubuntu 16.04 LTS
  • Langue : Anglais
  • Processeur : 2 vCore(s)
  • RAM : 8 Go
  • Disque : 80 Go SSD


Changement du mot de passe root
sudo passwd root

Mises à jour du système
sudo apt-get update

puis..
sudo apt-get upgrade

Si nécessaire, mettre à jour le kernel :
sudo apt-get dist-upgrade


Installation de BigBlueButton

Ici, je vais suivre la documentation officielle .

Installation via le script
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-220 -a


Gestion du certificat
Sur cette partie de la doc .

En suivant les commandes suivantes :
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get install certbot

Puis
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhp-4096.pem 4096

Attention c'est long... Ensuite :
sudo bbb-conf --setip meet.florentmerlet.org

Puis,
sudo certbot --webroot -w /var/www/bigbluebutton-default/ -d meet.florentmerlet.org certonly


Je vérifie :
ls /etc/letsencrypt/live/meet.florentmerlet.org/

Je reçois comme réponse :
cert.pem  chain.pem  fullchain.pem  privkey.pem  README

Tout est OK.

Maintenant j'édite le fichier /etc/nginx/sites-available/bigbluebutton
Pour y avoir :
server {
  server_name meet.florentmerlet.org;
  listen 80;
  listen [::]:80;
  listen 443 ssl;
  listen [::]:443 ssl;
  ssl_certificate /etc/letsencrypt/live/meet.florentmerlet.org/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/meet.florentmerlet.org/privkey.pem;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256";
  ssl_prefer_server_ciphers on;
  ssl_dhparam /etc/nginx/ssl/dhp-4096.pem;


Configurer FreeSWITCH? pour utiliser SSL
J'édite le fichier /etc/bigbluebutton/nginx/sip.nginx pour changer les deux paramètres : "https" et "7443" :
location /ws {
  proxy_pass https://54.38.188.11:7443;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "Upgrade";
  proxy_read_timeout 6h;
  proxy_send_timeout 6h;
  client_body_timeout 6h;
  send_timeout 6h;
}


Configurer Bigbulebutton pour utiliser le ssl
J'édite /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties pour ajouter le "s" après "http" :
#----------------------------------------------------
# This URL is where the BBB client is accessible. When a user sucessfully
# enters a name and password, she is redirected here to load the client.
# Do not commit changes to this field.
bigbluebutton.web.serverURL=https://meet.florentmerlet.org

Puis ce fichier : /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties pour ajouter le "s" sur ces deux valeurs :
jnlpUrl=https://meet.florentmerlet.org/screenshare
jnlpFile=https://meet.florentmerlet.org/screenshare/screenshare.jnlp

Puis,
sudo sed -e 's|http://|https://|g' -i /var/www/bigbluebutton/client/conf/config.xml

Et éditer /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml pour changer "ws" en "wss" sur cette variable :
wsUrl: wss://meet.florentmerlet.org/bbb-webrtc-sfu

et aussi (dans le même fichier), http vers https :
note:
    enabled: true
    url: https://bbb.example.com/pad

Puis on édite /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml, toujours pour ajouter le s :
playback_protocol: https


encore une édition : /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp :
String BigBlueButtonURL = "https://meet.florentmerlet.org/bigbluebutton/";


Puis on relance bigbluebutton :
sudo bbb-conf --restart


Greenlight


Pour le moment, le serveur est fonctionnel avec une salle démo.
Avec Greenlight il sera possible d'avoir des utilisateurs enregistrés qui créent leur propres salles.

Je vais suivre ici cette documentation .

Installation d'un docker
Il est très fortement recommandé d'installer Greenlight dans un docker.
Je suis pour cela cette documentation .
Et je choisis l'installation via le dépot docker.
Et suis la doc.