Plus d'infos; plus à venir

This commit is contained in:
Mathieu Gauthier-Pilote 2023-06-27 11:57:44 +02:00
parent 3206ecfde4
commit 3af4d63b97

View file

@ -3,9 +3,13 @@ title: Howto Jitsi
category: Communication
...
* <https://github.com/jitsi/jitsi-meet/>
- Documentation : [https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart)
- Code : [https://github.com/jitsi/jitsi-meet](https://github.com/jitsi/jitsi-meet)
- Licence : [Apache License 2.0](https://github.com/jitsi/jitsi-meet/blob/master/LICENSE)
- Language : Java, Javascript et Lua (Prosody)
- Rôle Ansible : (à venir)
Jitsi Meet is an open-source (Apache) WebRTC JavaScript application that uses Jitsi Videobridge to provide high quality, secure and scalable video conferences.
**Jitsi Meet** est une application de visionconférence riche en fonctionnalités et compatible avec les principaux navigateurs Web. Lorsqu'il n'y a que deux participants dans une conférence, la communication audio-vidéo se fait en pair-à-pair via WebRTC. Dès qu'il y a un troisième participant, on bascule en mode client-serveur.
## Installation
@ -13,12 +17,28 @@ Jitsi Meet is an open-source (Apache) WebRTC JavaScript application that uses Ji
Il est important que `/tmp` et `/usr/share/jitsi` soient en sur des partitions montées en `read-write` et en `exec`.
Si `/tmp` n'est pas "exec", l'audio/video ne marchera pas.
Si `/tmp` n'est pas "exec", l'audio/video ne marchera pas.
Si `/usr/share/jitsi` n'est pas accessible en écriture, jicofo se plaindra de ne pas pouvoir acquérir de lock.
### Installation
### Requis
* Ajouter le dépôt de Jitsi dans apt ainsi que la clé gpg du dépôt :
Un nom de domaine configuré sur l'adresse IP de la machine qui hébergera les composants serveur de Jitsi Meet.
L'ouverture dans le pare-feu du serveur des ports `22 TCP`, `80 TCP`, `443 TCP`, `10000 UDP`, `3478 UDP` et `5349 TCP`.
### Paquets Debian
Nous installation Jitsi Meet depuis les paquets Debian officiels (branch stable) sur un serveur Debian 11 (Bullseye).
Les principaux composants de Jitsi Meet sont :
* [Meet](https://github.com/jitsi/jitsi-meet) : application Javascript chargée côté client dans le navigateur ou l'appli mobile des participants
* [Jicofo](https://github.com/jitsi/jicofo) : JItsi COnference FOcus, gère notamment les sessions Jingle (extension média de XMPP) des participants (Java)
* [Videobridge ou JVB](https://github.com/jitsi/jitsi-videobridge) : routeur audio-vidéo compatible WebRTC (Java)
* [Prosody](https://prosody.im/) : serveur de messagerie instantanée compatible XMPP (Lua)
* Nginx ou Apache : serveur web et proxy
Pour obtenir ces composants et leurs dépendances, il faut jouter le dépôt de Jitsi (et sa clé gpg) aux sources de apt :
~~~
# curl https://download.jitsi.org/jitsi-key.gpg.key | gpg --dearmor > /etc/apt/keyrings/jitsi.gpg
@ -33,10 +53,11 @@ Si `/usr/share/jitsi` n'est pas accessible en écriture, jicofo se plaindra de n
~~~
* Recharger la liste des dépôts du système et installation du paquet apt-transport-https
Ensuite, recharger la liste des dépôts du système et installer le paquet `apt-transport-https`.
~~~
# apt update
# apt install apt-transport-https
~~~
* Installer le paquet `jitsi-meet`
@ -48,7 +69,7 @@ Si aucun serveur web n'est présent sur la machine, il installera et configurera
# apt install jitsi-meet
~~~
Le daemon *jitsi-videobridge2* se contrôle avec une unité systemd :
Suite à l'installation, on peut vérifier que les principaux services systemd sont fonctionnels comme ceci :
~~~
# systemctl status jitsi-videobridge2.service
@ -66,6 +87,7 @@ Jan 08 22:55:09 jitsi01 systemd[1]: Starting Jitsi Videobridge...
Jan 08 22:55:09 jitsi01 systemd[1]: Started Jitsi Videobridge.
~~~
Même chose pour `jicofo.service`, `prosody.service` et `nginx.service`.
### Générer un certificat SSL Let's Encrypt
@ -73,7 +95,7 @@ Jan 08 22:55:09 jitsi01 systemd[1]: Started Jitsi Videobridge.
À l'installation initiale, Jitsi va proposer de créer un certificat Let's Encrypt pour le domaine choisi, mais il est aussi possible de le faire plus tard.
Le paquet Jitsi incorpore un script qui permet de générer un certificat SSL Let's Encrypt, il faut exécuter le script suivant :
Si on choisi de le faire plus tard, on peut exécuter un script fournit par Jitsi :
~~~
# /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
@ -81,9 +103,37 @@ Le paquet Jitsi incorpore un script qui permet de générer un certificat SSL Le
Par défaut Jitsi utilise [acme.sh](/HowtoAcme.sh) pour la gestion des certificats. Le renouvellement est configuré dans la crontab de `root`.
### Autorisé l'accès à l'API pour l'utilisation de l'application Jitsi desktop :
## Mises à jour
Si on désire que l'instance Jitsi soit fonctionnelle avec l'application Jitsi desktop, application Electron, il faut autoriser l'accès à l'API, exemple de configuration dans un vhost nginx :
La mise à jour des paquets se fait de la manière habituelle :
~~~
# apt update
# apt list --upgradable
# apt upgrade
~~~
IMPORTANT : avant de se lancer dans la mise à jour des paquets, il est une bonne pratique de lire les [notes de version](https://github.com/jitsi/jitsi-meet/releases).
## Configuration
|Fichier(s) |Chemin |
|--------------------|----------------------------------------------------|
|Conf. Meet | /etc/jitsi/meet/meet.exemple.org-config.js |
|SSL pour Meet | /etc/jitsi/meet/meet.exemple.org.crt et .key |
|Conf. Jicofo | /etc/jiti/jicofo/jicofo.conf |
|Conf. Videobridge | /etc/jitsi/videobridge/jvb.conf |
|Conf. Videobridge | /etc/jitsi/videobridge/sip-communicator.properties |
|Conf. Prosody | /etc/prosody/conf.d/meet.exemple.org.cfg.lua |
|SSL pour Prosody | /etc/prosody/certs/* |
|Conf. Nginx (vhost) | /etc/nginx/sites-enabled/meet.exemple.org.conf |
## Maintenance
## FAQ
### API applis mobiles et bureau
Si on désire que l'instance Jitsi soit fonctionnelle avec l'application mobile ou de bureau (Electron), il faut autoriser l'accès à l'API, ce qui est le cas dans le vhost généré automatiquement lors de l'installation. Si vous avez vhost nginx personnalisé, vous devrez vous assurer d'avoir ces lignes :
~~~
location /external_api.js {
@ -91,7 +141,9 @@ location /external_api.js {
}
~~~
Il faut aussi vérifié que les Headers suivants ne soit pas activé dans nginx, car cela bloque l'accès à l'instance par l'application :
### Entêtes bloquantes
Il faut aussi vérifié que les Headers suivants ne soit pas activé dans nginx, car cela bloquera l'accès à l'instance par l'application :
~~~
Content-Security-Policy "frame-ancestors 'none'";
@ -111,3 +163,4 @@ Il est possible d'avoir un aperçu des conférences actives grâce à la command
~~~
# tail -f /var/log/jitsi/jvb.log | grep "conf_name="
~~~