My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
InstallingBigBlueButton  
How to install BigBlueButton like a real developer. :-)
Updated Dec 8, 2011 by ffdixon@gmail.com

This guide has been updated for 0.71a and is currently DRAFT -- if you are unable to complete these instructions, please post to bigbluebutton-setup and we'll correct any errors.

This guide shows you how to install BigBlueButton from source on Ubuntu 10.04.x 32-bit.

In most cases, you'll want to install from packages, but if you want to really understand how BigBlueButton is setup, go through the step-by-step instructions below and you'll become familiar with each component.

To start, you'll need a computer running Ubuntu 10.04 32-bit or 64-bit, either a physical machine or a virtual machine (VM). When you boot your Ubuntu VM, it needs to have a network IP that you can access from another computer (such as the host computer running the VM).

Also ensure that port 80 (HTTP), port 1935 (RTMP), and port 9123 (desktop sharing) are open on your server. Port 80 must not be already in use by another server (such as apache2).

The instructions below assumes you are running a Ubuntu 10.04 VM with root access.

Log in as root

Log in as root to avoid having to type sudo in front of most of the commands required to install BigBlueButton.

sudo -i

Check if you have a internet connection

ping www.google.com

If you get an error saying your eth0 is not connected, check if the VM is using eth1:

ifconfig -a

If it shows the following:

eth1      Link encap:Ethernet  HWaddr 00:0c:29:dd:b4:51
          inet addr:192.168.0.154  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fedd:b451/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4080349 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3932137 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1216680270 (1.2 GB)  TX bytes:822963271 (822.9 MB)
          Interrupt:19 Base address:0x2000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:12938 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12938 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:40299608 (40.2 MB)  TX bytes:40299608 (40.2 MB)

Make it use eth0 instead

vi /etc/udev/rules.d/70-persistent-net.rules

This will show:

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:23:d1:b3", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:dd:b4:51", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Swap the two entries by editing "NAME=eth1" to "NAME=eth0" and vice versa.

Reboot your machine. Check if you manage to connect to the internet. Make sure the VM's network adapter is using a Bridged connection instead of NAT. On the VMWare player this is enabled in the Devices menu at the top.

More info can be found here http://ubuntuforums.org/showthread.php?t=221768

Update and Upgrade your VM

Once you have internet connection, update and upgrade your VM.

apt-get update
apt-get upgrade

Install MySQL

apt-get install mysql-server

When prompted, enter a password for the MySQL root account and keep this handy.

Install Tomcat

apt-get install tomcat6

Confirm that tomcat is running

http://<YOUR IP>:8080/

To determine your ip:
ifconfig

see "ifconfig -a" command above for output. Your ip should be the value of "inet addr:"  which from above is "192.168.0.154"

Install swftools

apt-get install swftools

If the installer does not find the package swftools to install, you have to edit the sources.list file for apt and uncomment the partner repository. To do this:

vi /etc/apt/sources.list

Once here, uncomment the partner repository

deb http://archive.canonical.com/ubuntu lucid partner

Run apt-get update then try installing it once more.

Install ImageMagick

apt-get install imagemagick

Install Nginx

apt-get install nginx

Install ActiveMQ

mkdir /tmp/bbb
cd /tmp/bbb
wget http://apache.sunsite.ualberta.ca//activemq/apache-activemq/5.4.3/apache-activemq-5.4.3-bin.tar.gz
tar zxvf apache-activemq-5.4.3-bin.tar.gz
mv /tmp/bbb/apache-activemq-5.4.3 /usr/share/activemq
chown -R root:root /usr/share/activemq

ActiveMQ depends on Jsvc, to install:

apt-get install jsvc

Install red5

cd /tmp/bbb
wget http://bigbluebutton.org/downloads/0.70/red5-0.9.1.tar.gz
tar xvf red5-0.9.1.tar.gz
mv /tmp/bbb/red5-0.9.1 /usr/share/red5

Create red5 user

adduser --system --home /usr/share/red5 --no-create-home --group --disabled-password --shell /bin/false red5

Assign proper permissions

chown -R root:root /usr/share/red5
chown -R red5:adm /usr/share/red5/log
chmod 755 /usr/share/red5/log
chgrp red5 /usr/share/red5/webapps
chmod 775 /usr/share/red5/webapps

Download BigBlueButton files files

These .tar.gz files have created from a installation of BigBlueButton 0.71a.

cd /tmp/bbb
wget http://bigbluebutton.org/downloads/0.71a/init-scripts.tar.gz
wget http://bigbluebutton.org/downloads/0.71a/freeswitch-config.tar.gz

wget http://bigbluebutton.org/downloads/0.71a/red5-bigbluebutton.tar.gz
wget http://bigbluebutton.org/downloads/0.71a/red5-deskshare.tar.gz
wget http://bigbluebutton.org/downloads/0.71a/red5-sip.tar.gz
wget http://bigbluebutton.org/downloads/0.71a/red5-video.tar.gz

wget http://bigbluebutton.org/downloads/0.71a/www-bigbluebutton-default.tar.gz
wget http://bigbluebutton.org/downloads/0.71a/www-bigbluebutton.tar.gz

wget http://bigbluebutton.org/downloads/0.71a/bigbluebutton.war
wget http://bigbluebutton.org/downloads/0.71a/nginx-bigbluebutton.conf

wget http://bigbluebutton.org/downloads/0.71a/bbb-conf

Auto-start activeMQ, bbb-openoffice-headless, and red5 on reboot

cd /etc/init.d
tar xzvf /tmp/bbb/init-scripts.tar.gz
chmod +x /etc/init.d/activemq
chmod +x /etc/init.d/red5
chmod +x /etc/init.d/bbb-openoffice-headless
update-rc.d activemq defaults
update-rc.d red5 defaults
update-rc.d bbb-openoffice-headless defaults

Install FreeSWITCH

BigBlueButton uses an external conferencing server to handle voice calls. FreeSWITCH allows BigBlueButton to be integrated with a PBX system and when configured properly, can accept incoming calls from a SIP trunking provider. Since FreeSWITCH isn't in the Ubuntu repositories we need to add it to our sources. To do this:

apt-get install python-software-properties
add-apt-repository ppa:freeswitch-drivers/freeswitch-nightly-drivers 
apt-get update
apt-get install freeswitch freeswitch-lang-en

Configure FreeSWITCH

cd /opt/freeswitch/
tar xzvf /tmp/bbb/freeswitch-config.tar.gz
chown -R freeswitch:daemon conf
chmod -R 755 conf
sed -i 's/FREESWITCH_ENABLED=\"false\"/FREESWITCH_ENABLED=\"true\"/g' /etc/default/freeswitch

Configure Nginx

Be sure to replace < YOUR-IP > with your IP or domain.

cat /tmp/bbb/nginx-bigbluebutton.conf  | sed "s/192.168.0.35/< YOUR-IP >/" > /etc/nginx/sites-available/bigbluebutton

Enable the bigbluebutton nginx config

ln -s /etc/nginx/sites-available/bigbluebutton /etc/nginx/sites-enabled/bigbluebutton

Install OpenOffice

apt-get install openoffice.org

Start openoffice as a service

service bbb-openoffice-headless start

Disable Security settings for TOMCAT6

sed -i "s/#TOMCAT6_SECURITY=yes/TOMCAT6_SECURITY=no/" /etc/default/tomcat6		

Setup the database

mysql -u root -p

This is an important step. If you skip this, BigBlueButton will not work at all. Just hit "Enter" when prompted for a password if you didn't enter one, otherwise use the root password you added ealier.

On the mysql> prompt, type

create database bigbluebutton_dev;

grant all on bigbluebutton_dev.* to 'bbb'@'localhost' identified by 'secret';

flush privileges;

quit

Install bbb-web

cp /tmp/bbb/bigbluebutton.war /var/lib/tomcat6/webapps/bigbluebutton.war

Determine PDF2SWF, CONVERT and GS applications

Make a note of where pdf2swf is installed

which pdf2swf

You should see something like

/usr/bin/pdf2swf

Make a note of where the convert application is installed

which convert

You shoud see something like.

/usr/bin/convert

Note where GhostScript is installed

which gs

You shoud see something like.

/usr/bin/gs

Generate a GUID

For security, you need to generate a GUID. You can use an online GUID generator, such as this one. Keep this GUID handy as we will need it shortly. You will need to generate a HEX Encoded string and copy it minus the 0x.

Edit bbb-web properties

vi /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties

Change the following:

  • swfToolsDir to the directory where pdf2swf is located
  • imageMagickDir to the directory where convert is located
  • ghostScriptExec to point to the gs executable
  • change bigbluebutton.web.serverURL=http://<YOUR IP>
  • set beans.dynamicConferenceService.securitySalt to be equal to the guid we just generated (i.e. beans.dynamicConferenceService.securitySalt=< YOUR-GUID >)

Create noPdfMarkWorkaround.ps

Create /etc/bigbluebutton/nopdfmark.ps with the following content:

%!
/pdfmark {cleartomark} bind def

Restart Tomcat6

service tomcat6 restart

Create the Presentation Upload directory

mkdir /var/bigbluebutton
chown -R tomcat6:adm /var/bigbluebutton
chmod -R 777 /var/bigbluebutton

Install bbb-apps

cd /usr/share/red5/webapps
tar xzvf /tmp/bbb/red5-bigbluebutton.tar.gz

Install bbb-deskshare-app

tar xzvf /tmp/bbb/red5-deskshare.tar.gz

Install bbb-video-app

tar xzvf /tmp/bbb/red5-video.tar.gz

Install bbb-voice-app

tar xzvf /tmp/bbb/red5-sip.tar.gz

At this point we have to edit one of the configuration files to point to your sip server. This document assumes it is your current machine, but it can be another stand alone machine all you need is its IP address.

Open the file

vi /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties

Edit the line that says sip.server.host=192.168.0.35 and replace the IP with < Your-IP >.

Install default web pages

cd /var/www
tar xzvf /tmp/bbb/www-bigbluebutton-default.tar.gz

Install bbb-client

tar xzvf /tmp/bbb/www-bigbluebutton.tar.gz

Now we need to create bbb_api_conf.jsp, which will hold our GUID and the !BigBlueButtonURL. Be sure to replace < YOUR-GUID > and < YOUR-IP > with the GUID we generated earlier and your IP, respectively.

echo "<%!
// This is the security salt that must match the value set in the BigBlueButton server
String salt = \"<YOUR-GUID>\";

// This is the URL for the BigBlueButton server
String BigBlueButtonURL = \"http://<YOUR-IP>/bigbluebutton/\";
%>" > /var/lib/tomcat6/webapps/bigbluebutton/demo/bbb_api_conf.jsp

Edit client config

vi /var/www/bigbluebutton/client/conf/config.xml
  • Change the uri to your IP address

Your config.xml should look something like:

<?xml version="1.0" ?>
<config>
    <localeversion>0.71</localeversion>
    <version>3818-2011-01-18</version>
    <help url="http://192.168.0.35/help.html"/>
    <porttest host="192.168.0.35" application="video"/>
    <application uri="rtmp://192.168.0.35/bigbluebutton" host="http://192.168.0.35/bigbluebutton/api/enter" />
    <language userSelectionEnabled="true" />
    <skinning enabled="false" url="branding/css/theme.css.swf" />
    <debug showDebugWindow="false" />

        <modules>

                <module name="ChatModule" url="ChatModule.swf?v=3818"
                        uri="rtmp://192.168.0.35/bigbluebutton"
                        dependsOn="ViewersModule"
                        translationOn="true"
                        translationEnabled="true"
                />

                <module name="ViewersModule" url="ViewersModule.swf?v=3818"
                        uri="rtmp://192.168.0.35/bigbluebutton"
                        host="http://192.168.0.35/bigbluebutton/api/enter"
                        allowKickUser="false"
                />

                <module name="ListenersModule" url="ListenersModule.swf?v=3818"
                        uri="rtmp://192.168.0.35/bigbluebutton"
                        recordingHost="http://192.168.0.35"
                />

                <module name="DeskShareModule"
                        url="DeskShareModule.swf?v=3818"
                        uri="rtmp://192.168.0.35/deskShare"
                />

                <module name="PhoneModule" url="PhoneModule.swf?v=3818"
                        uri="rtmp://192.168.0.35/sip"
                        autoJoin="false"
                        dependsOn="ViewersModule"
                />

                <module name="VideoconfModule" url="VideoconfModule.swf?v=3818"
                        uri="rtmp://192.168.0.35/video"
                        dependsOn="ViewersModule"
                        videoQuality="70"
                        presenterShareOnly="false"
                />

                <module name="WhiteboardModule" url="WhiteboardModule.swf?v=3818"
                        uri="rtmp://192.168.0.35/bigbluebutton"
                        dependsOn="PresentModule"
                />

                <module name="PresentModule" url="PresentModule.swf?v=3818"
                        uri="rtmp://192.168.0.35/bigbluebutton"
                        host="http://192.168.0.35"
                        dependsOn="ViewersModule"
                />

                <!-- new module in development:
                <module name="DynamicInfoModule" url="DynamicInfoModule.swf?v=3818"
                        uri="rtmp://192.168.0.35/bigbluebutton"
                        host="http://192.168.0.35"
                        infoURL="http://192.168.0.35/client/conf/example-info-data.xml?user={userID}&role={role}&meetingID={meetingID}"
                />
                -->

                <!--<module name="ExampleChatModule" url="ExampleChatModule.swf?v=56"
            uri="rtmp://192.168.0.35/bigbluebutton"
            host="http://192.168.0.35"
                />-->

                <!--<module name="BreakoutModule" url="BreakoutModule.swf?v=3818"
                        uri="rtmp://192.168.0.225/bigbluebutton"
                        host="http://192.168.0.225"
                        dependsOn="ViewersModule"
                        salt="1708e5ecf25b7142b06f2338b4ea3cf1"
                />-->

        </modules>
</config>

Hint: if you are using vi you can use a command similar to this: :1,$s/192.168.0.35/< YOUR-IP >/g

Install bbb-conf

The utility bbb-conf is a shell script to help you configure your BigBlueButton setup. To install bbb-conf, do the following:

cp /tmp/bbb/bbb-conf /usr/local/bin
sudo chmod a+x /usr/local/bin/bbb-conf 

Finish the installation

# create directory for log files
mkdir /var/log/bigbluebutton

# create an empty log file
touch /var/log/bigbluebutton/bbb-web.log
chown tomcat6:tomcat6 /var/log/bigbluebutton/bbb-web.log

You should now be able to type

sudo bbb-conf --clean
sudo bbb-conf --check

Launch BigBlueButton

If sudo bbb-conf --check gives you a clean bill of health, you should be ready to start BigBluebutton

Go to http://<YOUR-IP> which should display the bbb web page and join the conference!

If you have a problem with these instructions, please post to bigbluebutton-setup.

Powered by Google Project Hosting