Linux

How to install and configure BigBlueButton on Ubuntu Linux 16.04 LTS Xenial Xerus

BigBlueButton (BBB) is an open-source web conferencing system for online learning that enables you to engage your students and colleagues online. If you searching for a solution to handle remote teaching of students online, BBB provides real-time sharing of audio, video, slides, chat, and screen.  Students are engaged through sharing of emoji icons, polling, and breakout rooms. If you would like to see the overview of the moderator and presenter capabilities in the BigBlueButton client, including the ability to do polling, kindly click on the link. In this guide, I will walk you through the installation of the BBB Server along with the client interface referred to as “Greenlight“. You may also be interested in the following open-source projects how to install Mattermost on Ubuntu and Debian, and how to install and configure Jitsi on Ubuntu.

Greenlight makes your virtual classroom accessible from any browser and enforces the use of HTTPS to keep information secure.give It gives users the ability to create meetings, invite others to join the meeting, and manage recordings.

Greenlight has all the needed features required to make your BBB server functional and accessible.

  • Signup/Login with Twitter, Google, or through the application itself.
  • It enables you to manage your account settings and user preferences.
  • Allow users to wait for your room to start, then automatically join when it does.
  • Create and manage your own personal rooms (BigBlueButton sessions).
  • View recordings and share them with others.

Why should I use BBB? BigBlueButton backed by a world-wide community of developers (and commercial companies) that care about making the best web conferencing system for online learning. Below is an image of the available features of BBB. It encompasses verything you need to teach and participate in an online class.

BBB-Features

Prerequisites for installing BBB: Below are the minimum requirements for installing BBB. BigBlueButton supports Ubuntu 16.04 LTS. To download the operating system (OS), kindly5 head to the following link.

- Ubuntu 16.04 64-bit OS (There is a choice for this due to stability)
- 4 GB of memory with swap enabled (8 GB of memory is better)
- Quad-core 2.6 GHZ CPU or faster
- TCP ports 80, 443,and 1935 are accessible
- TCP port 7443 is accessible if you intend to configure SSL and port 5066 is accessible
- UDP ports 16384 and 32768 are accessible
- Port 80 is not in use by another application
- Over 500G or more disk space for recordings
Note: BigBlueButton recommends installing BBB on a bare-metal server for performance reason because it uses FreeSWITCh for processing incoming packages and freeSWITCH works best in a non-virtualised environment.

Since this is a test installation, I will be setting up a clean Ubuntu 16.04 64-bit in a virtual machine as this is a requirement as no additional software or packages may be installed on the server as it may result in issues. Please see the following guides on how to install and configure Ubuntu Linux, how to install the Windows Subsystem for Linux (WSL) on Windows Server via Server Manager and PowerShell, and how to set up SELinux on a Linux server. The images below show I have initiated and completed a new VM installation and installed the available security updates on the Server.

By "clean" we mean the server does not have any previous web applications installed (such as plesk, webadmin, or apache) that are binding to port 80/443. By ‘dedicated’ we mean that this server won’t be used for anything else besides BigBlueButton (and BigBlueButton-related applications such as Greenlight).

You may also perform some quick checks on the server to ensure it is ready for an error-free installation by meeting the above prerequisites. Below are the steps to install your BBB server.

Step 1 – House Keeping 🙂 Once logged in, first ensure that you have Xenail multiverse in your /etc/apt/sources.list by entering the command below. After entering the above command you should see an uncommented line for the multiverse repository. what’s important is you see an uncommented link that contains multiverse and if you do not see these uncommented links, please refer to the BBB documentation for these steps.

$ grep "multiverse" /etc/apt/sources.list

Since I am testing BBB on a VM, some of BigBlueButton’s components, such as Tomcat, need a source of entropy when starting up. In a VM the available entropy can run low and cause Tomcat to block for long periods of time (sometimes minutes) before finishing startup. To give the VM lots of entropy, install a packaged called haveged (a simple entropy daemon).

$ sudo apt-get install haveged

Check that the locale of the server is en_US.UTF-8. To check the locale, enter the command below and check if its output matches LANG=”en_US.UTF-8. If you do not see “LANG=”en_US.UTF-8”, please refer to the BBB guide on how to fix this.

$ cat /etc/default/locale

Further checks! Run the following commands to determine your OS, run the following commands below to determine your OS meets the system requirements.

$ lsb_release -a                       or
$ cat /etc/lsb-release
$ uname -m
$ $ free -h
$ ip addr | grep inet6

if you run the command "ip addr | grep inet6" and you do not see the line inet6 ::1/128 scope host then after you install BigBlueButton you will need to modify the configuration for FreeSWITCH to disable support for IPV6.

Step 2 – Update your Server: These steps ensure your server is up to date with the latest security patches and packages. To do this, run the following commands.

$ sudo apt-get update
$ sudo apt-get dist-upgrade

Step 3 – Install apt-get key for BBB repository: Since all BBB packages are digitally signed with the project’s public key, we will need to add the project’s public key to your server so apt-get can validate the signed packages before installing the BBB. To do this, enter the following command.

$ wget https://ubuntu.bigbluebutton.org/repo/bigbluebutton.asc -O- | sudo apt-key add -

We will have to instruct our server needs on where to download the BigBlueButton packages. To configure the package repository, enter the following command below.

$ echo "deb https://ubuntu.bigbluebutton.org/xenial-110/ bigbluebutton-xenial main" | sudo tee /etc/apt/sources.list.d/bigbluebutton.list

Next, you will have to run apt-get to pull down the links to the latest BigBlueButton packages.

Step 4 – Install BigBlueButton: The following command below will install all of BigBlueButton’s core components along with all its necessary dependencies. The installation will take a few minutes to complete.
– Type “Y” to confirm and continue the installation when prompted.

sudo apt-get install bigbluebutton

You will be prompted to agree to the EULA license terms in between the installation for the ttf-mscorefonts-installer package. If not accepted, the installation will halt.

As you can see below, the BBB installation has completed without error.

Now that the installation has completed, we will have to restart the BigBlueButton services in the proper sequence using the following command below. Also, as you can see there are no errors after the restart.

$ sudo bbb-conf --restart

Next, you should run the BigBlueButton configuration utility “bbb-conf –check“. We already know there are no errors but I just want to show you this step. This utility checks BigBlueButton’s configuration and log files and looks for any potential errors that may cause problems when running. You should see output similar to the following. At this point, your BigBlueButton server is listening to an IP address.
Note: To need to be root in order to run this command.

$ sudo bbb-conf --restart

Note: If there were errors, its output will follow Potential problems may indicate configuration errors or installation errors. In many cases, the messages will give you recommendations on how to resolve the issue.

The following steps are very vital if this is a production server. Because this is a test environment, i will highlight the next steps and you should ensure you perform these steps as well.

Assign a hostname: For any production BigBlueButton server, you need to assign it a hostname. If you have not done so already, use the web interface provided by your domain name service (DNS) provider and add an A record pointing to your server’s IP address. After the A record is set up, enter the following command and EXTERNAL_HOST_NAME with the hostname of your BigBlueButton server.

$ ping techdirectarchive.com

Install API Demos: We already know that the BBB server is listening to an IP address as shown in a screenshoot above and responding to API requests. However, if you tried to log-in from the server’s default page with a browser, you would get an error HTTP Status 404 as shown below.

This error was prompted because this page requires the API demos installed. If you want to login to your BigBlueButton server through the landing page, install the API demos using the command below.

$ sudo apt-get install bbb-demo 

Once installed, you’ll be able to enter your name on the home page and click ‘Join’. This will join you into the default meeting called “Demo Meeting”.

If you are setting up a production server with custom front-end, you may want to temporarily install the API demos for testing only and then remove them. Having the API demos installed makes it possible for anyone to use your BigBlueButton server without credentials.To remove the API demos, enter the command below and also the image below for the warning message :)
$ sudo apt-get purge bbb-demo

When installed, you will lose access to the demo environment and will be prompted with the Nginx error

Install client self-check (optional): BigBlueButton provides an end-user self-check application that can help you diagnose networking and configuration issues that may be preventing an end-user from accessing the server. To install the end-user self-check application, enter the command

$ sudo apt-get install bbb-check

The self-check application is available at your BigBlueButton server’s IP address (or hostname) with /check appended.

techdtarchive.com/check

Note: If you wish to remove the end-user self-check page, run the following command below.

$ sudo apt-get purge bbb-check

Restart your server: You can restart and check your BigBlueButton server at any time using the commands. The bbb-conf --check scans some of the log files for error messages. 

$ sudo bbb-conf --restart
$ sudo bbb-conf --check

If you’ve done a number of configuration changes on your server, you can clear out all the log files and check the server using the --clean option as shown below.

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

Configuring SSL on your BigBlueButton server: It is recommended to add SSL support to your BigBlueButton server to make it more secure. 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 name: In order to obtain a valid SSL certificate for your server, you must have already assigned a hostname to your BigBlueButton server. 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 as shown below.
Note: This command should be run as root.

# bbb-conf --setip bigbluebutton.techdarchive.com

Obtain an SSL certificate: Before you can configure Nginx on BigBlueButton to server content via 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. Please refer to these guides I have created relating to certificates. How to create a self-signed certificate using PowerShell, how to export a certificate in PFX format in Windows, how to request a certificate signing request in Windows using MMC and how to install and configure Active Directory Certificate Services. To install the certificate in BigBlueButton, you will need to have files for the certificate, private key, and any intermediate certificates in PEM format.

There are a number of providers that you could obtain a certificate from. 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. If you want to use Let’s Encrypt, then skip to setup using Let’s Encrypt.

Configure Nginx to use HTTPS: Depending on your certificate authority (CA), you should now have 2 or more files, as follows. I will not be discussing these steps further. Please refer to the BBB guide for more details.
Configure FreeSWITCH for using SSL: Also refer to the BBB guide for more details.
Configure BigBlueButton to load session via HTTPS: Please refer to the BBB guide for more details.

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 the ssllabs. Simply enter your server’s hostname, optionally check the “Do not show results” check box if you would like to keep it private, then Submit.

You can open your BigBlueButton in your browser now. The Greenlight welcome page displays. To start using your BigBlueButton server, enter your name and click the ‘Join’ button. You’ll join the Demo Meeting. To create your own meetings or join a meeting click on the “View API examples” and you can see the options there.

So that’s how you install BigBlueButton, see reference document. I hope you found this blog post helpful. If you have any questions, please let me know in the comment session. I welcome you to subscribe to my YouTube Channel.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x