Jitsi Meet en la red local Jitsi es una aplicación de videoconferencia, VoIP, y mensajería instantánea con aplicaciones nativas para iOS y Android, y con soporte para Windows, Linux y Mac OS X a través de la web. Al ser de código abierto brida capacidades de videoconferencia seguras, fáciles de usar y fáciles de auto-hospedar. En este tutorial veremos el auto-hospedaje de Jitsi en la red local completamente offline. Requisitos Docker Docker Compose Instalar la imagen oficial de Jitsi-Meet en Docker 1. Descargue y extraiga la última versión. NO clone el repositorio de git. 2. Cree un archivo .env copiando env.example y ajuste los siguientes valores: Variable Valor por defecto Nuevo valor HTTP_PORT 8000 80 ** HTTPS_PORT 8443 443 ** PUBLIC_URL DOCKER_HOST_ADDRESS https://meet.ex ample.com 192.168.1.1 URL de su dominio, ej: https://v.je IP de la maquina anfitrión donde se esta ejecutando Docker ** Se pueden dejar los puertos por defecto si planeamos utilizar un reverse proxy como Traefik. 3. Establezca contraseñas seguras en las opciones de la sección de seguridad del archivo .env ejecutando el siguiente script bash: sh ./gen-passwords.sh 4. Cree los directorios CONFIG necesarios mkdir -p ~/.jitsi-meetcfg/{web/letsencrypt,transcripts,prosody/config,prosody/prosody-pluginscustom,jicofo,jvb,jigasi,jibri} 5. Ejecute docker-compose up -d A este punto ya se puede acceder a la interfaz de usuario web en https: // localhost. Al acceder, el navegador dirá que su conexión no es segura y mostrará el error NET::ERR_CERT_COMMON_NAME_INVALID debido a que el servidor web de Jitsi-Meet no esta usando un certificado SSL valido y por tanto el navegador no podrá iniciar la aplicación web ni tampoco las aplicaciones móviles podrán acceder. Para el correcto funcionamiento del servidor, debemos usar un nombre de dominio con su certificado SSL. Por suerte podemos lograrlo en nuestra red local, sin necesidad de exponer nuestro servidor a Internet. DNS Podemos asociar un nombre de dominio al IP de nuestro servidor Jitsi-Meet modificando el archivo hosts de nuestro router o utilizando un servidor DNS como Pi-hole, si disponemos de un Raspberry pi en nuestra red. Una vez que el IP del servidor este asociado a un nombre de dominio debemos obtener un certificado SSL para el mismo. Certificado SSL Para un dominio de nuestra propiedad, podemos obtener un certificado SSL con Let's Encrypt y Certbot, que se encuentran implícitos en Jitsi-Meet. Pero en este caso, como nuestro servidor no se encuentra expuesto a Internet, tendremos que obtener manualmente el certificado para nuestro dominio y copiarlo en el servidor de Jitsi. Generar certificado SSL con Certbot Para poder generar el certificado SSL en nuestro sistema, debemos instalar Certbot siguiendo la guía oficial de instalación para su sistema operativo. A continuación vamos a generar el certificado SSL para nuestro dominio con el siguiente comando: sudo certbot -d MI_DOMINIO --server https://acmev02.api.letsencrypt.org/directory --manual --preferred-challenges dns certonly Si no deseamos pasar por el proceso de obtener el certificado para nuestro dominio, podemos usar el certificado que Tom Butler dejó a disposición en su blog: Guide: Using Let's Encrypt SSL Certificates for a local or network server. Claro, si utilizamos este certificado debemos usar el dominio para el cual se generó: v.je , por tanto el IP de nuestro servidor Jitsi-Meet debe estar asociado al dominio v.je . Copiar certificado al servidor web Una vez que tenemos el certificado SSL para nuestro dominio, debemos incluirlo en el servidor web de Jitsi-Meet. Si el certificado lo generamos con Certbot, encontraremos los archivos del certificado en la siguiente ruta: /etc/letsencrypt/live/MY_DOMAIN sudo cp /etc/letsencrypt/live/MI_DOMINIO/fullchain.pem ~/.jitsi-meetcfg/web/keys/cert.crt sudo cp /etc/letsencrypt/live/MI_DOMINIO/privkey.pem ~/.jitsi-meetcfg/web/keys/cert.key Si optamos por utilizar el certificado de Tom Butler o cualquier otro certificado generado manualmente en otro entorno, debemos cambiar la ruta fuente por la ruta del directorio donde se encuentran localizados los archivos del certificado. sudo cp /SRC/fullchain.pem ~/.jitsi-meet-cfg/web/keys/cert.crt sudo cp /SRC/privkey.pem ~/.jitsi-meet-cfg/web/keys/cert.key Conclusión Para finalizar, debemos reiniciar el contenedor del servidor web de Jitsi-Meet para que este cargue el nuevo certificado SSL. Fuentes: https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker Copyright MIT © Evert Arias