Tutorial

How To Install BigBlueButton on Ubuntu 16.04

Ubuntu 16.04Open Source

The author selected the Free and Open Source Fund to receive a donation as part of the Write for DOnations program.

Introduction

BigBlueButton is an open source, feature-rich virtual classroom where you can teach your students. BigBlueButton offers presentation slides, desktop sharing, audio and video, chat, and a virtual multi-user whiteboard all wrapped up in a browser-accessible interface.

In this guide, you will install a BigBlueButton server along with the client interface called Greenlight. Greenlight makes your virtual classroom accessible from any browser and enforces the use of HTTPS to keep information secure.

Prerequisites

Before you begin this guide you’ll need the following:

  • One Ubuntu 16.04 64-bit server. Follow the Ubuntu 16.04 Server Setup article for creating a sudo-enabled non-root user. Do not install the firewall in this guide as this will be done during the installation. See the following information for server specifications.

A BigBlueButton instance needs the following server specifications:

Production System

  • 8GB RAM minimum, 16GB is better.
  • 4 CPU cores minimum, 8 CPU cores are better.

Testing and Development System

  • 4GB RAM.
  • 2 CPU cores.

BigBlueButton only supports Ubuntu 16.04 LTS. This operating system is no longer receiving feature updates such as new software versions but it will receive security updates until 2024. It is therefore secure to run in an internet-facing production environment.

The server that you use for your BigBlueButton instance should be a fresh install of Ubuntu 16.04 with no additional software installed. Any additional packages, such as a web server will cause the installer to fail.

  • A hostname that points to your server. This will be the name that you access your BigBlueButton instance with in your browser. Learn how to point hostnames to DigitalOcean Droplets with the Domains and DNS documentation. Your hostname must resolve to your server’s IP address before you begin the tutorial. In this tutorial, the example hostname will be bbb.your_domain.

Before you begin this tutorial log in to your server as the non-root sudo enabled user.

Step 1 — Installing BigBlueButton

In this step, you will download the installer script and run it. The installer will download, install, and configure every software package that you’ll need to get both the BigBlueButton server and the Greenlight client completely installed and working. The installer can take up to 30 minutes to complete, depending on the speed of the internet connection, as there are a large number of packages that it must install.

First, download the installer script with the following curl command:

  • curl https://ubuntu.bigbluebutton.org/bbb-install.sh -o bbb-install.sh

The -o bbb-install.sh option tells curl to save the installer file it downloads as a file called bbb-install.sh.

Next, make the file executable with the chmod command:

  • chmod 755 bbb-install.sh

The number 755 here sets the permissions as follows:

  • User: read=4, write=2, execute=1 Total: 7
  • Group: read=4, execute=1 Total: 5
  • World: read=4, execute=1 Total: 5

If you need more information on Linux permissions refer to this Introduction to Linux Permissions.

Before running a script that you download from the internet it is good practice to review it first. You can read and review the script by opening it with the less pager. less is not an editor so it is impossible to make an accidental edit when you open a file. Open bbb-install.sh in less with the following command:

  • less bbb-install.sh

Quit less by pressing the q key when you have finished reviewing the script.

The installer script cannot be run as either a non-root user or using sudo. It can only be run by the root user.

First, change to the root user with the following sudo command:

  • sudo -i

This will move you to root’s directory at /root/, so you will need to supply the full path to the file when you run the installer. In the following example, you’ll need to change the path /home/sammy/bbb-install.sh to match your non-root user.

Run the installer script with the following options:

  • /home/sammy/bbb-install.sh -v xenial-22 -s bbb.your_domain -e sammy@your_email -w -g

The options here mean as follows:

  • -v xenial-22: Sets the Ubuntu version.
  • -s bbb.your_domain: Changes this to the hostname that the installer will use to host your BigBlueButton instance and for the SSL certificate.
  • e sammy@your_email: Supplies the email address to Let’s Encrypt during the registration of the SSL certificate. This address is used for security announcements, expiry notices, and so on. It is not used for advertising.
  • -w: Installs and configures a ufw firewall.
  • -g: Installs the Greenlight client interface.

After this script finishes, you’ve completed installing the BigBlueButton server and the Greenlight client interface with them now running.

Note: You may see the following warning at the end of the installer output:

# Potential problems described below
# Not running:  tomcat7 or grails
................................................................................
# Error: Could not connect to the configured hostname/IP address
#
#    https://your_domain/
#
# If your BigBlueButton server is behind a firewall, see FAQ.

# Warning: found only 2 cores, whereas this server should have (at least) 4 CPU cores
# to run BigBlueButton in production.
#
#   https://docs.bigbluebutton.org/install/install.html#minimum-server-requirements
#

This happens because the tomcat7 and grails processes have not finished starting before the checks are made. If you do see this error message wait a few minutes and run the following command to perform the checks again:

  • bbb-conf --check

After this, it will not report any errors.

You can check the UFW firewall rules that were enabled during installation with the following command:

  • ufw status

This will print the following firewall rules:

ufw output
Status: active To Action From -- ------ ---- 1935/tcp DENY Anywhere OpenSSH ALLOW Anywhere Nginx Full ALLOW Anywhere 16384:32768/udp ALLOW Anywhere 1935/tcp (v6) DENY Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6) Nginx Full (v6) ALLOW Anywhere (v6) 16384:32768/udp (v6) ALLOW Anywhere (v6)

The ufw rules that the installer created are:

  • 1935/tcp DENY: Blocks the Adobe Media Server port when the Greenlight HTML5 client is installed.
  • OpenSSH ALLOW: Allows you to log in to your server via SSH.
  • Nginx Full ALLOW: Allows the Nginx web server to communicate on HTTP (port 80) and HTTPS (port 443) as well as serve your BigBlueButton instance to browsers.
  • 16384:32768/udp ALLOW: Allows traffic on UDP ports 16384 through 32768. Media connections, such as video streams, use these ports.
  • (v6): The rules that have this label are for IPv6 addresses. They are copies of the rules that do not have the (v6) label, which are for IPv4 addresses.

Now that you have installed your BigBlueButton server and Greenlight interface, and they’re running, you need to create an Admin user that you will use to log in with.

Step 2 — Creating an Admin User

In this step, you will create the Admin user on your server’s command line. You will create the admin user with a default username and password. These are as follows:

  • Username: admin@example.com
  • Password: administrator

It is very important that you log in to your BigBlueButton server and change these details immediately after you create the admin user.

As root move to /root/greenlight/:

  • cd /root/greenlight/

Then run the following command:

  • docker exec greenlight-v2 bundle exec rake admin:create

The Greenlight client runs inside of a Docker container.

  • docker exec greenlight-v2 bundle: Tells Docker to execute bundle in the container greenlight-v2.
  • exec rake admin:create: Executes rake to create the user admin.

This will create the admin user and print the following output:

Output
Account successfully created. Email: admin@example.com Password: administrator Role: admin PLEASE CHANGE YOUR PASSWORD IMMEDIATELY

You no longer need to be the root user. Log out of root by typing exit on the command line.

Now that you have created an admin user you must log in and change those details. In the next section, you will log in and get your BigBlueButton instance ready for your students.

Step 3 — Securing Your BigBlueButton Server

In this step, you will log in to your BigBlueButton instance and change the default password that you created in the last step. Also, you’ll make some configuration changes so that your BigBlueButton instance is more secure and easier to manage when students start using it.

The first thing you need to do is to open your browser and enter the hostname you used during the install step. Log in by clicking on the Sign in button on the top right of the home page. Use the following details to sign in:

  • Email: admin@example.com
  • Password: administrator

Then click Sign in to log in.

The first time you log in you will see a red banner warning reminding you to update the default password.

Image showing a warning banner notifying the user to change the default password

Click the here in the Please click here to change it line of the banner. This will take you directly to the password modification page.

Use administrator as the old password and choose a new, secure password for the admin user. After you have set a new password you can personalize the default details of the admin account.

Click on the Account info button in the right-hand navigation panel.

Image showing the account navigation panel

When you click on that you will be taken to the Update your Account Info page where you can change your name and email address. After you have set your details hit the Update button at the bottom to save the new information.

Next, we will look at some important configuration that you may want to set before using your BigBlueButton instance.

First, navigate to the configuration control panel by first clicking on your username in the top right and select Organization.

Image showing the admin user's options

This will take you to the Organization Settings page. Click on the Site Settings option in the left-hand navigation panel.

Image showing the organization settings navigation panel with site settings highlighted

Then click on the Settings panel on the far right. On this page, you can modify the fundamental behavior of your BigBlueButton instance. The options shown on this page are as follows:

  • Registration Method: This setting allows you to set how new users can join your BigBlueButton instance. The options are:
    • Open Registration: Anyone that can access your BigBlueButton instance can join.
    • Join by Invitation: Only people that you invite via the email address can join.
    • Approve/Decline: Anyone can apply to join but an administrator must approve their application.
  • Require Authentication for Rooms: Only users that have signed in will be able to join a room.
  • Allow Users to Share Rooms: This setting allows you to stop users from sharing a room with other users.
  • Allow Users to Preupload Presentations: This allows users to upload their presentations before the class begins.
  • Recording Default Visibility: This makes any recordings that you use in a room visible to all users or only those with a room invitation link.
  • Require Room Owner and Joiner Consent to Recording: This setting makes users consent when a room is recorded.
  • Number of Rooms per User: This sets the maximum number of rooms a user can create. It does not apply to administrators.

You’ve now configured your BigBlueButton instance and it’s ready for your first students.

Conclusion

In this article, you installed and configured a BigBlueButton server along with the Greenlight interface. You can now host virtual classes for your students with all the resources BigBlueButton provides.

The video tutorials will give you an excellent introduction to using BigBlueButton as an instructor, administrator, and as a student.

You can also integrate BigBlueButton into many other open source education software applications, all of which are listed on the Integrations page.

Creative Commons License