* fix unit name: the unit name on Ubuntu is `redis-server.service`
* services which need a working redis require both After= and Wants=
See the description in the `systemd.unit` man page.
yq package is now provided in the BigBlueButton support PPA for BBB 2.5,
so we can depend on the package now. Ensure the dependency is specific
to avoid an incompatible yq version 4 from being installed.
The old 6h values seem far too large and I cant recall nor find any good
justification for them to be that way
Reducing the timeouts to more sane values allow resources (WebSockets) to be
cleaned up faster
The heartbeat routine in bbb-webrtc-sfu runs every 20s. The heartbeat
routine in SIP.js/FS runs every 30(+10)s. The new timeouts are those values
multiplied by 3.
Remaining, to be handles separately:
bbb-html5 before-remove and after-install -- sip.nginx needs to be
handled in bbb-conf
bbb-freeswitch-core -- /tmp/vars xml, etc. -- not sure how to handle
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
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.
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