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.
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
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.