Table des matières
Service visio.chapril.org
Le service Visio du Chapril est une instance de Jitsi Meet.
Le dépôt d’outillage pour Visio est https://forge.april.org/Chapril/visio.chapril.org-tools.
Installation
Configuration DNS
Sur la VM DNS, ajouter le domaine visio.chapril.org.
Voir ajout-record-dns.
Configuration Bastion
Créer dans la VM Bastion le fichier /etc/nginx/sites-available/visio.chapril.org.
Créer le lien symbolique :
cd /etc/nginx/sites-enabled/ ln -s ../sites-available/visio.chapril.org
Créer le répertoire des logs HTTP :
mkdir /var/log/nginx/visio.chapril.org/
Désactiver le protocole HTTPS dans la configuration Nginx de Visio :
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
nginx -s reload
Étendre la liste des domaines gérée par Dehydrated :
echo "visio.chapril.org" >> /etc/dehydrated/domains.txt
Lancer Dehydrated pour récupérer le certificat TLS du domaine :
dehydrated -c
# INFO: Using main config file /etc/dehydrated/config # INFO: Using additional config file /etc/dehydrated/conf.d/test-ca.sh Processing visio.chapril.org + Creating new directory /var/lib/dehydrated/certs/visio.chapril.org ... + Signing domains... + Generating private key... + Generating signing request... + Requesting new certificate order from CA... + Received 1 authorizations URLs from the CA + Handling authorization for visio.chapril.org + 1 pending challenge(s) + Deploying challenge tokens... + Responding to challenge for visio.chapril.org authorization... + Challenge is valid! + Cleaning challenge tokens... + Requesting certificate... + Checking certificate... + Done! + Creating fullchain.pem... + Done!
Activer le protocole HTTPS dans la configuration Nginx de Visio et recharger :
nginx -t nginx -s reload
Configuration VM Allo
Prérequis
La documentation officielle d'installation cite quelques prérequis.
Installer certains paquets :
apt-get install gnupg2
Définir le domaine visio.chapril.org dans /etc/hosts :
127.0.2.1 visio.chapril.org visio
Configuration des ports
Définir dans FireHOL une configuration pour Jitsi dans /etc/firehol/services/jitsi.conf :
#FHVER: 1:213 # La première ligne ci-dessus est nécessaire !! server_jitsi_ports="udp/10000 tcp/4443" client_jitsi_ports="default"
Activer cette configuration en ajoutant la ligne suivante dans /etc/firehol/firehol-ext2me.conf :
server jitsi accept
Tester :
firehol try
Si OK alors répondre oui à la proposition d'activer la nouvelle configuration de FireHOL.
Configuration du dépôt Jitsi
Ajouter le dépôt Jitsi :
echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
Charger la clef du dépôt Jitsi :
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
OK
Installer un serveur Web
L'installation du paquet Jitsi va détecter la présence d'un serveur Web et y placer un fichier de configuration pour le domaine.
Installer Nginx…
Installation des paquets Jitsi
Mettre à jour la liste des paquets et installer le paquet jitsi :
apt-get update
Atteint :1 https://apt.chapril.org/debian buster InRelease Réception de :2 http://security.debian.org/debian-security buster/updates InRelease [65,4 kB] Atteint :3 http://ftp.de.debian.org/debian buster InRelease Réception de :4 https://download.jitsi.org stable/ InRelease [2 415 B] Réception de :5 https://download.jitsi.org stable/ Packages [36,4 kB] 104 ko réceptionnés en 0s (272 ko/s) Lecture des listes de paquets... Fait
apt install jitsi-meet
Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait
Configuration Nginx
À l'installation du paquet Jitsi, un serveur Web est détecté ou installé et une configuration est ajoutée pour le domaine déclaré.
Compléter le fichier /etc/nginx/sites-availabled/visio.chapril.org.
Créer le lien symbolique :
cd /etc/nginx/sites-enabled/ ln -s ../sites-available/visio.chapril.org
Créer le dossier des logs HTTP :
mkdir /var/log/nginx/visio.chapril.org/
Relancer le site Web :
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
nginx -s reload
Configuration Videobridge
Éditer le fichier /etc/jitsi/videobridge/sip-communicator.properties :
#org.jitsi.videobridge.AUTHORIZED_SOURCE_REGEXP=focus@auth.visio.chapril.org/.* org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=192.168.1.64 org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=88.99.233.240 org.jitsi.videobridge.ENABLE_STATISTICS=true org.jitsi.videobridge.STATISTICS_TRANSPORT=muc org.jitsi.videobridge.xmpp.user.shard.HOSTNAME=localhost org.jitsi.videobridge.xmpp.user.shard.DOMAIN=auth.visio.chapril.org org.jitsi.videobridge.xmpp.user.shard.USERNAME=jvb org.jitsi.videobridge.xmpp.user.shard.PASSWORD=XXXXXXXXXXXXXXXXXXX org.jitsi.videobridge.xmpp.user.shard.MUC_JIDS=JvbBrewery@internal.auth.visio.chapril.org org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME=XXXXXX-XXXXXX-XXXXXXX-XXXXXXXXX
Limiter la mémoire de Videobridge
Par défaut, la valeur maximale de mémoire allouable est 3072 Mo, ce qui peut paraître beaucoup.
À modifier dans le fichier /usr/share/jitsi-videobridge/lib/videobridge.rc :
VIDEOBRIDGE_MAX_MEMORY=2048m
Activation des statistiques
Éditer le fichier /etc/jitsi/videobridge/config :
JVB_OPTS="--apis=rest, "
Redémarrer :
systemctl restart nginx.service jicofo.service jitsi-videobridge2.service
Tester dans la VM Allo :
cd ~/ curl http://localhost:8080/about/version
{"name":"JVB","version":"2.1.376-g9f12bfe2","os":"Linux"}
curl http://localhost:8080/colibri/conferences
[]
curl http://localhost:8080/colibri/stats
{"inactive_endpoints":0,"inactive_conferences":0,"total_ice_succeeded_relayed"…
curl http://localhost:8080/colibri/stats 2> /dev/null | jshon -e participants -u
9
Documentation :
Personnalisation
Espace de fichiers
La personnalisation va passer par plusieurs fichiers à délivrer sur demande.
Création de l'espace des fichiers de personnalisation :
mkdir /var/www/visio.chapril.org/
Copier le fichier de configuration de l'interface dans l'espace de fichiers personnalisés :
cd /var/www/visio.chapril.org/ cp /usr/share/jitsi-meet/interface_config.js .
Ajouter dans /etc/nginx/sites-enabled/visio.chapril.org (avant les autres directives location) :
location = /interface_config.js { alias /var/www/visio.chapril.org/interface_config.js; }
Activer la nouvelle configuration :
nginx -t && nginx -s reload
Favicon Chapril
Placer le fichier favicon dans l'espace qui va bien :
cd /var/www/visio.chapril.org/ mkdir images cd images/ wget https://admin.chapril.org/lib/exe/detail.php?id=admin%3Aservices%3Avisio.chapril.org&media=admin:services:favicon-visiochaprilorg.ico mv favicon-visiochaprilorg.ico favicon.ico
Ajouter dans /etc/nginx/sites-enabled/visio.chapril.org (avant les autres directives location) :
location = /images/favicon.ico { alias /var/www/visio.chapril.org/images/favicon.ico; }
Activer la nouvelle configuration :
nginx -t && nginx -s reload
Watermark Chapril
Placer l'image dans l'espace qui va bien :
cd /var/www/visio.chapril.org/ mkdir images cd images/ wget https://www.chapril.org/IMG/siteon0.png?1569921870 mv siteon0.png?1569921870 logo-chapril.png
Ajouter dans /etc/nginx/sites-enabled/visio.chapril.org (avant les autres directives location) :
location = /images/watermark.png { alias /var/www/visio.chapril.org/images/logo-chapril.png; }
Activer la nouvelle configuration :
nginx -t && nginx -s reload
Modifier le fichier /var/www/visio.chapril.org/interface_config.js :
< JITSI_WATERMARK_LINK: 'https://jitsi.org', --- > JITSI_WATERMARK_LINK: 'https://www.chapril.org/',
Parties tierces
Dans le fichier /etc/jitsi/meet/visio.chapril.org-config.js :
disableThirdPartyRequests: true,
Titres et onglet
Modifier le fichier /var/www/visio.chapril.org/interface_config.js :
< APP_NAME: 'Jitsi Meet', < NATIVE_APP_NAME: 'Jitsi Meet', < PROVIDER_NAME: 'Jitsi', --- > APP_NAME: 'Visio.chapril.org', > NATIVE_APP_NAME: 'Visio.chapril.org', > PROVIDER_NAME: 'Chapril',
Interface en Français
Réglages à faire pour imposer le Français comme langue d'interface1).
Dans le fichier /var/www/visio.chapril.org/interface_config.js :
LANG_DETECTION: false, // Allow i18n to detect the system language
Dans le fichier /etc/jitsi/meet/visio.chapril.org-config.js :
defaultLanguage: 'fr',
Dans le fichier /var/www/visio.chapril.org/interface_config.js, personnaliser les champs suivants :
< DEFAULT_REMOTE_DISPLAY_NAME: 'Fellow Jitster', < DEFAULT_LOCAL_DISPLAY_NAME: 'me', --- > DEFAULT_REMOTE_DISPLAY_NAME: 'autre', > DEFAULT_LOCAL_DISPLAY_NAME: 'moi',
Textes page d'accueil
Copier le fichier français d'internalisation dans l'espace de fichiers personnalisés :
cd /var/www/visio.chapril.org/ mkdir lang cd lang/ cp /usr/share/jitsi-meet/lang/main-fr.json .
Ajouter dans /etc/nginx/sites-enabled/visio.chapril.org (avant les autres directives location) :
location = /lang/main-fr.json { alias /var/www/visio.chapril.org/lang/main-fr.json; }
Ajouter un lien vers la messagerie support sur la page d'accueil
Éditer le fichier /usr/share/jitsi-meet/static/welcomePageAdditionalContent.html comme suit :
<template id="welcome-page-additional-content-template"> <span style="margin-left: 30%;padding: 10px; background: rgb(5%,5%,15%); color: rgb(95%,95%,100%);font-size:14pt;">En cas de problème vous pouvez contacter le support à cette adresse : <a href="mailto:visio-support@chapril.org">Message support</a> </span> </template>
Activer la nouvelle configuration :
nginx -t && nginx -s reload
Modifier les entrées headerTitle et headerSubtitle comme suit :
< "headerTitle": "Visio.chapril.org", < "headerSubtitle": "Visio.chapril.org est un service libre de visioconférence. Rien à installer, tout se passe dans votre navigateur. Pas de réglage à faire, le son est parfait par défaut.\nAnonyme, pas de besoin de compte. Chiffré, votre intimité numérique est préservée. Ouvert à tout le monde, invitez qui vous voulez, quand vous voulez. Recommandation : 5 personnes maximum par salon et éviter les connexions Internet faibles.", --- > "headerTitle": "Jitsi Meet", > "headerSubtitle": "Conférences sécurisées et de haute qualité",
Désactivation de la caméra par défaut
Dans le fichier /etc/jitsi/meet/visio.chapril.org-config.js :
startWithVideoMuted: true,
Possibilité de désactiver automatiquement à partir d'un certain nombre de participants :
// Every participant after the Nth will start video muted. // startVideoMuted: 10,
Abaisser la qualité vidéo par défaut
Dans /etc/jitsi/meet/visio.chapril.org-config.js :
// Sets the preferred resolution (height) for local video. Defaults to 720.
- // resolution: 720,
+ resolution: 360,
- // constraints: {
- // video: {
- // aspectRatio: 16 / 9,
- // height: {
- // ideal: 720,
- // max: 720,
- // min: 240
- // }
- // }
- // },
+ constraints: {
+ video: {
+ aspectRatio: 16 / 9,
+ height: {
+ ideal: 360,
+ max: 360,
+ min: 240
+ }
+ }
+ },
Retrait pub privateur
Dans le fichier /var/www/visio.chapril.org/interface_config.js :
< OPTIMAL_BROWSERS: [ 'chrome', 'chromium', 'firefox', 'nwjs', 'electron', 'safari' ], --- > OPTIMAL_BROWSERS: [ 'chromium', 'firefox', 'nwjs', 'electron' ],
Retirer des entrées inutiles du menu
Actuellement, une fois dans un salon Jitsi, dans le menu sont proposées les entrées :
- Démarrer la diffusion en direct ;
- Commencer l'enregistrement ;
- Partager une vidéo YouTube.
Sauf que quand on clique dessus, ça ne fonctionne pas.
Alors, en fait, ces fonctionnalités ne sont pas souhaitables dans le cadre du Chapril :
- Techniquement, elles nécessitent l'installation de services supplémentaires (Jibri) potentiellement complexes et très consommateurs de ressources ;
- Certaines font la promotion de plateformes non libres ;
- Trop avancées pour le Chapril qui a pour but de faire découvrir des services libres et d'être utile.
Si un utilisateur réclame ces fonctionnalités, il faut l'inviter à aller vers un autre hébergeur ou à héberger lui-même.
Pour retirer ces entrées, éditer le fichier root@allo:/var/www/visio.chapril.org/interface_config.js.
Dans la variable TOOLBAR_BUTTONS, retirer les valeurs sharedvideo,livestreaming et recording puis redémarrer.
Avant :
Après :
Ce sujet a fait l'objet du ticket n°4887.
Patch needrestart
Needrestart est perturbé par Videobridge qu'il ne cesse de signaler comme étant à redémarrer.
Un ticket est ouvert sur le projet officiel : https://github.com/jitsi/jitsi-videobridge/issues/1166.
En attendant, application d'une astuce trouvée sur https://unix.stackexchange.com/questions/574325/jitsi-videobridge-service-daemons-using-outdated-libraries.
Dans /etc/needrestart/needrestart.conf :
$nrconf{blacklist_mappings} = [
[…]
# Videobridge bug (agir #5168).
qr(^/tmp/jna-),
qr(^/usr/share/jitsi-videobridge/.cache/JNA/temp/jna),
qr(^/tmp/nativeutils),
Et maintenant Needrestart est bon.
Supervision
Contrôle de l'expiration du certificat TLS
La sonde est située dans /srv/visio.chapril.org/tools/monitoring/check_visio_certificate.sh avec un lien vers /usr/local/lib/nagios/plugins/check_visio_certificate.
C'est une encapsulation de la sonde standard check_http avec des paramètres fixes et d'autres modifiables :
./check_visio_certificate.sh -h
check_visio_certificate SYNTAXE check_visio_certificate -t <seuils> -i <IP du frontal/bastion> EXEMPLE ./check_visio_certificate -t 30,14 -i 192.168.1.1
Le premier seuil (30 dans l'exemple), donne le nombre de jours avant de générer un avertissement d'expiration warning.
Le deuxième seuil (14 dans l'exemple), donne le nombre de jours avant de générer une alerte critique d'expiration critical.
Contrôle du processus videobridge
La sonde est située dans /srv/visio.chapril.org/tools/monitoring/check_jitsi_videobridge avec un lien vers /usr/local/lib/nagios/plugins/check_jitsi_videobridge.
C'est une encapsulation de la sonde standard check_procs avec l'argument -a forcé à jitsi-videobridge.
Contrôle du processus jicofo
La sonde est située dans /srv/visio.chapril.org/tools/monitoring/check_jitsi_jicofo avec un lien vers
/usr/local/lib/nagios/plugins/check_jitsi_jicofo.
C'est une encapsulation de la sonde standard check_procs avec l'argument -a forcé à jicofo.
Rapports d'activité
Des rapports d'activité sont générés à plusieurs niveaux (granularité, dates etc.).
Un rapport d'activité est produit avec le script standard rapport_activite.sh.
Il est situé dans /srv/visio.chapril.org/tools/rapport_activite/rapport_activite.sh.
Ce script génère des éléments statistiques par analyse des fichiers de logs du serveur.
Un complément à ces informations a été ajouté en utilisant les statistiques internes à Jitsi : Colibri.
Le script est situé dans /srv/visio.chapril.org/tools/statistiques/parseStats.py.
Il exploite un autre script, /srv/visio.chapril.org/tools/statistiques/getStats.py, qui génère des statistique directement depuis le serveur de Visio.
Les données statistiques sont récoltées et stockées dans une base de données SQLite dans /srv/visio.chapril.org/statistiques/stats_sqlite.db.
Elles sont ensuite consolidés par le script parseStats.py avant d'être envoyées dans le rapport d'activité.
Ces deux scripts sont appelés par un fichier Cron : /etc/cron.d/visiochaprilorg-rapportactivite.
Ce dernier permet d'ajouter leur résultat directement dans un ticket Redmine dédié à cette récolte : le ticket n°4368.
