Skip to content

ayman-makki/b3lb

 
 

Repository files navigation

B3LB - BigBlueButton Load Balancer

B3LB is an open source BigBlueButton API load balancer similar to Scalelite. B3LB is based on the Django Python Web framework and is designed to work in large scale-out deployments with 100+ BigBlueButton nodes and high attendee join rates.

Note: This fork of B3LB includes significant enhancements for easier deployment, local development, and operational management.

🚀 Key Features of This Fork

This repository extends the original B3LB project with the following improvements:

🛠️ Automated Installation & Deployment

  • Automated Scripts: Complete suite of installation scripts for BBB nodes in scripts/bbb/install/, including preflight checks and dependency management.
  • Streamlined Setup: One-command installation (install-all.sh) to deploy b3lb-load, b3lb-push, and b3lb-cleaner services.
  • Infrastructure Updates: Optimized Traefik configuration, CORS support, and static file routing.

💻 Local Development Experience

  • Local Dev Support: Enhanced support for local development with Celery workers and dlower.
  • Docker Improvements: Updated Docker Compose configurations for both local and production environments.
  • Health Checks: Improved health checks for Celery containers, Redis exporter, and B3LB static services.

📊 Enhanced Observability & Management

  • Developer Tools: Comprehensive Makefile with shortcuts for common tasks (make start, make logs, make shell) and B3LB-specific commands (make addnode, make meetingstats).
  • Logging: Comprehensive logging configuration for Django and worker nodes.
  • Periodic Tasks: New management commands for handling periodic tasks.
  • Clean Up: Automated meeting cleanup service (b3lb-cleaner) to handle orphaned meetings.

⚡ Performance & Infrastructure

  • Traefik v3: Updated to Traefik v3 with Hetzner DNS challenge support for automatic SSL.
  • PyPy Support: Worker nodes can run on PyPy for improved performance.
  • Database: Optimized PostgreSQL configuration and migrations.

📚 Documentation

Detailed documentation is available in the docs/ directory:

Node Installation Guide

For instructions on installing the necessary scripts on your BigBlueButton nodes, please refer to the BBB Node Scripts Installation Guide.

🏗️ Architecture

B3LB uses a modern technology stack designed for scalability:

  • Web Framework: Django 5.2.2 (Async enabled)
  • Task Queue: Celery 5.5.3 with Redis
  • Database: PostgreSQL
  • Reverse Proxy: Traefik
  • Static Files: Caddy

📄 License

B3LB is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).


This project uses BigBlueButton and is not endorsed or certified by BigBlueButton Inc. BigBlueButton and the BigBlueButton Logo are trademarks of BigBlueButton Inc.

About

BigBlueButton Load Balancer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 68.2%
  • Shell 25.7%
  • Makefile 3.4%
  • HTML 1.7%
  • Other 1.0%