Commit Graph

500 Commits

Author SHA1 Message Date
Paulo Lanzarin
89209fc7ee
feat(audio): dedicate mediasoup workers for audio streams
mediasoup workers are currently for general use,
regardless of stream type. This makes it difficult to give
different scheduling priorities for audio workers or prevent
noise from video streams, when our goal is to give higher
priority to audio in all ends of the system.

Set `mediasoup.dedicatedMediaTypeWorkers.audio` to `auto`. This will spin up 
`ceil((min(nproc, 32) * 0.8) + (max(0, nproc - 32))` mediasoup workers 
dedicated to handling audio streams.
2024-08-20 15:06:32 -03:00
Gustavo Trott
09cc37feef
refactor (gql-middleware): Code improvements and new Prometheus metrics (#20896) 2024-08-19 10:58:14 -03:00
Anton Georgiev
21533ee42a
build: revert removal of gzip command in bbb-html5/build.sh (#20929) 2024-08-14 08:48:13 -04:00
Gustavo Trott
47997a932a
Add scripts to run html5 from source (#20899)
* Add scripts to run html5 from source

* remove unnecessary sudo
2024-08-12 09:35:45 -03:00
Anton Georgiev
b1b79653cc
build: remove old custom bbb-html5 NodeJS binaries (#20897)
* build: remove old custom bbb-html5 NodeJS binaries

* docs: mention removal of node v14

* build: list bbb-web as dependency to bbb-config

* build: undo set license

* re-add bbb-html5 as dependency to bbb-config
2024-08-10 13:03:11 -04:00
Tainan Felipe
4d6f4b3ded
Refactor: Make bundle using webpack (#20811)
* Refactor: Make bundle using webpack

* Fix: restore after install codes and a few settings

* Fix: build script folder permission

* Refactor: Remove support to async import on audio bridges

* Upgrade npm using nvm

* Avoid questions on npm ci execution

* Let npm ci install dev dependencies (as we need the build tools here)

* Fix: enconding

* Fix: old lock files

* Remove: bbb-config dependency to bbb-html5 service, bbb-html5 isn't a service anymore

* Fix: TS errors

* Fix: eslint

* Fix: chat styles

* npm install with "lockfileVersion": 3 (newer npm)

* build: allow nodejs 22

* node 22; drop meteor from CI and bbb-conf

* TEMP: use bbb-install without mongo but with node 22 and newer image

* build: relax nodejs condition to not trip 22.6

* build: ensure dir /usr/share/bigbluebutton/nginx exists

* init sites-available/bbb; drop disable-transparent-

* nginx complaining of missing file and ;

* TMP: print status of services

* WIP: tweak nginx location to debug

* Fix: webcam widgets alignments

* akka-apps -- update location of settings.yml

* build: add locales path for nginx

* docs and config changes for removal of meteor

* Fix: build encoding and locales enpoint folder path

* build: set wss url for media

* Add: Enable minimizer and modify to Terser

* Fix: TS errors

---------

Co-authored-by: Tiago Jacobs <tiago.jacobs@gmail.com>
Co-authored-by: Anton Georgiev <anto.georgiev@gmail.com>
Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>
2024-08-09 13:58:44 -04:00
Gustavo Trott
1e32ee794e several refactors 2024-08-08 16:50:41 -03:00
Gustavo Trott
8e70891083 Implements max of Graphql connections (global and per user) 2024-08-06 15:07:52 -03:00
Paulo Lanzarin
936363b310 feat(bbb-webrtc-sfu): enable new mediasoup balancing strategies
We currently use a simple producer round-robin algorithm to distribute
elements between mediasoup workers. This works for most scenarios but
fails in some edge cases, such as:
  - 1-to-N scenarios where N >= ~600-800 (sample number, varies by
  single-core performance). This is due to subscribers being pinned to a
  producer's worker.
  - Poor distribution results from round-robin.

Enable the following new features in bbb-webrtc-sfu via after-install by
default:
  - `mediasoup.workerBalancing.strategy: least-loaded`: Replaces
  round-robin with load scoring. Workers are selected based on which is
  least loaded.
  - `mediasoup.enableWorkerTransposing: true`: Allows media streams to be
  bridged between workers through internal RTP pipes. This, along with a
  per-worker stream limit, enables seamless offloading of streams between
  workers (whether publishers or subscribers). The per-worker stream limit
  is still under review.

These changes should address the issues mentioned. They are enabled via
after-install because the SFU version is shared with previous BBB versions
where these features are not desirable yet.
2024-08-01 18:21:07 +00:00
Gustavo Trott
4cb41f723b Increase gql-middlware MAX_CONN_PER_SECOND=100 2024-07-23 11:26:48 -03:00
Gustavo Trott
0cf7c90663
Merge pull request #20736 from gustavotrott/remove-user_connection_auth
remove (gql-server): Removes old PG user/tabled created for Meteor auth
2024-07-19 13:40:26 -03:00
Gustavo Trott
f158951257
remove (gql-server): Removes /rest/clientStartupSettings endpoint (#20735) 2024-07-19 11:30:16 -04:00
Gustavo Trott
7e0295d0a9 Removes old PG user/tabled created for Meteor auth 2024-07-19 11:38:46 -03:00
Anton Georgiev
81d5d7daae
build: bbb-playback copy files properly (#20710) 2024-07-16 12:37:57 -04:00
Gustavo Trott
b14c643def
build(gql): Upgrade Hasura and refactor sh scripts (#20699) 2024-07-12 13:32:20 -04:00
Gustavo Trott
7f68928790
build(fix): force Hasura to always restart on upgrade (#20689) 2024-07-12 10:53:21 -04:00
Gustavo Trott
2c2d595212 Big refactor on Graphql authentication 2024-07-10 18:30:01 -03:00
João Victor
41746ca67e Merge branch 'v3.0.x-release' into remove-meteor-stuff-0702 2024-07-05 12:24:31 -03:00
Gustavo Trott
e92dacd039
fix (build/gql-server): Hasura trying to apply metadata using wrong password (#20637)
* fix: Hasura trying to use wrong password to apply metadata

* Print password was set only when it generated a new one
2024-07-05 10:26:54 -04:00
João Victor
9402402e0f Merge branch 'v3.0.x-release' into remove-meteor-stuff-0702 2024-07-02 17:13:28 -03:00
João Victor
50d445f026 Remove Meteor backend 2024-07-02 14:58:58 -03:00
Anton Georgiev
759bf882c7
build: add bbb-playback-version file to help identify local bbb-playb… (#20607)
* build: add bbb-playback-version file to help identify local bbb-playback version
2024-07-02 12:06:03 -04:00
Gustavo Trott
8943e22564
Increase Hasura keepalive delay to 10 (was 5) (#20599) 2024-06-28 16:50:44 -03:00
Anton Georgiev
fabcb7a3ef
build: Clean up sfu after-install (#20595) 2024-06-27 19:24:37 -04:00
Tiago Jacobs
b3a108fba4 Increase maximum number of open files 2024-06-20 19:02:24 -03:00
Gustavo Trott
1465d3dca3
refactor (gql-server): Set some configs for Max PG connections and Nginx max workers aiming to support more users (#20549)
* Set hasura max connections with pg to 100

* set nginx worker_connections from 4k to 10k

* Update bbb-graphql-server/metadata/databases/databases.yaml

* remove deprecated config

* set pg max connections up to 300

---------

Co-authored-by: Tiago Jacobs <tiago.jacobs@gmail.com>
2024-06-20 16:41:47 -03:00
Daniel Schreiber
c5b657a409 Fix: File permissions in packages should not depend on umask of build system
If the build system for packages has a umask of `0077`, cloned
repositories will have no permissions for group and other. As the build
scripts for some packages just copy from clone git repos, this will
preserve the permissions in the package and prevent the following
services from startup:

* `bbb-html5`
* `etherpad`
* `bbb-pads`
* `bbb-export-annotations`
* `bbb-rap-*`

This patch grants everyone read permissions to the code in the packages.
2024-06-14 16:17:49 -04:00
Gustavo Trott
656e29e7eb
Refactor middleware to get user info from akka-apps api (#20491) 2024-06-14 13:43:05 -03:00
Gustavo Trott
24219ea5c8 Upgrade Hasura to version v2.40.0 2024-06-10 10:59:13 -03:00
Gustavo Trott
6e9b4b3e4f Remove meteor assets cleanup routine 2024-06-07 16:14:46 -03:00
Ramón Souza
7514066fc3
fix: Client can't load in certain cases (#20336)
* move settings

* remove meteor cache files
2024-05-29 09:26:11 -04:00
Ghazi Triki
7b4c506bc5 Update logrotate rule to add date extension to archived logs files. 2024-05-24 11:34:24 -04:00
Tainan Felipe
1aab2f5f29
Change: Change websocket lib to graphql-ws (#20282) 2024-05-22 15:51:12 -03:00
Anton Georgiev
b9a46197ed build: set permissions for resque files [3.0] 2024-05-15 14:36:11 -04:00
Gustavo Trott
ca4717c92d set hasura cli config with correct password 2024-05-08 11:44:44 -03:00
Anton Georgiev
628c3bb32b
Merge pull request #20132 from antobinary/html5-pack-30
refactor/build: drop html5InstanceId and simplify bbb-html5 frontend/backend
2024-05-08 10:04:37 -04:00
Gustavo Trott
7975ca02d0 Change graphql endpoint 2024-05-08 08:46:14 -03:00
Anton Georgiev
264722bb44 docs: try to remove frontend and leave only bbb-html5 2024-05-07 21:24:24 -04:00
Gustavo Trott
2cc54680af fix echo with error 2024-05-07 15:10:31 -03:00
Gustavo Trott
deea562e23 Avoid changing hasura password on every upgrade 2024-05-07 14:57:19 -03:00
Gustavo Trott
6d100cd19e Add yq as graphql-server dependency 2024-05-07 14:29:59 -03:00
Gustavo Trott
ff9bcc774b Generate a Hasura random password on after-install.sh 2024-05-07 14:29:35 -03:00
Gustavo Trott
2bbc850093 set password on correct file 2024-05-07 13:45:26 -03:00
Gustavo Trott
a1d80e8c8f use sed to change config.yaml 2024-05-07 13:35:12 -03:00
Gustavo Trott
76e6b731bf set yq as dependency for bbb-graphql-server build 2024-05-07 13:23:38 -03:00
Gustavo Trott
ac4608ca65 Set a different password for Hasura admin 2024-05-07 11:39:34 -03:00
Anton Georgiev
be7fad8cbf build: try to remove frontend and leave only bbb-html5 2024-05-07 09:53:35 -04:00
Gustavo Trott
fdcc7e4bd2 fix cache key for clientSettings 2024-05-07 10:46:52 -03:00
Gustavo Trott
d74db21037 Set postgres host as 127.0.0.1 instead of localhost 2024-05-07 10:16:14 -03:00
Anton Georgiev
de483ce568 build: try to remove frontend and leave only bbb-html5 2024-05-06 13:49:20 -04:00