Projet

Général

Profil

BigBlueButton » Historique » Version 8

simon.crespeau, 13/06/2020 13:00

1 1 simon.crespeau
# BigBlueButton
2
3
## Présentation
4
5 3 simon.crespeau
BigBlueButton est une solution de visio-conférence avec des fonctionnalités supplémentaires comme le partage d'écran, la diffusion et l'annotation de documents, ou l'intégration de pads dans la conférence entre tous les participants... https://bigbluebutton.org/
6 4 simon.crespeau
7
## Installation
8
9
### Serveur BigBlueButton
10
11
Le serveur de BigBlueButton d'Aquilenet est installé sur la vm "echo", une Ubuntu Server 16.04 (seule distribution supportée par BBB à l'heure actuelle). La méthode d'installation suivie a été celle décrite par la documentation. https://docs.bigbluebutton.org/2.2/install.html
12
13
BBB fournit un outil en ligne de commande pour gérer le serveur.
14
15
``` bash
16
# État des composants
17
bbb-conf --status
18
19
# Redémarre, démarre et arrête le service
20
bbb-conf --restart
21
bbb-conf --start
22
bbb-conf --stop
23
24
# Plus de commandes
25
bbb-conf --help
26
```
27
28
29
### Greenlight
30
31 5 simon.crespeau
Le serveur BigBlueButton fournit une API, il faut ensuite installer une interface web qui va pouvoir communiquer avec cette API et utiliser le serveur. La plus courante est Greenlight, supportée par le projet BigBlueButton. Elle a également été installée en suivant la documentation. https://docs.bigbluebutton.org/greenlight/gl-install.html
32
33
Greenlight est déployé dans un environnement docker. Tous les fichiers nécessaires sont présents sur `/opt/greenlight`.
34
35 6 simon.crespeau
#### Authentification
36
37
Greenlight gère l'authentification des utilisateurs. Elle se fait via l'utilisateur LDAP `uid=bigbluebutton,dc=aquilenet,dc=fr` qui a les droits de lecture sur les mots de passes des membres de l'association. Ansi, tous les membres ont la possibilité de créer des salons. Ils peuvent également fournir les liens de leurs conférences. Autrement dit, seuls les membres de l'association peuvent créer des salons, mais tout le monde peut rejoindre un salon créé.
38
39 5 simon.crespeau
#### Configuration de Greenlight
40 6 simon.crespeau
41
Le fichier de configuration se situe sur `/opt/greenlight/.env`
42
43
#### Service
44
45
Greenlight se gère dans un environnement `docker` grâce à `docker-compose`.
46
47
``` bash
48
cd /opt/greenlight
49
50
# Arrêter le service
51
sudo docker-compose down
52
53
# Relancer le service
54
sudo docker-compose up -d
55
56
# État des conteneurs
57
sudo docker container ps
58
```
59
60
On peut voir que Greenlight intègre deux conteneurs docker:
61
62
* L'application web qui écoute sur 127.0.0.1:5000
63
* La base de données postgres qui écoute sur 127.0.0.1:5432
64 7 simon.crespeau
65
### Serveur web
66
67
C'est nginx qui gère le service web. Le fichier de configuration se trouve sur `/etc/nginx/sites-available/bigbluebutton`. Une redirection 301 automatique vers https est activée pour toutes les connexions en http.
68
69 8 simon.crespeau
Les visiteurs sont redirigés vers `/b`, qui est un reverse proxy vers 127.0.0.1:5000, l'application web de Greenlight.
70
71 7 simon.crespeau
#### Certificat
72
73
Le certificat `blabla.aquilenet.fr` est géré par letsencrypt.
74
75
TODO: Réaliser une tâche cron pour le renouvellement du certificat
76
77
``` bash
78
# Renouvellement du certificat
79
sudo certbot renew --standalone --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
80
```
81
82
### Serveur coturn
83
84
Un serveur **coturn** , qui fournit le service TURN est également installé dur **echo** . Le service TURN implémente STUN et permet aux clients de contourner d'éventuelles règles de parefeu ou NAT sur les connexions UDP utilisées par WebRTC. Ce service joue donc le rôle de proxy pour utiliser BigBlueButton. (À noter qu'il pourrait tout aussi bien servir à d'autres services utilisant WebRTC dans l'infrastructure d'Aquilenet).
85
86
Il a été installé en suivant cette page: https://docs.bigbluebutton.org/2.2/setup-turn-server.html
87
88
#### Configuration
89
90
Le fichier de configuration de **coturn** se situe sur `/etc/turnserver.conf`. À noter que le service utilise le certificat letsencrypt `echo.aquilenet.fr`
91
92
``` bash
93
# Redémarrer coturn
94
sudo systemctl restart coturn
95
```
96
97
#### Liaison avec BigBlueButton
98
99
La liaison entre **coturn** et BigBlueButton se fait grâce au fichier `/usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml`
100
101
il fuat redémarrer BigBlueButton à chaque changement avec `sudo bbb-conf --restart`.