BigBlueButton

Bonjour,

Je cherche un retour d’expérience sur BigBlueButton sur debian ou ubuntu. J’ai l’ai installé sur ubuntu 14.04 mais après reboot du serveur je n’ai plus rien. Tant que je ne reboot pas, ça marche mais après j’ai des processus freeswitch qui se multiplient et plantent…
Voici mon setup :slight_smile:

if [ $USER != root ]
then
clear screen
whiptail --title "Avertissement" --msgbox "Merci d'exécuter ce programme avec sudo ou en root... L'installeur de BigBlueButton va se fermer." 20 80
exit 0
fi

grep 14.04 /etc/lsb-release
if [ "$?" != 0 ]
                then
                        clear screen
                        whiptail --title "Avertissement" --msgbox "Merci d'exécuter ce programme sur Ubuntu 14.04 uniquement... L'installeur de BigBlueButton va se fermer." 20 80
                        exit 0
fi

function NetConfig () {
function EthQuest () {
function Quest1 () {
function testip () {
IP=$(whiptail --inputbox  "Tapez l'adresse IPV4 que vous souhaitez assigner au serveur \
(au format xxx.xxx.xxx.xxx ou x représente un chiffre) :" 20 80 $(ifconfig| grep "inet adr"| grep -v 127.0.0.1|awk '{print $2}'|cut -d: -f2) 3>&1 1>&2 2>&3)
if [ "$?" = "1" ]
	then
		exit 0
fi		
}
testip
until [[ "$IP" =~ ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ ]] 
	do 		
		testip
done

function Quest2 () {	

function testmask () {
netmask=$(whiptail --inputbox "Tapez l'adresse du masque de sous reseau :" 20 80 $(ifconfig |grep Masque|grep Bcast|awk '{ print $4 }'|cut \-d: \-f2) 3>&1 1>&2 2>&3)
if [ "$?" = "1" ]
	then
		Quest1
fi
}
testmask
until [[ "$netmask" =~ ^((255|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]|0)\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ ]] 
	do 		
		testmask 
done		

function Quest3 () {

function testdns () {
dns=$(whiptail --inputbox "Tapez l'adresse du serveur DNS primaire :" 20 80 $(grep nameserver /etc/resolv.conf|head \-n 1|awk '{ print $2 }' ) 3>&1 1>&2 2>&3)
if [ "$?" = "1" ]
	then
		Quest2
fi
}
testdns
until [[ "$dns" =~ ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ ]] 
	do	
	testdns
done	

function Quest4 () {

function testdns2 () {
dns2=$(whiptail --inputbox "Tapez l'adresse du serveur DNS secondaire :" 20 80 $(grep nameserver /etc/resolv.conf|head -2|tail \-1|awk '{ print $2 }' ) 3>&1 1>&2 2>&3)
if [ "$?" = "1" ]
	then
		Quest3
fi
}
testdns2
until [[ "$dns2" =~ ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ ]] 
	do
	
	testdns2
done	

function Quest5 () {

function testgate () {

gateway=$(whiptail --inputbox "Tapez l'adresse de la passerelle :" 20 80 $(route -n|grep 0.0.0.0|awk '{print $2}'|head -n 1) 3>&1 1>&2 2>&3)

if [ "$?" = "1" ]
	then
		Quest4
fi
test -f /tmp/passerelle
if [ "$?" = "0" ]
	then
		rm /tmp/passerelle	
fi

}
testgate
until [[ "$gateway" =~ ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ ]] 
	do	
	testgate
done	

function Quest6 () {

function domaine_addr () {
domain=$(whiptail --inputbox "Tapez votre nom de domaine ou de workgroup :" 20 80 $(grep domain /etc/resolv.conf|awk '{print $2}') 3>&1 1>&2 2>&3)
if [ "$?" = "1" ]
	then
		Quest5
fi
}
domaine_addr
until [[ "$domain" =~ [A-Za-z0-9.-]+\.[A-Za-z]{2,6}$ ]] || [[ "$domain" =~ [A-Za-z0-9.-]{2,16}$ ]]
	do	
	domaine_addr
done

function Quest7 () {

function hostname_addr () {
hostname=$(whiptail --inputbox "Tapez le nom de machine affecté à Wordpress" 20 80 conf 3>&1 1>&2 2>&3)
if [ "$?" = "1" ]
	then
		Quest6
fi
}
hostname_addr
until [[ "$hostname" =~ ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$ ]]
	do
	hostname_addr
done	

function Quest8 () {

function hostname_addr2 () {
hostname2=$(whiptail --inputbox "Tapez le nom de machine Affecté à BigBlueButton" 20 80 bbb 3>&1 1>&2 2>&3)
if [ "$?" = "1" ]
	then
		Quest7
fi
}
hostname_addr2
until [[ "$hostname2" =~ ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$ ]]
	do
	hostname_addr2
done	

function Quest9 () {

function pass_confirm () {
Root_pass=$(whiptail --passwordbox "Tapez ici le mot de passe de l'administrateur de mysql/mariadb :"  --nocancel 20 80 3>&1 1>&2 2>&3)
Root_pass2=$(whiptail --passwordbox "Confirmez le mot de passe de l'administrateur de mysql/mariadb :"  --nocancel 20 80 3>&1 1>&2 2>&3)
if [ "$?" = "1" ]
	then
		Quest8
fi
}
pass_confirm
while [ "${Root_pass}" != "${Root_pass2}" ]
	do
		whiptail --msgbox "Les mots de passe ne correspondent pas" 20 80
		pass_confirm
done

function Quest10 () {

function pass_confirm2 () {
PassWP=$(whiptail --passwordbox "Créez ici le mot de passe de l'administrateur (wordpressuser) de la base de données wordpress :
Cet utilisateur sera utilisé plus tard dans la configuration de wordpress dans un navigateur WEB." --nocancel 20 80  3>&1 1>&2 2>&3)
PassWP2=$(whiptail --passwordbox "Confirmez le mot de passe de l'admin de la base de données wordpress :" 20 80  3>&1 1>&2 2>&3)
if [ "$?" = 1 ]
	then
		Quest9
fi
}
pass_confirm2
while [ "${PassWP}" != "${PassWP2}" ]
	do
		pass_confirm2
done

}
}
}
}
}
}
}
}
}
}

Quest1
Quest2
Quest3
Quest4
Quest5
Quest6
Quest7
Quest8
Quest9
Quest10

MyPubIP=$(wget -qO- whatismyip.org |grep -oE "\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b" |cut -d\> -f 2|cut -d\< -f 1)

whiptail --msgbox "Récapitulatif des modifications :
	- Adresse IP de l'interface : $IP
	- Masque de sous réseau : $netmask
	- Passerelle : $gateway
	- Serveur DNS 1 : $dns
	- Serveur DNS 2 :$dns2
	- Nom de machine Wordpress : $hostname
	- Nom de domaine BigBlueButton : $domain
	- FQDN : $hostname.$domain
	- Adresse IP publique : $MyPubIP" 20 80

FinalQuest=$(whiptail --title "Confirmation"  --yes-button "Suivant" --no-button "Recommencer" --yesno "Souhaitez-vous conserver les modifications" --nocancel 20 80 3>&1 1>&2 2>&3)

	if [ "$?" = "1" ]
		then
			whiptail --title " AVERTISSEMENT" --msgbox "Nous avons détecté que vous n'avez pas procédé à la configuration de l'interface réseau, un assistant va vous aider à procéder à cette configuration. Une fois terminé, il vous faudra relancer ce script et éventuellement vous reconnecter si vous avez pris la main en SSH et que vous avez changé l'adresse IP du serveur." 20 80
			EthQuest
	fi	
}
EthQuest


cat > /etc/network/interfaces << EOF
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static

address $IP
netmask $netmask
gateway $gateway
dns-nameservers $dns $dns2
dns-search $domain
dns-domain $domain
EOF

cat > /etc/resolv.conf << EOF
search $domain
domain $domain
nameserver $dns
nameserver $dns2
EOF

cat > /etc/hosts << EOF
127.0.0.1       	localhost
#127.0.1.1  		$hostname.$domain        $hostname # à utiliser si retour vers dhcp
$IP  		$hostname.$domain        $hostname
$IP  		$hostname2.$domain        $hostname2
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
EOF

cat > /etc/mailname << EOF
$hostname.$domain
EOF

cat > /etc/hostname << EOF
$hostname
EOF
hostname $hostname

mkdir /usr/NetwConf
echo ${IP} > /usr/NetwConf/IP
echo ${hostname} > /usr/NetwConf/hostname
echo ${hostname2} > /usr/NetwConf/hostname2
echo ${domain} > /usr/NetwConf/domain
echo ${Root_pass} > /usr/NetwConf/Root_pass
echo ${PassWP} > /usr/NetwConf/PassWP


touch /usr/NetConfigOk
		apt-get autoremove --purge -y isc-dhcp-client
		whiptail --title " AVERTISSEMENT" --msgbox "Vous avez procédé à la configuration de l'interface réseau. Le script d'installation va certainement s'interrompre. Pour finir l'installation, il vous faudra relancer ce script et éventuellement vous reconnecter si vous avez pris la main en SSH et que vous avez changé l'adresse IP du serveur." 20 80
		ifdown eth0 && ifup eth0 && source /root/.bashrc && exec bash && exit 0
}
		
test -f /usr/NetConfigOk
if [ "$?" = 1 ]
then
			NetConfig
fi

IP=$(cat /usr/NetwConf/IP)
hostname=$(cat /usr/NetwConf/hostname)
hostname2=$(cat /usr/NetwConf/hostname2)
domain=$(cat /usr/NetwConf/domain)
Root_pass=$(cat /usr/NetwConf/Root_pass)
PassWP=$(cat /usr/NetwConf/PassWP)

echo "export DEBIAN_FRONTEND=noninteractive
sudo debconf-set-selections <<< 'mariadb-server mysql-server/root_password password ${Root_pass}'
sudo debconf-set-selections <<< 'mariadb-server mysql-server/root_password_again password ${Root_pass}'" > /tmp/mariadb
sudo bash /tmp/mariadb
rm /tmp/mariadb

sudo add-apt-repository ppa:libreoffice/libreoffice-4-4
sudo add-apt-repository -y ppa:ondrej/php
wget http://ubuntu.bigbluebutton.org/bigbluebutton.asc -O- | sudo apt-key add -
echo "deb http://ubuntu.bigbluebutton.org/trusty-090/ bigbluebutton-trusty main" | sudo tee /etc/apt/sources.list.d/bigbluebutton.list
sudo apt-get update && sudo apt-get upgrade -y

cd /tmp

touch install-ffmpeg.sh
cat >> install-ffmpeg.sh << EOF
sudo apt-get install build-essential git-core checkinstall yasm texi2html libvorbis-dev libx11-dev libvpx-dev libxfixes-dev zlib1g-dev pkg-config netcat libncurses5-dev php5-curl sudo -y --force-yes

cd /usr/local/src
if [ ! -d "/usr/local/src/ffmpeg-2.3.3" ]; then
  sudo wget "http://ffmpeg.org/releases/ffmpeg-2.3.3.tar.bz2"
  sudo tar -xjf "ffmpeg-2.3.3.tar.bz2"
fi

cd "ffmpeg-2.3.3"
sudo ./configure --enable-version3 --enable-postproc --enable-libvorbis --enable-libvpx
sudo make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:2.3.3" --backup=no --deldoc=yes --default
EOF

chmod +x install-ffmpeg.sh

./install-ffmpeg.sh

sudo apt-get install bigbluebutton php5-fpm php5-gd libssh2-php mariadb-server php5-mysql mariadb-client php5-curl software-properties-common build-essential git-core checkinstall yasm texi2html libvorbis-dev libx11-dev libvpx-dev libxfixes-dev zlib1g-dev pkg-config netcat libncurses5-dev -y --force-yes

cd /tmp

wget https://fr.wordpress.org/wordpress-4.4.2-fr_FR.tar.gz

tar xvzf wordpress-4.4.2-fr_FR.tar.gz

sudo mv wordpress /var/www/wordpress

## création de la base wordpress et de son user wordpress...
echo "
CREATE DATABASE wordpress;
CREATE USER wordpressuser@localhost IDENTIFIED BY '${PassWP}';
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;
FLUSH PRIVILEGES;
exit" > /tmp/sql.tmp
sudo mysql -u root -p${Root_pass} < /tmp/sql.tmp
rm /tmp/sql.tmp

cd /var/www/wordpress

sudo cp wp-config-sample.php wp-config.php

sudo mkdir wp-content/uploads

sudo chown -R www-data:www-data /var/www/wordpress

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/wordpress

sudo sed -i "s|/usr/share/nginx/html|/var/www/wordpress|" /etc/nginx/sites-available/wordpress

sudo sed -i "s|127.0.1.1|${hostame}.${domain}|" /etc/nginx/sites-available/wordpress

sudo sed -i "s|127.0.1.1|${hostame2}.${domain}|" /etc/nginx/sites-available/bigbluebutton

sudo sed -i "s|server_name localhost|server_name $(hostame -f)|" /etc/nginx/sites-available/wordpress

sudo sed -i "s|server_name localhost|server_name $(hostame -i)|" /etc/nginx/sites-available/bigbluebutton

sudo sed -i "s|index index.html index.htm|index index.php index.html index.htm|" /etc/nginx/sites-available/wordpress

#sudo sed -i "s|server_name localhost|server_name $(hostname -i)|" /etc/nginx/sites-available/wordpress

sudo sed -i "s|try_files \$uri \$uri/ =404|try_files \$uri \$uri/ /index.php?q=\$uri\&\$args|" /etc/nginx/sites-available/wordpress

sudo sed -i "54ilocation ~ \.php\$ {" /etc/nginx/sites-available/wordpress
sudo sed -i "55ifastcgi_split_path_info ^(.+\\\.php)(/.+)\$;" /etc/nginx/sites-available/wordpress

sudo sed -i "56ifastcgi_pass unix:/var/run/php5-fpm.sock;" /etc/nginx/sites-available/wordpress
sudo sed -i "57ifastcgi_index index.php;" /etc/nginx/sites-available/wordpress
sudo sed -i "58iinclude fastcgi_params;" /etc/nginx/sites-available/wordpress
sudo sed -i "59i}" /etc/nginx/sites-available/wordpress

sudo sed -i "s|bigbluebutton.web.serverURL=http://${IP}|bigbluebutton.web.serverURL=http://${hostname2}.${domain}|" /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
 
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/

sudo rm  /etc/nginx/sites-enabled/default
#sudo rm  /etc/nginx/sites-enabled/bigbluebutton

sudo sed -i "s|votre_nom_de_bdd|wordpress|" /var/www/wordpress/wp-config.php

sudo sed -i "s|votre_utilisateur_de_bdd|wordpressuser|" /var/www/wordpress/wp-config.php

sudo sed -i "s|votre_mdp_de_bdd|${PassWP}|" /var/www/wordpress/wp-config.php

sudo service nginx restart
sudo service php5-fpm restart

sudo ifdown eth0 && sudo ifup eth0 && sudo bbb-conf --setip $(hostame -i) && sudo bbb-conf --enablewebrtc && sudo bbb-conf --clean && sudo bbb-conf --check && rm -rf /usr/NetwConf && exit 0

Je refais une “clean install” et je poste les logs, je viens de péter ma VM et j’ai oublié de copier les logs avant de la supprimer :smile:

Et si jamais quelqu’un connait un bon tuto pour l’installer sur Jessie je suis preneur, j’ai du mal avec ubuntu !

1 J'aime

Voici mes logs :

2016-08-29 15:54:51,160+02:00 INFO  org.bigbluebutton.api.messaging.MessageSender  - Redis message publisher starting!
2016-08-29 15:54:51,181+02:00 INFO  org.bigbluebutton.api.MeetingService  - Starting Meeting Service.
2016-08-29 15:54:52,106+02:00 INFO  org.bigbluebutton.api.messaging.ReceivedMessageHandler  - Ready to handle messages from Redis pubsub!
2016-08-29 15:54:52,118+02:00 INFO  org.bigbluebutton.api.messaging.MessageReceiver  - Ready to receive messages from Redis pubsub.
2016-08-29 15:54:52,149+02:00 DEBUG org.bigbluebutton.api.messaging.MessageReceiver  - Subscribed to the pattern: bigbluebutton:from-bbb-apps:*
2016-08-29 15:54:52,527+02:00 WARN  org.grails.plugin.resource.module.ModuleDeclarationsFactory  - 'grails.resources.modules' in config does not define any modules
2016-08-29 15:55:46,484+02:00 WARN  org.bigbluebutton.web.services.KeepAliveService  - bbb-apps is down!
2016-08-29 15:55:51,179+02:00 DEBUG org.bigbluebutton.api.MeetingService  - Trigger cleaning up expired meetings
2016-08-29 15:55:51,181+02:00 DEBUG org.bigbluebutton.api.MeetingService  - Cleaning up expired meetings
2016-08-29 15:56:46,485+02:00 WARN  org.bigbluebutton.web.services.KeepAliveService  - bbb-apps is down!
2016-08-29 15:56:51,180+02:00 DEBUG org.bigbluebutton.api.MeetingService  - Trigger cleaning up expired meetings
2016-08-29 15:56:51,180+02:00 DEBUG org.bigbluebutton.api.MeetingService  - Cleaning up expired meetings

Côté Standard Output j’ai ça :


Waiting for BigBlueButton to finish starting up (this may take a minute): .......................................................................................................................................................................................................................................................................................

ET ça ne s’arrête jamais. En plus Nginx ne démarre pas automatiquement et freeswitch a aussi du mal à booter.

Le résultat de bbb-conf --check :

BigBlueButton Server 0.9.1 (367)
                    Kernel version: 3.19.0-66-generic
                      Distribution: Ubuntu 14.04.5 LTS (64-bit)
                            Memory: 3952 MB

/var/www/bigbluebutton/client/conf/config.xml (bbb-client)
                Port test (tunnel): 192.168.1.108
                              Red5: 192.168.1.108
              useWebrtcIfAvailable: true

/opt/freeswitch/conf/sip_profiles/external.xml (FreeSWITCH)
                    websocket port: 5066
                    WebRTC enabled: true

/etc/nginx/sites-available/bigbluebutton (nginx)
                       server name: 192.168.1.108
                              port: 80
                    bbb-client dir: /var/www/bigbluebutton

/var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties                                                                               (bbb-web)
                      bbb-web host: bbb.test.lan

/var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp (API demos)
                           api url: bbb.test.lan

/usr/share/red5/webapps/bigbluebutton/WEB-INF/red5-web.xml (red5)
                  voice conference: FreeSWITCH
                     capture video: true
                   capture desktop: true

/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml (record and playback)
                     playback host: 192.168.1.108


** Potential problems described below **
# Warning: API URL IPs do not match host:
#
#                                IP from ifconfig: 192.168.1.108
#  /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp: bbb.test.lan

# Not Running:  Nginx
# Unavailable Red5 logs (/usr/share/red5/log):  sip.log video.log deskshare.log
#    /usr/share/red5/log/sip.log not found
#    /usr/share/red5/log/video.log not found
#    bigbluebutton did not start properly
#    /usr/share/red5/log/deskshare.log not found
# Error: /usr/share/red5/log/sip.log

#       bigbluebutton failed to start: /usr/share/red5/log/bigbluebutton.log (re                                                                              d5)
# Error: Could not connect to the configured hostname/IP address
#
#    http://bbb.test.lan/
#
# If your BigBlueButton server is behind a firewall, see FAQ.

# Error: Unable to connect to port 9123 (desktop sharing) on 192.168.1.108

# Warning: The API demos are installed and accessible from:
#
#    http://bbb.test.lan/
#
# These API demos allow anyone to access your server without authentication
# to create/manage meetings and recordings. They are for testing purposes only.
# If you are running a production system, remove them by running:
#
#    sudo apt-get purge bbb-demo

# Error: Unable to reach default URL for presentation:
#
#    http://bbb.test.lan/default.pdf
#
# Check value for beans.presentationService.defaultUploadedPresentation in
#   /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.propert                                                                              ies

Je n’y comprends pas grand chose, avec exactement le même setup je n’avais pas de problème jusqu’à il y a peu et aujourd’hui ça ne fonctionne plus :confounded:

salut
ils ont pas l’air de connaitre Debian
http://docs.bigbluebutton.org/support/faq.html#os-requirements

bien l’usine à gaz
http://docs.bigbluebutton.org/install/install.html

ou adapter ça

Merci @grandtoubab, j’avais déjà vu et testé ces liens, mais pour l’adaptation à debian (jessie), il y a trop de dépendances, j’ai abandonné…
Dommage le soft est super cool quand il fonctionne (même sous ubuntu s’il le faut…) !

1 J'aime

il y a ça aussi
https://code.google.com/archive/p/bigbluebutton/wikis/InstallationUbuntu.wiki

http://www.smnet.fr/ubuntu/ubuntu-bbb-intro.html

Hello,

Merci j’ai déjà exploré ces pistes. Sympa quand même d’avoir cherché :slight_smile:

Bonjour,

J’ai regardé tout ça, et je me demandais si, en 2024, donc huit ans après cette discussion, des progrès avaient été faits pour pouvoir installer BBB sur Debian. Jusqu’ici sans succès, mais peut-être quelqu’un aurait-il de nouvelles pistes à suggérer?

Pas eu de modification il y a peu pour un client j’avais regardé du côté de docker, les liens au cas ou :