HumanG33K
175bcaac74
Premier readme d'installation See merge request a-lec/commissions/chalec/visio!1 |
||
---|---|---|
README.md |
README.md
Service VISIO
Service de visio-conférence du candidat chaton de Libre en communs.
Responsable: @human-geek
CPU : 1 (4 core) RAM : 4 Go
INSTALLATION
Généralités
La majorité des éléments d'installation et de configuration sont tirés de la documentation officielle :
https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart/
Sauf indication contraire les commandes sont executées avec les droits administrateurs. La documentation se concentre sur le service et laisse de coté les autres aspects de configurations de la machine.
Pré-requis
Afin de
apt update
apt install gnupg2 nginx-full apt-transport-https
Àjout du dépot de jitsi-meet
curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'
echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null
Configuration Firewall
Afin de permettre à Jitsi de fonctionner correctement un certain nombre de port doivent être ouverts.
- 80 TCP => Pour la gestion des certificat SSL. Requis
- 443 TCP => Pour l'accès à l'interface de Jitsi Meet. Requis
- 10000 UDP => Pour la majorité des flux réseau audio et vidéo. Requis
- 3478 UDP => Pour interroger le serveur stun (coturn, optionnel, besoin de configurer le fichier config.js).
- 5349 TCP => Pour les communication réseau audio et vidéo de secours via TCP (quand UDP est bloquée), fournis par coturn . Requis
Les commandes suivantes concerne UFW. C'est à adapter si vous utilisez un autre Firewall.
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 10000/udp
ufw allow 22/tcp
ufw allow 3478/udp
ufw allow 5349/tcp
ufw enable
Certificat TLS
L'installation du certificat TLS se fait via l'utilisation de certbot.
Afin d'éviter les soucis de cron notamment il est conseillé (contrairement à ce qu'indique la documentation officielle) de générer son propre certificat et ne pas laisser jitsi gérer le certificat.
TODO
Installation de Jitsi Meet
L'installation se fait via le paquet debian du dépot officiel de jitsi-meet. L'installation est à même de détecter le serveur web déjà installé.
apt install jitsi-meet
Configurations
Serveur web
/etc/nginx/sites-enabled/visio.chalec.org.conf
include visio.chalec.org.conf;
Vidéobridge
Éditer le fichier /etc/jitsi/videobridge/sip-communicator.properties
#org.ice4j.ice.harvest.DISABLE_AWS_HARVESTER=true
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=XXX.XXX.XXX.XXX
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=80.67.179.96
#org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443
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.chalec.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.chalec.org
org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME=XXXXXX-XXXXXX-XXXXXXX-XXXXXXXXX
Statistiques
Éditer le fichier /etc/jitsi/videobridge/config et activer l'api rest :
JVB_OPTS="--apis=rest, "
Il est possible de tester l'api avec le script suivant :
curl http://localhost:8080/about/version
curl http://localhost:8080/colibri/conferences
curl http://localhost:8080/colibri/stats
curl http://localhost:8080/colibri/stats 2> /dev/null | jshon -e participants -u
Éléments d'interfaces
Configuration web
Afin de séparer au maximum la configuration fournis en amont et les éléments de personnalisations un fichier de configuration nginx spécifique au service est créé :
- /etc/nginx/visio.chalec.org.conf
set $custom_path /var/www/visio.chalec.org;
location = /interface_config.js {
alias $custom_path/interface_config.js;
}
location = /images/favicon.ico {
alias $custom_path/images/visio.chalec.org.ico;
}
location = /images/watermark.svg {
alias $custom_path/images/visio.chalec.org.svg;
}
location = /images/welcome-background.png {
alias $custom_path/images/welcome-background.webp;
}
location = /static/recommendedBrowsers.html {
alias $custom_path/static/recommendedBrowsers.html;
}
# StatoolInfos.
include /etc/nginx/statoolinfos.conf;
Il permet de faire des alias et de remplacer les fichiers déclarés par défaut par les nôtres, le tout peut importe leurs noms. Il faut juste que la configuration nginx soit cohérente.
Racine de stockage
L'ensemble des fichiers (images, icônes, etc) sont créés dans le dossier /var/www/visio.chalec.org. À ce titre nous recréons l'arborescence de jitsi.
mkdir -p /var/www/visio.chalec.org/{images/statics}
Favicon, Watermark et fond d'accueil
Les différentes images sont à incorporer dans le dossier :
/var/www/visio.chalec.org/images
Dans notre configuration actuelle les éléments sont nommé comme suis :
- visio.chalec.org.ico pour le favicon.
- visio.chalec.org.svg pour le filigrame (watermark), il faut noter que le lien http est à configurer dans la partie javascript.
- welcome-background.webp pour le fond d'écran d'accueil.
Javascript
Le fichiers javascript permet de configurer certaines informations, aussi nous en fesons une copie puis éditons les valeurs afin de faire correspondre à notre service.
cp /usr/share/jitsi-meet/interface_config.js /var/www/visio.chalec.org/
Une fois cela fait un certain nombre d'éléments sont à personnaliser
APP_NAME: 'Visio Chalec',
DEFAULT_LOGO_URL: 'images/watermark.svg',
DISPLAY_WELCOME_FOOTER: false,
DISPLAY_WELCOME_PAGE_ADDITIONAL_CARD: true,
DISPLAY_WELCOME_PAGE_CONTENT: true,
JITSI_WATERMARK_LINK: 'https://chalec.org',
OPTIMAL_BROWSERS: [ 'chromium', 'firefox', 'nwjs', 'electron' ],
PROVIDER_NAME: 'Jitsi et Chalec',
Redémarrer les services
Il est ensuite primordial de redémarrer le serveur web et jitsi.
service nginx restart;
service jitsi-videobridge2 restart;
service jicofo restart;