=====Setting up a server with BigBlueButton 0.81=====
==== 1. Prepare System ====
The requirements are
Ubuntu 10.04 64-bit
4 GB of memory (8 GB is better)
Quad-core 2.6 GHZ CPU (or faster)
Ports 80, 1935, 9123 accessible
Port 80 is not used by another application
500G of free disk space (or more) for recordings
\\
You will also need credentials with READ access to the software repository. \\
Start with adding the user:
$ useradd -d /home/expbbbp -m expbbbp
In addition to the above, the locale of the server must be en_US.UTF-8. Furthermore, the contents of /etc/default/locale must contain the single line LANG="en_US.UTF-8". You can verify this as below.
$ cat /etc/default/locale
LANG="en_US.UTF-8"
If you don't see LANG="en_US.UTF-8", then do the following
$ sudo apt-get install language-pack-en
$ sudo update-locale LANG=en_US.UTF-8
and then logout and log back into your session. After the above, do $ cat /etc/default/locale again and verify you see only the single line $ LANG="en_US.UTF-8". Note: if you see an additional line LC_ALL=en_US.UTF-8, then remove the setting for LC_ALL before continuing.
Also, check that you are running Ubuntu 10.04, 64-bit.
$ uname -a
x86_64
You should see x86_64.
$ cat /etc/lsb_release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.4 LTS"
You should also not have any version of ruby installed.
$ ruby -v
-bash: ruby: command not found
If you have a version of ruby installed (such as ruby 1.8) uninstall the packages first.
$ apt-get remove ruby*
Update to the latest binaries:
$ sudo apt-get update
$ sudo apt-get dist-upgrade
Reboot and login as expbbbu user.
==== 2. Pull software from repo ====
$ mkdir /tmp/bbb
$ wget –-user='' --password='' –r –np –l 1 –A deb ftp://qacollab01.exphosted.com/softrepo/bbb/bbb_0.81/
$ wget –-user='' --password='' –r –np –l 1 ftp://qacollab01.exphosted.com/softrepo/bbb/bbb_0.81/VERSIONS
==== 3. Install base software ====
$ sudo dpkg -i openoffice.org_1.0.4_all.deb
$ sudo apt-get install python-software-properties
$ sudo apt-add-repository ppa:libreoffice/libreoffice-4-0
$ sudo apt-get update
sudo apt-get install libreoffice-common
sudo apt-get install libreoffice
This next install command will give you an error about dependencies not found.
$ sudo dpkg -i ruby1.9.2_1.9.2-p290-1_amd64.deb
To resolve the dependencies, enter
$ sudo apt-get install -f
After the package installs, run the following two commands to setup the paths to the ruby executable.
$ sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.2 500 \
--slave /usr/bin/ri ri /usr/bin/ri1.9.2 \
--slave /usr/bin/irb irb /usr/bin/irb1.9.2 \
--slave /usr/bin/erb erb /usr/bin/erb1.9.2 \
--slave /usr/bin/rdoc rdoc /usr/bin/rdoc1.9.2
$ sudo update-alternatives --install /usr/bin/gem gem /usr/bin/gem1.9.2 500
Run the following command to check that ruby is now installed.
$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553)
And that gem is now installed.
$ gem -v
1.3.7
==== 4. Install ffmpeg (For video processing) ====
$ wget –-user='' --password='' ftp://qacollab01.exphosted.com/install_ffmpeg.sh | bash
After the script finishes, check that ffmpeg is installed by typing the command ffmpeg -version. You should see something similar -
it is important that the version matches '2.0.1'.
$ ffmpeg -version
ffmpeg version 2.0.1
built on Dec 19 2013 03:51:26 with gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
configuration: --enable-version3 --enable-postproc --enable-libvorbis --enable-libvpx
libavutil 52. 38.100 / 52. 38.100
libavcodec 55. 18.102 / 55. 18.102
libavformat 55. 12.100 / 55. 12.100
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 79.101 / 3. 79.101
libswscale 2. 3.100 / 2. 3.100
libswresample 0. 17.102 / 0. 17.102
==== 5. Install BigBlueButton ====
**IMPORTANT**
Learnexa’s BBB client has strict dependency on BBB 0.81 including individual component versions. Only use the packages from the source mentioned.
Ensure we are still in /tmp/bbb
$ pwd
/tmp/bbb
Install BBB
$ dpkg -i *.deb
This will install the required version of BBB and bbb-conf binary.
Ensure each component of BBB is installed and the version matches.
Compare VERSIONS file (downloaded earlier) with the output of bbb-conf --version
$ bbb-conf --version > installed_versions
$ diff -u installed_V VERSIONS
The last output line is and should be empty.
You should not receive any output, in case any of installed BBB's components have a different version that what is required - the command
above will print the package name.
==== 6. BBB & FreeSwitch Configuration ====
Setup BBB auth checksum and networking:
#**Please note the variable below **
$ sudo bbb-conf --setsalt / rails_app/config/bigbluebutton.yml /
$ sudo bbb-conf --set-ip
$ cp freeswitchconf/public.xml /opt/freeswitch/conf/dialplan/public.xml
$ cp freeswitchconf/conference.conf.xml /opt/freeswitch/conf/autoload_configs/conference.conf.xml
Customization for BBB Client
$ sudo vi /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
$ defaultWelcomeMessage= //(just leave it empty)
$ defaultWelcomeMessageFooter= //(just leave it empty)
$ defaultClientUrl=${bigbluebutton.web.serverURL}/client/LiveEvent.html
$ beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/DefaultMockPresentationXYZ.pdf
$ cd /var/www/bigbluebutton-default/
$ sudo touch DefaultMockPresentationXYZ.pdf
Change red5 settings
1. Change /usr/share/red5/conf/red5-common.xml to replace queueThreshold and deplayWrite values.
Modify certain default parameters in FreeSwitch. Further read: https://wiki.exphosted.com/doku.php/installing_bigbluebutton?s[]=freeswitch
Fix Nginx configuration.
$ cp nginxconf/ /etc/nginx/ -rf
$ cp bigbluebuttonconf/bigbluebutton.properties /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
In /etc/bigbluebutton/nginx/client.nginx
sed -i s/BigBlueButton.html/LiveEvent.html/g /etc/bigbluebutton/nginx/client.nginx
==== 8. Do a Clean Restart ====
To ensure BigBlueButton has started cleanly, enter the following commands:
$ sudo bbb-conf --clean
$ sudo bbb-conf --check
The --clean option will clear out all the log files for BigBlueButton. The --check option will grep through the log files looking for errors.
The output from sudo bbb-conf --check will display your current settings and, after the text, " Potential problems described below ", print any potential configuration or startup problems it has detected.
===== Additional steps based on environment type =====
Rails app (crossbow) is able to access the assets (videos, slides etc) processed by BBB server via a shared folder.
/deploy/crossbow/shared/streams
This folder needs to be shared and mounted across the network. \
==== Cluster of BBB server ====
If this BBB server is going to be part of a clustered group: \\
1) Identify the mount path and server: \\
Login to an existing BBB server or an app server and issue: \\
$ glusterfs --info
That should output a number of glusterfs paths, identify the path associated with /deploy/crossbow/shared/streams and \\
add it to the gluster configuration on this box. \\
Refer to the App server configuration for further examples on Gluster installation and configuration. \\
2) Verify the BBB networking and Application configuration matches the CLUSTER hostname. \\
==== Standalone BBB server ====
1) Share the streams folder: \\
$ mkdir /opt/streams
Add this to glusterfs group and mount it on the app server. \\
Refer to the App server configuration for further examples on Gluster installation and configuration. \\
2) Ensure the app server is configured to utilize this BBB server. \\
/deploy/crossbow/shared/config/{streamer.yml, recorder.yml, bigbluebutton.yml}. \\
===== Additional steps for build role: =====
These steps need to be performed to able be able to build and deploy new releases.
==== 1. Additional System & BBB conf. ====
***LOGIN AS BBB USER***
$ mkdir -p ~/dev/tools
$ cd ~/dev/tools
$ wget –-user='' --password='' –r –np –l 1 ftp://qacollab01.exphosted.com/softrepo/bbb/bbb_0.81/gradle-0.8.tar.gz
$ tar xvfz gradle-0.8.tar.gz
$ wget –-user='' --password='' –r –np –l 1 ftp://qacollab01.exphosted.com/softrepo/bbb/bbb_0.81/groovy-1.6.5.tar.gz
$ tar xvfz groovy-1.6.5.tar.gz
$ wget –-user='' --password='' –r –np –l 1 ftp://qacollab01.exphosted.com/softrepo/bbb/bbb_0.81/grails-1.3.9.tar.gz
$ tar xvfz grails-1.3.9.tar.gz
wget http://fpdownload.adobe.com/pub/flex/sdk/builds/flex4.5/flex_sdk_4.5.0.20967_mpl.zip
mkdir -p ~/dev/tools/flex-4.5.0.20967
unzip flex_sdk_4.5.0.20967_mpl.zip -d flex-4.5.0.20967
sudo find ~/dev/tools/flex-4.5.0.20967 -type d -exec chmod o+rx '{}' \;
chmod 755 ~/dev/tools/flex-4.5.0.20967/bin/*
sudo chmod -R +r ~/dev/tools/flex-4.5.0.20967
ln -s ~/dev/tools/flex-4.5.0.20967 ~/dev/tools/flex
mkdir -p flex-4.5.0.20967/frameworks/libs/player/11.2
cd flex-4.5.0.20967/frameworks/libs/player/11.2
wget http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_2.swc
mv -f playerglobal11_2.swc playerglobal.swc
nano ~/.profile
Paste the following
export GROOVY_HOME=$HOME/dev/tools/groovy-1.6.5
export PATH=$PATH:$GROOVY_HOME/bin
export GRAILS_HOME=$HOME/dev/tools/grails-1.3.9
export PATH=$PATH:$GRAILS_HOME/bin
export FLEX_HOME=$HOME/dev/tools/flex
export PATH=$PATH:$FLEX_HOME/bin
export GRADLE_HOME=$HOME/dev/tools/gradle-0.8
export PATH=$PATH:$GRADLE_HOME/bin
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
export ANT_OPTS="-Xmx512m -XX:MaxPermSize=512m"
Reload profile and checkout BBB repo
$ source ~/.profile
$ cd /home/expbbbp/dev
$ git clone https://github.com/bigbluebutton/bigbluebutton.git
$ git checkout tags/v0.81
Ensure the following directories exist:
$ ls ~/dev/tools/flex
$ ls ~/dev/srctrunk
$ ls ~/dev/source/bigbluebutton
Add Cronjob to restart BBB every fortnight.
sudo crontab -e
MAILTO="paarth@expertus.com"
1 1 */15 * * bbb-conf --restart
==== 2. Setup scripts ====
Copy build/deploy scripts:
$ mkdir /home/expbbbp/bin
$ cd /home/expbbbp/bin
$ wget –-user='' --password='' –r –np –l 1 ftp://qacollab01.exphosted.com/softrepo/bbb/bbbbuild/bbb_deploy.tar
$ tar xvf bbb_deploy.tar
cd /deploy/expertus_meeting/current
rbenv install 2.2.2
rbenv global 2.2.2
verify ruby -v -> output should be 2.2.2
verify whether Gemfile contains an entry for passenger
if not add it
bundle install --no-deployment - look for errors
bundle install (without sudo)
verify Passengerfile.json in /deploy/expertus_meeting/current has the right values for your environment
{
"environment": "staging",
"address": "qameeting02.exphosted.com",
"port":4000,
"daemonize": true,
"user": "expbbbp"
}
modify the /home/expbbbp/bin/expertus_meeting.sh has the right values
==== 3. Run Scripts ====
Run deploybbbclient.sh and then, deploy_bbb_recorder.sh
$ ./deploybbbclient.sh
$ ./deploy_bbb_recorder.sh
##########################
=====Setting up a server with BigBlueButton 0.8=====
==== 1. Prepare System ====
The requirements are
Ubuntu 10.04 64-bit
4 GB of memory (8 GB is better)
Quad-core 2.6 GHZ CPU (or faster)
Ports 80, 1935, 9123 accessible
Port 80 is not used by another application
500G of free disk space (or more) for recordings
\\
You will also need credentials with READ access to the software repository. \\
Start with adding the user:
$ useradd -d /home/expbbbu -m expbbbu
In addition to the above, the locale of the server must be en_US.UTF-8. Furthermore, the contents of /etc/default/locale must contain the single line LANG="en_US.UTF-8". You can verify this as below.
$ cat /etc/default/locale
LANG="en_US.UTF-8"
If you don't see LANG="en_US.UTF-8", then do the following
$ sudo apt-get install language-pack-en
$ sudo update-locale LANG=en_US.UTF-8
and then logout and log back into your session. After the above, do $ cat /etc/default/locale again and verify you see only the single line $ LANG="en_US.UTF-8". Note: if you see an additional line LC_ALL=en_US.UTF-8, then remove the setting for LC_ALL before continuing.
Also, check that you are running Ubuntu 10.04, 64-bit.
$ uname -a
x86_64
You should see x86_64.
$ cat /etc/lsb_release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.4 LTS"
You should also not have any version of ruby installed.
$ ruby -v
-bash: ruby: command not found
If you have a version of ruby installed (such as ruby 1.8) uninstall the packages first.
$ apt-get remove ruby*
Update to the latest binaries:
$ sudo apt-get update
$ sudo apt-get dist-upgrade
Reboot and login as expbbbu user.
==== 2. Pull software from repo ====
$ mkdir /tmp/bbb
$ wget –-user='' --password='' –r –np –l 1 –A deb ftp://qacollab01.exphosted.com/softrepo/bbb/bbb_0.8/
$ wget –-user='' --password='' –r –np –l 1 ftp://qacollab01.exphosted.com/softrepo/bbb/bbb_0.8/VERSIONS
==== 3. Install base software ====
$ sudo dpkg -i openoffice.org_1.0.4_all.deb
$ sudo apt-get install python-software-properties
$ sudo apt-add-repository ppa:libreoffice/libreoffice-4-0
$ sudo apt-get update
sudo apt-get install libreoffice-common
sudo apt-get install libreoffice
This next install command will give you an error about dependencies not found.
$ sudo dpkg -i ruby1.9.2_1.9.2-p290-1_amd64.deb
To resolve the dependencies, enter
$ sudo apt-get install -f
After the package installs, run the following two commands to setup the paths to the ruby executable.
$ sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.2 500 \
--slave /usr/bin/ri ri /usr/bin/ri1.9.2 \
--slave /usr/bin/irb irb /usr/bin/irb1.9.2 \
--slave /usr/bin/erb erb /usr/bin/erb1.9.2 \
--slave /usr/bin/rdoc rdoc /usr/bin/rdoc1.9.2
$ sudo update-alternatives --install /usr/bin/gem gem /usr/bin/gem1.9.2 500
Run the following command to check that ruby is now installed.
$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553)
And that gem is now installed.
$ gem -v
1.3.7
==== 4. Install ffmpeg (For video processing) ====
$ wget –-user='' --password='' ftp://qacollab01.exphosted.com/install_ffmpeg.sh | bash
After the script finishes, check that ffmpeg is installed by typing the command ffmpeg -version. You should see something similar -
it is important that the version matches '2.0.1'.
$ ffmpeg -version
ffmpeg version 2.0.1
built on Dec 19 2013 03:51:26 with gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
configuration: --enable-version3 --enable-postproc --enable-libvorbis --enable-libvpx
libavutil 52. 38.100 / 52. 38.100
libavcodec 55. 18.102 / 55. 18.102
libavformat 55. 12.100 / 55. 12.100
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 79.101 / 3. 79.101
libswscale 2. 3.100 / 2. 3.100
libswresample 0. 17.102 / 0. 17.102
==== 5. Install BigBlueButton ====
**IMPORTANT**
Learnexa’s BBB client has strict dependency on BBB 0.8 including individual component versions. Only use the packages from the source mentioned.
Ensure we are still in /tmp/bbb
$ pwd
/tmp/bbb
Install BBB
$ dpkg -i *.deb
This will install the required version of BBB and bbb-conf binary.
Ensure each component of BBB is installed and the version matches.
Compare VERSIONS file (downloaded earlier) with the output of bbb-conf --version
$ bbb-conf --version > installed_versions
$ diff -u installed_V VERSIONS
The last output line is and should be empty.
You should not receive any output, in case any of installed BBB's components have a different version that what is required - the command
above will print the package name.
==== 6. Deploy & Brand apps. ====
Copy the latest BBB client build folder to /home/expbbbp/dev/source/bigbluebutton/bigbluebutton-client/bin
$ cp bbbbuild/current /home/expbbbp/dev/source/bigbluebutton/bigbluebutton-client/bin
$ ln -nfs client /home/expbbbp/dev/source/bigbluebutton/bigbluebutton-client/bin
Copy the latest recorder app build to Red5.
$ cp recorder.war /usr/share/red5/webapps/
==== 7. BBB & FreeSwitch Configuration ====
Setup BBB auth checksum and networking:
#**Please note the variable below **
$ sudo bbb-conf --setsalt / rails_app/config/bigbluebutton.yml /
$ sudo bbb-conf --set-ip
$ cp freeswitchconf/public.xml /opt/freeswitch/conf/dialplan/public.xml
$ cp freeswitchconf/conference.conf.xml /opt/freeswitch/conf/autoload_configs/conference.conf.xml
Fix Deployed Apps configuration:
Open /home/expbbbp/dev/source/bigbluebutton/bigbluebutton-client/bin/config/conf.xml
and replace string "192.168.7.52" with Rails APP (Crossbow) endpoint FQDN
and replace string "192.168.7.10" with this collab box's endpoint FQDN
Modify certain default parameters in FreeSwitch. Further read: https://wiki.exphosted.com/doku.php/installing_bigbluebutton?s[]=freeswitch
Fix Nginx configuration.
$ cp nginxconf/ /etc/nginx/ -rf
$ cp bigbluebuttonconf/bigbluebutton.properties /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
==== 8. Do a Clean Restart ====
To ensure BigBlueButton has started cleanly, enter the following commands:
$ sudo bbb-conf --clean
$ sudo bbb-conf --check
The --clean option will clear out all the log files for BigBlueButton. The --check option will grep through the log files looking for errors.
The output from sudo bbb-conf --check will display your current settings and, after the text, " Potential problems described below ", print any potential configuration or startup problems it has detected.
bbb-conf might / will complain about IP address mismatch problems. This is just a false positive as bbb-conf does not \
address private <-> public IP NATs when checking for hostname status. If you must fix this annoyance, copy and replace the bbb-conf script with the one in repo.
===== Additional steps based on environment type =====
Rails app (crossbow) is able to access the assets (videos, slides etc) processed by BBB server via a shared folder.
/deploy/crossbow/shared/streams
This folder needs to be shared and mounted across the network. \
==== Cluster of BBB server ====
If this BBB server is going to be part of a clustered group: \\
1) Identify the mount path and server: \\
Login to an existing BBB server or an app server and issue: \\
$ glusterfs --info
That should output a number of glusterfs paths, identify the path associated with /deploy/crossbow/shared/streams and \\
add it to the gluster configuration on this box. \\
Refer to the App server configuration for further examples on Gluster installation and configuration. \\
2) Verify the BBB networking and Application configuration matches the CLUSTER hostname. \\
==== Standalone BBB server ====
1) Share the streams folder: \\
$ mkdir /opt/streams
Add this to glusterfs group and mount it on the app server. \\
Refer to the App server configuration for further examples on Gluster installation and configuration. \\
2) Ensure the app server is configured to utilize this BBB server. \\
/deploy/crossbow/shared/config/{streamer.yml, recorder.yml, bigbluebutton.yml}. \\
===== Additional steps for build role: =====
These steps need to be performed to able be able to build and deploy new releases.
==== 1. Additional System & BBB conf. ====
$ bbb-conf --setup-dev tools
$ source ~/.profile
$ bbb-conf --setup-dev client
$ apt-get install ant
$ export ANT_OPTS=-XX:MaxPermSize=512m
Ensure the following directories exist:
$ ls ~/dev/tools/flex
$ ls ~/dev/srctrunk
$ ls ~/dev/source/bigbluebutton
Add Cronjob to restart BBB every fortnight.
sudo crontab -e
MAILTO="devops@expertus.com"
* 1 */15 * * bbb-conf --restart
==== 2. Setup scripts ====
Copy bbbbuild/bin folder from repo to user's home dir
$ cp bbbbuild/bin ~/bin -rf
Open /home/expbbbp/dev/source/bigbluebutton/bigbluebutton-client/src/config/conf.xml
and replace string "192.168.7.52" with Rails APP (Crossbow) endpoint FQDN
and replace string "192.168.7.10" with this collab box's endpoint FQDN
==== 3. Run Scripts ====
Run deploybbbclient.sh and then, deploy_bbb_recorder.sh
$ ./deploybbbclient.sh
$ ./deploy_bbb_recorder.sh