Tidak Ada Deskripsi

hmt 2478648688 colored messages 3 tahun lalu
.gitignore 9b5ace47f1 remove .vscode 3 tahun lalu
LICENSE fb87ba439a add License 3 tahun lalu
README.md 5384e9caa0 v1.3.0 with proxied responses 3 tahun lalu
app.ts 2478648688 colored messages 3 tahun lalu
bbb.ts 2478648688 colored messages 3 tahun lalu
deps.ts 2478648688 colored messages 3 tahun lalu
mod.ts 6e52cedded port 3005 default 3 tahun lalu
servers.json.example 24a6cad907 initial commit 3 tahun lalu

README.md

Tinyscale

A very simple load balancer for BigBlueButton running on Deno

All this load balancer does is forward calls to a real BBB-server if a meeting already exists. If you send a create request for a new meeting and the meeting does not exist on any of the known BBB-servers it will cycle through the list of servers that are stored in servers.json and pick the next one. There is no advanced number checking of rooms or participants or if your server is actually capable of serving more people. It just tries to create new rooms evenly on all servers.

Since ended meetings are garbage collected by BBB this technique seems ok and straight forward. If there is a better way please open an issue or send a pull request.

To get this load balancer to work you need a server that runs Deno. In most cases you should be ok to just run the installer script: https://deno.land/manual/getting_started/installation

Then create a servers.json file like this here:

[
  {
    "host": "http://bbb1.schule.de",
    "secret": "secret_string"
  },
  {
    "host": "http://bbb2.schule.de",
    "secret": "secret_string"
  }
]

Now you are ready to start the script with setting a port and a secret:

TINYSCALE_SECRET=some_secret_string deno run --allow-net --allow-read --allow-env https://deno.land/x/tinyscale@v1.3.0/mod.ts

tinyscales then runs on port 3005 and you will have to set up your reverse proxy so that it can pick up requests or you leave it on that port. If you prefer a different port you can set one with another env-var: PORT 3006

When started, tinyscale will connect to each server and make a single call to check if your configuration is correct. If there is a problem tinyscale will abort. If your configuration works you can start using it in your environment by replacing your existing BBB settings with the new tinyscale url in your third party apps. Make sure to also replace the BBB secrets with your new TINYSCALE_SECRET.

tinyscale has been tested to work with NextCloud, Moodle and Greenlight.

If you want to use recordings they will work but you cannot get a list of all recordings. tinyscale will only respond with the next available server since it is a call to bbb without a meetingID. The same goes for the call to get infos on all meetings.

MIT Licensed


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