BigBlueButton (aks BBB) is an opensource [Link] software that had multiple features fundamental for teachers/professors/instructors/tutors to provide real-time auto, video, screen share, slide presentation, whiteboard, etc. All the resources can be later available for download including notes taken, chat questions, whiteboard notes, polling results, and analytics.


The minimal requirements will depend of how many clients will be connected at the same time. On the official documentation one may find the following but for a quick test of the platform in local environment half would be enough:

  • Virtual Machine / VPS
    • 8 vCPU (x86_64 only)
    • 16 GB or RAM
    • 500 GB of Storage
    • 1/4 Gbps Bandwidth
    • Ubuntu 22.04

Apply the following basic configuration and feel free to customise it accordingly.

sudo apt update && sudo apt upgrade -y
sudo hostnamectl set-hostname
echo '' | sudo tee -a /etc/hosts
echo 'LANG="en_US.UTF-8"' | sudo tee /etc/default/locale
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 16384:32768/udp
sudo ufw limit 22
sudo ufw enable
sudo reboot

Note: do not expose the SSH to the public internet. Ideally it would only be allowed from local network/VPN and to a limited set of sources. Be cautious!

For production, this server would have public IPv4 and IPv6 mapped or directly assigned with a subdomain pointed to it to use a SSL/TLS certificate. For a local tests, IPv4 a self-signed certificate will get the job done!


For installation in production with a real FQDN resolving to the server:

  • BBB 3.0.x on Ubuntu 22.04
wget -qO- | sudo bash -s -- -w -v jammy-300 -s -e [email protected] -g
  • BBB 2.7.x on Ubuntu 20.04
wget -qO- | sudo bash -s -- -w -v focal-270 -s -e [email protected] -g

Note: the subdomain and email on the command above will be used to setup Let’s Encrypt out of the box for quick and easy (and free) SSL/TLS certificate. Optionally the argument -x will ask Let’s Encrypt to challenge the domain via DNS using a generated TXT record at the installation time. The argument -g will install the GreenLight frontend (recommended).


At the end of the installation there is a series of checks that tries to find potential problems. It might look like this:

Read and try to address the problems found. Also, use the following commands to check the status of the running instances and gather clues.

sudo bbb-conf --check
sudo bbb-conf --status
sudo bbb-conf --secret
sudo dpkg -l | grep bbb-
[ "$(dig +short" = "$(curl -s" ] && echo "DNS resolution confirmed." || echo "DNS resolution FAILED!"


Create the accounts:

sudo docker exec -it greenlight-v3 bundle exec rake admin:create['Admin','[email protected]','secret_password']
sudo docker exec -it greenlight-v3 bundle exec rake user:set_admin_role['[email protected]']
sudo docker exec -it greenlight-v3 bundle exec rake user:student["Student","[email protected]","password","user"]

See example:


Navigate to your server’s address . If this page load, it is working!

Then, sign in ad the administrator.

Create the a classroom.

Start the class.

As a presenter, allow microphone usage.

Select the input and output audio devices.

Now, the class is set.

Shared the class’ link from the chat box with the students.

Or from the main dashboard.

The students do not need to have an account. Just the URL will give access from out of the box installation (additional security measures can be implemented to restrict access).

In most cases, students will only watch and listen.

Now, the class can get started.