====== 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 export PATH=$PATH:/usr/local/go/bin * Vérifier la version (doit être suppérieur à 1.17) go version Notez que des dépendances sont probablement nécessaires (comme le package "build-essential"). ==== Compiler Galène ==== 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. ==== 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". 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 ===== 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// [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 ==== Proxy web === 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)]]). ==== 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 iptables -A INPUT -p udp --dport 1194 -j ACCEPT iptables -A OUTPUT -p udp --dport 1194 -j ACCEPT ==== Finaliser === 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). ===== 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// { "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 [[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.