Despliegue de nodo Jitsi Videobridge con Docker

De JitsiWiki ARIU
Ir a la navegación Ir a la búsqueda

Este documento detalla los pasos para agregar un nuevo Videobridge, de manera de escalar horizontalmente nuestro despligue de Jitsi Meet. Recordemos el esquema propuesto:

Esquema deploy.png

Con estos pasos se podrán agregar tantos Videobridges como se desee, sólo siendo necesario cambiar el identificador con el que cada instancia se registra en el nodo-maestro.


Requerimientos

Atención: si se utiliza Debian Buster, tener en cuenta que usa nftables en lugar de iptables, por lo cual hay que configurar iptables-legacy con el comando “update-alternatives –set iptables /usr/sbin/iptables-legacy”. Más información en: https://wiki.debian.org/nftables

En la red, el host elegido para hacer de bridge deberá tener una ip pública forwardeada con los siguientes puertos:

  • 10000 udp

Además, el host deberá residir en la misma red que el nodo-maestro. Si bien se pueden hacer configuraciones más complejas, esta solución está limitada a eso.

Procedimiento

- Iniciar sesión como root

- Moverse aun directorio donde se descargar el paquete

- Ejecutar

git clone https://github.com/jitsi/docker-jitsi-meet && cd docker-jitsi-meet

- Copiar el archivo environment (.env) del nodo maestro (servidor principal jitsi) en el directorio creado anteriormente docker-jitsi-meet

- Crear las carpetas del host en donde se guardarán las configuraciones de los diferentes componentes para ser montadas por los contenedores docker. Ejecutando:

mkdir -p ~/.jitsi-meet-cfg/jvb

Continuar con estas instrucciones propias de nuestra solución

- Copiar al directorio docker-jitsi-meet el archivo docker-compose-bridge.rtf y renombrarlo a docker-compose.yml

- Arrancar la solución por primera vez para que genere los archivos de configuración a partir del entorno definido en “.env” (ver variables).

- Ejecutar

docker-compose up

y luego de que arranque todo (se verán algunos errores y excepciones) presionar ctrl+c para cortar la ejecución.

- Editar el archivo ~/.jitsi-meet-cfg/jvb/sip-communicator.properties y modificar:

org.jitsi.videobridge.xmpp.user.shard.HOSTNAME= aquí poner la ip LAN del nodo maestro.
org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME= aquí poner un nombre único entre todos los videobridges, por ej: "videobridge2".

- Replicar las líneas del archivo ~/.jitsi-meet-cfg/jvb/sip-communicator.properties del nodo-maestro

org.jitsi.videobridge.SINGLE_PORT_HARVESTER_PORT=10000
org.jitsi.videobridge.DISABLE_TCP_HARVESTER=true
org.jitsi.videobridge.TCP_HARVESTER_PORT=4443
org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443

- Poner el password correcto en la línea:

org.jitsi.videobridge.xmpp.user.shard.PASSWORD= aquí copiar el valor del mismo archivo alojado en el nodo-maestro

- Iniciar el servicio en background con:

docker-compose up -d 

si todo salió bien se verán líneas en el log como la siguiente:

jvb_1  | Apr 16, 2020 9:12:07 PM org.jitsi.utils.logging2.LoggerImpl log
jvb_1  | INFO: Performed a successful health check in 25ms. Sticky failure: false

- Por último, ingresar a la url del servicio y comenzar a realizar conferencias. A medida que se van sumando conferencias, se podrá notar el tráfico en puerto 10000 de todos los videobridges disponibles.