Instalar BigBlueButton

Hace, un tiempo estuve buscando alterntivas a jitsi, no porque jitsi no me gustara si no para tener distintas alternativas, preguntando por gnusocial, anoncf, me hablo de este software libre BitBlueButton que no conocia y la verdad es que aunque tiene una instalacion un tanto «engorrosa» me ha gustado. El unico problema es que corre bajo una version de ubuntu bastante desactualizada 16.04 y aunque tienen previsto migrarlo a 18.04, ubuntu va por la version 20. No he probado a instalarlo en debian, pero viendo las dependencias especificas de versiones que tiene no creo que funcione.

El software en si es muy completo, y esta pensado para ser utilizado en proyectos como clases telematicas, en universidades,colegios,etc..

Entre sus funcionalidades, implementa un su interfaz etherpad para poder ir editando colaborativamente documentos mientras se esta en una videoconferencia, una pizarra donde poder escribir y señalar documentos y un gestor de presentaciones en diapositivas.

1. INSTALACION BASE

• Partimos de un sistema Ubuntu-Server 16.04 solo con la instalación básica para un servidor
– Servidor SSH
– Sistema Base(Sin Desktop)

1.1 SELECCIONAR HOSTNAME
hostnamectl set-hostname NOMBREHOST
1.2 LOCALES

Nos aseguramos que tenga las locales,correctas comprobando via cat si no es asi las instalamos y seteamos.

cat /etc/default/locale
LANG="en_US.UTF-8"

Si no devuelve en_US.UTF8 las instalamos:

sudo apt-get install -y language-pack-en
sudo update-locale LANG=en_US.UTF-8

2. FIREWALL
• Añadimos las excepciones pertinentes:

/usr/sbin/ufw allow 80/tcp
/usr/sbin/ufw allow 443/tcp
/usr/sbin/ufw allow 22/tcp
/usr/sbin/ufw allow 7443/tcp
/usr/sbin/ufw allow 16384:32768/udp
/usr/sbin/ufw enable

 

3. INSTALACION REPOSITORIOS

sudo add-apt-repository ppa:bigbluebutton/support -y
sudo add-apt-repository ppa:rmescandon/yq -y sudo add-apt-repository ppa:libreoffice/ppa

4. INSTALACION MONGODB

Necesitamos instalar una version especifica de mongodb la 3.4
• Añadimos la key

wget -qO - https://www.mongodb.org/static/pgp/server-3.4.asc | sudo apt-key add –
• Añadimos el repositorio a sources.list
• echo "deb [ arch=amd64] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

• Actualizamos los repositorios (apt-get update)
• Instalamos:

sudo apt-get install -y mongodb-org curl

5. INSTALACION NODEJS

• Descargamos el script de instalacion

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash –

Ignoramos la advertencia de que es una versión desfasada, el producto requiere se esa versión de node.

• Instalamos

sudo apt-get install -y nodejs

6. INSTALACION BIGBLUEBUTTON

• Añadimos la key

wget https://ubuntu.bigbluebutton.org/repo/bigbluebutton.asc -O- | sudo apt-key add -

• Añadimos los repositorios

echo "deb https://packages-eu.bigbluebutton.org/xenial-22/ bigbluebutton-xenial main" | sudo tee /etc/apt/sources.list.d/bigbluebutton.list

sudo apt-get install bigbluebutton
sudo apt-get install bbb-html5

7. ACTUALIZACION DEL SISTEMA

• Actualízanos Ubuntu

sudo apt-get dist-upgrade

8. REINICIO Y PRE-CHECK

• Reiniciamos el software

sudo bbb-conf –restart

• Lanzamos un check de todos los servicios

sudo bbb-conf –check

9. CONEXIÓN (CON O SIN API)

• Nos conectamos a la dirección IP de nuestro servidor y nos aparecerá una pantalla como la siguiente:

• Para usar BigBluButton como un simple back-end no necesitamos instalar la api de demo, por ejemplo integrándose en otra aplicación web  que envie los parametros para la creaccion de las salas via API, pero si queremos probarlo en modo demo necesitamos instalar el software de demo.

sudo apt-get install bbb-demo

10. CONFIGURAR SSL

• Para que el software funcione necesitaba la capa SSL, por lo que tenenos que usar un certificado y configurarlo en nginx asi como cambiar algunos ficheros de configuración dentro del software para que lo use:

Para ello tenemos que asegurarnos tener un nombre de dominio o dominio local que puede ser resuelto por nuestro DNS porque no funciona por IP, y ademas tener un certificado valido se recomienda letsencrypt, pero se puede usar cualquier CA incluso autofirmado, si se sigue todo el manual.

10.1 CAMBIOS NECESARIOS PARA ADAPTAR LOS FICHEROS DE CONFIGURACION PARA SSL

• Cambios en Freeswitch, adaptar el fichero de configuración
/etc/bigbluebutton/nginx/sip.nginx para que quede así:

• Configurar BigBlueButton para usar SSL en /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties

• Modificamos las propiedades de la aplicación /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties

Añadimos https a todas las referencias en el fichero de configuracion

sudo sed -e 's|http://|https://|g' -i /var/www/bigbluebutton/client/conf/config.xml

• Cambiamos las siguientes variables en /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml

• Modificamos tambien la url de etherpad

• Modificamos el playback_protocol /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml

• Modificamos la API /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp

10.2 NGINX

• Añadimos las siguientes líneas para añadir soporte SSL

listen 443 ssl;
listen [::]:443 ssl; server_name TUDOMINIO;

access_log /var/log/nginx/bigbluebutton.access.log;
ssl_certificate /etc/nginx/ssl/certificate.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;
ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256";

11. IMPORTAR CERTIFICADO A TOMCAT

Tomcat es muy especial y no le vale con el certificado de nginx, por lo que si no seguimos este paso y usamos un certificado de una CA rara o autofirmado no funcionara.

• Para que funcione hay que importar el certificado a tomcat usando varias herramientas
• Nos bajamos el software https://github.com/escline/InstallCert

git clone  https://github.com/escline/InstallCert

Instalamos  Openjdk, para poder compilar.

sudo apt-get install openjdk-8-jdk

• Compilar el fichero.jar

 javac Installcert.java

• Lanzamos el fichero java compilado de la siguiente manera:

java InstallCert TUDOMINIO:443

• Nos aparece una pantalla donde aceptamos el certificado
• Copiamos el fichero generado al almacen de certificados de tomcat

sudo cp jssecacerts /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts

12. FINALIZAR CONFIGURACION

Para finalizar la configuracion necesitamos setear en BBB nuestro dominio en todos los ficheros de configuracion, puesto que cuando se instalo no lo teniamos configurado para ello usamos

sudo bbb-conf --setip NOMBREDOMINIO Reiniciamos el servicio
sudo bbb-conf --restart

Compartir

3 Comentarios

Deja una respuesta

Your email address will not be published. Required fields are marked *