Jitsi detrás de un proxy reverso

Instalar Jitsi Meet

Añadimos el repositorio jitsi a los orígenes de software para que los paquetes de Jitsi Meet estén disponibles.

curl https://download.jitsi.org/jitsi-key.gpg.key | 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/' | tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null

Actualizamos

$ apt update

Nota: El instalador comprobará si Nginx o Apache están presentes (en ese orden) y configurará un host virtual dentro del servidor web que encuentre para servir a Jitsi Meet.

Si ya tenemos Nginx escuchando en el puerto 443 en la misma máquina, la configuración del servidor turn se omitirá ya que entrará en conflicto con su actual puerto 443.

$ apt install jitsi-meet

Nombre de host: Introducimos el nombre de host de la instancia de Jitsi Meet. Si tenés un dominio, utilizá el nombre de dominio específico, por ejemplo: jitsi.dominio.edu.ar.

Este nombre de host se utilizará para la configuración del virtualhost dentro de Jitsi Meet y también es la que se utilizará para acceder a las conferencias web.

Generación de certificados SSL/TLS: Se te preguntará sobre la generación de certificados SSL/TLS. Vamos a elegir la opción Quiero usar mi propio certificado (I want to use my own certificate):

Configuración avanzada

Si la instalación está en una máquina detrás de NAT, jitsi-videobridge debería configurarse automáticamente en el arranque. Si las llamadas de tres vías no funcionan, se necesita una configuración adicional de jitsi-videobridge para que sea accesible desde el exterior.

Siempre que todos los puertos requeridos sean enrutados (reenviados) a la máquina en la que se ejecuta, estos puertos son (TCP/443 o TCP/4443 y UDP/10000).

Es necesario añadir las siguientes líneas adicionales al archivo /etc/jitsi/videobridge/sip-communicator.properties:

org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=<Dirección.IP.local>
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=<Dirección IP pública>
Y comentar el org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES existente.

Consultar la documentación de ice4j para más detalles.

Systemd/Límites: Los despliegues predeterminados en sistemas que utilizan systemd pueden tener valores bajos por omisión para los procesos máximos y los archivos abiertos. Si el puente utilizado espera un mayor número de participantes, los valores por defecto deben ser ajustados (los valores por defecto son buenos para menos de 100 participantes).

Para actualizar los valores editamos /etc/systemd/system.conf y nos aseguramos de que tenemos los siguientes valores, solo los actualizamos si son menores.

DefaultLimitNOFILE=65000
DefaultLimitNPROC=65000
DefaultTasksMax=65000

Para comprobar los valores sólo hay que ejecutar

systemctl show --property DefaultLimitNPROC
systemctl show --property DefaultLimitNOFILE
systemctl show --property DefaultTasksMax

Detalles de systemd

Para recargar los cambios de systemd en un sistema en funcionamiento ejecutamos systemctl daemon-reload y systemctl restart jitsi-videobridge2. Para comprobar la parte de las tareas ejecute sudo systemctl status jitsi-videobridge2 y debería ver Tasks: XX (límite: 65000). Para comprobar la parte de archivos y procesos ejecutamos cat /proc/`cat /var/run/jitsi-videobridge/jitsi-videobridge.pid`/limits y deberías ver

Max processes             65000                65000                processes
Max open files            65000                65000                files

Confirmá que tu instalación está funcionando

Inicie un navegador web e ingresá el nombre de host o la dirección IP del paso anterior en la barra de direcciones.

Asegurate que podés crear una reunión y que los demás participantes pueden unirse a la sesión.

Si todo esto ha funcionado, ¡felicidades! Tenés un servicio de conferencia Jitsi operativo.