BigBlueButton_Debian_Squeeze, version 1

Anthony Callegaro 2012-05-25 15:07:34 +00:00
parent bda2cc9774
commit 3a25788ea2

@ -0,0 +1,158 @@
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 Ubuntus 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) wont 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, well 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
- 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 doesnt affect Windows users
and is supposed to be solved in Flashplayer 11.0.1.3 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 Redmines 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.com
It 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.com
On the Redmine/Web server :
- Forward port 9123 to BigBlueButtons server port 9123
- Forward port 1935 to BigBlueButtons 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
dont want to have to modify lots of bigblubuttons source code.
In Redmine ->Administration ->Plugins ->BigBlueButton put
the following (no trailing slash or else you will hit 403 errors) :
- 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 BigBlueButtons IP to the web servers /etc/hosts file as
well.
Beware that BigBlueButtons 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=0
I 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.