We run an instance of BigBlueButton at https://bbb.csclub.uwaterloo.ca. BigBlueButton is a free and open source videoconferencing platform with many features such as multi-user whiteboards, embedded videos, and interactive polls. You can check out some tutorial videos here.
BBB is currently running in an LXC container on xylitol. Here are the steps that were performed to install it.
The container in which BBB is running should have:
- Ubuntu 16. This is the only Linux distro supported by BBB.
- A FQDN (bbb.csclub.uwaterloo.ca).
- A public IPv4 address (and optionally an IPv6 address).
- Firewall exceptions for TCP ports 80 and 443 and UDP ports 16384 - 32768.
- Ansible installed. This can be done via
apt install ansible.
- An SSL key pair. See SSL. In this tutorial they are called
First we will setup the database. Login to coffee as the
psql, then run the following:
CREATE USER greenlight WITH PASSWORD 'replace_this_password'; CREATE DATABASE greenlight; ALTER DATABASE greenlight OWNER TO greenlight;
I wrote an Ansible playbook here which automates most of the setup
(steps adapted from here). This also takes care of installing Greenlight, which is the
web frontend for BBB.
Git clone the repo into a folder, say
/root/ansible. Take a look over the files and customize any values as you see fit. Once you are satisfied, run
Once the playbook has finished, open
/opt/greenlight/.envand set the value of
Place copies of
csclub-wildcard.keyin the directory
/etc/nginx/ssl. The key file must have permissions 0600.
Restart BBB by running
At some point you may need to run the
bundlecommand as the greenlight user, especially if you are customizing Greenlight. Add the following to
export PATH=$HOME/.gem/ruby/2.7.0/bin:$PATH export $(grep -v '^#' ~/.env) export RAILS_ENV=production export BUNDLE_APP_CONFIG=~/.bundle
This will allow you to run
bundleafter logging in as the greenlight user.
Enable and run the systemd service for Greenlight:
systemctl enable greenlight systemctl start greenlight
Now we will need to create an administrator account. There is theoretically a
way to do this using bundle,
but I wasn't able to get it to work. So here is the workaround I used.
- First, login to https://bbb.csclub.uwaterloo.ca using your CSC credentials, then log back out.
Login to coffee as the postgres user, run psql, then run the following:
\c greenlight UPDATE users SET role_id = 2 WHERE username = 'my_csc_username';
When you log back in to Greenlight, you should now be an admin.
- To ensure that future sysadmins automatically become Greenlight admins, create a new role called "sysadmin" from the org settings in Greenlight.
- To set a custom logo in the top left corner, go to 'Site Settings', and replace the branding image URL. I'm using a small CSC logo hosted on our git server in the csc-propaganda repo .
When upgrading Greenlight, make sure to run the DB migrations before restarting the systemd service:
su - greenlight bundle exec rake db:migrate
Some notes about TURN
The BBB docs suggest running your own TURN server. TURN is used for bypassing NATs
and firewalls by basically relaying UDP traffic. I did not install one because I didn't think it was necessary, but if we have some users
in restrictive firewalled environments, we may have to install our TURN server. Make sure to ask IST for the appropriate port exceptions