×
Community Blog How to Install BigBlueButton on Alibaba Cloud

How to Install BigBlueButton on Alibaba Cloud

In this tutorial, you will learn how to install and configure BigBlueButton on Alibaba Cloud and how to generate an SSL certificate using Let's Encrypt.

By Sajid Qureshi, Alibaba Community Blog author

In this tutorial, you'll learn how to install BigBlueButoon on Alibaba Cloud. BigBlueButton, or BBB for short, is a 100% free and open-source web conferencing tool, and is a good choice for teachers who need to reach students in remote locations.

The tool comes equipped with some amazing features like real-time audio and video sharing, as well as presentation and screen sharing. Other features include public and private chats, multi-user interactive whiteboards, shared notes, polling, digital breakout rooms, and after-the-fact playback.

BigBlueButton is also pretty convenient to use. You can easily integrate it as a plugin with various online learning platforms like WordPress, and Moodle. In this tutorial, I'll show you how you can use BigBlueButton to its fullest potential.

Prerequisites

For this tutorial, you'll need the following items:

  1. You must have an Alibaba Cloud Elastic Compute Service (ECS) instance activated, and have verified a valid payment method. If you are new to Alibaba Cloud, you can get a free account. If you don't know how to set up your ECS instance, you can refer to this tutorial or this quick-start guide. Note that, for this tutorial, your ECS instance must have at least 4GB RAM.
  2. A domain name registered from Alibaba Cloud. If you have already registered a domain from Alibaba Cloud or any other host, you can update its domain nameserver records.
  3. A sudo user.

Setting up Your Server

Before installing BigBlueButton, you'll first need to do some configuration checks as well as set up your server to meet the minimum requirements. First, check the locale of the server, in particular whether it is at en_US.UTF-8 or not. You can do so using the sudo cat /etc/default/locale command. You should see an output that looks like this:

Welcome to Alibaba Cloud Elastic Compute Service !

Last login: Sun Jun 23 12:58:25 2019
root@Sajid:~# sudo cat /etc/default/locale
# Created by cloud-init v. 0.7.6a12 on Sun, 23 Jun 2019 04:56:24 +0000
LANG="en_US.UTF-8"

If in case it is not en_US.UTF-8, then you'll need to change it to en_US.UTF-8. To do so, run the following commands, and they'll do the job for you.

sudo apt-get install language-pack-en
sudo update-locale LANG=en_US.UTF-8

If you are planning to install it on a virtual server then you'll also need to improve the entropy of other components. Here, we will be installing haveged package, which is an entropy daemon. Run the sudo apt-get install haveged command to do so.

Update the System

For this tutorial, we recommend that you to upgrade all the available packages before installing any new package. To update the system, run the sudo apt-get update command.

Install BigBlueButton

Once the system gets updated, you'll need to check the 'multiverse' repository located at /etc/apt/sources.list. You can do so by running the grep "multiverse" /etc/apt/sources.list command. If it's available, then you should see this below-given output.

deb http://archive.ubuntu.com/ubuntu xenial multiverse

OR

deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse

If in case you don't have the 'multiverse' repository, then you can add it by running the following command:

echo "deb http://archive.ubuntu.com/ubuntu/ xenial multiverse" | sudo tee -a /etc/apt/sources.list

Next, you'll need to add the BigBlueButton key to your server so that you can install BigBlueButoom. You can do so using the following command.

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

Then, once you added the public key, you will have to specify the URL of the BigBlueButtom package to download. Configure the package repository with the following command.

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

Update your server using the sudo apt-get update command. After that, you'll be ready to install BigBlueButton with all of its components. Run the sudo apt-get install bigbluebutton command. This command will automatically install BigBlueButton and its components with their required dependencies. After installation, you will be asked to accept the End-User Licence Agreement (EULA). Type Y, and then click the ENTER button to proceed. The system may take some time to load after this step.
1

Note: During installation process, you may see an error like this one: "Failure to download extra data files" for the ttf-mscorefonts-installer package. This is a known issue with the operating system Ubuntu 16.04. You can ignore this error. It won't affect your installation.

Once the installation is complete, you will need to restart your BigBlueButton install server using the sudo bbb-conf --restart command. Then, you'll want to check that the BigBlueButton configuration. To do so, double-check that there are no potential errors that may have cause problems when running. You can do so using the sudo bbb-conf --check command. You should see an output that looks something like the one shown here:

BigBlueButton Server 2.0.0-RC1 (1414)
                    Kernel version: 4.4.0-1060-server
                      Distribution: Ubuntu 16.04.4 LTS (64-bit)
                            Memory: 7814 MB

/var/www/bigbluebutton/client/conf/config.xml (bbb-client)
                Port test (tunnel): rtmp://example.bigbluebutton.com.com
                              red5: example.bigbluebutton.com
              useWebrtcIfAvailable: true

/opt/freeswitch/etc/freeswitch/sip_profiles/external.xml (FreeSWITCH)
                         websocket: 52.201.248.115:7443
                    WebRTC enabled: true

/etc/nginx/sites-available/bigbluebutton (nginx)
                       server name: example.bigbluebutton.com
                              port: 80, [::]:80, [::]:443
                              port: 443 ssl
                    bbb-client dir: /var/www/bigbluebutton

/var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties (bbb-web)
                      bbb-web host: example.bigbluebutton.com

/var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp (API demos)
                               url: example.bigbluebutton.com

/usr/share/red5/webapps/bigbluebutton/WEB-INF/red5-web.xml (red5)
                  voice conference: FreeSWITCH

/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml (record and playback)
                     playback host: example.bigbluebutton.com
                            ffmpeg: 4.0.1-0york0~16.04

** Potential problems described below **

Install API demos

To access the BigBlueButton demo page, you'll need to install the API demos. API demos are a set of Java Server Pages (JSP) that implement a web-based interface to test the BigBlueButton API. You can install API demos using the sudo apt-get install bbb-demo command.

We recommend that you also install self-check utility service for BigBlueButton so that it will be easier to investigate any networking and configuration issues. You can install the bbb self-check service using the following command.
sudo apt-get install bbb-check

Next, let's check the configuration again using the following command:

sudo bbb-conf --restart && sudo bbb-conf --check

You should see an output, which looks similar to this:

BigBlueButton Server 2.0.0-RCX (NNNN)
                    Kernel version: 4.4.0-1060-server
                      Distribution: Ubuntu 16.04.4 LTS (64-bit)
                            Memory: 7814 MB

/var/www/bigbluebutton/client/conf/config.xml (bbb-client)
                Port test (tunnel): rtmp://example.bigbluebutton.com.com
                              red5: example.bigbluebutton.com
              useWebrtcIfAvailable: true

/opt/freeswitch/etc/freeswitch/sip_profiles/external.xml (FreeSWITCH)
                         websocket: 52.201.248.115:7443
                    WebRTC enabled: true

/etc/nginx/sites-available/bigbluebutton (nginx)
                       server name: example.bigbluebutton.com
                              port: 80, [::]:80, [::]:443
                              port: 443 ssl
                    bbb-client dir: /var/www/bigbluebutton

/var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties (bbb-web)
                      bbb-web host: example.bigbluebutton.com

/var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp (API demos)
                               url: example.bigbluebutton.com

/usr/share/red5/webapps/bigbluebutton/WEB-INF/red5-web.xml (red5)
                  voice conference: FreeSWITCH

/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml (record and playback)
                     playback host: example.bigbluebutton.com
                            ffmpeg: 4.0.1-0york0~16.04

** Potential problems described below **

# Warning: The API demos are installed and accessible from:
#
#    https://demo.bigbluebutton.org/demo/demo1.jsp
#
# These API demos allow anyone to access your server without authentication
# to create/manage meetings and recordings. They are for testing purposes only.
# If you are running a production system, remove them by running:
#
#    sudo apt-get purge bbb-demo

Configure SSL Certificates

Now that you have successfully installed and configured BigBlueButton on your server, you'll need to obtain an SSL certificate for security purpose. You can purchase an SSL certificate from Alibaba Cloud. Alternatively, you can obtain a free SSL certificate using Let's Encrypt. However, it's important to note that this free one will only last for a few days. To install the Let's Encrypt configuration tool, you can use the sudo apt-get install letsencrypt command.

It's recommended that you harden the security of some type of ciphers. You will need to generate a set of 2048-bit diffie-hellman parameters using the following commands.

sudo mkdir /etc/nginx/ssl
openssl dhparam -out /etc/nginx/ssl/dhp-2048.pem 2048

Next, you'll need to configure BigBlueButton to use your domain name to obtain the certificate. Run the sudo bbb-conf --setip YourDomain.com command to configure the BigBlueButton server with your hostname. For this command, note that you'll need to replace YourDomain.com with your actual hostname.

After that's complete, run the following command to request a SSL certificate from Let's Encrypt. As before, you'll need to replace the YourDomain.com with your actual domain name.

sudo letsencrypt --webroot -w /var/www/bigbluebutton-default/ -d YourDomain.com certonly

You should see the following output in your terminal.

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/bigbluebutton.example.com/fullchain.pem. Your cert will
   expire on 20XX-YY-ZZ. To obtain a new version of the certificate in
   the future, simply run Let's Encrypt again.
 - If you like Let's Encrypt, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Next, you'll need to modify the NGINX configuration file by using a text editor. Here, I'm using nano text editor. You can also install it using the apt-get install nano command. To modify the NGINX configuration file using the following command.

sudo nano /etc/nginx/sites-available/bigbluebutton

Then, add the following content into the file. Again, as before, you'll want to replace YourDomain.com with your actual domain.

server {
  server_name bigbluebutton.example.com;
  listen 80;
  listen [::]:80;
  listen 443 ssl;
  listen [::]:443 ssl;
  ssl_certificate /etc/letsencrypt/live/YourDomain.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/YourDomain.com/privkey.pem;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256";
  ssl_prefer_server_ciphers on;
  ssl_dhparam /etc/nginx/ssl/dhp-2048.pem;

Once complete, save and close the file.

Web Interface

So now, you've installed and configured the BigBlueButton with its other components, so now you can access it through the web. You can do so by opening up your favorite web browser and visiting the address http://YourDomain.com or http://YourServerIP. You should see the welcome webpage of BigBlueButton on the page you open.

Conclusion

In this tutorial, you have learned how to install and configure BigBlueButton on Alibaba Cloud. You also learned how to generate an SSL certificate using Let's Encrypt. You can integrate this install of BigBlueButton with almost all of the web-based training tools. I hope that now you have enough knowledge to work with BigBlueButton.

2 0 0
Share on

Alibaba Clouder

2,599 posts | 762 followers

You may also like

Comments

5586489721921421 May 22, 2020 at 2:53 pm

Please remove this article this installation process is older than dinosaur era, do not write article just for sake of writing, it does not work on alibaba cloud ubuntu 16.04

5996098495857774 August 27, 2020 at 2:40 am

Please update docs for bigbluebutton on server cloud ali babawith firewall NATThanks