There are three main parts of this — in order of importance in these times of isolation or quarantine:
- Part 1: Using BBB and Moodle/Mahara for Cloud Learning — how I like to use ist and find it useful
- Part 2: Setup and Installation of BBB/Greenlight on a VPS
- Part 3: Considerations when deciding what tool to use
In this post I want to share my experience installing and configuring BBB. I will just note which choices I made (and why) — perhaps this is useful for someone.
This part describes my current setup used “in production”. It works flawlessly for me although I am eager to do more stress testing: about 20 video streams from participants work perfectly — how about 30? How about my own internet connection? Are there limitations when streaming my own desktop simultaneously?
BigBlueButton at time of writing is brand new version 2.2-beta, based on HTML5 technology which is a blessing: no Flash, no Java needed, no app on mobiles! Don’t ask me about previous versions using Flash-technology, I am working hard to repress these times. With my students I tested that it is working on any device, being it an iOS (supporting mobile Safari) or Android mobile, tablet or any desktop, although Chrome and Firefox are required there to support playback.
As I did/do this on my own budget, costs have been/are important. If you are dependent on a school budget your costs will be limited too but you should be able to choose much greater options especially when choosing your server.
Your production server hardware (2.2, March 2020) should meet these requirements:
- 4 GB of memory with swap enabled (8 GB of memory is better)
- 4 CPU cores (8 is better)
- 500G of free disk space (or more) for recordings
- 250 Mbits/sec bandwidth (symmetrical) or more
Your software setup on this hardware should be:
- Ubuntu 16.04 64-bit OS running Linux kernel 4.x (often provided preinstalled if you want)
- TCP ports 80 and 443 are accessible, UDP ports 16384 – 32768 are accessible, Port 80 is not in use by another application (best: use a second server, see below)
Your environment for this has to provide:
- A public IP for your server (usually provided by VPS vendor)
- A domain name for your server pointing there
bbb.example.com(Extend or buy a new one — enter your ip there)
Choosing a Server
You need a second one
The setup can be easily done by using a script provided by BBB. It works perfectly on a fresh new server. Just look at the second requirement: chances that port 80 is already used on e.g. your moodle server are quite high. Additionally you will need much disk space for recordings. So, as was recommended in previous versions, just use a second server solely for BBB alone. You will enjoy it.
Experiencing connection dropouts or delays are a pain. So I knew that I was not inside specs when trying to run this on a VPS — install docs say a bare-metal server is strongly recommended because of the used Freeswitch-Software. But I thought I could give it a try as renting a VPS is very affordable nowadays.
So what options are there? Matching the requirements are no problem regarding the hardware, mine having (numbers in brackets are of the next bigger model I use for my main server hosting e.g. Moodle, Mahara, this and other blogs):
- 16 GB of memory (30 GB)
- 6 CPU cores (8 cores)
- 400G of free disk space (800 G)
- 400 Mbits/sec bandwidth (600 Mbits)
Bandwidth should be enough but are these numbers reliable? I did tests myself experiencing speeds (up/down) which differ quite much although reaching these limits often. A very useful site comparing this data for a bunch of providers is vpsbenchmarks — they give grades of 185 MBps/375 MBps (up/down) for Europe: looking at the numbers worst case gave values of roughly a tenth of this. So although sufficient there could be problems now and then.
Why to choose a VPS (first)
Firstly they are cheap. But secondly they provide very convenient ways to work. My particular setup allows me to boot into some rescue systems, reinstall OS within minutes and — most important — creating two snapshots. So before any modification you can save your actual setup with one click while the server is running. I do this all the time and sometimes was very happy to be able to revert my changes with the same ease.
If my setup turns out to be too small I will transfer the server to a bigger model. As setting up BBB is not much work probably I will start over. But transferring a running, fully configured system is possible too — even if you will use another provider, just look here.
Installing BBB and Greenlight
The installation docs are really great and can be used very easily. I have quite some experience in using Linux on command line but you don’t have to: all necessary commands are explained and given so basically you can work by cut and paste.
There are two ways to install: manually and automatically. The latter can be found here. I have followed the manual path too which gives great insights — if you want to.
All — even the automatic installation — is done via command line. Don’t be afraid to use this. It’s easy. Install at least BBB and Greenlight, choose SSL with LetsEncrypt. There is a demo (API demo) available to see if everything is working but with the release of Greenlight you don’t need to. I would not do this anymore since you should remove it later anyway. Just install Greenlight and try a room instead.
So finally your installation command should look like this:
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-220 -s bbb.example.com -e email@example.com -g
Don’t forget to add an administrator account for Greenlight as shown in the documentation.
cd ~/greenlight docker exec greenlight-v2 bundle exec rake admin:create docker exec greenlight-v2 bundle exec rake user:create["admin","firstname.lastname@example.org","yourpassword","admin"]
For my application I removed self-registration from Greenlight as I want to control my rooms myself (and grant access manually if needed). This is done by changing the configuration of Greenlight in ~/greenlight/.env. Set
and apply changes with
docker-compose down docker-compose up -d
Integrate with Moodle
Just install BigBlueButtonBN — the recordings plugin is not necessary anymore. The necessary linking data (URL and shared secret) are generated during installation. All other settings can be left at default settings to start.
Ordering your server and perhaps your domain name will take some time to be ready. Then — if you know what you want to do, all requirements are met, setup and configuration is done easily. Installing and integrating into Moodle can be done in a few hours easily — including testing. Of course if no troubleshooting is required ;-)..