SITE EN TRAVAUX
Ce site suit une démarche éco-responsable. Il est développé en "dark mode", avec des illustrations minimalistes et détourées, pour se cultiver tout en minimisant son empreinte carbone.
Ref : https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker
Visioconférence privée Jitsi sur Synology NAS – Virtualconfusion
Modèles compatibles sur la page du site de Synology.
Ou pour les modèles en version DSM 6.2 sur la page du site de Synology.
Afin d'exécuter rapidement Jitsi Meet sur une machine exécutant Docker et Docker Compose, suivez ces étapes :
cd /volume1/docker/docker-jitsi-meet-master
./gen-passwords.sh
Cette ligne horizontale signifie que je me suis arrêté là le tuto, et la suite est la traduction google du site en anglais dont je me sert pour faire le tuto. Je continue petit à petit. Pour me contacter => yohan.aloe@hotmail.fr
NOTE
HTTP (et non HTTPS) est également disponible (sur le port 8000, par défaut), mais c'est par exemple pour une configuration de proxy inverse ; l'accès direct via HTTP au lieu de HTTPS entraîne des erreurs WebRTC telles que Échec de l'accès à votre microphone/caméra : impossible d'utiliser le microphone/la caméra pour une raison inconnue. Impossible de lire la propriété « getUserMedia » de undefined ou navigator.mediaDevices est undefined .
Si vous souhaitez également utiliser jigasi, configurez d'abord votre fichier env avec les informations d'identification SIP, puis exécutez Docker Compose comme suit :
docker-compose -f docker-compose.yml -f jigasi.yml up
Si vous souhaitez activer le partage de documents via Etherpad , configurez-le et exécutez Docker Compose comme suit :
docker-compose -f docker-compose.yml -f etherpad.yml up
Si vous souhaitez également utiliser jibri, configurez d'abord un hôte comme décrit dans la section de configuration de JItsi BRoadcasting Infrastructure, puis exécutez Docker Compose comme suit :
docker-compose -f docker-compose.yml -f jibri.yml up -d
ou pour utiliser jigasi aussi :
docker-compose -f docker-compose.yml -f jigasi.yml -f jibri.yml up -d
Téléchargez le dernier code :
git clone https://github.com/jitsi/docker-jitsi-meet && cd docker-jitsi-meet
NOTE
Le code master est conçu pour fonctionner avec les images instables. Ne l'exécutez pas avec les images de version.
Courez docker-compose up comme d'habitude.
Chaque jour, une nouvelle version d'image "instable" est téléchargée.
Téléchargez le dernier code :
git clone https://github.com/jitsi/docker-jitsi-meet && cd docker-jitsi-meet
Le fourni Makefilefournit un moyen complet de créer la pile entière ou des images individuelles.
Pour créer toutes les images :
make
Pour construire une image spécifique (l'image web par exemple) :
make build_web
Une fois que votre version locale est prête, assurez-vous de l'ajouter JITSI_IMAGE_VERSION=latest à votre .env fichier.
Cette configuration avait auparavant des mots de passe par défaut pour les comptes internes utilisés dans tous les composants. Afin de sécuriser la configuration par défaut, ceux-ci ont été supprimés et les conteneurs respectifs ne démarreront pas sans avoir défini un mot de passe.
Des mots de passe forts peuvent être générés comme suit : ./gen-passwords.sh Cela modifiera votre .env fichier (une sauvegarde est enregistrée dans .env.bak) et définira des mots de passe forts pour chacune des options requises. Les mots de passe sont générés à l'aide de openssl rand -hex 16.
NE réutilisez AUCUN des mots de passe.
Une installation Jitsi Meet peut être décomposée en les composants suivants :
Le diagramme montre un déploiement typique dans un hôte exécutant Docker. Ce projet sépare chacun des composants ci-dessus dans des conteneurs interconnectés. À cette fin, plusieurs images de conteneurs sont fournies.
Les ports externes suivants doivent être ouverts sur un pare-feu :
Également 20000-20050/udppour jigasi, au cas où vous choisiriez de le déployer pour faciliter l'accès SIP.
Par exemple, sur un serveur CentOS/Fedora, cela se ferait comme ceci (sans accès SIP) :
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=10000/udp
sudo firewall-cmd --reload
Consultez la section correspondante dans le guide de configuration manuelle .
Jitsi Meet utilise XMPP pour la signalisation, d'où la nécessité du serveur XMPP. La configuration fournie par ces conteneurs n'expose pas le serveur XMPP au monde extérieur. Au lieu de cela, il reste complètement scellé et le routage du trafic XMPP s'effectue uniquement sur un réseau défini par l'utilisateur.
Le serveur XMPP peut être exposé au monde extérieur, mais cela sort du cadre de ce projet.
La configuration s'effectue via des variables d'environnement contenues dans un .envfichier. Vous pouvez copier le env.examplefichier fourni comme référence.
Variable | Description | Exemple |
CONFIG | Répertoire où toute la configuration sera stockée | /opt/jitsi-meet-cfg |
TZ | Fuseau horaire du système | Europe/Amsterdam |
HTTP_PORT | Port exposé pour le trafic HTTP | 8000 |
HTTPS_PORT | Port exposé pour le trafic HTTPS | 8443 |
JVB_ADVERTISE_IPS | Adresses IP de l'hôte Docker (séparées par des virgules), nécessaires pour les environnements LAN | 192.168.1.1 |
PUBLIC_URL | URL publique du service Web |
NOTE
Les applications mobiles ne fonctionneront pas avec des certificats auto-signés (valeur par défaut). Voir ci-dessous pour obtenir des instructions sur la façon d'obtenir un certificat approprié avec Let's Encrypt.
Si vous souhaitez exposer votre instance Jitsi Meet directement au trafic extérieur, mais que vous ne possédez pas de certificat TLS approprié, vous avez de la chance car la prise en charge de Let's Encrypt est intégrée. Voici les options requises :
Variable | Description | Exemple |
ENABLE_LETSENCRYPT | Activer la génération de certificat Let's Encrypt | 1 |
LETSENCRYPT_DOMAIN | Domaine pour lequel générer le certificat | rencontre.exemple.com |
LETSENCRYPT_EMAIL | E-Mail pour recevoir des notifications importantes sur votre compte (obligatoire) | alice@atlanta.net |
De plus, vous devrez définir HTTP_PORTà 80 et HTTPS_PORTà 443 et PUBLIC_URL votre domaine. Vous pouvez également envisager de rediriger le trafic HTTP vers HTTPS en définissant ENABLE_HTTP_REDIRECT=1.
Avertissement de limite de débit de Let's Encrypt : Let's Encrypt a une limite au nombre de fois que vous pouvez soumettre une demande de nouveau certificat pour votre nom de domaine. Au moment de la rédaction de cet article, la limite actuelle est de cinq nouveaux certificats (en double) pour le même nom de domaine tous les sept jours. Pour cette raison, il est recommandé de désactiver les variables d'environnement Let's Encrypt .env si vous envisagez de supprimer le .jitsi-meet-cfg dossier. Sinon, vous souhaiterez peut-être envisager de déplacer le .jitsi-meet-cfg dossier vers un autre emplacement afin de disposer d'un endroit sûr pour trouver le certificat déjà émis par Let's Encrypt. Ou effectuez les tests initiaux avec Let's Encrypt désactivé, puis réactivez Let's Encrypt une fois les tests terminés.
NOTE
Lorsque vous quittez LETSENCRYPT_USE_STAGING, vous devrez effacer manuellement les certificats de .jitsi-meet-cfg/web.
Pour plus d'informations sur les limites de débit de Let's Encrypt, visitez : https://letsencrypt.org/docs/rate-limits/
Si vous possédez un certificat TLS approprié et n'avez pas besoin d'un certificat Let's Encrypt, vous pouvez configurer le conteneur Jitsi Meet pour l'utiliser.
Contrairement aux certificats Let's Encrypt, cela n'est pas configuré via le .env fichier, mais en indiquant web au service de Jitsi Meet de monter les deux volumes suivants :
Le faire dans docker-compose.ymlun fichier devrait ressembler à ceci :
services:
web:
...
volumes:
...
- /path/to/your/cert.fullchain:/config/keys/cert.crt
- /path/to/your/cert.key:/config/keys/cert.key
Variable | Description | Exemple |
TOOLBAR_BUTTONS | Configurez les boutons de la barre d'outils. Ajoutez le nom des boutons séparé par une virgule (pas d'espace entre les virgules) | |
HIDE_PREMEETING_BUTTONS | Masquez les boutons sur l’écran de pré-adhésion. Ajoutez le nom des boutons séparé par une virgule | |
ENABLE_LOBBY | Contrôler si la fonction de lobby doit être activée ou non | 1 |
ENABLE_AV_MODERATION | Contrôler si la modération A/V doit être activée ou non | 1 |
ENABLE_PREJOIN_PAGE | Afficher une page de pré-adhésion avant d'entrer dans une conférence | 1 |
ENABLE_WELCOME_PAGE | Activer la page d'accueil | 1 |
ENABLE_CLOSE_PAGE | Activer la page de fermeture | 0 |
DISABLE_AUDIO_LEVELS | Désactiver la mesure des niveaux audio | 0 |
ENABLE_NOISY_MIC_DETECTION | Activer la détection de micro bruyant | 1 |
ENABLE_BREAKOUT_ROOMS | Activer les salles de sous-commission | 1 |
Si vous souhaitez activer la passerelle SIP, ces options sont requises :
Variable | Description | Exemple |
JIGASI_SIP_URI | URI SIP pour les appels entrants/sortants | test@sip2sip.info |
JIGASI_SIP_PASSWORD | Mot de passe pour le compte SIP spécifié | <unset> |
JIGASI_SIP_SERVER | Serveur SIP (utilisez le domaine du compte SIP en cas de doute) | sip2sip.info |
JIGASI_SIP_PORT | Port du serveur SIP | 5060 |
JIGASI_SIP_TRANSPORT | Transport SIP | UDP |
Variable | Description | Exemple |
DIALIN_NUMBERS_URL | URL vers le JSON avec tous les numéros d'appel | |
CONFCODE_URL | URL vers l'API pour vérifier/générer les codes d'appel |
Le JSON avec les numéros d'appel devrait ressembler à ceci :
{"message":"Dial-In numbers:","numbers":{"DE": ["+49-721-0000-0000"]},"numbersEnabled":true}
Si vous utilisez une version antérieure à 7439, une configuration supplémentaire est nécessaire.
Si vous souhaitez activer Jibri, ces options sont requises :
Variable | Description | Exemple |
ENABLE_RECORDING | Activer l'enregistrement/la diffusion en direct | 1 |
Configuration Jibri étendue :
Variable | Description | Exemple |
JIBRI_RECORDER_USER | Utilisateur de l'enregistreur interne pour les connexions client Jibri | enregistreur |
JIBRI_RECORDER_PASSWORD | Mot de passe de l'enregistreur interne pour les connexions client Jibri | <unset> |
JIBRI_RECORDING_DIR | Répertoire des enregistrements à l'intérieur du conteneur Jibri | /config/enregistrements |
JIBRI_FINALIZE_RECORDING_SCRIPT_PATH | Le script de finalisation. S'exécutera une fois l'enregistrement terminé | /config/finalize.sh |
JIBRI_XMPP_USER | Utilisateur interne pour les connexions client Jibri. | Jibri |
JIBRI_STRIP_DOMAIN_JID | Domaine de préfixe pour la bande à l'intérieur de Jibri (veuillez consulter env.example pour plus de détails) | muc |
JIBRI_BREWERY_MUC | Nom MUC pour la piscine Jibri | jibribrasserie |
JIBRI_PENDING_TIMEOUT | Expiration du délai de connexion MUC | 90 |
CETTE SECTION CONTIENT EN PARTIE DES PARAMÈTRES EN DOUBLE
Certains paramètres de votre docker-compose.ymlfichier START_AUDIO_MUTED seront écrasés si vous suivez le guide ci-dessous.
Jitsi-Meet utilise deux fichiers de configuration pour modifier les paramètres par défaut dans l'interface Web : config.jset interface_config.js. Les fichiers se trouvent dans le CONFIGrépertoire configuré dans votre fichier d'environnement.
Ces fichiers sont recréés à chaque redémarrage du conteneur. Si vous souhaitez fournir vos propres paramètres, créez vos propres fichiers de configuration : custom-config.jset custom-interface_config.js.
Il suffit de fournir uniquement vos paramètres pertinents, les scripts Docker ajouteront vos fichiers personnalisés à ceux par défaut !
L'authentification peut être contrôlée avec les variables d'environnement ci-dessous. Si l'accès invité est activé, les utilisateurs non authentifiés devront attendre qu'un utilisateur s'authentifie avant de pouvoir rejoindre une salle. Si l'accès invité n'est pas activé, chaque utilisateur devra s'authentifier avant de pouvoir rejoindre.
Si l'authentification est activée, une fois qu'un utilisateur authentifié s'est connecté, il est toujours connecté avant l'expiration du délai de session. Vous pouvez ENABLE_AUTO_LOGIN=0désactiver cette fonctionnalité de connexion automatique par défaut ou limiter JICOFO_AUTH_LIFETIMEla durée de vie de la session.
Variable | Description | Exemple |
ENABLE_AUTH | Activer l'authentification | 1 |
ENABLE_GUESTS | Activer l'accès invité | 1 |
AUTH_TYPE | Sélectionnez le type d'authentification (interne, jwt ou ldap) | interne |
ENABLE_AUTO_LOGIN | Activer la connexion automatique | 1 |
JICOFO_AUTH_LIFETIME | Sélectionnez la valeur du délai d'expiration de la session pour un utilisateur authentifié | 3 heures |
Le mode d'authentification par défaut ( internal) utilise les informations d'identification XMPP pour authentifier les utilisateurs. Pour l'activer, vous devez activer l'authentification avec ENABLE_AUTHet définir AUTH_TYPEsur internal, puis configurer les paramètres que vous pouvez voir ci-dessous.
Les utilisateurs internes doivent être créés avec l' prosodyctlutilitaire dans le prosodyconteneur. Pour ce faire, exécutez d’abord un shell dans le conteneur correspondant :
docker-compose exec prosody /bin/bash
Une fois dans le conteneur, exécutez la commande suivante pour créer un utilisateur :
prosodyctl --config /config/prosody.cfg.lua register TheDesiredUsername meet.jitsi TheDesiredPassword
Notez que la commande ne produit aucune sortie.
Pour supprimer un utilisateur, exécutez la commande suivante dans le conteneur :
prosodyctl --config /config/prosody.cfg.lua unregister TheDesiredUsername meet.jitsi
Pour répertorier tous les utilisateurs, exécutez la commande suivante dans le conteneur :
find /config/data/meet%2ejitsi/accounts -type f -exec basename {} .dat \;
Vous pouvez utiliser LDAP pour authentifier les utilisateurs. Pour l'activer, vous devez activer l'authentification avec ENABLE_AUTHet définir AUTH_TYPEsur ldap, puis configurer les paramètres que vous pouvez voir ci-dessous.
Variable | Description | Exemple |
LDAP_URL | URL pour la connexion LDAP | ldaps://ldap.domain.com/ |
LDAP_BASE | DN de base LDAP. Peut être vide. | DC=exemple,DC=domaine,DC=com |
LDAP_BINDDN | Nom distinctif de l'utilisateur LDAP. Ne spécifiez pas ce paramètre pour la liaison anonyme. | CN=binduser,OU=utilisateurs,DC=exemple,DC=domaine,DC=com |
LDAP_BINDPW | Mot de passe de l'utilisateur LDAP. Ne spécifiez pas ce paramètre pour la liaison anonyme. | LdapUserPassw0rd |
LDAP_FILTER | Filtre LDAP. | (sAMAccountName=%u) |
LDAP_AUTH_METHOD | Méthode d'authentification LDAP. | lier |
LDAP_VERSION | Version du protocole LDAP | 3 |
LDAP_USE_TLS | Activer LDAP TLS | 1 |
LDAP_TLS_CIPHERS | Définir la liste des chiffrements TLS pour autoriser | SÉCURISÉ256 : SÉCURISÉ128 |
LDAP_TLS_CHECK_PEER | Exiger et vérifier le certificat du serveur LDAP | 1 |
LDAP_TLS_CACERT_FILE | Chemin d'accès au fichier de certificat CA. Utilisé lorsque la vérification du certificat du serveur est activée | /etc/ssl/certs/ca-certificates.crt |
LDAP_TLS_CACERT_DIR | Chemin d'accès au répertoire des certificats CA. Utilisé lorsque la vérification du certificat du serveur est activée. | /etc/ssl/certs |
LDAP_START_TLS | Activer START_TLS, nécessite LDAPv3, l'URL doit être ldap:// et non ldaps:// | 0 |
[a]Important remplacer toutes les indications en vert et gras par vos paramètres personnels