|
InstallingBigBlueButton
How to install BigBlueButton like a real developer. :-)
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 rootLog 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 connectionping 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 VMOnce you have internet connection, update and upgrade your VM. apt-get update apt-get upgrade Install MySQLapt-get install mysql-server When prompted, enter a password for the MySQL root account and keep this handy. Install Tomcatapt-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 swftoolsapt-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 ImageMagickapt-get install imagemagick Install Nginxapt-get install nginx Install ActiveMQmkdir /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 red5cd /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 filesThese .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 rebootcd /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 FreeSWITCHBigBlueButton 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 FreeSWITCHcd /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 NginxBe 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 configln -s /etc/nginx/sites-available/bigbluebutton /etc/nginx/sites-enabled/bigbluebutton Install OpenOfficeapt-get install openoffice.org Start openoffice as a serviceservice bbb-openoffice-headless start
Disable Security settings for TOMCAT6sed -i "s/#TOMCAT6_SECURITY=yes/TOMCAT6_SECURITY=no/" /etc/default/tomcat6 Setup the databasemysql -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-webcp /tmp/bbb/bigbluebutton.war /var/lib/tomcat6/webapps/bigbluebutton.war Determine PDF2SWF, CONVERT and GS applicationsMake 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 GUIDFor 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 propertiesvi /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties Change the following:
Create noPdfMarkWorkaround.psCreate /etc/bigbluebutton/nopdfmark.ps with the following content: %!
/pdfmark {cleartomark} bind defRestart Tomcat6service tomcat6 restart Create the Presentation Upload directorymkdir /var/bigbluebutton chown -R tomcat6:adm /var/bigbluebutton chmod -R 777 /var/bigbluebutton Install bbb-appscd /usr/share/red5/webapps tar xzvf /tmp/bbb/red5-bigbluebutton.tar.gz Install bbb-deskshare-apptar xzvf /tmp/bbb/red5-deskshare.tar.gz Install bbb-video-apptar xzvf /tmp/bbb/red5-video.tar.gz Install bbb-voice-apptar 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 pagescd /var/www tar xzvf /tmp/bbb/www-bigbluebutton-default.tar.gz Install bbb-clienttar 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
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-confThe 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 BigBlueButtonIf 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. | |