The BBB html5 client is huge and can be compressed easliy. As nginx
already services the static files, it can also handle service gzipped
files.
Ship compressed files with the package.
Move all Etherpad's access control from Meteor to a separated [Node application](https://github.com/bigbluebutton/bbb-pads).
This new app uses [Etherpad's API](https://etherpad.org/doc/v1.8.4/#index_overview)
to create groups and manage session tokens for users to access them. Each group
represents one distinct pad at the html5 client.
- Removed locked users' access to pads: replaced readOnly pad's access with a new pad's content sharing routine
- Pad's access is now controlled by [Etherpad's API](https://etherpad.org/doc/v1.8.4/#index_overview)
- Closed captions edited content now reflects at it's live feedback
- Improved closed caption's dictation mode live feedback
- Moved all Etherpad's API control from Meteor to a separated [app](https://github.com/bigbluebutton/bbb-pads)
- Included access control both in akka-apps and bbb-pads
To ease setup some changes required in the nginx config for load
balancer setup are prepared here. They do not harm non-loadbalancer setups.
The changes in the system startup scripts are mandatory
worker_rlimit_nofile may only be set once in nginx.conf. So far there was no check whether it is already set to a value different than 10000. This results in the option beeing set twice in the config file, if it was already set by. This caused nginx to fail startup. Now it is checked that the limit is at least 10000 and only if not it is set to 10000.
beta.6 updates mediasoup 3.9.0 which has a new Meson build system
That new build system does a pretty good job cleaning compiler leftovers on its
own, so theoretically our cleanup code isn't needed anymore.
Amend history:
build/packages-template/bbb-webrtc-sfu/build.sh -> v2.6.0-beta.6 to beta.7
This resolves an issue where we were building the npm dependencies against Meteor matching Node 12 but were trying to install locally for Node 14.
An additional change to consider could be to include the correct Meteor version in the Dockerfile for BBB but that may mean different images per BBB version.
I also leave here some simple outputs for node, npm and meteor versions, to hopefully allow us to catch such discrepancies more easily in the future
Somewhere along the line since 2.3 the packaged bbb-html5.nginx regressed to a
state where the upstream for /html5client was Meteor itself, which means nginx
wasn't serving static assets as it was supposed to.
Guarantees that nginx will be the one serving the WASM binaries (static assets).
The types block is there to guarantee that the correct MIME type is advertised.
Moreoever, it's preferable that the WASM binaries are gzipped because they're
too large to ignore, so it's worth the server-side gzipping overhead.
The explicit gzip type declaration is there because only text/html assets are
compressed by default.
... drop build artifacts from compiling mediasoup. This reduces package
size from ~ 54 MB to ~ 12 MB.
Additionally this drops the `npm rebuild` command from the after-install
script. It should not be necessary to recompile stuff during
installation. To ensure a clean `node_modules` directory, it will be
cleaned in the before-install script.
This resolves an issue where we were building the npm dependencies against Meteor matching Node 12 but were trying to install locally for Node 14.
An additional change to consider could be to include the correct Meteor version in the Dockerfile for BBB but that may mean different images per BBB version.
I also leave here some simple outputs for node, npm and meteor versions, to hopefully allow us to catch such discrepancies more easily in the future
worker_rlimit_nofile may only be set once in nginx.conf. So far there was no check whether it is already set to a value different than 10000. This results in the option beeing set twice in the config file, if it was already set by. This caused nginx to fail startup. Now it is checked that the limit is at least 10000 and only if not it is set to 10000.