Upgrading to BBB v2.3 and Ubuntu 18.04

I’ve been running a BBB server for well over a year now and recently it was time for a somewhat bigger update that was a bit out of the ordinary. For some reason or other, BBB v2.2 could only run on Ubuntu 16.04, which was already hopelessly outdated when I first installed the server last year. At the time, first efforts were done by the developers to base the next major version of BBB on Ubuntu 18.04. A bit of an odd decision from my point of view, as Ubuntu 20.04 was just around the corner and the current stable BBB release that requires the new OS version was only released a year later in May 2021. As the developers recommended not to update the OS and BBB, but rather start with a clean slate and install everything from scratch, I decided to do just that and was surprised that the approach is relatively painless, and can be done with a few commands. The only quirk I encountered was during the re-import of the user database on the new server that required some thinking.

So here’s a quick summary of how I moved from BBB 2.2 / Ubuntu 16.04 to BBB 2.3 / Ubuntu 18.04 for my ‘out of the box’ simple, single server installation without any recordings. This is important, as without recordings, only few things are required from the current installation. If you have recordings that also need to go to the new installation, you need to adapt the procedure to account for this. Have a look at the official documentation how to move recordings.

  • Dump Greenlight’s user database and configuration to a text file and copy it to your workstation, as the current installation is about to be archived:
docker exec greenlight_db_1 /usr/bin/pg_dumpall -U postgres >dump-greenlight-db.sql
  • In case there are any scripts, log files, etc., on the server, save them on your workstation as well.
  • Now that you have all data you need for the new server, create a snapshot of the current BBB 2.2 VM. This way, a failsafe is in place in case anything fails catastrophically during the remainder of the procedure.
  • Create a new VM with Ubuntu 18.04 and, if possible, keep the IP address so the DNS entry for the BBB server’s domain does not have to change.
  • Re-install BBB and Greenlight with a single shell command (!):
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v bionic-230 -s BBB.YOURSERVERNAME.COM -e YOUR@EMAIL.COM  -g -w
  • This gives you a running BBB v2.3 system with a Greenlight user interface.
  • Important: BBB v2.3 uses the universal firewall (ufw) to block ports. If you are running ssh on a non standard port, create a firewall rule so you will still be able to access the server after a reboot:
# Add firewall rules (the rule survives restarts)
ufw allow YOUR_SSH_PORT

Now it’s time to re-import the Greenlight database. One thing the official documentation does not tell you is that the dump file created above wants to recreate the Postgress user which already exists after installing BBB 2.3. This makes the re-import of the configuration data fail. It took me a while to figure this out but the solution is easy: Just delete the following two lines at the beginning of the dump file:

CREATE ROLE postgres;
ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS PASSWORD 'xxxxxxxxxxxxxx';

And once this is done, re-import the database:

docker exec greenlight_db_1 /usr/local/bin/psql -U postgres -c "DROP DATABASE greenlight_production;"

docker exec greenlight_db_1 /usr/local/bin/psql -U postgres -f /var/lib/postgresql/data/dump-greenlight-db.sql

For some reason I got a few error messages during import. Droping the database and re-importing again fixed the issue. And once that is done, restarting everything might be a good idea at this point:

cd ~/greenlight
docker-compose down
docker-compose up -d

sudo bbb-conf --restart

At this point the BBB server will be up and running, and all user accounts are migrated to the new installation.

In case you’ve modified your previous installation in some way, e.g. you have permanently disabled the recording function, this can be brought back at this point. BBB v2.3 can now read such modifications from config files in the /etc/bigbluebutton directory! The recording function can be disabled as follows:

# nano /etc/bigbluebutton/bbb-web.properties

# Now add:

# 1. Disallow users to start/stop recording.
# The following is TRUE by default

allowStartStopRecording=false

# 2. Disable background recording
# Set from FALSE to TRUE

disableRecordingDefault=true

To make these changes come into effect, run another ‘bbb-conf –restart‘. After that, the recording button in conferences is gone for good.

And that’s it, you’re now running the latest BBB build!