Présentation de l'installation de Galène sur debian 10.
J'adapte ici l'articles d'installation Galène installation
Il n'existe actuellement pas de package Debian pour Galène.
Il est donc nécessaire de le compiler avant de l'installer.
Je conseille de ne pas faire cette complilation sur la machine de production mais sur une machine de développement et de copier les résultats ensuite.
Vérifier que l'on a le compilateur Go.
Voir pour cela l'article Download and install
C'est simple:
export PATH=$PATH:/usr/local/go/bin
go version
Notez que des dépendances sont probablement nécessaires (comme le package “build-essential”).
Extraire les sources :
git clone https://github.com/jech/galene
Et lancer simplement la compilation :
cd galene CGO_ENABLED=0 go build -ldflags='-s -w'
Au bout de quelque minutes, on se retrouve avec un binaire galene d'environs 11Mo.
Copier les fichiers nécessaires sur votre machine de developpement.
Créer aussi les dossiers nécessaires.
Dans cet exemple, on crée spécifiquement un utilisateur “visio”.
scp galene visio@prod.sleto.net:/home/visio scp -r static visio@prod.sleto.net:/home/visio ssh visio@prod.sleto.net mkdir /home/visio/data ssh visio@prod.sleto.net mkdir /home/visio/groups
En pro “Python”, j'ai tendance à plutôt utiliser supervisor qu'une configuration systemd
Créer donc un fichier /home/visio/supervisor-visio.conf
[program:visio] environment= directory=/home/visio command=/home/visio/galene -http :8443 -turn :1194 -insecure user=visio autostart=true autorestart=true stdout_logfile=/var/log/supervisor/visio.log redirect_stderr=true
Ici, je reprécise les port pour les protocoles http et turn ainsi que le fait que je veux moi-même gérer le https (via -insecure)
ne pas oublier de rajouter cette configuration:
sudo ln -sf /home/visio/supervisor-visio.conf /etc/supervisor/conf.d/ sudo supervisorctl reread sudo supervisorctl add visio sudo supervisorctl restart visio
Rajouter une configuration nginx pour avoir un proxy web:
# Configuration du server server { listen 80; server_name visio.sleto.net; return 301 https://visio.sleto.net/; } server { listen 443 ssl; server_name visio.sleto.net; include /opt/ssl/visio.sleto.net.conf; charset utf-8; client_max_body_size 100M; gzip on; gzip_vary on; gzip_min_length 1024; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/xml application/json application/pdf; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; index index.html; access_log /home/visio/visio.access.log; error_log /home/visio/visio.error.log; location /ws { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8443; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_read_timeout 120s; proxy_send_timeout 120s; } location / { proxy_pass http://127.0.0.1:8443; proxy_http_version 1.1; } }
Que l'on active via:
sudo ln -sf /home/visio/nginx-visio.conf /etc/nginx/sites-enabled/ sudo service nginx restart
Notons que /opt/ssl/nginx-visio.conf contiendra les informations relatives aux clefs privé et public HTTPS/SSL (voir Serveur web sécurisé (Nginx / Let's Encrypt)).
Le proxy web permet de gérer simplement le protocole http/https.
Par contre, il faut modifier le firewall pour le protocole turn.
Pour cela, ajouter l'ouverture du port 1194 en udp
iptables -A INPUT -p udp --dport 1194 -j ACCEPT iptables -A OUTPUT -p udp --dport 1194 -j ACCEPT
Pour finaliser l'installation, ajouter un fichier de configuration /home/visio/data/config.json avec ce qui suit:
{ "proxyURL": "https://visio.sleto.net/", "admin":[{"username":"admin","password":"BIG_SECRET"}] }
Le champ proxyURL permet d'indiquer à Galène d'adresse public utilisé (important avec le web proxy).
Le champ admin permet de configurer un administrateur (pour les statistiques).
Galène est maintenant fonctionnel … mais on ne peux pas s'y connecter.
En effet, il manque ici des configurations de groupes (c'est le nom pour “salon” chez galène)
Pour cela, ajouter un fichier “json” dans le répertoir “groups” de votre installation, comme par exemple ce fichier test.json
{ "op":[{"username":"moi","password":"****"}], "presenter": [{}], "other": [{}], "public": false, "displayName": "Groupe de test", "description": "Pour faire des essais", "contact": "contact@sleto.net", "max-clients": 10, "allow-recording": true, "allow-anonymous": false, "allow-subgroups": true }
Ce groupe apparait dans l'écran d'accueil si le booléan “public” est à true, sinon il faut saisir son nom dans la recherche.
L'ensemble de la description de ces champs se trouve sur l'article Galène
Au déployement, nous avons copier un répertoire static à coté du binaire galene.
Celui-ci continens l'interface graphique par défaut en html/javascript.
On est donc libre de l'adapter à nos gouts afin d'en changer l'apparence par exemple.