diff --git a/.github/workflows/automated-tests.yml b/.github/workflows/automated-tests.yml index 0707f489cfd4..ef24d315408b 100644 --- a/.github/workflows/automated-tests.yml +++ b/.github/workflows/automated-tests.yml @@ -256,6 +256,9 @@ jobs: ' - name: Install BBB uses: nick-fields/retry@v3 + env: + NODE_EXTRA_CA_CERTS: /usr/local/share/ca-certificates/bbb-dev/bbb-dev-ca.crt + ACTIONS_RUNNER_DEBUG: true with: timeout_minutes: 25 max_attempts: 2 @@ -265,7 +268,6 @@ jobs: cd /root/ && wget -nv https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh -O bbb-install.sh cat bbb-install.sh | sed "s|> /etc/apt/sources.list.d/bigbluebutton.list||g" | bash -s -- -v jammy-30-dev -s bbb-ci.test -j -d /certs/ bbb-conf --salt bbbci - echo "NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/bbb-dev/bbb-dev-ca.crt" >> /usr/share/meteor/bundle/bbb-html5-with-roles.conf sed -i "s/\"minify\": true,/\"minify\": false,/" /usr/share/etherpad-lite/settings.json bbb-conf --restart EOF diff --git a/build/packages-template/bbb-html5/bbb-html5-loadbalancer.conf b/build/packages-template/bbb-html5/bbb-html5-loadbalancer.conf deleted file mode 100644 index 09cfd0ae554b..000000000000 --- a/build/packages-template/bbb-html5/bbb-html5-loadbalancer.conf +++ /dev/null @@ -1,6 +0,0 @@ -upstream poolhtml5servers { - zone poolhtml5servers 32k; - least_conn; - server 127.0.0.1:4100 fail_timeout=5s max_fails=3; -} - diff --git a/build/packages-template/bbb-html5/bbb-html5.nginx b/build/packages-template/bbb-html5/bbb-html5.nginx index a6f23dd144f5..d6656bba7c49 100644 --- a/build/packages-template/bbb-html5/bbb-html5.nginx +++ b/build/packages-template/bbb-html5/bbb-html5.nginx @@ -14,7 +14,7 @@ location /html5client/__meteor__/dynamic-import/fetch { proxy_cache_lock on; add_header X-Cached $upstream_cache_status; - proxy_pass http://poolhtml5servers; + proxy_pass http://127.0.0.1:4100; proxy_http_version 1.1; } diff --git a/build/packages-template/bbb-html5/bbb-html5.service b/build/packages-template/bbb-html5/bbb-html5.service index 4efeaf94a04c..c0ace38b3fff 100644 --- a/build/packages-template/bbb-html5/bbb-html5.service +++ b/build/packages-template/bbb-html5/bbb-html5.service @@ -7,7 +7,6 @@ PartOf=bigbluebutton.target [Service] Type=idle ExecStart=/usr/share/meteor/bundle/workers-start.sh -# WorkingDirectory=/usr/share/meteor WorkingDirectory=/usr/share/meteor/bundle StandardOutput=syslog StandardError=syslog diff --git a/build/packages-template/bbb-html5/before-install.sh b/build/packages-template/bbb-html5/before-install.sh index 5c783c1ad52a..0ae413e95fd2 100755 --- a/build/packages-template/bbb-html5/before-install.sh +++ b/build/packages-template/bbb-html5/before-install.sh @@ -10,5 +10,19 @@ case "$1" in rm -r /usr/share/meteor/bundle/programs/server/node_modules fi + # Remove remnants from old architecture prior to BBB 3.0.x-alpha.6 + if [ -f /usr/lib/systemd/system/bbb-html5-backend@.service ]; then + rm /usr/lib/systemd/system/bbb-html5-backend@.service + fi + if [ -f /usr/lib/systemd/system/bbb-html5-frontend@.service ]; then + rm /usr/lib/systemd/system/bbb-html5-frontend@.service + fi + if [ -f /etc/nginx/conf.d/bbb-html5-loadbalancer.conf ]; then + rm /etc/nginx/conf.d/bbb-html5-loadbalancer.conf + fi + if [ -f /etc/bigbluebutton/bbb-html5-with-roles.conf ]; then + echo "BigBlueButton 3.0+ does not support configurations in /etc/bigbluebutton/bbb-html5-with-roles.conf" + fi + ;; esac diff --git a/build/packages-template/bbb-html5/build.sh b/build/packages-template/bbb-html5/build.sh index d73c72245286..d7155386c123 100755 --- a/build/packages-template/bbb-html5/build.sh +++ b/build/packages-template/bbb-html5/build.sh @@ -25,7 +25,6 @@ mkdir -p staging/usr/share/bigbluebutton/nginx cp bbb-html5.nginx staging/usr/share/bigbluebutton/nginx mkdir -p staging/etc/nginx/conf.d -cp bbb-html5-loadbalancer.conf staging/etc/nginx/conf.d cp bbb-html5-conn-limit.conf staging/etc/nginx/conf.d cp bbb-html5-meteor-assets-cache.conf staging/etc/nginx/conf.d diff --git a/docs/docs/administration/cluster-proxy.md b/docs/docs/administration/cluster-proxy.md index fff7ff397ca8..c37244c16076 100644 --- a/docs/docs/administration/cluster-proxy.md +++ b/docs/docs/administration/cluster-proxy.md @@ -126,10 +126,9 @@ public: Create (or edit if it already exists) these unit file overrides: -* `/usr/lib/systemd/system/bbb-html5-frontend@.service` -* `/usr/lib/systemd/system/bbb-html5-backend@.service` +* `/usr/lib/systemd/system/bbb-html5.service` -Each should have the following content: +It should have the following content: ``` [Service] @@ -137,14 +136,6 @@ Environment=ROOT_URL=https://127.0.0.1/bbb-01/html5client Environment=DDP_DEFAULT_CONNECTION_URL=https://bbb-01.example.com/bbb-01/html5client ``` -Change the nginx `$bbb_loadbalancer_node` variable to the name of the load -balancer node in `/usr/share/bigbluebutton/nginx/loadbalancer.nginx` to allow CORS -requests: - -``` -set $bbb_loadbalancer_node https://bbb-proxy.example.com; -``` - Prepend the mount point of bbb-html5 in all location sections except for the `location @html5client` section in `/usr/share/bigbluebutton/nginx/bbb-html5.nginx`: diff --git a/docs/docs/administration/configuration-files.md b/docs/docs/administration/configuration-files.md index c2d90f69c028..d0a556238df5 100644 --- a/docs/docs/administration/configuration-files.md +++ b/docs/docs/administration/configuration-files.md @@ -25,7 +25,6 @@ Starting with BigBlueButton 2.3 many of the configuration files have local overr | /usr/share/bbb-apps-akka/conf/application.conf | /etc/bigbluebutton/bbb-apps-akka.conf | | | /usr/share/bbb-fsesl-akka/conf/application.conf | /etc/bigbluebutton/bbb-fsesl-akka.conf | | | /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml | /etc/bigbluebutton/bbb-html5.yml | Arrays are merged by replacement (as of 2.4-rc-5) | -| /usr/share/meteor/bundle/bbb-html5-with-roles.conf | /etc/bigbluebutton/bbb-html5-with-roles.conf | | | /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml | /etc/bigbluebutton/turn-stun-servers.xml | Replaces the original file | | /usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml | /etc/bigbluebutton/bbb-webrtc-sfu/production.yml | Arrays are merged by replacement | | /usr/local/bigbluebutton/bbb-pads/config/settings.json | /etc/bigbluebutton/bbb-pads.json | Arrays are merged by replacement | @@ -81,17 +80,15 @@ public: #### Log monitoring for server logs (bbb-html5) -Since BigBlueButton 2.3 we run multiple nodejs processes in production mode, so tailing logs is slightly different from `journalctl -f bbb-html5.service` which was used in 2.2. Rather than listing all the services ( `bbb-html5-backend@1.service bbb-html5-backend@2.service bbb-html5-frontend@1.service bbb-html5-frontend@2.service bbb-html5-frontend@3.service bbb-html5-frontend@4.service ...` ) you can use the wildcard operator `*`. Notice the different process id for each bbb-html5-\* service. Also notice `systemd_start_frontend.sh` signifying a log from a frontend process vs `systemd_start.sh` - backend process. +In BigBlueButton 3.0 we modified the architecture to shift the load away from the old frontend and backend bbb-html5 pools of services. Logs for the new services can be foud via: -``` -# journalctl -f -u bbb-html5-* --- Logs begin at Mon 2021-03-15 12:13:05 UTC. -- -Mar 15 15:14:18 demo2 systemd_start_frontend.sh[3881]: debug: Redis: SendCursorPositionEvtMsg completed sync -Mar 15 15:14:18 demo2 systemd_start_frontend.sh[3891]: debug: Redis: SendCursorPositionEvtMsg completed sync -Mar 15 15:14:18 demo2 systemd_start_frontend.sh[3888]: debug: Publishing Polls {"meetingId":"37d0fb4f4617b3c97948d717435f9e1cf6998477-1615821214341","userId":"w_el87iar97iwa"} -... -Mar 15 15:30:18 demo2 systemd_start.sh[3869]: debug: Redis: UpdateBreakoutUsersEvtMsg completed sync -``` +`journalctl -f -u bbb-html5.service` + +Akka-apps is responsible for most of the logic, so key info can be obtained via + +`journalctl -f -u bbb-apps-akka.service` + +`SYSTEMD_LESS=FRXMK journalctl -u bbb-graphql-middleware.service -f` can also be useful. #### Logs sent directly from the client diff --git a/docs/docs/administration/install.md b/docs/docs/administration/install.md index e307f066d033..42154a844778 100644 --- a/docs/docs/administration/install.md +++ b/docs/docs/administration/install.md @@ -253,10 +253,6 @@ bbb-apps-akka —————————————————————— bbb-fsesl-akka ———————————————————————► [✔ - active] mongod ———————————————————————————————► [✔ - active] bbb-html5 ————————————————————————————► [✔ - active] -bbb-html5-backend@1 ——————————————————► [✔ - active] -bbb-html5-backend@2 ——————————————————► [✔ - active] -bbb-html5-frontend@1 —————————————————► [✔ - active] -bbb-html5-frontend@2 —————————————————► [✔ - active] bbb-graphql-actions ——————————————————► [✔ - active] bbb-graphql-middleware ———————————————► [✔ - active] bbb-graphql-server ———————————————————► [✔ - active] diff --git a/docs/docs/new-features.md b/docs/docs/new-features.md index 43c502273a88..ea2a400e7152 100644 --- a/docs/docs/new-features.md +++ b/docs/docs/new-features.md @@ -48,7 +48,9 @@ Administrators will appreciate that we now allow passing of custom client settin #### Major strides in replacing Meteor For years we have discussed internally the topic of replacing MeteorJS with other technologies in order to improve scalability, performance, etc. In the last year we have introduced several different new components which are to replace Meteor. The work is underway, it will span into BigBlueButton 3.0, 3.1, possibly 3.2 too. -These new components are: `bbb-graphql-server`, `bbb-graphql-middleware`, `bbb-graphql-actions`, database Postgres, GraphQL server Hasura. During the transition period, `bbb-html5-backend` and `bbb-html5-frontend` are still present, however, lots of what they used to do is now being carried out by the new components. +These new components are: `bbb-graphql-server`, `bbb-graphql-middleware`, `bbb-graphql-actions`, database Postgres, GraphQL server Hasura. + +Note: The services `bbb-html5-backend` and `bbb-html5-frontend` have been removed and `bbb-html5` modified heavily as a result of the change in architecture. ### Experimental