Cómo instalar Jitsi Meet en Ubuntu 18.04 LTS

/

Jitsi Meet es una solución de servicio de videoconferencia gratuita y de código abierto que está repleta de varias características premium, como calidad de sonido superior, excelente cifrado y privacidad; así como, disponibilidad universal multiplataforma. Con la ayuda de Jitsi Meet, puede configurar fácilmente un impresionante servicio de videoconferencia propio.

En este tutorial, lo guiaré a través del proceso de creación del VPS (Servidor Privado Virtual) con el sistema operativo Ubuntu Server 18.04 LTS , su configuración inicial, instalación de paquetes necesarios para su correcto funcionamiento y como establecer un servicio de videoconferencia usando Jitsi Meet.

Si desea desplegar un servidor para su uso en producción, sugiero una VPS con un mínimo de 8GB de RAM y disco SSD.

Requisitos:

  • Poseer una cuenta de DigitalOcean para desplegar el servidor.
  • Tener acceso al editor DNS donde gestionas tus dominios. En mi caso particular uso GoDaddy.

Creación de Droplet con la distribución Ubuntu 18.04.3 (LTS) x64

En la plataforma de DigitalOcean, debemos crear un proyecto en el cual incluiremos el Droplet que iremos a desplegar. En las siguientes imágenes podemos ver el proceso de creación de un VPS.

Dashboard de gestión de proyectos en DigitalOcean
Todo lo que se puede adicionar a un proyecto
Selección de la distribución a utilizar y el tipo de plan
Selección de las características del VPS a contratar
Selección del centro de datos el cual albergará nuestro VPS
Indicamos que deseamos recibir la clave de acceso por correo electrónico
Confirmamos el proyecto al cual se adjuntará el VPS

Ingresar por primera vez a nuestro VPS

Luego de crear el Droplet, nos llegará un correo de confirmación, donde se nos indica el nombre del Droplet, la IP pública, el usuario y clave de acceso.

Para ingresar al VPS mediante conexión ssh uso el software MobaXterm. Pueden descargar la versión gratuita desde el siguiente enlace:

Ingresamos a la aplicación, creamos una nueva sesión e ingresamos los parámetros que se nos pide tal como se muestra en la siguiente imagen.

Cuando se nos pida ingresar la clave de acceso, copiamos y pegamos en el terminal.

Cuando ingresemos, nuevamente se nos pedirá la clave inicial, pegamos nuevamente y luego procedemos a ingresar una nueva clave, confirmamos la nueva clave y habremos ingreso correctamente a nuestro nuevo VPS.

Configuración Inicial del servidor

El usuario «root» es el usuario administrativo en un entorno Linux que tiene privilegios muy amplios. Debido a los mayores privilegios de la cuenta «root», se recomienda no utilizarla regularmente. Esto se debe a que parte del poder inherente de la cuenta «root» es la capacidad de realizar cambios que podrían resultar muy destructivos, incluso en forma accidental.

Crearemos un nuevo usuario al cual le daremos acceso como administrador.

adduser henrymtc
usermod -aG sudo henrymtc

Cerramos nuestra sesión y procedemos a ingresar con nuestro nuevo usuario.

El siguiente paso es opcional, pero se recomienda deshabilitar el acceso del usuario «root» por ssh, para lo cual ejecutaremos el siguiente código:

sudo nano /etc/ssh/sshd_config

Modificamos la variable de PermitRootLogin yes a PermitRootLogin no en el archivo de configuración de SSH.

Presionamos la combinación de teclas Ctrl + X para guardar el archivo, respondemos que si deseamos sobreescribir y aceptamos el nombre del archivo y la ruta que nos indica presionando la tecla Enter.

Reiniciamos el servicio ssh para aplicar los cambios.

sudo /etc/init.d/ssh restart

Como recomendación actualizaremos los repositorios y luego instalaremos las actualizaciones de los paquetes que vienen de fábrica en nuestro VPS y al finalizar reiniciaremos el servidor para que las actualizaciones surtan efecto.

sudo apt update -y
sudo apt upgrade -y
sudo reboot

Durante el proceso de actualización se nos informará que existe una nueva versión del archivo menu.lst del paquete de gestor de arranque GRUB, para lo cual responderemos que deseamos mantener la versión actual instalada.

Configuración de la partición de intercambio (swap)

Swap, también conocido como archivo de paginación o Memoria Virtual, es un espacio en un dispositivo de almacenamiento (Disco Duro mecánico o SSD Dispositivo de Estado Solido), que se usa para guardar las imágenes de los procesos que no han de mantenerse necesariamente en la memoria física (RAM).

Cuando en un sistema GNU/Linux la cantidad de memoria RAM física se está llenando y llegando a un límite establecido, los procesos inactivos se mueven de la RAM al espacio de intercambio (swap) en el dispositivo de almacenamiento de la computadora.

Para una máquina con 2 GB de memoria, se recomienda configurar una partición de intercambio de 2 GB (2048 M) para mejorar el rendimiento del sistema.

Lo primero que debes hacer es verificar si tu instalación de Ubuntu ya tiene habilitada el área intercambio escribiendo en el terminal:

sudo swapon --show 

El comando anterior no nos devolverá ningún resultado, por lo que podemos deducir que no existe esta partición en nuestro VPS. Procederemos a crearlo:

sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile   none    swap    defaults    0   0' | sudo tee -a /etc/fstab
free -m
sudo swapon --show

Configure el nombre de host de la máquina y el nombre de dominio completo (FQDN)

Debemos configurar correctamente un nombre de host y un FQDN para nuestro VPS antes de poder habilitar la seguridad HTTPS mediante la implementación de un certificado Let’s Encrypt HTTPS.

Los siguientes comandos verificarán que nuestro VPS esté correctamente configurado con un nombre de host, meet y un FQDN, meet.itsge.org, para el VPS:

hostname
hostname -f
cat /etc/hosts

Como verificamos en la imagen anterior, nuestro VPS cumple con lo requerido, esto debido a que en la etapa de creación del Droplet le dimos el nombre meet.itsge.org, por lo cual se configuró con los parámetros anteriormente visualizados.

Ajustar las reglas del firewall para ejecutar Jitsi Meet

Como lo requiere Jitsi Meet, debe permitir el tráfico OpenSSH, HTTP y HTTPS, junto con el tráfico TCP y UDP entrante entre los puerto 10000 y 20000:

sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw allow 4443/tcp
sudo ufw allow in 10000:20000/tcp
sudo ufw allow in 10000:20000/udp
sudo ufw enable
sudo ufw status verbose

Instalación de OpenJDK Java Runtime Environment (JRE) 8

Jitsi Meet requiere Java Runtime Environment. Instale OpenJDK JRE 8:

sudo apt install -y openjdk-8-jre-headless

Con OpenJDK JRE 8 instalado, use el siguiente comando para verificar el resultado:

java -version

Además, puede configurar la variable de entorno JAVA_HOME de la siguiente manera:

echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | sudo tee -a /etc/profile
source /etc/profile

Instalación del servidor web Nginx

Para distribuir mejor a Jitsi Meet, se debe instalar el servidor web Nginx antes de instalar Jitsi Meet:

sudo apt install -y nginx
sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Verificamos que el servicio esté operativo con el siguiente comando:

sudo systemctl status nginx.service

En este punto, podemos verificar la instalación del servicio Nginx y la apertura de puertos accediendo a un navegador web e ingresando a la IP pública suministrada por DigitalOcean:

Como podemos observar, el servicio Nginx funciona correctamente.

Creación de registro DNS para resolución de nombre en Internet

Ingresaremos a nuestro gestor DNS, en mi caso uso GoDaddy, para crear el registro que ayude a resolver nuestro FQDN en Internet:

Verificamos desde nuestra línea de comandos en Windows a través del Cmd o en mi caso a través de Terminal (la actualización del Cmd clásico para Windows 10):

Ahora, nuevamente verificamos en nuestro navegador web si el servicio Nginx sigue disponible, pero esta vez colocaremos la dirección FQDN meet.itsge.org:

Instalación del servidor Jitsi

En nuestro sistema Ubuntu, instalaremos Jitsi Meet utilizando el repositorio oficial de Deb de Jitsi.

Primero configure el repositorio Jitsi en su sistema:

cd
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
sudo sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list"
sudo apt update -y

Luego instalaremos el suite completo de Jitsi Meet:

sudo apt install -y jitsi-meet

Durante la instalación, cuando se le solicite que proporcione el nombre de host de la instalación actual, escriba el FQDN meet.itsge.org que configuró anteriormente y luego presione ENTER.

Cuando se le pregunte sobre el certificado SSL, resalte la opción Generar un nuevo certificado autofirmado (luego tendrá la oportunidad de obtener un certificado Let’s Encrypt) y luego presione ENTER.

Una vez que Jitsi Meet se haya instalado correctamente, use el siguiente script para solicitar un certificado SSL Let’s Encrypt:

sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

Durante el proceso, ingresaré mi correo electrónico henrymtc@itsge.org cuando se solicite. Este script manejará automáticamente cualquier tarea relacionada con el certificado Let’s Encrypt SSL.

Finalmente, apunte su navegador web a http://meet.itsge.org o https://meet.itsge.org para acceder a su servicio de videoconferencia Jitsi Meet.

Pruebas de operatividad

Verificaremos el funcionamiento de nuestro servidor accediendo mediante el navegador web o desde nuestro celular a través de la app de Jitsi Meet, el cual lo pueden descargar desde los siguientes enlaces:

Tanto en la app de Android como en el de Iphone, se deben cambiar los siguiente parámetros dentro del apartado de ajustes:

Una vez hecho estos cambios podremos crear o acceder fácilmente a cualquier sala. Si creamos una sala debemos compartir el nombre de la sala o en todo caso el link de la sala a través de cualquier medio, sea email, WhatsApp, mensaje de texto u otro que se acomode a sus necesidades.

Para visualizar el rendimiento de mi VPS, podemos usar una herramienta que viene instalado en nuestro sistema operativo Ubuntu, para lo cual he creado un usuario sin privilegios, con el que podrán acceder y visualizar el rendimiento del servidor en tiempo real.

Una vez dentro del VPS, ejecutamos el siguiente comando:

htop

Podremos darnos cuenta, que la memoria, sin mucho uso del sistema Jitsi Meet, esta casi saturada, así como también podemos ver el uso del CPU y el espacio usado para la partición de intercambio (swap).

Espero que este tutorial sirva a las personas que deseen implementar dicho servicio dentro de sus organizaciones para poder fomentar el trabajo a distancia en estos momentos donde debe prevalecer el aislamiento social por el bien de todos.

Estaré atento a cualquier duda o consulta a través de este portal a en mis redes sociales.

Muchas gracias por su atención.

36 comentarios en “Cómo instalar Jitsi Meet en Ubuntu 18.04 LTS”

  1. Hola, espero que todo te vaya muy bien.

    Muchas gracias por el tutorial. Me ha servido muchísimo.

    Tengo una duda con relación a las opciones para poder grabar dentro de Jitsi. Al instalarlo siguiendo tus indicaciones funciona todo perfecto. Pero en las opciones no me aparece lo de «Grabación» que he visto en algunas capturas debería de aparecer sobre la opción «Enviar a Youtube»

    Cualquier pista para poder activarlo te lo agradeceré mucho.

    Saludos cordiales.

    Responder
  2. Hola buen día

    Gracias x el tutorial, muy bueno y completo…

    Una vez que pasemos estos tiempos de contingencia qué sucederá??? Será bloqueado nuestro server??

    Saludos cordiales

    Responder
    • Gracias por tu comentario. Te comento que el servidor que he dejado como prueba bajo el dominio meet.itsge.org una vez pasada la cuarentena lo daré de baja pero por un tema personal. Si tu despliega un VPS será elección tuya decidir cuando darlo de baja.

      Responder
  3. Buen dia, mil gracias por el tutorial, lo he seguido paso a paso y funcionado correctamente desde mi pc, pero al tratar de conectarme desde el celular me dice «ha sido desconectado, es posible que desee comprobar la conexión de red. Reconectando en 10 segundos..» y ahi se queda, el celular cuenta con internet normal, no se por donde podria atacar el problema, agradezco en gran modo si me puede orientar.

    Responder
    • Estimado John, gracias por tu comentario. No podría darte una respuesta exacta a tu consulta pues tendríamos que analizar el problema desde varios puntos de vista. Me gustaría que me comentes un poco más a detalle sobre las características del servidor desplegado y si fuera posible imágenes de los mensajes de error.

      Responder
      • Hola, Henry, tengo exactamente el mismo problema. Los puertos están tal cual mencionás en el tutorial, pero al iniciar una sala te expulsa todo el tiempo con la leyenda «Ha sido desconectado. Es posible que desee comprobar la conexión de red.» y al intentar volver a conectar pasa exactamente lo mismo. ¿Qué podría ser? Lo estoy utilizando en una instancia vm en Google Cloud, es Ubuntu 16.04.6 LTS y el servidor es Nginx. ¿Podrías ayudarme? ¡Muchas gracias!

        Responder
  4. Buenas tardes, excelente tutorial. logre instalar el servidor jitsi en un vps de 1 gb ram 10 hd ssd y 1 CPU.
    Esta operativo y el llegado a acceder desde la dirección interna de mi servidor o IP. Configuro el entorno desde mi navegador CHrome o Firefox. Cámara activa, micrófono activo, tengo imagen y vídeo. comparto la reunión y se enlazan desde los dispositivos móviles se unen a la reunión y no escucho ni veo a los demás solo aparecen sus nombres, podemos solo utilizar el chat.
    Que podría estar pasando? saludos y gracias
    Federico

    Responder
    • Federico mucho gusto en saludar, antes que nada agradecerte por tu comentario. Con respecto a tu problema puedo sugerir que revises la apertura de los puertos pues ese problema se me presentó al inicio y luego pude solucionarlo aperturando todos los puertos para los protocolos que se indican en el tutorial.

      Responder
      • Henry gracias por responder tan pronto. esos puertos donde debo abrirlos en el servidor.? Lo hago desde ssh?

        sudo ufw allow OpenSSH
        sudo ufw allow http
        sudo ufw allow https
        sudo ufw allow 4443/tcp
        sudo ufw allow in 10000:20000/tcp
        sudo ufw allow in 10000:20000/udp
        sudo ufw enable
        sudo ufw status verbose

        Saludos

        Responder
  5. Henry gracias por responder tan pronto. esos puertos donde debo abrirlos en el servidor.? Lo hago desde ssh?

    sudo ufw allow OpenSSH
    sudo ufw allow http
    sudo ufw allow https
    sudo ufw allow 4443/tcp
    sudo ufw allow in 10000:20000/tcp
    sudo ufw allow in 10000:20000/udp
    sudo ufw enable
    sudo ufw status verbose

    Saludos

    Responder
  6. Last login: Fri Apr 17 22:15:35 2020 from 200.117.13.125
    [root@vps-1751131-x ~] # sudo ufw allow OpenSSH
    ERROR: problema ejecutando
    [root@vps-1751131-x ~] # sudo ufw allow http
    Omitiendo adición de regla ya existente
    Omitiendo adición de regla ya existente (v6)
    [root@vps-1751131-x ~] # sudo ufw allow https
    Omitiendo adición de regla ya existente
    Omitiendo adición de regla ya existente (v6)
    [root@vps-1751131-x ~] # sudo ufw allow 4443/tcp
    ERROR: problema ejecutando
    [root@vps-1751131-x ~] # sudo ufw allow in 10000:20000/tcp
    ERROR: problema ejecutando
    [root@vps-1751131-x ~] # sudo ufw allow in 10000:20000/udp
    ERROR: problema ejecutando
    [root@vps-1751131-x ~] # sudo ufw enable

    Responder
    • Federico, el problema me parece es por el hardware destinado a tu servidor. Para el tutorial he levantado un VPS con características mínimas pero al final he señalado que para entornos de producción es ideal tener un hardware más robusto. En mi caso, para entornos de producción utilizo mínimo 6 GB de memoria RAM, puede ser que eso te esté limitando ya que me indicas que los puertos están aperturados de forma correcta. Una forma de demostrarlo es justo utilizando la herramienta htop en nuestro servidor y puedas ver en línea como reacciona tu servidor ante la demanda de los clientes.

      Responder
  7. Henry muchas gracias por el tutorial, voy a iniciar la configuración, q características recomiendas para el servidor? Algunos datos son: unas 3 salas simultáneas con unos 20 participantes cada una, esto un poco exagerando

    Responder
    • Mi estimado, te recomiendo que comiences con 8 GB de RAM, procesador de moderno con dos núcleos por lo menos, servidor dedicado sin interfaz gráfica y buena todas las recomendaciones necesarias para tener en producción un servidor. Saludos y exito en tu proyecto.

      Responder
  8. Henry, buenas tardes he ampliado el servidor a 4gb ram, lo puertos en teoría esta abiertos. lo que si me llama la atencion es que si utilizo la pc con chrome y varios celulares dentro de la misma red con internet (mi wifi en la oficina) todos se conectan y tenemos audio y video. Y podemos interactuar. Al intentar hacerlo cada uno fuera de la red wifi a través del 4g de cada celular y la pc conectada a Internet se establecen las conexiones pero sin audio y video. Solo chat. Agradecería puedas orientarme. saludos

    Responder
  9. Hola Hennry, gracias por esta valiosa información.
    Tengo una duda; cuando se instala el Jitsi en un servidor como en este caso, las grabaciones de las conferencias del Jitsi se guardan en el servidor? o sigue siendo necesario el dropbox?.
    habrá alguna manera de guardar mi videos en mi servidor po defecto?.
    gracias de antemano.

    Responder
  10. Henry muy buena explicación, seria esplendido que esto puedas explayar en vídeo en youtube, no veo ninguno que sea de calidad. Este tema esta siendo muy llamativo y mucho necesitan espero pronto ver esta explicación en youtube seria un gran apoyo. igual muchas gracias por este apoyo .

    Responder
  11. Hola Henry!!!

    Antes que nada quiero FELICITARTE por el tremendo tutorial que haz realizado. Seguí paso a paso y me funcionó perfecto, así que feliz !!!! Ahora mi consulta: sabes cómo sería la forma para actualizar el logo, los textos y el enlace de la marca de agua? Si pudieras ayudarnos con eso, la verdad es que te convertirás en mi GURU ahora, sinceramente!!!

    Abrazos

    Responder
  12. Halguin que me ayude.

    tengo mi propio jitsi enstalado internamente en mi red corporativa por apn y vpn pero por apn no se me conecta … alguna idea de lo que me este pasando que no me cargue en los telefonos… tengo fireware y proxy no trasparente montado para los mismos…
    saludos

    Responder
  13. Hola Henry! Muchísimas gracias por tu muy bien detallado tutorial. A mí me ha funcionado muy bien (vroom.gia-consultores.com). Sólo tengo algunas consultas que me surgieron después de probarlo especialmente para utilizarlo con todas las funcionalidades:
    1) entiendo que jibri es un servidor que se integra con jitsi para poder hacer posible que podamos utilizar YouTube LiveStream y Dropbox. A partir de estas instrucciones qué más deberíamos hacer para poder configurarlo sin que muramos en el intento (he probado algunas soluciones, pero no me han funcionado)
    2) para poder obligar a los usuarios a registrarse con su nombre antes de acceder a las salas, que pasos deberíamos seguir?

    Encantado de poder conversar si tienes tiempo la próxima semana (te dejo mi correo abajo)

    Abrazos y nuevamente, MUCHÍSIMAS GRACIAS

    Responder
    • Mucho gusto Gonzalo, Jitsi es una plataforma Open Source, sgnifica que un programador o un grupo de programadores lo pueden usar de base para adicionar características. Te seré sincero, no he probado características adicionales, pues mi interés con Jitsi era poder enseñar a desplegar un servidor para videoconferencia totalmente operativo y no pagar por otras soluciones. Pero en mi búsqueda de implementar exitosamente esta plataforma pude encontrar que los mismos creadores de Jitsi también proponen una forma de autenticar usuario mediante el plugin llamado Prosody. Para mayor información consulta el siguiente enlace -> https://github.com/jitsi/lib-jitsi-meet/blob/master/doc/tokens.md. Espero te sea de utilidad y cuando gustes podremos conversar al respecto.

      Responder
  14. buenas en temas de seguridad cambia algo el servidor propio,me refeiro a esa opción que te da la gratuita de silenciar a todos y que todos pueden grabar..con un servidor propio puedo mejorar eso y otra pregunta lo puedo instalar desde una maquina virtual?

    Responder
    • LA versión instalada puede modificarse de distintas formas, de acuerdo a las necesidades especiales de la empresa que desea su implementación, pero ese trabajo corre bajo responsabilidad de la empresa. De hecho que si se puede instalar en una máquina virtual.

      Responder
  15. Hola buenas, ya configure mi servidor y desde la aplicación del celular si puedo ingresar a la reunión, pero desde el navegador de la computadora no, puedo habilitar ni la cámara ni el micrófono.

    Responder

Deja un comentario