1
1
Fork
You've already forked bbblb
0
Yet another load balancer for BigBlueButton https://bbblb.readthedocs.io/
  • Python 99.3%
  • Dockerfile 0.3%
  • Mako 0.3%
2026年05月01日 18:04:19 +02:00
.github Create Dependabot configuration 2026年02月16日 14:37:19 +01:00
bbblb Formatting 2026年05月01日 18:04:19 +02:00
docker Large cleanup and refactoring 2025年11月26日 12:04:14 +01:00
docs docs: Less detailed TOC on start page 2026年04月26日 15:44:48 +02:00
examples change: Support for protected recordings 2026年04月26日 14:46:44 +02:00
tests tests: Test signed view ticket cookies 2026年04月26日 14:46:44 +02:00
.dockerignore Ignore more files 2025年11月08日 15:25:28 +01:00
.gitignore Large cleanup and refactoring 2025年11月26日 12:04:14 +01:00
.python-version Initial commit 2025年11月05日 14:19:29 +01:00
.readthedocs.yaml docs: Move to sphinx and readthedocs. 2025年11月17日 15:01:18 +01:00
alembic.ini Start using alembic for database migrations. 2025年11月19日 12:24:20 +01:00
CONTRIBUTING.md Typos in CLA 2026年02月18日 16:03:48 +01:00
LICENSE.md Github wants the LICENSE file without qualifier 2025年11月11日 08:38:44 +01:00
pyproject.toml build: Upgraded dependencies 2026年04月12日 13:10:56 +02:00
README.md docs: Highlight multi-tenancy aspect. 2026年04月26日 15:40:55 +02:00
uv.lock build: Upgraded dependencies 2026年04月12日 13:10:56 +02:00

BBBLB: BigBlueButton Load Balancer

BBBLB is a modern multi-tenant load balancer for BigBlueButton. It is designed to provide a secure, scalable, and robust way to scale BBB beyond single-server installations, enabling organizations to distribute meetings across many BBB servers or offer managed BBB hosting services on shared hardware.

⚠️ BBBLB is used in production, but still a very new project that may have some rough edges. Some APIs or features may not be stable yet and upgrades may break things. If you are looking for a stable solution that just works, better wait for the 1.0 release. But if you know what you are doing, go ahead and give it a try.

Documentation

Documentation can be found at https://bbblb.readthedocs.io/ or in the ./docs/ folder. Pull requests are very welcome! Join the Matrix chat if you have any questions or feedback.

Features

  • Multi-Tenancy: Allow multiple front-end applications or customers to share the same BigBlueButton cluster while keeping their meetings and recordings strictly separated.
  • Advanced Loadbalancing: Meetings are distributed based on current and predicted utilization, taking common usage patterns into account.
  • Recording Management: Recordings are transferred to central storage with a robust post_publish.rb script installed on each BBB backend server. This script just needs to sit in the correct directory, it does not require any configuration, ssh access or shared network file system to work.
  • Callback Relay: Callbacks registered for a meeting are properly relayed between the back-end BBB server and the front-end application with a robust retry-mechanism.
  • Protected Recordings: Experimental support for single-use recording links to prevent recording link sharing.
  • Management CLI and API: BBBLB comes with a rich command line tool to fetch health information, manage tenants, servers or recordings, or automate maintenance tasks.
  • Scalability: BBBLB is a modern async python application with low overhead and can easily scale to large clusters with thousands of active meetings.

Architecture

BBBLB acts as a central API gateway, intelligently routing API requests and distributing meetings across a scaleable pool of BigBlueButton instances. For the front-end application, BBBLB looks like a single BigBlueButton server.

---
config:
 look: handDrawn
 theme: neutral
---
graph TD
 Clients("Clients / Apps
 e.g. Moodle")
 BBBLB["BBBLB (Loadbalancer)"]
 
 subgraph Cluster [BBB Server Pool]
 BBB1[BBB Server 1]
 BBB2[BBB Server 2]
 BBBN[BBB Server N]
 end
 %% Define Flow
 Clients -->|BBB API| BBBLB
 BBBLB -->|BBB API| BBB1
 BBBLB -->|BBB API| BBB2
 BBBLB -->|BBB API| BBBN

Recordings are stored and managed centrally on the BBBLB server, separated by tenant, which allows you to remove or replace BigBlueButton servers without losing access to past recordings. Callbacks or webhooks are relayed though BBBLB back to your front-end application.

Rolling cluster upgrades without downtime are also fully supported. With bbblb server disable you can disable some of your back-end servers without interrupting running meetings, --wait for them to drain empty, then perform your maintenance tasks and enable the servers again when ready.

Sponsors

License

BBBLB - BigBlueButton Load Balancer
Copyright (C) 2025, 2026 Marcel Hellkamp
SPDX-License-Identifier: AGPL-3.0-or-later
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.