Code Monkey home page Code Monkey logo

scalelite's Introduction

Scalelite

BigBlueButton is an open source web conferencing system for online learning.

Scalelite is an open source load balancer that manages a pool of BigBlueButton servers. It makes the pool of servers appear as a single (very scalable) BigBlueButton server. A front-end, such as Moodle or Greenlight, sends standard BigBlueButton API requests to the Scalelite server which, in turn, distributes those request to the least loaded BigBlueButton server in the pool.

A single BigBlueButton server that meets the minimum configuration supports around 200 concurrent users.

For many schools and organizations, the ability to 4 simultaneous classes of 50 users, or 8 simultaneous meetings of 25 users, is enough capacity. However, what if a school wants to support 1,500 users across 50 simultaneous classes? A single BigBlueButton server cannot handle such a load.

With Scalelite, a school can create a pool of 4 BigBlueButton servers and handle 16 simultaneous classes of 50 users. Want to scale higher, add more BigBlueButton servers to the pool.

BigBlueButton has been in development for over 10 years now. The latest release is a pure HTML5 client, with extensive documentation. There is even a BigBlueButton install script called bbb-install.sh that lets you setup a BigBlueButton server (with a Let's Encrypt certificate) in about 15 minutes. Using bbb-install.sh you can quickly setup a pool of servers for management by Scalelite.

To load balance the pool, Scalelite periodically polls each BigBlueButton to check if it is reachable online, ready to receive API requests, and to determine its current load (number of currently running meetings). With this information, when Scalelite receives an incoming API call to create a new meeting, it places the new meeting on the least loaded server in the pool. In this way, Scalelite can balance the load of meeting requests evenly across the pool.

Many BigBlueButton servers will create many recordings. Scalelite can serve a large set of recordings by consolidating them together, indexing them in a database, and, when receiving an incoming getRecordings, use the database index to return quickly the list of available recordings.

Before you begin

The Scalelite installation process requires advanced technical knowledge. You should, at a minimum, be very familar with

  • Setup and administration of a BigBlueButton server
  • Setup and administration of a Linux server and using common tools, such as systemd, to manage processes on the server
  • How the BigBlueButton API works with a front-end
  • How docker containers work
  • How UDP and TCP/IP work together
  • How to administrate a Linux Firewall
  • How to setup a TURN server

If you are a beginner, you will have a difficult time getting any part of this deployment correct. If you require help, see Getting Help

Architecture of Scalelite

There are several components required to get Scalelite up and running:

  1. Multiple BigBlueButton Servers
  2. Scalelite LoadBalancer Server
  3. NFS Shared Volume
  4. PostgreSQL Database
  5. Redis Cache

An example Scalelite deployment will look like this:

Minimum Server Requirements

For the Scalelite Server, the minimum recommended server requirements are:

  • 4 CPU Cores
  • 8 GB Memory
  • Latest version of Docker (ScaleLite will no run on docker 19.x)

For each BigBlueButton server, the minimum requirements can be found here.

For the external Postgres Database, the minimum recommended server requirements are:

  • 2 CPU Cores
  • 2 GB Memory
  • 20 GB Disk Space (should be good for tens of thousands of recordings)

For the external Redis Cache, the minimum recommended server requirements are:

  • 2 CPU Cores
  • 0.5GB Memory
  • Persistence must be enabled

Setup a pool of BigBlueButton Server

To setup a pool of BigBlueButton servers (minimum recommended number is 3), we recommend using bbb-install.sh as it can automate the steps to install, configure (with SSL + Let's Encrypt), and update the server when new versions of BigBlueButton are released.

To help users who are behind restrictive firewalls to send/receive media (audio, video, and screen share) to your BigBlueButton server, you should setup a TURN server and configure each BigBlueButton server to use it.

Again, bbb-install.sh can automate this process for you.

If you want Scalelite to infer and display the BBB version of your servers, you need to add the following line to /etc/bigbluebutton/bbb-web.properties on your BBB servers:

allowRevealOfBBBVersion=true

Setup a shared volume for recordings

See Setting up a shared volume for recordings

Setup up a PostgreSQL Database

Setting up a PostgreSQL Database depends heavily on the infrastructure you use to setup Scalelite. We recommend you refer to your infrastructure provider's documentation.

Ensure the DATABASE_URL that you set in /etc/default/scalelite (in the next step) matches the connection url of your PostgreSQL Database.

For more configuration options, see configuration.

Setup a Redis Cache

Setting up a Redis Cache depends heavily on the infrastructure you use to setup Scalelite. We recommend you refer to your infrastructure provider's documentation.

Ensure the REDIS_URL that you set in /etc/default/scalelite (in the next step) matches the connection url of your Redis Cache.

For more configuration options, see configuration.

Deploying Scalelite Docker Containers

See Deploying Scalelite Docker Containers

Upgrading

Upgrading Scalelite to the latest version can be done using one command:

systemctl restart scalelite.target

note: If the SCALELITE_TAG is set to v1, the latest release in v1 series will be taken. You can also choose the specific version by specifying the version number asSCALELITE_TAG=v1.1.7, which would be the recommended way. All the details regarding each versions can be found at https://github.com/blindsidenetworks/scalelite/releases. Some versions might require setting certain environment variables or migrations to be run.

To confirm that you have the latest version, enter http(s)://<scalelite-hostname>/bigbluebutton/api in your browser and confirm that the value inside the <build><\build> tag is equal to the new version.

Configuration

For the configuration options, see configuration.

Management - Rake Tasks

For the administrative rake tasks, see rake tasks

Management - API

For the administrative api, see api

Getting Help

For commercial help with setup and deployment of Scalelite, contact us at Blindside Networks.

Trademarks

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

scalelite's People

Contributors

akadiry avatar amg-web avatar borisano avatar davidpesce avatar defnull avatar dependabot[bot] avatar einhirn avatar emamirazavi avatar farhatahmad avatar ffdixon avatar git-lama avatar indane avatar ironiemix avatar ithanil avatar jfederico avatar kepstin avatar lkiesow avatar mariam05 avatar monsieurpoutounours avatar nemental avatar paul1278 avatar pielonet avatar redesufpel avatar scouillard avatar snyk-bot avatar sparse91 avatar tallthom avatar thejj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scalelite's Issues

Postgres-DB not initialized automatically!?

Hi, for some reason the "scalelight-api"-Container didn't automatically check whether the DB was available and primed - at least in my case.
I needed to do a
./bin/rake db:reset
to create it - that wasn't in the documentation...

I shared the PostgreSQL-Server with greenlight - it uses docker-compose to automatically pull a postgres v9.5 container. So my DATABASE_URL is:

DATABASE_URL=postgresql://postgres:<here_goes_my_password>@db:5432

and "db" is the Service name in a Docker-Compose.yml file for Scalelite and greenlight on one host...

scalelite api DEAD

Hi!
im stuck at starting the scalelite API

` scalelite-api.service - Scalelite API
Loaded: loaded (/etc/systemd/system/scalelite-api.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2020-04-07 11:54:14 -03; 4s ago
Process: 11186 ExecStartPre=/usr/bin/docker pull blindsidenetwks/scalelite:${SCALELITE_TAG}-api (code=exited, status=1/FAILURE)
Process: 11065 ExecStartPre=/usr/bin/docker rm scalelite-api (code=exited, status=1/FAILURE)
Process: 11032 ExecStartPre=/usr/bin/docker kill scalelite-api (code=exited, status=1/FAILURE)

Apr 07 11:54:14 theUser systemd[1]: Starting Scalelite API...
Apr 07 11:54:14 theUser docker[11032]: Error response from daemon: Cannot kill container: scalelite-api: No such container: scalelite-api
Apr 07 11:54:14 theUser docker[11065]: Error: No such container: scalelite-api
Apr 07 11:54:14 theUser docker[11186]: invalid reference format
Apr 07 11:54:14 theUser systemd[1]: scalelite-api.service: Control process exited, code=exited status=1
Apr 07 11:54:14 theUser systemd[1]: Failed to start Scalelite API.
Apr 07 11:54:14 theUser systemd[1]: scalelite-api.service: Unit entered failed state.
Apr 07 11:54:14 theUser systemd[1]: scalelite-api.service: Failed with result 'exit-code'.

● scalelite-nginx.service - Scalelite Nginx
Loaded: loaded (/etc/systemd/system/scalelite-nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead) `

How do I use Scalelite?

Hi guys,

Sorry for the silly question.
I have deployed Scalelite, connected 3 bbb servers to it. But I can't understand how to connect moodle and scalelite.

Thank you for any advice!

With suggested steps in "Setting up a shared volume for recordings", BBB servers cannot write to spool: "permission denied"

I'm not completely sure that a mistake in my NFS setup can lead to the problem, but following the steps in the documentation, the BBB server got "permission denied" when executing rsync against NFS mount in scalelite_post_publish.rb.
After some checks i found that scalelite_post_publish.rb should be executed with scalelite-spool as PRIMARY group, or the directory/file creation fails.
I hacked scalelite_post_publish.rb to do this by using the linux command "sg" which execute a command with the primary group changed and the publish copy to scalelite works.

The following are the relevant changed/added lines.

  extra_rsync_string = extra_rsync_opts.join(' ') 
  puts("Adding extra rsync options:  #{extra_rsync_string} ")

  puts("Transferring recording archive to #{spool_dir}")
  system('sg','scalelite-spool', '-c', "rsync --verbose --protect-args #{extra_rsync_string} #{archive_file} #{spool_dir}") \
    || raise('Failed to transfer recording archive')

ERR in importing old recordings from servers

With some recordings (not all of them) i'm getting this error:

E, [2020-03-24T23:39:20.807958 #6] ERROR -- : Failed to import recording: undefined method `update!' for nil:NilClass
W, [2020-03-24T23:39:20.808126 #6]  WARN -- : /srv/scalelite/lib/recording_importer.rb:31:in `block (2 levels) in import': undefined method `update!' for nil:NilClass (NoMethodError)

i would like to understand why, but i'm concerning where is defined the update! method ?
I can't find it in the code: it's a bug ?

Thanks a lot for your efforts, i'm going addicted with scalelite, but i'm not a ruby developer.

video-recording

Hi,

Everything works perfect exept recordings :)

I setup 3 bbb server and try to use cifs..
Recordings stay in raw folder in bbb. How can I debug it for finding wrong config..

Thanks in Advance

Failed to get server id

hello,

i have an issue with scalelite, all steps done successfully but at the end an error comes

~ $ ./bin/rake poll:all
D, [2020-03-20T01:26:02.453208 #30] DEBUG -- : Polling meetings
D, [2020-03-20T01:26:02.453323 #30] DEBUG -- : Polling servers
D, [2020-03-20T01:26:02.461178 #30] DEBUG -- : Polling Server id=120c3947-bc1d-4bfa-9371-adad60bd1793
W, [2020-03-20T01:26:02.482622 #30] WARN -- : Failed to get server id=120c3947-bc1d-4bfa-9371-adad60bd1793 status: internalError: Response did not include returncode
I, [2020-03-20T01:26:02.482770 #30] INFO -- : Server id=120c3947-bc1d-4bfa-9371-adad60bd1793 offline load: unavailable
D, [2020-03-20T01:26:02.482805 #30] DEBUG -- : Polling Server id=cfa158e1-3b15-4abe-ab1d-cbc2cc1c5fda
W, [2020-03-20T01:26:02.522022 #30] WARN -- : Failed to get server id=cfa158e1-3b15-4abe-ab1d-cbc2cc1c5fda status: internalError: Response did not include returncode
I, [2020-03-20T01:26:02.522187 #30] INFO -- : Server id=cfa158e1-3b15-4abe-ab1d-cbc2cc1c5fda offline load: unavailable

any help with this?

Docker-Compose?

Hi, when starting to setup scalelite, I thought that it would have been nice to have a tarball of the systemd service files so I wouldn't need to copy&paste them to my system...

I finally went with docker-compose, so I didn't need the files you provided, but maybe someone else would like that, too.

After mounting nfs mongod failed to start

When I mount NFS with this:

mount private_network_ip:/data/recordings /mnt/

Or if I add this to my fstab:

private_network_ip:/data/recordings    /mnt/    nfs    defaults        0 0

mongod service failed:

~# bbb-conf --status
nginx —————————————————► [✔ - active]
freeswitch ————————————► [✔ - active]
redis-server ——————————► [✔ - active]
bbb-apps-akka —————————► [✔ - active]
bbb-transcode-akka ————► [✔ - active]
bbb-fsesl-akka ————————► [✔ - active]
red5 ——————————————————► [✔ - active]
mongod ————————————————► [✘ - failed]
bbb-html5 —————————————► [✔ - active]
bbb-webrtc-sfu ————————► [✔ - active]
kurento-media-server ——► [✔ - active]
etherpad ——————————————► [✔ - active]
bbb-web ———————————————► [✔ - active]
root@vc3:~# systemctl status mongod  
● mongod.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/etc/systemd/system/mongod.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2020-04-03 20:52:32 UTC; 33min ago
     Docs: https://docs.mongodb.org/manual
  Process: 1328 ExecStart=/usr/bin/mongod --config /usr/share/meteor/bundle/mongo-ramdisk.conf --oplogSize 8 --replSet rs0 --noauth --nojournal (code=exited, status=100)
  Process: 1226 ExecStartPre=/usr/share/meteor/bundle/mongod_start_pre.sh (code=exited, status=0/SUCCESS)
 Main PID: 1328 (code=exited, status=100)                                                      
                                               
Apr 03 20:52:32 bbb.domain.com systemd[1]: Starting High-performance, schema-free document-oriented database...
Apr 03 20:52:32 bbb.domain.com systemd[1]: Started High-performance, schema-free document-oriented database.
Apr 03 20:52:32 bbb.domain.com systemd[1]: mongod.service: Main process exited, code=exited, status=100/n/a
Apr 03 20:52:32 bbb.domain.com systemd[1]: mongod.service: Unit entered failed state.
Apr 03 20:52:32 bbb.domain.com systemd[1]: mongod.service: Failed with result 'exit-code'.   

This would not work:

sudo service mongod start

I have to run:

bbb-conf --restart

After the restart everything work as expected.

Thanks

Bring number of users into the server-load

For example, if you have two servers and there are three meetings running:

server1:    1 Meeting, 50 active users
server2:    2 Meetings, 5 active users

When now a fourth meeting wants to start, it will be on server1, but it would be better on server2, or did I misunderstand something?
Because the server-load is the number of meetings on a server, as seen here: https://github.com/blindsidenetworks/scalelite/blob/master/lib/tasks/poll.rake#L36

and here (only incremented on meeting create):

Scalelite + Sakai

Hello All,

I had been used Sakai (12.5) with single BigBlueButton in our University for a long time.

After Scalelite v1.0 released, I changed my env single BBB server to scalelite with 9 BBB servers.

Scalelite and BBB servers running successfully. There are no error.

After I changed my env, I edited in sakai.properties

from
bbb.url=https://single-bigbluebutton.xxxxxx.edu.tr/bigbluebutton/
bbb.salt=****

to
bbb.url=https://scalelite.xxxxx.edu.tr/bigbluebutton/
bbb.salt=****

Today, I realized that in some of the courses offered in Sakai, students can access the records on all servers. And any lecturer can delete these records. In fact, instructor only needs to view the records in his/her course.

This occurred only in 39 of the 1880 lessons opened on Sakai.

Is this problem related to Scalellite or Sakai's BBB tool?

Do you have any suggestions?
Thanks in advance.

No such file or directory @ realpath_rec - /mnt/scalelite-recordings

Service scalelite-recording-importer.service crashes with the error No such file or directory @ realpath_rec - /mnt/scalelite-recordings

Folder on the host server exists and other services such as scalelite-api.service scalelite-nginx.service scalelite-poller.service start with the same environment settings.

Don't have much expertise in Docker and could not find the reason of this problem.

docker[4021]: v1-recording-importer: Pulling from blindsidenetwks/scalelite
docker[4021]: Digest: sha256:897852c793ad38e605dfc2e728fece67101a6e409ff7bd38bcae1d7c4769872c
docker[4021]: Status: Image is up to date for blindsidenetwks/scalelite:v1-recording-importer
docker[4021]: docker.io/blindsidenetwks/scalelite:v1-recording-importer
systemd[1]: Started Scalelite Recording Importer.
docker[4044]: I, [2020-04-03T07:22:31.003000 #6]  INFO -- : Monitoring /mnt/scalelite-recordings/var/bigbluebutton/spool for new recording files
docker[4044]: rake aborted!
docker[4044]: Errno::ENOENT: No such file or directory @ realpath_rec - /mnt/scalelite-recordings
docker[4044]: /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/adapter/config.rb:17:in 'realpath'
docker[4044]: /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/adapter/config.rb:17:in 'block in initialize'
docker[4044]: /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/adapter/config.rb:16:in 'map'
docker[4044]: /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/adapter/config.rb:16:in 'initialize'
docker[4044]: /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/backend.rb:25:in 'new'
docker[4044]: /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/backend.rb:25:in 'initialize'
docker[4044]: /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/listener.rb:47:in 'new'
docker[4044]: /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/listener.rb:47:in 'initialize'
docker[4044]: /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen.rb:41:in 'new'
docker[4044]: /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen.rb:41:in 'to'
docker[4044]: /srv/scalelite/lib/tasks/recordings.rake:14:in 'block (2 levels) in <main>'
docker[4044]: /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/rake-13.0.1/exe/rake:27:in '<top (required)>'
docker[4044]: /usr/bin/bundle:23:in 'load'
docker[4044]: /usr/bin/bundle:23:in '<main>'
docker[4044]: Tasks: TOP => recordings:watch
docker[4044]: (See full trace by running task with --trace)
systemd[1]: scalelite-recording-importer.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: scalelite-recording-importer.service: Failed with result 'exit-code'.

part of the /etc/default/scalelite

SCALELITE_RECORDING_DIR=/mnt/scalelite-recordings/var/bigbluebutton
NGINX_SSL=true
SCALELITE_NGINX_EXTRA_OPTS=--mount type=bind,source=/etc/letsencrypt,target=/etc/nginx/ssl,readonly

RECORDING_SPOOL_DIR=/mnt/scalelite-recordings/var/bigbluebutton/spool
RECORDING_WORK_DIR=/mnt/scalelite-recordings/var/bigbluebutton/recording/scalelite
RECORDING_PUBLISH_DIR=/mnt/scalelite-recordings/var/bigbluebutton/published
RECORDING_UNPUBLISH_DIR=/mnt/scalelite-recordings/var/bigbluebutton/unpublished

Breakout room seems not working

Hello,

I implemented a BBB cluster, all works fine, but when I'm in a room, if I create a Breakout room, the system redirect the users to the ending page, as something goes wrong.
Are there any parameters to enable or any api value to set to enable this function also using the cluster?

<greenlight>/admin/room Invalid BigBlueButton Endpoint and Secret

We have setup Greenlight frontend pointing to our Scalelite load balancer. Load balancing is working fine and we are able to create sessions on particular servers under LB. However there is an interesting issue. We have 3 servers under LB as per:

$ docker exec -it scalelite-api bin/rake servers
id: e2de6ff5-6955-48ab-9223-3521ced972cc
url: https:///bigbluebutton/api
secret: secret1
enabled
load: unavailable
offline
id: 5a85d300-85be-4f63-9abf-244e6efe18e2
url: https:///bigbluebutton/api
secret: secret2
enabled
load: 0.0
online
id: 56bd3e1e-5051-4d52-b532-53faa2515bd1
url: https:///bigbluebutton/api
secret: secret3
enabled
load: 0.0
online

So as per above server1 is down, server2, server3 are up. With such greenlight while clicking Meeting Rooms we are getting: Invalid BigBlueButton Endpoint and Secret.

in LB logs I can see:

I, [2020-03-22T11:06:22.285650 #6] INFO -- : [b274ee57-e874-429e-841e-01339e566c9c] Started GET "/bigbluebutton/api/getMeetings?checksum=f6a8f514c05306ae634616879116f3245d459dbb" for <LB_IP> at 2020-03-22 11:06:22 +0000
I, [2020-03-22T11:06:22.286693 #6] INFO -- : [b274ee57-e874-429e-841e-01339e566c9c] Processing by BigBlueButtonApiController#get_meetings as XML
I, [2020-03-22T11:06:22.286769 #6] INFO -- : [b274ee57-e874-429e-841e-01339e566c9c] Parameters: {"checksum"=>"f6a8f514c05306ae634616879116f3245d459dbb"}
W, [2020-03-22T11:06:32.290600 #6] WARN -- : [b274ee57-e874-429e-841e-01339e566c9c] Error execution expired accessing server e2de6ff5-6955-48ab-9223-3521ced972cc.

It looks like scalelite is trying to get server meetings from offline server. The same error is when server1 is disabled.

Error is gone when we remove server from LB.

I find it as an issue as LB is reporting online/offline status so should probably not to try getting meeting rooms from offline servers

Loadbalancer Prio

Hello,

we have a little problem an looking for a solution. At the moment we had 5 BBB server behind scalelite
bbb1 - bbb5. bbb1 - bbb3 are older real hardware devices with 12 cores (not so fast) and bbb4 and bbb5 are very fast virtual devices (8 cores). They are added to scalelite in order of their names.

Now some of our teachers produces recordings in the evening, that results in bbb1 had a lot of ffmpeg jobs and not finshed in the morning. Over night bbb1 had an average load of 15% so not all cores do rendering.

Now my question: Is the a way to change which bbb servers are served first (maybe the order the added?). Or can we change this in another way.

best regards
Sebastian

Recording in Moolde

Hello,

First of all, thank you so much for this great solution specially with the current situation as it is so much in needs.

We have implemented the solution just today and everything worked perfectly and the high load is getting distributed.

One small issue we are facing, as we are using BBB with Moodle, we are not able to find the recording links once it process and published in Moodle, however we can see them on the server.

Could you please help us on this.

Many thanks again.

Best wishes,

Can't change REDIS URL - Cache trouble ?

Hello,

I've made some tests. I've changed url of redis HOST (127.0.0.1 instead of an external ip) in file /etc/default/scalelite.
I've restarted and it has worked
But if i come back to previous URL with external IP, and restart every, it seems not to use the nex configuration.
example : When i run servers, it show me the error :
Redis::CannotConnectError: Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED)
but bu my conf specify another ip.
I've tried to clean docker images. It may have some cache somewhere...
thanks

recordings are not deleted from disk

Problem:
When you delete a recording from the greenlight (connected to scalelite) webgui, the files are not deleted from the disk on the scalelite server.

Solution:
mount $SCALELITE_RECORDING_DIR in systemd scalelite-api.service

ExecStart=/usr/bin/docker run --name scalelite-api --env-file /etc/default/scalelite --network scalelite --mount type=bind,source=${SCALELITE_RECORDING_DIR},target=/var/bigbluebutton blindsidenetwks/scalelite:${SCALELITE_TAG}-api

little typo in documentation

In the main README.md in section Configuration -> Environment Variables -> Required there is a little typo in the sample command for SECRET_KEY_BASE:
openssl ran -hex 64 should be openssl rand -hex 64

Impossible to do rake db:setup on startup

Hello,

We try to configure scalelite with an external database with a uri like this :
DATABASE_URL: "postgres://mdl-scalelite-pprd:XXXXXXXXXXXX@MYSERVEUR:5432/mdl-scalelite-pprd"

FATAL: no pg_hba.conf entry for host "XXXXXX", user "mdl-scalelite-pprd", database "postgres", SSL on
FATAL: no pg_hba.conf entry for host "XXXXXX", user "mdl-scalelite-pprd", database "postgres", SSL off
Couldn't create 'mdl-scalelite-pprd' database. Please check your configuration.
rake aborted!
ActiveRecord::NoDatabaseError: FATAL: no pg_hba.conf entry for host "XXXXX", user "mdl-scalelite-pprd", database "postgres", SSL on
FATAL: no pg_hba.conf entry for host "XXXXXXX", user "mdl-scalelite-pprd", database "postgres", SSL off
/srv/scalelite/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/postgresql_adapter.rb:50:in rescue in postgresql_connection' │·············· /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/postgresql_adapter.rb:33:in postgresql_connection' │··············
/srv/scalelite/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:889:in new_connection' │·············· /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:933:in checkout_new_connection' │··············
/srv/scalelite/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:912:in try_to_checkout_new_connectio│·············· n' │·············· /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:873:in acquire_connection' │

I don't know why he want to use posgres user....

Any idea ?

Scalelite recording importer

Everything works execpt the recording importer, this is my log. Any Ideas:

docker logs scalelite-recording-importer

I, [2020-04-02T16:18:55.172589 #7] INFO -- : Monitoring /mnt/scalelite-recordings/var/bigbluebutton/spool for new recording files
rake aborted!
Errno::ENOENT: No such file or directory @ realpath_rec - /mnt/scalelite-recordings
/srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/adapter/config.rb:17:in realpath' /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/adapter/config.rb:17:in realpath'
/srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/adapter/config.rb:17:in block in initialize' /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/adapter/config.rb:16:in map'
/srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/adapter/config.rb:16:in initialize' /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/backend.rb:25:in new'
/srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/backend.rb:25:in initialize' /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/listener.rb:47:in new'
/srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen/listener.rb:47:in initialize' /srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen.rb:41:in new'
/srv/scalelite/vendor/bundle/ruby/2.6.0/gems/listen-3.1.5/lib/listen.rb:41:in to' /srv/scalelite/lib/tasks/recordings.rake:14:in block (2 levels) in

'
/srv/scalelite/vendor/bundle/ruby/2.6.0/gems/rake-13.0.1/exe/rake:27:in <top (required)>' /usr/bin/bundle:23:in load'
/usr/bin/bundle:23:in `'
Tasks: TOP => recordings:watch

Scalelite server is loosing it connection with BBB servers

Hello,

One more issue we are facing is, the scalelite server is loosing it connection with BBB servers between time to time

4

and then we go back and add them all manually.

Could you please help us on why this is happening and what do we need to check and change?

Thank you so much, it is much appreciated!

Best Wishes,

BBB Room bouncing betweeen two servers

Using a Moodle instance connected to my Scalelite with 3 servers, we hit this problem:

  • the teacher enter into the room from moodle and scalelite point to bbb1
  • some students enter the room and are redirected to bbb1
  • the teacher got a problem on their firefox, so exit the room and reenter and scalelite point it to bbb3
  • all subsequent students goes to bbb3, but the first one remains obviously on bbb1

so the room is splitted onto two servers: is this a right behaviour or i'm missing anything ?

Redis::CommandError: NOAUTH Authentication required.

Hi,

/etc/default/scalelite:
REDIS_URL=redis://password@host:port

docker exec -it scalelite-api /bin/sh

./bin/rake status
rake aborted!
Redis::CommandError: NOAUTH Authentication required.
~ $

But, if we testing with redis-cli all goes fine:
redis-cli -u redis://password@host:port
host:port>ping
PONG
host:port>

We are using scalelite docker containers.
Where is our mistake?

rake status ERROR

Command "rake status" return error when exists unrecheable/offline server.

~ $ ./bin/rake status
rake aborted!
Net::OpenTimeout: execution expired
/srv/scalelite/app/controllers/concerns/api_helper.rb:49:in get_post_req' /srv/scalelite/lib/tasks/status.rake:11:in block (2 levels) in

'
/srv/scalelite/lib/tasks/status.rake:10:in each' /srv/scalelite/lib/tasks/status.rake:10:in block in '
Tasks: TOP => status
(See full trace by running task with --trace)

Scalelite with Moodle problem

Hi all,
I've installed scalelite and 5 bbb servers, connected on the scalelite.. it seems working fine..
I can see rake servers / rake status all perfect..
But I'd like to use scalelite under moodle but it's not satisfied..

First, is it needed to work bbb on scalelite itself? If I write scalelite bbb api/secret on the moodle it si only work on bbb not on load balancer.. If I stop bbb on scalelite, moodle doesn't connect and says server is not reaching... If I use one of my bbb servers, moodle work only with that one and scalelite shows me on that server have some users/meeting on that one only..
So, I can not find a way to load balancing with moodle...

Is there anyone tell me please:

  • scalelite need a bbb on same server itself first?
  • in moodle, which api address and secret needed? and how can i obtain it for use with scalelite?

any help will be very appreciated..
Thanks..

PostgreSQL settings

Hi ,
I want ask something. Can i install scalelite server and postgresql in same server?
If is it true i got an error message.
What is correct DATABASE_URL for env. ?
Here is errors screenshots
Error Details

Question: can we set the weight for each server?

Hello,

Is it possible to set the weight for each server in the pool, for now, Scalelite determine the current server load by the number of connected users then send the request to the least loaded server in the pool, what if I have one server can handle more requests than the others?

Thanks and appreciate your feedback.

LOADBALANCER_SECRET giving error "You did not pass the checksum security check" in Moodle

Steps I made:
1- Installed Scalelite, Redis, Docker and BBB on a server named "BBBM" for example.
2- Installed BBB on 3 other servers "BBB1, BBB2 and BBB3" for example.
3- Added the 3 servers to the pool and checked them they are all enabled and online.
4- I logged to Moodle and went to BBB plugin and added the link to the main server bbbm.example.com/bigbluebutton and the load balancer secret in "Shared Secret" field.
5- When I try to open any classroom or create I get this error "bigbluebuttonbn/You did not pass the checksum security check".

What I Checked:
1- BBB is working on main server.
2- Checked Scalelite, Docker and Redis ,,etc.
3- Tested connection with the BBB secret on the main server it's working.

Any help?

Some commands not working when any of the servers is not responding

getMeetings and rake status will crash in case when any of BBB servers (even disabled) do not respond (e.g. offline/maintenace)

Errno::ECONNREFUSED: Failed to open TCP connection to myfancyserver.com:443 (Connection refused - connect(2) for "myfancyserver.com" port 443)
/srv/scalelite/app/controllers/concerns/api_helper.rb:49:in `get_post_req'
/srv/scalelite/lib/tasks/status.rake:11:in `block (2 levels) in <main>'
/srv/scalelite/lib/tasks/status.rake:10:in `each'
/srv/scalelite/lib/tasks/status.rake:10:in `block in <main>'

Caused by:
Errno::ECONNREFUSED: Connection refused - connect(2) for "myfancyserver.com" port 443
/srv/scalelite/app/controllers/concerns/api_helper.rb:49:in `get_post_req'
/srv/scalelite/lib/tasks/status.rake:11:in `block (2 levels) in <main>'
/srv/scalelite/lib/tasks/status.rake:10:in `each'
/srv/scalelite/lib/tasks/status.rake:10:in `block in <main>'
Tasks: TOP => status
(See full trace by running task with --trace)

running scalelite with a single public ip ?

Hello,
The scheme on documentation shows a different dns name for each bbb instance. Does it implies to have a public ip for each one ? Or can I use haproxy and clever UDP port forwarding to use a single public ip for all the setup ?
Thanks.

You did not pass the checksum security check

BigBlueButtonBN:
bigbluebuttonbn/You did not pass the checksum security check

demo1.jsp:
Error: getJoinURL() failed
checksumError: You did not pass the checksum security check

Does anyone have idea how to debug this?

Rake shows that connectivity to our bigbluebutton is successful, meaning secrets are correct.

~ $ ./bin/rake status HOSTNAME STATE STATUS MEETINGS USERS LARGEST MEETING VIDEOS bbb01.aih.nsw.edu.au enabled online 0 0 0 0
I have generated SECRET_KEY_BASE as per instructions in /etc/default/scalelite and copied it to Moodle. I pointed scalelite URL to Moodle plugin and Shared Secret copied from the SECRET_KEY_BASE.

Could not find any available servers.

hello,

When i try to create a metting on my scalelie, i've got this message :
Could not find any available servers.
This is returned by the API.

When i look my servers, all is allright, the command bin/rake status returns :
Running via Spring preloader in process 8561
HOSTNAME STATE STATUS MEETINGS USERS LARGEST MEETING VIDEOS
server1 enabled online 0 0 0 0
server2 enabled online 0 0 0 0

What can i can check ?

Moodle and Greenlight

Hello,

finally we are finshed setting up scalelite. Is it possible to uses 2 clients (moodle and greenlight) in front of scalellite. I think the only problem would be, that the meetingid could be the same ore are they unique?

Best regards
sebastian

scalelite-nginx service: server_names_hash_bucket_size

I get the error below for the scalelite-nginx.service:

Apr 01 20:27:39 sc.aabbccddee.ke docker[7820]: 2020/04/01 17:27:39 [emerg] 7#7: could not build server_names_hash, you should increase server_names_hash_bucket_size: 32
Apr 01 20:27:39 sc.aabbccddee.ke docker[7820]: nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 32

The actual length of my domain name is sc.aabbccddee.ke (16char). I know I can edit the image (do you recommend?) and fix this in nginx.conf by adjusting the bucket size upwards.

Can you consider raising this value in the container so that it works for slightly longer domain names without having to edit the image manually? For now I have it working using a short domain name but I would like it work with the longer domain name since it is the one reserved for the project.

bigbluebuttonbn/You did not pass the checksum security check

Hello All,

We are trying setup Moodle with Scalelite. When a user tries to join the session the error "You did not pass the checksum security check" is displayed. I reviewed all the documentation and couldn't find the problem.

If I point the Moodle directly to the BBB server everything works.

As it's just a test, the environment is all http

What am I doing wrong?

Thanks!

2020-03-26 10_29_09-Error

2020-03-26 10_51_13-newsite_ Administration_ Plugins_ Activity modules_ BigBlueButtonBN

$ docker logs scalelite-nginx
x.x.x.x - - [26/Mar/2020:12:55:28 +0000] "GET /bigbluebutton/api/?&checksum=7d0a1a392334d2169d51c0593c1dfe8ec98b23db HTTP/1.1" 200 138 "-" "MoodleBot/3.8 (+http://x.x.x.x)" "-"
x.x.x.x - - [26/Mar/2020:12:55:43 +0000] "GET /bigbluebutton/api/?&checksum=7d0a1a392334d2169d51c0593c1dfe8ec98b23db HTTP/1.1" 200 138 "-" "MoodleBot/3.8 (+http://x.x.x.x)" "-"
x.x.x.x - - [26/Mar/2020:12:55:56 +0000] "GET /bigbluebutton/api/?&checksum=7d0a1a392334d2169d51c0593c1dfe8ec98b23db HTTP/1.1" 200 138 "-" "MoodleBot/3.8 (+http://x.x.x.x)" "-"
x.x.x.x - - [26/Mar/2020:12:55:57 +0000] "GET /bigbluebutton/api/?&checksum=7d0a1a392334d2169d51c0593c1dfe8ec98b23db HTTP/1.1" 200 138 "-" "MoodleBot/3.8 (+http://x.x.x.x)" "-"
x.x.x.x - - [26/Mar/2020:12:55:58 +0000] "GET /bigbluebutton/api/getMeetingInfo?&meetingID=c90923f478ed9fac24fcb1334896e4560885d8d7-2-4&checksum=8dd4a393b580c573de632198cec5315dfc2e537d HTTP/1.1" 200 197 "-" "MoodleBot/3.8 (+http://x.x.x.x)" "-"
x.x.x.x - - [26/Mar/2020:12:56:07 +0000] "GET /bigbluebutton/api/create?&meetingID=c90923f478ed9fac24fcb1334896e4560885d8d7-2-4&name=Test&attendeePW=Uo3.H%3F6%25tvV7&moderatorPW=VzL%26S%2AIQU%3Bx_&logoutURL=http%3A%2F%2Fx.x.x.x%2Fmod%2Fbigbluebuttonbn%2Fbbb_view.php%3Faction%3Dlogout%26id%3D5%26bn%3D4&record=true&welcome=%3Cbr%3EWelcome+to+%3Cb%3E%25%25CONFNAME%25%25%3C%2Fb%3E%21%3Cbr%3E%3Cbr%3EFor+help+on+using+BigBlueButton+see+these+%28short%29++%3Ca+href%3D%22event%3Ahttp%3A%2F%2Fwww.bigbluebutton.org%2Fcontent%2Fvideos%22%3E%3Cu%3Etutorial+videos%3C%2Fu%3E%3C%2Fa%3E.%3Cbr%3E%3Cbr%3ETo+join+the+audio+bridge+click+the+phone+icon+%28top+center%29.+%3Cb%3EPlease+use+a+headset+to+avoid+causing+background+noise+for+others.%3C%2Fb%3E%3Cbr%3E%3Cbr%3EThis+session+may+be+recorded.&meta_bbb-origin=Moodle&meta_bbb-origin-version=3.8.2+%28Build%3A+20200309%29&meta_bbb-origin-server-name=x.x.x.x&meta_bbb-origin-server-common-name=&meta_bbb-origin-tag=moodle-mod_bigbluebuttonbn+%282019042008%29&meta_bbb-context=teste&meta_bbb-recording-name=Test&meta_bbb-recording-description=&meta_bbb-recording-tags=&checksum=a5c706c00e567f773d49c5608a83c19fe21e925f HTTP/1.1" 200 197 "-" "MoodleBot/3.8 (+http://x.x.x.x)" "-"
x.x.x.x - - [26/Mar/2020:12:56:22 +0000] "GET /bigbluebutton/api/getMeetingInfo?&meetingID=c90923f478ed9fac24fcb1334896e4560885d8d7-2-4&checksum=8dd4a393b580c573de632198cec5315dfc2e537d HTTP/1.1" 200 197 "-" "MoodleBot/3.8 (+http://x.x.x.x)" "-"

$ docker logs scalelite-api
I, [2020-03-26T12:56:07.291090 #6]  INFO -- : [51786ebf-642a-43fc-ae63-50b2a8aa1313] Started GET "/bigbluebutton/api/create?&meetingID=c90923f478ed9fac24fcb1334896e4560885d8d7-2-4&name=Test&attendeePW=Uo3.H%3F6%25tvV7&moderatorPW=VzL%26S%2AIQU%3Bx_&logoutURL=http%3A%2F%2Fx.x.x.x%2Fmod%2Fbigbluebuttonbn%2Fbbb_view.php%3Faction%3Dlogout%26id%3D5%26bn%3D4&record=true&welcome=%3Cbr%3EWelcome+to+%3Cb%3E%25%25CONFNAME%25%25%3C%2Fb%3E%21%3Cbr%3E%3Cbr%3EFor+help+on+using+BigBlueButton+see+these+%28short%29++%3Ca+href%3D%22event%3Ahttp%3A%2F%2Fwww.bigbluebutton.org%2Fcontent%2Fvideos%22%3E%3Cu%3Etutorial+videos%3C%2Fu%3E%3C%2Fa%3E.%3Cbr%3E%3Cbr%3ETo+join+the+audio+bridge+click+the+phone+icon+%28top+center%29.+%3Cb%3EPlease+use+a+headset+to+avoid+causing+background+noise+for+others.%3C%2Fb%3E%3Cbr%3E%3Cbr%3EThis+session+may+be+recorded.&meta_bbb-origin=Moodle&meta_bbb-origin-version=3.8.2+%28Build%3A+20200309%29&meta_bbb-origin-server-name=x.x.x.x&meta_bbb-origin-server-common-name=&meta_bbb-origin-tag=moodle-mod_bigbluebuttonbn+%282019042008%29&meta_bbb-context=teste&meta_bbb-recording-name=Test&meta_bbb-recording-description=&meta_bbb-recording-tags=&checksum=a5c706c00e567f773d49c5608a83c19fe21e925f" for x.x.x.x at 2020-03-26 12:56:07 +0000
I, [2020-03-26T12:56:07.292213 #6]  INFO -- : [51786ebf-642a-43fc-ae63-50b2a8aa1313] Processing by BigBlueButtonApiController#create as XML
I, [2020-03-26T12:56:07.292300 #6]  INFO -- : [51786ebf-642a-43fc-ae63-50b2a8aa1313]   Parameters: {"meetingID"=>"c90923f478ed9fac24fcb1334896e4560885d8d7-2-4", "name"=>"Test", "attendeePW"=>"Uo3.H?6%tvV7", "moderatorPW"=>"VzL&S*IQU;x_", "logoutURL"=>"http://x.x.x.x/mod/bigbluebuttonbn/bbb_view.php?action=logout&id=5&bn=4", "record"=>"true", "welcome"=>"<br>Welcome to <b>%%CONFNAME%%</b>!<br><br>For help on using BigBlueButton see these (short)  <a href=\"event:http://www.bigbluebutton.org/content/videos\"><u>tutorial videos</u></a>.<br><br>To join the audio bridge click the phone icon (top center). <b>Please use a headset to avoid causing background noise for others.</b><br><br>This session may be recorded.", "meta_bbb-origin"=>"Moodle", "meta_bbb-origin-version"=>"3.8.2 (Build: 20200309)", "meta_bbb-origin-server-name"=>"x.x.x.x", "meta_bbb-origin-server-common-name"=>"", "meta_bbb-origin-tag"=>"moodle-mod_bigbluebuttonbn (2019042008)", "meta_bbb-context"=>"teste", "meta_bbb-recording-name"=>"Test", "meta_bbb-recording-description"=>"", "meta_bbb-recording-tags"=>"", "checksum"=>"a5c706c00e567f773d49c5608a83c19fe21e925f"}
I, [2020-03-26T12:56:07.292951 #6]  INFO -- : [51786ebf-642a-43fc-ae63-50b2a8aa1313] Completed 200 OK in 1ms (Views: 0.1ms | Allocations: 249)
I, [2020-03-26T12:56:22.306403 #6]  INFO -- : [59017035-49a8-4530-b9cf-1331734bcb1f] Started GET "/bigbluebutton/api/getMeetingInfo?&meetingID=c90923f478ed9fac24fcb1334896e4560885d8d7-2-4&checksum=8dd4a393b580c573de632198cec5315dfc2e537d" for x.x.x.x at 2020-03-26 12:56:22 +0000
I, [2020-03-26T12:56:22.307084 #6]  INFO -- : [59017035-49a8-4530-b9cf-1331734bcb1f] Processing by BigBlueButtonApiController#get_meeting_info as XML
I, [2020-03-26T12:56:22.307168 #6]  INFO -- : [59017035-49a8-4530-b9cf-1331734bcb1f]   Parameters: {"meetingID"=>"c90923f478ed9fac24fcb1334896e4560885d8d7-2-4", "checksum"=>"8dd4a393b580c573de632198cec5315dfc2e537d"}
I, [2020-03-26T12:56:22.307946 #6]  INFO -- : [59017035-49a8-4530-b9cf-1331734bcb1f] Completed 200 OK in 1ms (Views: 0.2ms | Allocations: 254)

~ $ ./bin/rake servers
id: 89e7e74b-01c1-4c8a-910b-72fc8fa96b88
        url: http://x.x.x.x/bigbluebutton/api
        secret: secret
        enabled
        load: 0.0
        online

rake poll all error

hello,

i recently used scaleite balancer, it works fine but after i delete server (by mistake) and error comes on run poll

D, [2020-03-26T22:41:54.226368 #35] DEBUG -- : Polling meetings
D, [2020-03-26T22:41:54.226516 #35] DEBUG -- : Polling servers
D, [2020-03-26T22:41:54.274147 #35] DEBUG -- : Polling Server id=d772813e-e03e-4586-83f7-af3442573ef3
W, [2020-03-26T22:41:54.278505 #35] WARN -- : Failed to check meeting id=3b7a6d1526eb05404bba6337fc8d11b9a63f3517-57-61 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
W, [2020-03-26T22:41:54.278934 #35] WARN -- : Failed to check meeting id=c24a08a93fc5e5c9dcd0a624e9f097300a300755-55-58 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
W, [2020-03-26T22:41:54.279309 #35] WARN -- : Failed to check meeting id=ae2a50108523bbf9924e9c9b1eceda730904980a-89-68 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
W, [2020-03-26T22:41:54.279609 #35] WARN -- : Failed to check meeting id=a4577b915b2cc1e25259972fd16466735595eb91-42-44 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
W, [2020-03-26T22:41:54.279977 #35] WARN -- : Failed to check meeting id=ee4dee1d3a6f55a1eaaa67f5e3ba0cc1122bf82f-94-65 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
W, [2020-03-26T22:41:54.280335 #35] WARN -- : Failed to check meeting id=0d3a7d20d071eddb88ed0195e2b855328ab98549-14-18 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
D, [2020-03-26T22:41:54.280909 #35] DEBUG -- : Polling Meeting id=b293a0d5c3cba069225e87e864b9253973b363e6-86-70 on Server id=fe6affa5-83b9-4dcf-863a-9c870b505652
I, [2020-03-26T22:41:54.333107 #35] INFO -- : Server id=d772813e-e03e-4586-83f7-ffsdfsdf online load: 0
D, [2020-03-26T22:41:54.333217 #35] DEBUG -- : Polling Server id=fe6affa5-83b9-4dcf-863a-9c870b505652
W, [2020-03-26T22:41:54.345505 #35] WARN -- : Failed to check meeting id=166df0c484ade5d3ed6f4aac971f1fb38fd817ab-91-57 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
W, [2020-03-26T22:41:54.346063 #35] WARN -- : Failed to check meeting id=460e7d9ed295151a3c6b8d655e4227e44e7adfc6-9-17 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
W, [2020-03-26T22:41:54.346551 #35] WARN -- : Failed to check meeting id=c88c6b0cff932506c92dad97640ca6e0c39ca0f1-58-63 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
W, [2020-03-26T22:41:54.347029 #35] WARN -- : Failed to check meeting id=8c6c92ade250c0089734ee6278abadece52a1e78-41-41 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
W, [2020-03-26T22:41:54.347410 #35] WARN -- : Failed to check meeting id=c27deb3ef797d16ca87192cc233a90e9bbd12828-21-9 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
W, [2020-03-26T22:41:54.347757 #35] WARN -- : Failed to check meeting id=82bab56e81f0533febeb462679a3e76b3bbe1deb-43-47 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
W, [2020-03-26T22:41:54.348239 #35] WARN -- : Failed to check meeting id=d579994c6abf9ea85c26121d71332ef3e03b0cc0-24-7 status: Couldn't find Server with id=c3940afe-b184-47df-8bb4-13a1df3ce446
W, [2020-03-26T22:41:54.348598 #35] WARN -- : Failed to check meeting id=4e79c41bc6b8423e8d0613c09826a510dfd3f6e6-85-42 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
W, [2020-03-26T22:41:54.349038 #35] WARN -- : Failed to check meeting id=a2f2f50f5df92f1523e74000df81a9b3f5e02dd7-47-51 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
W, [2020-03-26T22:41:54.349475 #35] WARN -- : Failed to check meeting id=3e6421dfbd243718a223e4874bc9a5ce7f3bd865-20-11 status: Couldn't find Server with id=af0bf45f-8bf9-4b72-bba2-1503ee10f6a2
I, [2020-03-26T22:41:54.396271 #35] INFO -- : Server id=fe6affa5-83b9-4dcf-863a-344 online load: 1

is there anyway to remove these warnings?

Question about infraestructure

Good morning.

Sorry to write here, but I don't have very clear where to post doubts.
What I wanted to know is: Is it possible to have the scalalite server connected to a farm of servers with a VPN, and that the only server with a public IP and Public access could be the scalalite server? Or on the contrary, Scalalite server redirects BBB api clients to the available server and all the BBB servers in the farm need to have public access?

Sorry for the silly question, but it is very important for us to know this aspect. Thank you very much and this project is really awesome!!

Noob needs a hand

I think the documentation its too much for someone that comes from just installing bigbluebutton, please, can anyone provide detailed steps to install scalelite, thank you so much .

Also its possible to install it into a VirtualBox server to test?
I have 2 bigbluebutton instalation and I really want to improve the management with scalelite, any help out there?

Thanks a lot

Integrating with canvas

I cant find any mention of Canvas
Can I balance BBB servers and Canvas with this project? how ?

NGINX_SSL=true doesn't redirect http sessions to https.

I'd expect http sessions redirected to https on an SSL-enabled web server.

My suggestion is to just change the HTTP server block in /etc/nginx/conf.d/scalelite-ssl.template to redirect clients to the SSL server...

If you think the server should also be available on HTTP, please at least make it configurable for those of us that think otherwise.

files in spool aren't processed

Hello,

we had a long time only one bbb server, last friday we finished setting up scalelite. We transfered local redings via script but this doesn't work for every recording. So some recordings are still missing, so I started the tranfer again. Now I see a list of recordings in the spool folder the missing ones too, but it seems that they aren't procced.
The Importer tast is up.

Any Ideas.

Scalelite and Phone-Ring-In

This is less a bug/issue than more a general question:

is there any solution for the 'phone number conference join' using scalelite? At the moment the caller needs to know which instance he has to call to join a conference.

A centralized phone number would be much easier for people w/o internet access, but requires the knowledge which extension to forward based on the load balancer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.