How to install BigBlueButton on Debian Squeeze¶
- How to install BigBlueButton on Debian Squeeze
This small tutorial is to give a step by step procedure to install a BigBlueButton 0.71a server on Debian Squeeze 32bit. I based it on the `official tutorial`:http://code.google.com/p/bigbluebutton/wiki/InstallationBigBlueButtonDebian which is clearly over complicated (compiled things from source), have some bogus instructions (ie. add Ubuntu's multiverse to a debian server), etc.
1. Install¶This is the procedure I followed which, I think, is much easier :
- Add repositories with their keys
# bigbluebutton repository key wget http://ubuntu.bigbluebutton.org/bigbluebutton.asc -O- | apt-key add - # Freeswitch PPA key apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 451AE93C echo -e `deb http://ubuntu.bigbluebutton.org/lucid/ bigbluebutton-lucid main\ndeb http://ppa.launchpad.net/freeswitch-drivers/freeswitch-nightly-drivers/ubuntu lucid main` > /etc/apt/sources.list.d/bigbluebutton.list aptitude update
- Install pre-requisites with necessary workaround for packaging bugs :
- Install sudo
All script are Ubuntufied so you will have to install sudo or some scripts (bbb-conf) won't work correctly.
aptitude install sudo
- Install libmpfr
libmpfr has been superseded by `libmpfr4`:http://packages.qa.debian.org/m/mpfr/news/20110223T163917Z.html and so is no longer available in Debian Squeeze. swftools depends on it but the version in Lenny is a little bit too old (2.3.1), so instead of compiling the source and making a new package, as indicated in the official how to, we'll just resolve the dependencies by using the one from ubuntu :
aptitude install libgmp3c2 wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/main/m/mpfr/libmpfr1ldbl_2.4.2-3ubuntu1_i386.deb dpkg -i libmpfr1ldbl_2.4.2-3ubuntu1_i386.deb
- Another workaround to avoid errors later on :
mkdir -p /var/www/nginx-default/ touch /var/www/nginx-default/50x.html
- Install sudo
- Now you can install BigBlueButton
aptitude install bbb-freeswitch-config bbb-client bigbluebutton
- Configure BigBlueButton and start it :
bbb-conf --clean bbb-conf --check bbb-conf --setip YOUR_IP
You can now go to http://YOUR_IP and try the demo.
2. Tips and tricks¶
BigBlueButton is a fantastic tool that works incredibly well, but it is still quite young, and is not yet very flexible in term of configuration. So here are some tips that I collected, hoping they will save you some hours of hair pulling.
2.1. Firewall setup¶
BigBlueButton require to open 3 ports : 80, 1935, 9123. You can also open only port 80 and so tunnel everything through it, but you will most likely get bitten by `this bug`:http://code.google.com/p/bigbluebutton/issues/detail?id=785 which is a `known Linux/Mac Adobe Flash bug`:https://bugs.adobe.com/jira/browse/FP-4797 . Basically you will be connected, and you will be able to do things but the session will re-initalise every 20-30 seconds. This bug doesn't affect Windows users and is supposed to be solved in Flashplayer 184.108.40.206 beta for Linux and Mac.
2.2. Redmine integration¶
BigBlueButton does not provide any administration GUI beside the demo, it is up to you to use their API, to create meetings. As we are already using Redmine I tried Redmine's BigBlueButton plugin. :
cd /usr/local/share/redmine ruby script/plugin install http://github.com/amartel/redmine_bbb.git
After restarting your Redmine instance, you will have a new plugin available in Administration -> Plugins. Then you need to give users BigBlueButton roles (create, join, moderate). Finally you need to go to a project settings and activate the BigBlueButton module to enable the `create meeting` link on the overview page.
2.3. Put BigBlueButton server behind a firewall or on a VPN¶
If you put your BigBlueButton server on a VPN or behind a firewall and you want to configure a public access, the configuration can be very tricky. Here is an example config providing that you have the following topology :
WEB <=> Redmine/Web Server <=> BigBlueButton server ExtIP : bigbluebutton.mydomain.com IP : 192.168.1.10
BigBlueButton requires to have an IP that resolves to the same name as configured so either you can put a record in an internal DNS or add the following to its /etc/hosts :
vi /etc/hosts -> 192.168.1.10 bigbluebutton.mydomain.com bbb-conf --setip bigbluebutton.mydomain.comIt will throw a message that the IP does not match but this is ok.
# IP does not match: # IP from ifconfig: 192.168.1.10 # /etc/nginx/sites-available/bigbluebutton: bigbluebutton.mydomain.comOn the Redmine/Web server :
- Forward port 9123 to BigBlueButton's server port 9123
- Forward port 1935 to BigBlueButton's server port 1935
- Configure a new vhost called bigbluebutton.mydomain.com that does a proxy pass to 192.168.1.10
- DO NOT TRY to put it on a subfolder (ie. mydomain.com/bbb) if you don't want to have to modify lots of bigblubutton's source code.
- BigBlueButton server = http://bigbluebutton.mydomain.com
- Internal address = http://192.168.1.10
- salt : the salt you will find in /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties in beans.dynamicConferenceService.securitySalt
As we have an internal VPN with its own DNS, I do not know if you require to add BigBlueButton's IP to the web servers /etc/hosts file as well.
Beware that BigBlueButton's configuration is extremely sensitive, a slight change in the above and it might not work. If you encounter any issue with the above do not hesitate to ping us on `IRC,`:http://www.personalized-software.ie/support#chat to `send us an email`:http://www.personalized-software.ie/contactus or to contact the `bigbluebutton crew.`:http://bigbluebutton.org/
2.4. End meeting after every participants logged out¶
You can do this easily by modifying the configuration :
vi /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties -> beans.dynamicConferenceService.minutesElapsedBeforeMeetingExpiration=0I found during my testing that the delay before the meeting is actually closed can vary from a few seconds to a few minutes, but it does work.