BigBlueButton, an open-source web conferencing system, is tailor-made for online learning. Its array of interactive features, from screen sharing to video calling, and white-boarding, fosters a rich virtual learning environment.
Welcome to the incredible world of BigBlueButton installation!
This phenomenal platform is actively leveraged across thousands of schools and institutions worldwide to enable impactful online learning.
Wondering why BigBlueButton has become a fan favorite? The answer is simple: it’s all about accessibility, versatility, and adaptability.
This revolutionary software is open-source, which means you can download it right now, at no cost, and take a giant leap towards the future of education.
But hold your horses, don’t rush off to download just yet. While the thought of a free, powerful online education software is tempting, the BigBlueButton installation process can pose quite a challenge.
Navigating system requirements, grappling with server configurations, the journey from download to deployment can be rocky.
However, don’t let that deter you!
We’re here to dismantle these challenges into manageable chunks and guide you meticulously through every step of the BigBlueButton installation process.
Welcome aboard! As we embark on this journey, let’s unravel the mystery of BigBlueButton installation.
BigBlueButton Installation: Architecture Overview
The diagram above provides a high-level view of how BigBlueButton’s components work together. We’ll break down each component in more detail below.
The HTML5 client within BigBlueButton is an intuitively designed, single-page, responsive web application. It is constructed using a combination of state-of-the-art components:
- React.js – Enables efficient and interactive rendering of the user interface.
- WebRTC – Facilitates the seamless sending and receiving of audio and video.
This client communicates directly with the BigBlueButton server, using port 443 (SSL) for everything from loading the BigBlueButton client to establishing a web socket connection. All these connections are smoothly managed by nginx.
Sitting securely behind nginx, the HTML5 server is founded on:
- Meteor.js in ECMA2015 – Allows efficient client-server communication.
- MongoDB – Maintains consistent state between each BigBlueButton client and the server.
This MongoDB database stores all pertinent information about the meetings on the server, and by extension, every client connected to a meeting. Each user’s client stays updated about the state of their respective meeting, including elements like public and private chat messages sent and received. The client subscribes to the collections published on the server side, and any updates to MongoDB on the server side are automatically relayed to MiniMongo on the client side.”
Scalability of HTML5 server component
BigBlueButton 2.2 used a single nodejs process for all client-side communication. This process would start to bottleneck (the nodejs process, running on a single CPU core, started to use 100% of the core). Because nodejs was running on a single CPU core, having a 16 or 32 CPU core server for BigBlueButton 2.2 failed to yield much additional scalability.
BigBlueButton 2.3 moves away from a single nodejs process for bbb-html5 towards multiple nodejs processes handling incoming messages from clients. This means that bbb-html5 could use multiple CPU cores for processing messages and handling browser sessions (each nodejs process runs on a single CPU core).
As of 2.3-alpha-7, bbb-html5 uses 2 “frontend” and two “backend” processes (this value is configurable in bbb-html5-with-roles.conf, see Configuration Files). A restart of BigBlueButton is required if you make changes to these files.
The breakdown of functionality between front-end and back-end is as follows
- receive the ValidateAuthTokenResp event to complete authentication
- collect subscription and publishing other DDP events including method calls to send events to akka-apps
- handle completely the Streamer redis events: Cursor, Annotations, External video share still require MeetingStarted and MeetingEnded events to create/destroy per-meeting event processing queues
- handle all the non-streamer events
- if more than one backend is running, bbb-web splits the load in round-robin fashion by assigning an instanceId. So individual backends only process redis events for the meetings matching the associated instanceId
- ValidateAuthTokenResp is passed to backends as well, which is needed for the cases where you only have a backend, no frontends – for example dev environments that do not need to care about scaling
When you use sudo bbb-conf –setip <hostname> or sudo bbb-conf –restart, bbb-conf will run /etc/bigbluebutton/bbb-conf/apply-config.sh between shutdown and restart of the BigBlueButton processes. In this way, you can change configuration values of BigBlueButton, or use some of the helper functions in apply-lib.sh.
At the heart of BigBlueButton’s functionality is its web application, a Scala-crafted program based on the Java framework. It’s this application that brings to life the BigBlueButton API and maintains a record of the meeting’s status.
What makes BigBlueButton particularly useful is its API, providing third-party integrations like the BigBlueButtonBN plugin for Moodle with an interface to command the BigBlueButton server.
BigBlueButton isn’t just a standalone solution, but it acts as the nerve center of your online classroom. Whether you access it through a front-end portal like Moodle, WordPress, Canvas, Sakai, or MatterMost, it’s the BBB web application that’s working behind the scenes to make it all happen. Other than these, BigBlueButton offers a host of third-party integration options and even comes with its own front-end, known as Greenlight.
What’s great about BigBlueButton is how easily it integrates into a learning management system (LMS) like Moodle. This way, educators can easily create BigBlueButton virtual classrooms within their courses, providing students with easy access to these rooms and any related recordings.
And to make it even more user-friendly, BigBlueButton includes a few straightforward API demos. No matter which front-end you end up choosing, you can rest assured knowing the powerful BigBlueButton API is operating seamlessly under the hood.
Redis PubSub provides a communication channel between different applications running on the BigBlueButton server.
When a meeting is recorded, all events are stored in Redis DB. When the meeting ends, the Recording Processor will take all the recorded events as well as the different raw (PDF, WAV, FLV) files for processing.
Kurento and WebRTC-SFU
Kurento Media Server KMS is a media server that implements both SFU and MCU models. KMS is responsible for streaming of webcams, listen-only audio, and screensharing. The WebRTC-SFU acts as the media controller handling negotiations and to manage the media streams.
BigBlueButton Installation: Preparation
Before you dive into the installation, there are a few prerequisites to ensure a smooth process:
- BigBlueButton recommends installing on a ‘clean’ and dedicated Ubuntu 20.04 64-bit server. By ‘clean’, it means the server should not have any previous web servers or applications binding to port 80/443.
- Check the locale of your server. It should be
- The server should have at least 16GB of memory. Verify this using the command
- Ensure that the server is running Ubuntu 20.04 as its operating system and supports IPV6.
BigBlueButton Installation: Server Requirements
For a production setup, BigBlueButton recommends the following minimum server requirements:
- Ubuntu 20.04 64-bit OS running Linux kernel 5.x
- Latest version of Docker installed
- 16 GB of memory with swap enabled
- 8 CPU cores, with high single-thread performance
- 500 GB of free disk space (or more) for recordings, or 50GB if session recording is disabled on the server
- TCP ports 80 and 443 are accessible
- UDP ports 16384 – 32768 are accessible
- 250 Mbits/sec bandwidth (symmetrical) or more
- A hostname (such as bbb.example.com) for setup of an SSL certificate
- IPV4 and IPV6 address
BigBlueButton Installation Process
To install BigBlueButton, use the
bbb-install-2.6.sh script. This script is an all-in-one command that sets up BigBlueButton 2.6 on your server. For example, the following command installs BigBlueButton 2.6 using hostname
bbb.example.com and an email address (for Let’s Encrypt)
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install-2.6.sh | bash -s -- -v focal-26 -s bbb.example.com -e firstname.lastname@example.org
This command fetches the installation script and installs (or upgrades if the command is rerun later) the latest version of BigBlueButton 2.6.
BigBlueButton Installation: Is It Free?
While BigBlueButton is an open-source software that you can download and use for free, there are still several associated costs that you should keep in mind when planning to utilize this platform for your online classrooms.
- Server Costs: To run BigBlueButton efficiently, you will need to host it on a server. The costs of servers can vary greatly depending on your specific needs, such as the number of users, the amount of usage, and the required capacity for storing recorded sessions. Whether you’re using a cloud hosting provider like AWS, Google Cloud, or Azure, or hosting it on your own physical server, you should factor in these ongoing costs.
- Bandwidth Costs: Bandwidth is a critical factor, especially when conducting live, interactive online classes with video streaming. Bandwidth consumption can escalate quickly with an increase in the number of participants or the use of high-definition video. Remember, both uploading and downloading activities consume bandwidth. Hence, if you are hosting BigBlueButton on a cloud service provider, you need to factor in these costs, which are usually billed based on usage.
- Storage Costs: Another vital aspect is storage. Every class you conduct or course material you upload will require storage space. Over time, as you accumulate more material and record more sessions, your storage needs will increase. Also, the recorded sessions in BigBlueButton are stored as video files, which are generally larger and take up more space. Depending on your hosting solution, storage can be an incremental cost.
- Data Transfer Costs: This is a cost that is often overlooked. If you are using a cloud service provider, costs can be incurred not only for the storage of class materials and recordings but also for the data transferred in and out of the server. The more students access course materials or download recorded sessions, the more data is transferred, leading to higher costs.
- Maintenance Costs: As with any software, keeping BigBlueButton running smoothly requires regular maintenance. This can include tasks like applying updates, fixing bugs, and ensuring the server is secure. You may need to hire a dedicated IT professional or allocate a portion of an existing employee’s time for these tasks, which can add to your operational costs.
- Scaling Costs: If your user base grows, you may need to scale up your BigBlueButton setup to handle the additional load. This can involve upgrading your server or adding more servers, and possibly incurring more maintenance costs. You’ll also need to consider the cost of additional bandwidth if your user base grows significantly.
- Integration Costs: If you plan to integrate BigBlueButton with other systems, such as a Learning Management System (LMS), there might be costs associated with these integrations. These can include the development time required to create the integration, the costs of the other systems, and any additional maintenance they require.
- Training Costs: While BigBlueButton is designed to be user-friendly, there might be a learning curve for your staff and users, particularly if they’re not familiar with online learning platforms. You may need to invest in training to help everyone get up to speed.
- Upgrade Costs: As BigBlueButton continues to evolve and release new versions, you might want to upgrade to take advantage of new features or improvements. While the software upgrade itself is free, you may need to account for the time and resources required to apply these upgrades and possibly deal with any accompanying changes or issues.
In conclusion, while BigBlueButton is a free, open-source software, understanding the total cost of ownership is crucial in ensuring successful implementation and operation. By budgeting for these associated costs, you can ensure a smooth, effective online learning experience with BigBlueButton.
Setting up BigBlueButton may require some technical knowledge, but with this guide, you should be able to install it smoothly. Remember to ensure your server meets the minimum requirements for a hassle-free installation process.
Happy teaching and learning with BigBlueButton!
BigBlueButton Installation by HigherEdLab
While setting up your own BigBlueButton server is definitely possible, it does require some technical expertise and can be a bit daunting. That’s where HigherEdLab.com comes in. We offer BigBlueButton hosting with an array of benefits:
- Crystal-Clear HD Video Learning: We offer the highest quality video to make your online classes as effective as possible.
- Interactive Tools: Chat, Poll, Presentations: Engage your students and facilitate interactive learningwith our suite of tools.
- ChatGPT-powered quizzes and transcription: Take advantage of AI-powered quizzes and transcription services, making the learning experience more dynamic and accessible.
- Custom Domain, Logo, Colors: Make the virtual classroom truly yours with custom branding options.
- Advanced User Management, Integration & Analytics: Manage your users, integrate with other tools, and access detailed analytics to understand and improve your classes.
So why not let us handle the technical side of things so you can focus on what you do best – teaching and inspiring your students? Visit HigherEdLab.com and start your online classes on BigBlueButton today!