Live Chat Software by Kayako
Welcome to the installation guide for BigBlueButton 1.0-beta
Posted by Thang Le Toan on 03 April 2016 03:01 AM
Welcome to the installation guide for BigBlueButton 1.0-beta (referred hereafter as BigBlueButton 1.0). BigBlueButton is an open source web conferencing system for on-line learning. For an overview what new in this release, see overview.
We recommend you install BigBlueButton 1.0 on a dedicated Ubuntu 14.04 64-bit server that is not running any other web applications. This will avoid subtle conflicts (such as with underlying configuration files) that will cause errors in BigBlueButton installation and running.
If you already have a BigBlueButton 0.81 server running Ubuntu 10.04, we recommend not trying to upgrade your server. Start with a clean Ubuntu 14.04 64-bit server, install BigBlueButton using the steps below, and then copy over the recordings from the old BigBlueButton server to the new.
Before you installAnchor link for: before you install
The prerequisites for BigBlueButton 1.0 server are
If you intend to setup BigBlueButton for development, then installation in a virtualized environment works well. For development, you probably don’t need a VM with 500G of free disk space; 50G would be sufficient. However, if you intend to run BigBlueButton in production, we recommend installation on a dedicated (bare metal) server. BigBlueButton uses FreeSWITCH for processing the incoming real-time packets for audio, and FreeSWITCH works best in a non-virtualized environment (see FreeSWITCH recommended configurations).
For users we recommend (a minimum of) 1.0 Mbits/sec download speed and 0.5 Mbits/sec upload speed.
In addition to ensuring your server meets the above requirements, there are a few more checks. First, the locale of the server must be en_US.UTF-8. To verify , enter the following command
If you don’t see
and logout and log back into your SSH session (this will reload your configuration). Run
Check that your server is running 64-bit.
Check your version of Ubuntu is Ubuntu 14.04.
We have designed, developed, installed, and tested BigBlueButton 1.0 on Ubuntu 14.04 64-bit (Trusty Tahr). In other words, we have neither installed nor tested BigBlueButton on a different release of Ubuntu (and it will likely not work).
Installing BigBlueButton 1.0-betaAnchor link for: installing bigbluebutton 10 beta
If you have already installed an earlier build of 0.9/1.0 then see upgrading BigBlueButton 0.9
A few words about the installation steps below. You must completely finish each step before proceeding to the next. If you encounter an error at any step, STOP and double-check you’ve entered the proper commands, and don’t continue onto the next step as you’ll only compound the errors. If you can’t resolve the error (use Google to search for the error messages), then post a description of the error to the bigbluebutton setup mailing list and the community will help.
Commercial support is also available.
1. Update your serverAnchor link for: update your server
Login to your server via SSH. You need to have an account that can execute commands as root (via sudo). First, ensure that you have
and you should see an uncommented line for the multiverse repository, which may look like
Don’t worry if your URL is different, what’s important is you see an uncommented link that contains multiverse. If you don’t, then execute the following line to add the multiverse repository to your
Before proceeding further, do a dist-upgrade to ensure all the current packages on your server are up-to-date.
If you’ve not updated in a while, apt-get may recommend you reboot your server after
If you are installing BigBlueButton on EC2 (good for testing, but for production we recommend using a physical server for better performance), Amazon EC2 provides an external and internal IP address. After you install BigBlueButton, complete the steps outlined here.
2. Install PPA for LibreOffice 4.4Anchor link for: install ppa for libreoffice 44
Ubuntu 14.04 installs LibreOffice 4.2.x by default, but we want to use LibreOffice 4.4 for improved stability on conversion of Microsoft Office documents to PDF.
To add the repository for LibreOffice 4.4, enter the following commands:
3. Install key for BigBlueButtonAnchor link for: install key for bigbluebutton
You need to give your server access to the BigBlueButton package repository. First, add the BigBlueButton key
Next, add the BigBlueButton repository URL.
Finally, update the package list.
4. Install ffmpegAnchor link for: install ffmpeg
BigBlueButton 1.0 uses ffmpeg to create components of the playback files (the audio, video, and desktop sharing components).
To install ffmpeg, create a file called
Next, make the script executable and run it.
After the script finishes, check that ffmpeg is installed by typing the command
5. Install BigBlueButtonAnchor link for: install bigbluebutton
We’re now ready to install BigBlueButton 1.0 Type
This single command is where all the magic happens. This command installs all of BigBlueButton’s components with their dependencies.
Type ‘Y’ and press enter to install. If you get an error message
you can ignore it as you’ll do a clean restart of all the BigBlueButton components in step 9.
6. Install API DemosAnchor link for: install api demos
This step is optional.
If you want to interactively test your BigBlueButton server (as opposed to using an 3rd party integration), you can install a set of API demos.
You’ll need the bbb-demo package installed if you want to join the Demo Meeting from your BigBlueButton server’s welcome page. This is the same welcome page you see at demo server.
Later on, if you wish to remove the API demos, you can enter the command
7. Install Client Self-CheckAnchor link for: install client self check
This step is optional
BigBlueButton has a self-check utility that can help diagnose networking and configuration issues that may prevent a user from launching BigBlueButton. To install the client self-check page:
This is the same welcome page you see at client self-check.
Later on, if you wish to remove the client self-check page, you can enter the command
8. Enable WebRTC audioAnchor link for: enable webrtc audio
To enable WebRTC audio (you want to do this), do the following
9. Do a Clean RestartAnchor link for: do a clean restart
To ensure BigBlueButton has started cleanly, enter the following commands:
The output from
Here’s a sample output from a new install on a server with IP address 192.168.0.100.
Here the potential problem is just a warning – you currently have the API demos installed, which would enable anyone with access to the server to launch sessions.
At this point, you could try out your server by opening
If BigBlueButton didn’t install or run, see troubleshooting installation.
Upgrading BigBlueButton 0.9/1.0Anchor link for: upgrading bigbluebutton 0910
If already have a BigBlueButton 0.81 server, these instructions will not upgrade your server. You need to install on a clean installation of 1.0 on Ubuntu 14.04 64-bit and follow the steps previous in this document.
To upgrade your BigBlueButton 0.9 server, first setup BigBlueButton repository URL as instructed in Step 3.. Next, add the package repository for LibreOffice 4.4 (if you’ve not already done this). To check if you have libreoffice 4.3, enter the command
If you see
then enter the following commands to upgrade to LibreOffice 4.4 (you need only do these commands once).
To upgrade an earlier version of BigBlueButton 0.9/1.0, do the following:
Respond with ‘Y’, if you get prompted to update any configuration file during the upgrade
Configuring HTTPS on BigBlueButtonAnchor link for: configuring https on bigbluebutton
You’ll want to add HTTPS support to your BigBlueButton server for increased security. Also, as of Chrome 47, Chrome users will be unable to share their microphone via WebRTC unless BigBlueButton is loaded via HTTPS.
Configure BigBlueButton to use a domain nameAnchor link for: configure bigbluebutton to use a domain name
In order to obtain a valid SSL certificate for your server, you must configure the server to use a domain name that you own or control.
For the purposes of documentation, we will be using the domain name “example.com”, with a BigBlueButton server hosted at “bigbluebutton.example.com”.
Please run the commands as root.
Once you have a domain name and have configured it with a DNS host, add an A record pointing to your server. You can then use the bbb-conf setip command to configure BigBlueButton to use that domain name, for example:
Obtain an SSL certificateAnchor link for: obtain an ssl certificate
In order to serve BigBlueButton over HTTPS, you need to have a valid SSL certificate. A domain validated (sometimes called “class 1”) certificate with a 2048 bit RSA key and SHA-256 checksum is the current recommended minimum, and it should be sufficient.
There are a number of providers that you could obtain a certificate from. Many domain name sales companies also offer certificates.
Some well known large providers of SSL certificates include Comodo, Symantec, GoDaddy, GlobalSign, and DigiCert. In addition, free SSL certificates are available from StartSSL and CACert, with some caveats: StartSSL certificates can’t be revoked without paying a service fee, and most people do not have the root for CACert installed in their web browser.
Each provider will give you a series of steps for generating the certificate, but they will normally include generating a private key and certificate request locally, sending the certificate request to be signed, and then receiving back the signed certificate after they have performed any required verification steps.
To install the certificate in BigBlueButton, you will need to have files for the certificate, private key, and any intermediate certificates in PEM format.
Configure nginx to use HTTPSAnchor link for: configure nginx to use https
Depending on your CA, you should now have 2 or more files, as follows:
The next step is to install the files on the server.
Create the directory /etc/nginx/ssl:
And now create the private key file for nginx to use (replace the hostname in the filename with your own). In addition, fix the permissions so that only root can read the private key:
And the certificate file. Note that nginx needs your server certificate and the list of intermediate certificates together in one file (replace the hostname in the filename with your own):
In addition, we’ll generate a set of 2048-bit diffie-hellman parameters to improve security for some types of ciphers. This step can take several minutes to complete, particularly if run on a virtual machine.
Now we can edit the nginx configuration to use SSL. Edit the file
For reference, note that the SSL settings used above are based on those proposed in https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ and provide support for all modern browsers (including IE8, but not IE6, on Windows XP). Please note that recommended SSL settings are subject to change as new vulnerabilities are found.
Configure FreeSWITCH & WebRTCAnchor link for: configure freeswitch webrtc
Edit the file
Now the websocket forwarding address in nginx must be updated. Edit the file
In addition, the webrtc code in the client must be updated to use the secure websockets connection. Edit the file
Configure BigBlueButton to load session via HTTPSAnchor link for: configure bigbluebutton to load session via https
Edit the file
You must also update the file
If you would ever need to revert this change, you can run the reverse command:
Edit Demo FilesAnchor link for: edit demo files
If you have the demo application installed, you also need to change them to use https.
Edit the files from the result of the
Restart BigBlueButtonAnchor link for: restart bigbluebutton
To apply all of the configuration changes made, you must restart all components of BigBlueButton:
Test your HTTPS configurationAnchor link for: test your https configuration
In order to ensure you didn’t make any mistakes that could cause security compromises, please test your HTTPS configuration. A well-respected site that can do a series of automated tests is https://www.ssllabs.com/ssltest/ - simply enter your server’s hostname, optionally check the “Do not show results” checkbox if you would like to keep it private, then Submit.
At time of writing, the configuration shown on this page should achieve an “A” ranking in the SSL Labs test page.
Troubleshooting InstallationAnchor link for: troubleshooting installation
The following will help you resolve common errors with installation.
Run sudo bbb-conf –checkAnchor link for: run sudo bbb conf check
We’ve built in a BigBlueButton configuration utility, called
If you think something isn’t working correctly, the first step is enter the following command.
This will check your setup to ensure the correct processes are running, the BigBlueButton components have correctly started, and look for common configuration problems that might prevent BigBlueButton from working properly.
If you see text after the line
Could not get your microphone for a WebRTC callAnchor link for: could not get your microphone for a webrtc call
At the time of writing, the current release is Chrome 45. As of Chrome 47 (coming soon), Chrome will require that any access to the user’s micrphone for WebRTC be restricted to sites that are served via HTTPS. Users using Chrome Canary will also have this requirement.
If the user attempts to share their microphone, Chrome will block access and BigBlueButton will report the following error
WebRTC Audio Failure: Detected the following WebRTC issue: Could not get your microphone for a WebRTC call. Do you want to try flash instead?
To enable Chrome to access the user’s microphone, see Coniguring HTTPS on BigBlueButton.
Tomcat7 takes a long time to startupAnchor link for: tomcat7 takes a long time to startup
Tomcat relies on the SecureRandom class (which uses available entropy) to provide random values for its session IDs. On a virtualized server, however, the available entropy can run low and cause tomcat7 to block for a long period before it finishes it’s startup sequence (see Tomcat Entropy Source).
To provide tomcat7 with more entropy, you can install havaged
For more information see How to Setup Additional Entropy for Cloud Servers Using Haveged.
Errors with packagesAnchor link for: errors with packages
Some hosting providers do not provide a complete
and try installing BigBlueButton again from the beginning.
Some packages could not be installed error (libpython3.4)Anchor link for: some packages could not be installed error libpython34
Some installations of Ubuntu 14.04 might have broken python3.4 packages installed. To check if this issue affects you, run the following command:
If you get output that looks similar to the following - in particular, if it mentions the python version “3.4.3-1ubuntu1~14.04.1”, then you are hitting this issue:
To fix this problem, run the following commands:
If those commands complete, you can go back to the installation instructions and try the package that had failed again.
BigBlueButton does not loadAnchor link for: bigbluebutton does not load
If your server has multiple network connections, the install scripts may have used the wrong IP for BigBlueButton’s configuration. Another possibility is you want to access BigBlueButton through a hostname (but not IP).
To change all of BigBlueButton’s configuration files to use a different IP address or hostname, enter
For more information see bbb-conf options.
Host IP address has changedAnchor link for: host ip address has changed
Audio not workingAnchor link for: audio not working
If you are installing BigBlueButton on EC2 or a hosting provider that has a number of network interfaces, you need to tell FreeSWITCH to listen on your external interface on it’s IP address (shown below as EXTERNAL_IP_ADDRESS). You must use the external IP address where EXTERNAL_IP_ADDRESS is show (not the external hostname).
Remove this line
Open the following TCP and UPD ports on the local firewall (if you have one installed) and security groups (if your using EC2):
Conference not found errorsAnchor link for: conference not found errors
are innocious and can be ignored.
No Symbolic LinkAnchor link for: no symbolic link
If you’ve installed/uninstalled BigBlueButton packages, you may get a
To solve this, add a symbolic link to nginx for the BigBlueButton site:
Voice Application failed to register with sip serverAnchor link for: voice application failed to register with sip server
This error occurs when
One possible cause for this is you have just installed BigBlueButton, but not restarted it. The packages do not start up the BigBlueButton components in the right order. To restart BigBlueButton, do the following:
If you don’t want FreeSWITCH to bind to 127.0.0.1, you need to figure out which IP address it’s using. First, determine the IP address FreeSWITCH is monitoring for incoming SIP calls with the following command:
You should see an output such as
In this example, FreeSWITCH is listening on IP address 188.8.131.52. The IP address on your server will be different.
Restart BigBlueButton using the commands and run the built-in diagnostics checks.
If the above does not resolve your problem, post to the output of the commands
Client WebRTC Error CodesAnchor link for: client webrtc error codes
WebRTC offers very high-quality audio. However, the user’s network settings (or firewall) may not allow WebRTC to connect (or keep connected).
Here are the following lists the possible WebRTC error messages that a user may encounter:
Not running: nginxAnchor link for: not running nginx
Check if port 80 is already in use on your server. One of the server requirements before you install BigBlueButton is that port 80 is not in use by another application (such as Apache). For details on why this is a requirements, see [We recommend running BigBlueButton on port 80](http://docs.bigbluebutton.org/support/faq.html#we-recommend-running-bigbluebutton-on-port-80}.
If port 80 is free, check if your nginx configuration file has errors. Try a restart of nginx
and look for the output of
If you see
and see if it repots any errors. You can also check the error.log file for nginx to see what errors it gives on startup
Reprocess Recordings from 0.81Anchor link for: reprocess recordings from 081
With the update from BigBlueButton 0.81 to 0.9, we do not support upgrading a server in place. Instead, we recommend installing a fresh copy of Ubuntu 14.04 for BigBlueButton 0.9.
There are two ways of importing recordings from an old BigBlueButton server to a new one; they are described separately.
Re-process raw recordings from an old serverAnchor link for: re process raw recordings from an old server
This is the recommended way of copying recordings, since the recordings will be rebuilt using newer versions of the recording software, enabling new features and fixing bugs that may have been present with the old version. The downside is that this can take a long time, and will use a lot of CPU on your new BigBlueButton server while you wait for the recordings to process.
If your old server has all of the original recording files in the
This example rsync command could be run on the new server, and will copy the recording file from the old server.
There are other ways of transferring these files; for example, you could create a tar archive of the
You will then need to fix the permissions on the newly copied recordings:
And initiate the recording re-processing
The BigBlueButton server will automatically go through the recordings and rebuild and publish them. You can use the
Transfer existing published recordings from an 0.81 serverAnchor link for: transfer existing published recordings from an 081 server
If you want to do the minimum amount of work to quickly make your existing recordings on a 0.81 server available on a BigBlueButton 0.9 server, transfer the contents of the
Here is an example set of rsync commands that would accomplish this; run these on the new server to copy the files from the old server.
Other methods of transferring these files can also be used; for example, you could create a tar archive of each of the directories, and transfer it via scp, or use a shared NFS mount.
You will then need to fix the permissions on the newly copied recordings:
If the recordings were copied from a server with a different hostname, you will have to run the following command to fix the stored hostnames. (If you don’t do this, it’ll either return a 404 error, or attempt to load the recordings from the old server instead of the new server!)
Note that this command will restart the BigBlueButton server, interrupting any live sessions.
The transferred recordings should be immediately visible via the BigBlueButton recordings API.
Finally, if you are transferring recordings from a BigBlueButton 0.80 server, they may have been done in an older recording format called “slides”. In order to correctly play back these recordings on a new BigBlueButton server, you will have to install an additional package:
Root partition too smallAnchor link for: root partition too small
If the root partition on your BigBlueButton server is too small (for disk space requirements see Before you install), we recommend moving the following directories to an external partition with sufficent disk space.
BigBlueButton processing and storage of recordings:
FreeSWITCH recording of audio files:
And red5 recording of video files:
To make the move, first stop BigBlueButton, then move the above directories to a new location on the external partition, create symbolic links from the original locations to the new locations, and restart BigBlueButton.