En estos días, las necesidades de plataformas que cubran servicios de comunicación online han aumentado de forma exponencial. En Clouding estamos a tu lado para facilitarte en todo lo que podamos la vida durante la emergencia sanitaria del COVID-19.
Por ello, nos hacemos eco del siguiente artículo, donde te explicamos cómo instalar la plataforma libre de videoconferencia Jitsi, que puede servir de alternativa a Skype, Webex o Zoom.
Jitsi ofrece una serie de ventajas importantes, entre otras:
- Es un sistema P2P, es decir, el vídeo y el audio de cada uno de los participantes se comparte por cada nodo (cada participante), por lo que, al no estar centralizado en un servidor (o VPS en nuestro caso) evitaremos cortes en las videoconferencias.
- Es escalable de forma personalizada: si con la configuración inicial de nuestro VPS funciona mal se puede asignar más recursos de forma puntual.
- Es compatible con WebRTC.
- Permite realizar videoconferencias encriptadas.
En este tutorial, vamos a instalar Jitsi en un servidor de 1 vCore, 2GB de RAM y 5GB de disco ssd. Usaremos la imagen de Docker dado que se va a instalar en contenedores.
Antes de instalarlo, te recomendamos probar su uso en la web https://meet.jit.si, la cual permite hacer una prueba de este servicio implementado en un servidor público.
Crear el VPS
Como hemos comentado, vamos a elegir la imagen de Docker sobre Ubuntu 18.04, con 1 vCore, 2GB de RAM y 5GB de SSD.
Además, debes abrir los siguientes puertos para que funcione correctamente:
- 80/tcp para el servicio web HTTP (redireccionará al 443)
- 443/tcp para HTTPS
- 4443/tcp para RTP media sobre TCP
- 10000/udp para RTP media sobre UDP
Arquitectura de Jitsi
El esquema de Jitsi es el siguiente:
Jitsi se organiza en los siguientes componentes:
- Web server: la interfaz gráfica de Jitsi Meet, basada en Nginx.
- Prosody: el servidor XMPP.
- Jicofo: componente principal de XMPP.
- Jitsi Videobridge: el núcleo del sistema.
- Jigasi: el SIP, para acceder por acceso telefónico a la videollamada (no vamos a usarlo en este artículo, ya que requiere suscripción con empresa telefónica).
Jitsi usa un servidor XMPP para retransmitir, pero éste no será visible fuera del sistema por defecto.
Usaremos Let's Encypt para generar un certificado HTTPS.
Configuraciones
Para instalarlo, usaremos Docker Compose para agilizar el proceso. El archivo de configuración que se utilizará es el siguiente: https://raw.githubusercontent.com/jitsi/docker-jitsi-meet/master/docker-compose.yml
El archivo tiene bastantes variables de entorno para configurar la instalación. En nuestro caso, cambiaremos las siguientes:
Básicas:
- CONFIG: Directorio donde guardaremos la configuración
- TZ: Zona horaria
- HTTP_PORT: Puerto para exponer el servicio HTTP
- HTTPS_PORT: Puerto para exponer el servicio HTTPS
- PUBLIC_URL: La web desde donde se podrá acceder a Jitsi
Let's Encrypt:
- ENABLE_LETSENCRYPT: Para generar un certificado HTTPS
- LETSENCRYPT_DOMAIN: El dominio para el cual queremos generar el certificado
- LETSENCRYPT_EMAIL: Para recibir notificaciones sobre nuestro certificado.
Jibri:
- ENABLE_RECORDING: Para permitir que se graben las videoconferencias en el disco
Es posible modificar muchos más parámetros de la instalación, para ello puedes ver la documentación de las variables de entorno
La manera más sencilla de personalizar el archivo es descargarlo desde https://raw.githubusercontent.com/jitsi/docker-jitsi-meet/master/env.example y cambiar los valores explicados por:
Configuración básica
CONFIG=~/.jitsi-conf
HTTP_PORT=80
HTTPS_PORT=443
TZ=Europe/Madrid
PUBLIC_URL=VPS.clouding.host
Let's Encrypt
ENABLE_LETSENCRYPT=1
LETSENCRYPT_DOMAIN=VPS.clouding.host
LETSENCRYPT_EMAIL=CORREO@DOMINIO.ES
Para recibir correos de Let's Encrypt es necesario activar el tráfico SMTP.
Instalación
Obtener el Docker compose anteriormente dicho desde GitHub:
wget https://raw.githubusercontent.com/jitsi/docker-jitsi-meet/master/docker-compose.yml
Descargar el archivo env de ejemplo y renombrarlo como .env:
wget https://raw.githubusercontent.com/jitsi/docker-jitsi-meet/master/env.example
mv env.example .env
Modificar el archivo .env con la configuración deseada, usaremos la dicha anteriormente como ejemplo.
Crear los directorios necesarios para guardar la configuración de Jitsi. Esto se hará en la carpeta que se haya especificado en el .env como CONFIG, en nuestro caso, en ~/.jitsi-conf:
mkdir -p ~/.jitsi-conf/{web/letsencrypt,transcripts,prosody,jicofo,jvb}
Instalar Docker Compose:
apt install docker-compose
Ejecutar Docker Compose:
docker-compose up -d
Aviso
Si Docker Compose da un error de que no soporta la versión del archivo docker-compose.yml seguramente es porque has instalado Ubuntu 16.04 en vez de Ubuntu 18.04, dado que se necesita como mínimo la versión 1.10.0 de docker-compose (la mínima que soporta la versión 3 del archivo).
Uso
Una vez instalado, lo único que hay que hacer es acceder a la dirección URL de nuestro servidor con un navegador:
Como se puede ver la interfaz es muy simple: solo aparece un campo de texto para crear una sala. Las salas son reuniones, donde los distintos usuarios se pueden unir a través del enlace que se muestra en pantalla (https://VPS.clouding.host/NOMBRESALA):
La primera persona que se une actúa como moderador y las personas que se van añadiendo, como invitados (teniendo menos permisos).
También es posible establecer una contraseña a la sala para restringir a los usuarios que se la demos. También es posible usar un método de autentificación y obligar a que los usuarios se identifiquen (por defecto no es necesario). Para ello, puedes ver la documentación de las variables de entorno.
Es posible configurar la videoconferencia con opciones como modificar la calidad de vídeo o incluso retransmitirla en directo a través de YouTube en las opciones de configuración de la sala:
Como se ha visto, Jitsi es una alternativa sencilla y potente a otros servicios de videoconferencia en la nube, bastante personalizable e independiente de servidores de terceros.
El autor de este artículo es David Población, colaborador habitual de Clouding.