Ceci est une ancienne révision du document !
Table des matières
Meet jitsi dans un container LXC
Installation du container
lxc-create -t download -n meet -- -d debian -r buster -a amd64
Pas d'ip fixe, config réseau par défaut pour le container
lxc-start visio lxc-ls -f lxc-attach visio root@meet
Génération des certificats ssl letencrypt
Utilisation d'un vhost générique activé pour l'occasion pointant sur un répertoire du host accessible d'apache
certbot certonly --webroot -w /home/adminbox/www/ynh.futuretic.fr -d visio.futuretic.fr
bien sale, on génére le certificat la première fois après renouvelement auto, dans le vhost suivant, on utilise le certificat généré
Installation de meet jitsi
Configuration host hostname
Sur le host :
nano /etc/hosts 10.0.3.250 visio.futuretic.fr
Dans le container :
nano /etc/hosts 127.0.1.1 meet visio visio.futuretic.fr root@meet /home # hostname visio
Création des vhost apache pour proxy le traffic vers le container
nano /etc/apache2/sites-available/visio.futuretic.fr.conf
- config
<VirtualHost *:80> ServerAdmin tech@futuretic.fr ServerName visio.futuretic.fr RewriteEngine on RewriteRule ^ https://visio.futuretic.fr%{REQUEST_URI} [END,QSA,R=permanent]
nano /etc/apache2/sites-available/visio.futuretic.fr-le-ssl.conf
- config
<IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin tech@futuretic.fr ServerName visio.futuretic.fr SSLEngine on SSLProxyEngine On SSLCertificateFile /etc/letsencrypt/live/visio.futuretic.fr/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/visio.futuretic.fr/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf ProxyPreserveHost On ProxyPass / https://visio.futuretic.fr/ ProxyPassReverse / https://visio.futuretic.fr/ # For WebSockets RewriteEngine on RewriteCond %{HTTP:Connection} Upgrade [NC] RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteRule /(.*) wss://visio.futuretic.fr/$1 [P,L] RequestHeader set X-Forwarded-Proto “https” RequestHeader set X-Forwarded-Port “443” #SetEnv proxy-sendchunks 1 <Proxy *> Order deny,allow Allow from all </Proxy> ErrorLog /var/log/apache2/visio.futuretic.fr.error.log LogLevel error CustomLog /var/log/apache2/visio.futuretic.fr.access.log vhost_combined </VirtualHost> </IfModule>
Réglages Firewall et réseau pour container LXC
Sur l'hote
Ouvrir les ports nécessaires au fonctionnement de jitsi avec ufw :
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 10000/udp sudo ufw allow 22/tcp sudo ufw allow 3478/udp sudo ufw allow 5349/tcp sudo ufw enable
Check du firewall status
sudo ufw status verbose
Il faut transférer certains de ces ports au container jitsi (pour 80 et 443, c'est l'apache du host qui fait le proxy vers le container) : ajouter en début de fichier
nano /etc/ufw/before.rules
*nat :PREROUTING ACCEPT [0:0] # jitsi specific rules -A PREROUTING -i enp35s0 -p udp --dport 10000 -j DNAT --to 10.0.3.211:10000 -A PREROUTING -i enp35s0 -p tcp --dport 3478 -j DNAT --to 10.0.3.211:3478 -A PREROUTING -i enp35s0 -p tcp --dport 5349 -j DNAT --to 10.0.3.211:5349 COMMIT
10.0.3.211 étant l'ip du container
Redémarrer ufw avec
sudo ufw disable && sudo ufw enable
Dans le container Jitsi
Configurer le videobridge
nano /etc/jitsi/videobridge/sip-communicator.properties
org.ice4j.ice.harvest.DISABLE_AWS_HARVESTER=true ###org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443 # from forum org.jitsi.impl.neomedia.transform.srtp.SRTPCryptoContext.checkReplay=false # add to make it work inside the container org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=10.0.3.211 org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=135.181.129.123
Redémarrer videobridge
systemctl restart jitsi-videobridge2
Trouble shooting
Redémarrer lxc-net service sur l'hote
systemctl restart lxc-net.service
Dans le container
tail -f /var/log/jitsi/jicofo.log tail -f /var/log/jitsi/jvb.log
Configurations complémentaires
Personnaliser l'interface
Désactiver ipv6 ?!
nano /etc/sysctl.conf
Ajouter la ligne suivante en fin de fichier
net.ipv6.conf.all.disable_ipv6 = 1
Appliquer les changements
sysctl -p