Outils pour utilisateurs

Outils du site


outil_de_visioconference

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Dernière révisionLes deux révisions suivantes
outil_de_visioconference [2023/02/09 12:30] – créée adminoutil_de_visioconference [2023/02/09 13:17] admin
Ligne 1: Ligne 1:
 ====== Outil de visioconférence ====== ====== Outil de visioconférence ======
 +
 +Présentation de l'installation de Galène sur debian 10.
 +
 +J'adapte ici l'articles d'installation [[https://galene.org/INSTALL.html|Galène installation]]
 +
 +===== Compilation =====
 +
 +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.
 +
 +==== Compilateur Go ====
 +
 +Vérifier que l'on a le compilateur Go.\\
 +//Voir pour cela l'article [[https://go.dev/doc/install|Download and install]]//
 +
 +C'est simple:
 +  * Télécharger le binaire (dossier tar.gz)
 +  * Extraire dans /usr/local
 +  * Modifier la variable d'environnement <code>export PATH=$PATH:/usr/local/go/bin</code>
 +  * Vérifier la version (doit être suppérieur à 1.17) <code>go version</code>
 +
 +Notez que des dépendances sont probablement nécessaires (comme le package "build-essential").
 +
 +==== Compiler Galène ====
 +
 +Extraire les sources :
 +<code>git clone https://github.com/jech/galene</code>
 +
 +Et lancer simplement la compilation :
 +<code>
 +cd galene
 +CGO_ENABLED=0 go build -ldflags='-s -w'
 +</code>
 +
 +Au bout de quelque minutes, on se retrouve avec un binaire //galene// d'environs 11Mo.
 +
 +==== Déployer ====
 +
 +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".
 +<code>
 +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
 +</code>
 +
 +===== Configurer =====
 +
 +==== Supervisor ====
 +
 +En pro "Python", j'ai tendance à plutôt utiliser //supervisor// qu'une configuration //systemd//
 +
 +Créer donc un fichier ///home/visio/supervisor-visio.conf//
 +<code>
 +[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
 +</code>
 +
 +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:
 +<code>
 +sudo ln -sf /home/visio/supervisor-visio.conf /etc/supervisor/conf.d/
 +sudo supervisorctl reread
 +sudo supervisorctl add visio
 +sudo supervisorctl restart visio
 +</code>
 +
 +==== Proxy web ===
 +
 +Rajouter une configuration nginx pour avoir un proxy web:
 +<code>
 +# 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;
 +    }
 +}
 +</code>
 +
 +Que l'on active via:
 +<code>
 +sudo ln -sf /home/visio/nginx-visio.conf /etc/nginx/sites-enabled/
 +sudo service nginx restart
 +</code>
 +
 +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)]]).
 +
 +==== Firewall ===
 +
 +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
 +<code>
 +iptables -A INPUT -p udp --dport 1194 -j ACCEPT
 +iptables -A OUTPUT -p udp --dport 1194 -j ACCEPT
 +</code>
 +
 +===== Personnalisation =====
 +
 +==== Les groupes ====
 +
 +//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//
 +<code>
 +{
 + "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
 +}
 +</code>
 +
 +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 [[https://galene.org/README.html|Galène]]
 +
 +==== Apparence ====
 +
 +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.
 +
outil_de_visioconference.txt · Dernière modification : 2023/02/09 17:37 de admin