https://github.com/arawa/divims
DiViM-S (or divims) is an opensource orchestrator and autoscaler for BigBlueButton pools behind a Scalelite server
https://github.com/arawa/divims
autoscaler autoscaling bbb bigbluebutton orchestrator scalelite
Last synced: about 1 month ago
JSON representation
DiViM-S (or divims) is an opensource orchestrator and autoscaler for BigBlueButton pools behind a Scalelite server
- Host: GitHub
- URL: https://github.com/arawa/divims
- Owner: arawa
- License: other
- Created: 2023-06-19T08:46:06.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-26T15:34:28.000Z (about 2 months ago)
- Last Synced: 2025-04-04T20:09:15.046Z (about 1 month ago)
- Topics: autoscaler, autoscaling, bbb, bigbluebutton, orchestrator, scalelite
- Language: PHP
- Homepage: https://www.arawa.fr/solutions/produits-arawa/arawa-divims-for-bigbluebutton/
- Size: 1.37 MB
- Stars: 11
- Watchers: 5
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.md
- License: LICENSE
Awesome Lists containing this project
README
#  DiViMS - a BigBlueButton orchestrator
DiViMS (or divims) is an opensource orchestrator for [BigBlueButton](https://docs.bigbluebutton.org/) and [Scalelite](https://github.com/blindsidenetworks/scalelite)
It allows auto-scaling your BBB infrastructure according to the observed load or a forecasted schedule and simultaneously reducing your hosting costs.
Currently compatible with [Scaleway](https://www.scaleway.com) hosting.
![]()
## How it works
A CRON job launches a Docker container every 5 minutes (recommended). This container runs a PHP7 app that connects to your Scalelite's pool :
- Queries Scalelite to retrieve load information (number of participants, meetings and load)
- Queries each BBB server for system and recordings processing information
- Makes decision on whether BBB servers should be halted or started
- Acts on hosting infrastructure (currently only Scaleway) to start (clone) or delete virtual machines
- Acts on Scalelite to enable, drain or disable BBB servers
- Sends warnings and alerts to an email addressYou'll find a presentation of DiViMS at BBB World 2022 on Youtube : https://www.youtube.com/watch?v=S35ZNiOtaek
## Requirements
DiViM-s requires a pool of BigBlueButton servers managed by a [Scalelite](https://github.com/blindsidenetworks/scalelite) server.
DiViM-S code can reside on the same server as Scalelite : independence is guaranteed by Docker.To run DiViM-S you should install these dependencies :
- docker-ce
## How to run
### Build the required docker image```bash
docker build --tag php:parallel --build-arg PUID=$(id -u) --build-arg PGID=$(id -g) --build-arg USER=$(id -un) .
```### Add a BBB pool
```
mkdir -p config/project/
cp config/config.default.php config/project//config.php
```Modify your pool's `config.php` to your needs
### Run
Modify `main.php` to your needs and start app :```bash
$ docker container run --rm -v $(pwd):/app/ php:parallel php /app/main.php
```## Troubleshooting
### Logger
You can use the `logger` class to print debug message on the docker console.
To enable debug mode, use `Logger::DEBUG` as second parameter of `pushHandler` method.
Example :
```php
$logger->pushHandler(new StreamHandler('php://stdout', Logger::DEBUG));
```## Additional Help
If you need assistance, require a further development (such as develop compatibility with your prefered cloud), you can contact Arawa to learn about professional services to support your project.
Please visit [project page on Arawa's website](https://www.arawa.fr/solutions/produits-arawa/arawa-divims-for-bigbluebutton/) (French content) or [contact us](https://www.arawa.fr/contact/).
## Sponsors
Ministère de l'Éducation Nationale française (Direction du Numérique pour l'Éducation)