Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
[[ documentation_technique:jitsi ]]
Architecture globale
Le service utilise 3 machines virtuelles :
jitsi2 - Installation principale de Jitsi Meet - Debian 10, 4Go de RAM, 8vCPU, 6Go de
disque
jvb2 - Videobridge supplémentaire - Ubuntu 18.04, 8Go de RAM, 8vCPU, 32Go de
disque
jvb3 - Videobridge supplémentaire - Ubuntu 18.04, 8Go de RAM, 8vCPU, 32Go de
disque
Avec le recul, le dimensionnement des machines n'est pas forcément complètement adapté
aux besoins.
Les machines jvb2 et jvb3 ont été ajoutées après coup, afin de soulager jitsi2 lors des
périodes de forte affluence.
Elles hébergent uniquement des videobridge supplémentaires,
et peuvent être éteintes à tout moment sans besoin de reconfiguration sur jitsi2.
Installation principale
L'installation principale, sur la machine jitsi2 a été faite en suivant la documentation officielle
(https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md) . Cette documentation
permet d'arriver relativement facilement à un déploiement fonctionnel.
Java 8
Officiellement, Jitsi ne fonctionne qu'avec Java 8… qui n'est pas disponible dans les dépôts
Debian 10. Sous Ubuntu 18.04, openjdk-8-jre-headless est directement installé. Cette étape
est donc inutile.
STUN/TURN
Avec l'installation par défaut, un serveur STUN
(https://fr.wikipedia.org/wiki/Simple_Traversal_of_UDP_through_NATs)/TURN
(https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT) est installé.
Cependant, afin de pouvoir utiliser le port TCP 443, il est configuré pour être derrière le
serveur web nginx (conf dans /etc/nginx/modules-enabled/60-jitsi-meet.conf ).
https://wiki.hadoly.fr/documentation_technique:jitsi 2/7
21/10/2022 01:05 documentation_technique:jitsi [Wiki Hadoly]
use-auth-secret
static-auth-secret=SuperSecret69
realm=turn.hadoly.fr
cert=/etc/coturn/certs/turn.hadoly.fr.fullchain.pem
pkey=/etc/coturn/certs/turn.hadoly.fr.privkey.pem
dh-file=/etc/nginx/dh2048.pem
listening-ip=80.67.185.26
listening-ip=2001:912:30aa:300::26
listening-port=443
external-ip=80.67.185.26
external-ip=2001:912:30aa:300::26
verbose
syslog
no-multicast-peers
no-cli
no-loopback-peers
no-tcp-relay
denied-peer-ip=0.0.0.0-0.255.255.255
denied-peer-ip=10.0.0.0-10.255.255.255
denied-peer-ip=100.64.0.0-100.127.255.255
denied-peer-ip=127.0.0.0-127.255.255.255
denied-peer-ip=169.254.0.0-169.254.255.255
denied-peer-ip=127.0.0.0-127.255.255.255
denied-peer-ip=172.16.0.0-172.31.255.255
denied-peer-ip=192.0.0.0-192.0.0.255
denied-peer-ip=192.0.2.0-192.0.2.255
denied-peer-ip=192.88.99.0-192.88.99.255
denied-peer-ip=192.168.0.0-192.168.255.255
denied-peer-ip=198.18.0.0-198.19.255.255
denied-peer-ip=198.51.100.0-198.51.100.255
denied-peer-ip=203.0.113.0-203.0.113.255
denied-peer-ip=240.0.0.0-255.255.255.255
turncredentials_secret = "SuperSecret69";
turncredentials_port = 443;
turncredentials_ttl = 43200;
turncredentials = {
Docs intéressantes sur le sujet, notamment sur la manière de tester un serveur STUN et
TURN:
https://meetrix.io/blog/webrtc/coturn/installation.html
(https://meetrix.io/blog/webrtc/coturn/installation.html)
https://wiki.hadoly.fr/documentation_technique:jitsi 3/7
21/10/2022 01:05 documentation_technique:jitsi [Wiki Hadoly]
https://meetrix.io/blog/webrtc/jitsi/setting-up-a-turn-server-for-jitsi-meet.html
(https://meetrix.io/blog/webrtc/jitsi/setting-up-a-turn-server-for-jitsi-meet.html)
Désactiver TCP
Une fois le serveur TURN fonctionnel, il est possible de désactiver TCP sur le videobridge,
pour ne le laisser fonctionner qu'en UDP, ce qui semble recommandé.
Le serveur TURN s'occupe alors de faire l'interface avec les clients qui sont derrière un
pare-feu bloquant l'UDP, et donc obligés de passer en TCP.
org.jitsi.videobridge.DISABLE_TCP_HARVESTER=true
Chez Hadoly, la configuration par défaut avec bosh faisait apparaître beaucoup d'erreurs
dans les logs ( Sctp send error: : Resource temporarily unavailabl ). La solution de
contournement est d'utiliser les web-sockets.
https://github.com/jitsi/jitsi-videobridge/blob/master/doc/web-sockets.md
(https://github.com/jitsi/jitsi-videobridge/blob/master/doc/web-sockets.md)
videobridge {
http-servers {
public {
port = 9090
websockets {
enabled = true
tls = true
domain = "jitsi.hadoly.fr:443"
server-id = jvb1
location ~ ^/colibri-ws/jvb1/(.*) {
proxy_pass http://127.0.0.1:9090/colibri-ws/jvb1/$1$is_args$args;
proxy_http_version 1.1;
tcp_nodelay on;
https://wiki.hadoly.fr/documentation_technique:jitsi 4/7
21/10/2022 01:05 documentation_technique:jitsi [Wiki Hadoly]
openBridgeChannel: 'websocket',
JVB_OPTS="--apis=rest"
Et dans /etc/jitsi/videobridge/sip-communicator.properties :
org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.rest.private.jetty.host=127.0.0.1
https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest.md
(https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest.md)
https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest-colibri.md
(https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest-colibri.md)
Limiter logs
La configuration par défaut des paquets a un niveau de log inadapté pour un serveur de
production, créant plusieurs 10ène de milliers de messages de logs par seconde (en
charge).
java.util.logging.FileHandler.level = OFF
Limiter le swap
Le videobridge/java a tendance a utiliser la swap. Si la machine a largement suffisamment
de RAM, le plus simple est de désactiver le swap. Sinon il est peut être utile de limiter le
swap en baissant le paramètre swappiness.
Les conférences se retrouvent réparti entre les différents videobridge. Dans la pratique le
https://wiki.hadoly.fr/documentation_technique:jitsi 5/7
21/10/2022 01:05 documentation_technique:jitsi [Wiki Hadoly]
load balancing n'est pas parfait mais on obtient tout de même une bonne répartition de la
charge.
https://github.com/jitsi/jitsi-meet/wiki/jitsi-meet-load-balancing-installation-Ubuntu-18.04-with-
MUC-and-JID (https://github.com/jitsi/jitsi-meet/wiki/jitsi-meet-load-balancing-installation-
Ubuntu-18.04-with-MUC-and-JID)
Comme on utilise des web-sockets, il faut penser a mettre à jour la conf du reverse proxy
nginx en ajoutant le nécessaire pour chaque videobridge supplémentaire:
location ~ ^/colibri-ws/jvb2/(.*) {
proxy_pass http://X.X.X.X:9090/colibri-ws/jvb2/$1$is_args$args;
proxy_http_version 1.1;
tcp_nodelay on;
Personnalisation
Parce que j'ai commencé à faire des trucs chelous pour remettre le logo. La doc kivabien
(comme la vérité) est ailleurs
(https://git.hadoly.fr/CS_CT/Communication/src/branch/master/jitsi.logo)
https://wiki.hadoly.fr/documentation_technique:jitsi 6/7
21/10/2022 01:05 documentation_technique:jitsi [Wiki Hadoly]
https://wiki.hadoly.fr/documentation_technique:jitsi 7/7