Cómo organizar un Jitsi para conocer a un Docker »Wiki Ùtil

¿Cómo va eso? soy Fran. Os traigo un nuevo post sobre el sistema operativo mas molón. Un placer linuxeros.

Jitsi Meet es software de videoconferencia de código abierto que puede alojar por su cuenta. Esta es una buena alternativa a sus propios servicios como Google Meet o Zoom.

Jitsi Meet se puede integrar con otras herramientas de código abierto como Nextcloud,, Cohete. Chat o Synapse (ejecución matricial) para darle una solución completa.

Con algunas restricciones, Jitsi Meet se puede utilizar de forma gratuita en su servidor. Para funciones premium, puede elegir Jitsi como servicio de los desarrolladores de Jitsi. ¿También puede implementarlo en su propio servidor? Te ayudaré con la parte de alojamiento.

Implementación de Jitsi Meet con Docker

Implementar Jitsi es increíblemente fácil con Docker. Te mostraré los pasos para implementar Jitsi. Cubriré tanto el proxy inverso como el método regular.

Cómo usar el proxy Nginx inverso con múltiples aplicaciones de Docker

Descubra cómo puede implementar varios servicios web en el mismo servidor mediante el proxy inverso de Nginx y los contenedores de Docker.

Supuestos

Hay algunas cosas de las que debe ocuparse antes de continuar.

Conocimientos básicos de Docker y contenedores: No es obligatorio, como todas nuestras lecciones, pero es bueno tenerlo.

Dominio personalizado: Esta implementación no servirá IP, es decir. lo llevará a través de la implementación bajo un dominio real (o subdominio) con HTTPS. Implementación como http: //[some IP]:[some port] son buenos para realizar pruebas, pero no sirven para nada en estos manuales.

Servidor Linux, ya sea físicamente o en la nube: Recomiendo usar Linode pero puedes usar cualquier otro proveedor como DigitalOcean, Vultr o UpCloud. La implementación en AWS puede ser muy específica de la plataforma y no hablaré de eso aquí.

De acuerdo a recomendación oficial, un servidor con 4 GB de memoria con un procesador de doble núcleo sería adecuado para unos 10-20 usuarios.

 

Linode | La nube abierta independiente para desarrolladores

Nuestra misión es acelerar la innovación haciendo que la computación en la nube sea simple, accesible y accesible para todos.

 

DigitalOcean: la nube para desarrolladores

Ayude a millones de desarrolladores a crear, probar, administrar y escalar fácilmente aplicaciones de cualquier tamaño, más rápido que nunca

 

Opcionalmente, nuestra configuración de proxy inverso: Si desea ponerlo detrás de un proxy inverso para que pueda alojar varios servicios web en el mismo servidor. Si Jitsi es la única aplicación que se ejecutará en el servidor, no necesita un proxy inverso.

Cambiar registros DNS

Tener un nombre de dominio no es suficiente. Debe asegurarse de que los registros DNS también estén en su lugar. Para este tutorial usaré el dominio openexperiment.in, sobre el que he estado mintiendo durante mucho tiempo.

Asegúrese de cambiar todas las copias del dominio de los ejemplos a su dominio.

Una vez que tenga un dominio y haya implementado un servidor (no Jitsi, sino solo el servidor), agregue las direcciones IP del servidor (tanto IPv4 como IPv6) y agregue los registros A y AAAA para cada uno. Una vez que haya terminado, también deberá agregar un registro CNAME. Puede agregar un subdominio específico o, como yo, agregar un registro de reemplazo (si lo aloja en el dominio principal).

Vea la captura de pantalla a continuación si aún está confundido. Pasé las direcciones IP reales (soy muy reservado … shhh).

Es posible que deba esperar un momento para que los cambios de DNS surtan efecto. Puede verificar esto con el comando ping.

ping dominio hasta que vea la dirección IP de su servidor de esta manera –

❯ ping openexperiment.in -4
PING openexperiment.in (xxx.xxx.xxx.xxx) 56(84) bytes of data.
^C64 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=55 time=36.6 ms

--- openexperiment.in ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 36.610/36.610/36.610/0.000 ms

También puede usar el comando dig para verificar los registros DNS.

dig openexperiment.in +nocmd +nocomments

Debería ver algo como lo siguiente

❯ dig openexperiment.in +nocmd +nocomments
;openexperiment.in.   IN  A
openexperiment.in.  2970  IN  A xxx.xxx.xxx.xxx
;; Query time: 1 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Mar 07 11:38:20 IST 2021
;; MSG SIZE  rcvd: 62

Comprender los componentes de Jitsi Meet

Antes de continuar, creo que es útil comprender qué son estos componentes y por qué son importantes, así como cuáles utilizará para esta implementación.

Si no le importa, obviamente vaya a la sección de implementación de este artículo.

jitsi / web: último: La interfaz web de Jitsi Meet que ves en tu navegador está dentro de esta imagen. Junto con Nginx para el servidor web.

jitsi / prosodia: último: Este es el servidor XMPP, este es el responsable de las llamadas de audio / video o los chats de texto. Esto puede considerarse el corazón de Jitsi.

jitsi / jicofo: último: El componente focal del servidor XMPP responsable de administrar las sesiones de video entre los participantes y el puente de video, en otras palabras, es el que administra las conferencias. Este es otro componente obligatorio de Jitsi.

jitsi / jvb: último: Jitsi Videobridge es responsable de transmitir los canales de video entrantes a todos los participantes.

Estas son las partes obligatorias del despliegue operativo de Jitsi y solo las usaré para esta guía. Hay otros componentes como Jibri, Jigasi, pero como no son obligatorios, los dejo de lado por ahora.

Mientras leas, es hora de un trabajo práctico.

Si va a tener esto con un proxy inverso, asegúrese de haberlo configurado antes de acercarse a este.

Cómo usar el proxy Nginx inverso con múltiples aplicaciones de Docker

Descubra cómo puede implementar varios servicios web en el mismo servidor mediante el proxy inverso de Nginx y los contenedores de Docker.

Clonar el repositorio de docker-jitsi-meet

Este repositorio contiene todos los archivos que necesitaremos para esta implementación (obviamente con algunas modificaciones).

Clona el repositorio y cambia PWD al directorio clonado.

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

Empiece a modificar las variables de entorno

Dado que está utilizando Docker, debe cambiar algunas variables de entorno. Comience copiando el archivo de configuración de muestra.

cp env.example .env

Ahora abierto .env archivo y observe las primeras 6 variables en el medio.

Dado que todos estos componentes son en realidad algún tipo de contenedores que se ejecutan en contenedores, necesita una forma de asegurarse de que los servidores sean realmente los que dicen ser. Por eso, estos secretos están ahí. Los clientes primero deben autenticarse antes de establecer una conexión.

No tienes que preguntarte estos secretos tú mismo. Ya existe un guión para facilitarle la vida. Ejecute el siguiente comando mientras está en el directorio del repositorio

./gen-passwords.sh

Una vez iniciado, puede abrir de nuevo. .env archivo, y los secretos deben ser llenados.

No necesitará todos estos secretos para esta implementación, pero déjelos, no es necesario eliminarlos ni comentarlos.

Ahora habrá tres subsecciones, una para las asignaciones de variables generales (proxy inverso o sin proxy inverso), otra para el proxy inverso y la última para las asignaciones sin proxy inverso. Todos van al archivo .env.

Variables comunes (tanto para el método de proxy inverso como para el método de proxy inverso)

Estas son las variables comunes a ambos métodos de implementación y las agrega al archivo .env.

CONFIG: Puede cambiar el valor de esto, pero no es necesario. El valor de esta variable es un directorio en su host que se montará para vincularse dentro de los contenedores para almacenar datos persistentes. Así que modificar esto depende totalmente de usted.

PUBLIC_URL: El dominio Jitsi se alojará en (con protocolo). En mi caso, el valor es https://meet.openexperiment.in

ENABLE_AUTH: ¿Quieres autenticación? Con la autenticación, el usuario deberá ingresar un nombre de usuario y contraseña antes de poder unirse o crear una cita. Si es así, comente esta línea y asegúrese de que esté establecida en 1.

TIPO DE AUTENTICACIÓN: Si establece ENABLE_AUTH en 1, configúrelo como «interno». No hablaré de la autenticación LDAP o JWT en este artículo.

RESTART_POLICY: Reinicie la política de contenedores. Es el predeterminado unless-stopped. yo prefiero always o on-failure.

TZ: Establezca esto en la zona horaria de su sistema. Dado que mis servidores se ejecutan en la zona horaria UTC, no tengo que cambiarlo.

Variables para un método sin proxy inverso

Si no usa un proxy inverso, debe agregar las siguientes variables al archivo .env:

HTTP_PORT,, HTTPS_PORT: Cámbielos respectivamente a 80 y 443. Estos son los puertos a los que se conectará su contenedor.

ENABLE_LETSENCRYPT: Establezca esto en 1, necesita HTTPS.

LETSENCRYPT_DOMAIN Y LETSENCRYPT_EMAIL: El dominio en el que se alojará su instancia y su correo electrónico para las notificaciones de su certificado.

ENABLE_HTTP_REDIRECT: Establezca esto en 1, el tráfico HTTP debe transmitirse a HTTPS.

ENABLE_HSTS: De alguna manera, esto obligará a los navegadores a usar una conexión confiable. Establezca esto en 1.

Variables necesarias para un proxy inverso

Si seleccionó el proxy inverso, debe agregar las siguientes variables al archivo .env:

DISABLE_HTTPS: Debido a que HTTPS será manejado por su servidor web proxy inverso, no necesita tener HTTPS habilitado por Jitsi.

ENABLE_HTTP_REDIRECT: No es necesario, establezca esto en 0. HTTP / HTTPS será manejado por nuestro proxy inverso.

ANFITRIÓN VIRTUAL Y LETSENCRYPT_HOST: Estas variables no están ahí de forma predeterminada. Agregue estos y use el nombre de dominio donde se alojará su instancia para los valores. Para más información lea la mía respetar a los apoderados artículo.

[ONLY IF USING REVERSE PROXY] Modificar el archivo de compilación

Abre el archivo docker-compose.yml en su editor de texto favorito.

La única definición de un servicio que necesita editar es el servicio web. Modifíquelo de acuerdo con la siguiente lista

Retire la pestaña de puertos. Ya no necesita conectar puertos desde su contenedor al host. Agregue otra red, la misma red utilizada en su configuración de proxy inverso. Defina la red al final del archivo compilado de la siguiente manera

networks:
  net:
    external: true

Suponiendo que el nombre de la red es net, cámbielo a lo que estableció para el suyo.

    • Agregue las variables intermedias

VIRTUAL_HOST

    • Y

LETSENCRYPT_HOST

    asi que
- VIRTUAL_HOST
- LETSENCRYPT_HOST

Desdobla los contenedores

Una vez completada toda la edición, puede implementar Jitsi con docker-compose up -d equipo.

Asegúrese de que sus contenedores de proxy inverso se ejecuten si ha seleccionado un método de proxy inverso.

Casi ha terminado con la implementación de Jitsi Meet, excepto por el último paso, que es crear usuarios autenticados para su servidor Jitsi.

Crear usuarios autenticados

Si ha habilitado la autenticación (con ENABLE_AUTH), deberá registrar usuarios antes de poder utilizar Jitsi.

Es muy sencillo. Navegue al directorio clonado del repositorio y ejecute un comando similar al siguiente

docker-compose exec prosody prosodyctl --config=/config/prosody.cfg.lua register [USERNAME] meet.jitsi [PASSWORD]

También puede eliminar un usuario usando unregister comando como se muestra aquí:

docker-compose exec prosody prosodyctl --config=/config/prosody.cfg.lua unregister [USERNAME] meet.jitsi

Finalmente, puede continuar y verificar la interfaz de Jitsi Meet en la URL especificada en un navegador web:

¿Todavía tienes preguntas o sugerencias? No dude en publicar un comentario.

Si le gusta este tutorial y desea ver más contenido útil, considere elegir una membresía Pro o hacer una donación única para apoyarnos 🙂

Este Blog lo escribimos para ayudar y servir de ayuda a la comunidad Linux. Esperamos que os guste.

Leave a Reply