From f8a83373b1298b749830d978b3f3eb9d24b90db7 Mon Sep 17 00:00:00 2001 From: cardinalit Date: Wed, 16 Dec 2020 17:30:49 +0300 Subject: [PATCH 1/8] [*] Small changes, upd. gitignore --- .gitignore | 12 ++++++++++++ mod/recordings/Dockerfile | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 82d8eec..4eced3c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,14 @@ +# IDEA generated +.idea + +# OS generated +.DS_Store +.AppleDouble + +# Tmp files +*.swp +*.log + +# App generated .env postgres-data diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile index 4f25704..4a1485d 100644 --- a/mod/recordings/Dockerfile +++ b/mod/recordings/Dockerfile @@ -73,7 +73,7 @@ RUN cd /usr/bin \ && touch /var/log/bigbluebutton/bbb-web.log # create user -# the ID should matcht the one creating the files in `core` +# the ID should match the one creating the files in `core` RUN groupadd -g 998 bigbluebutton && useradd -m -u 998 -g bigbluebutton bigbluebutton COPY bigbluebutton.yml /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml.tmpl From 0b90a2024bd135f7096ad831ed69a81ad50564e8 Mon Sep 17 00:00:00 2001 From: cardinalit Date: Wed, 16 Dec 2020 17:31:43 +0300 Subject: [PATCH 2/8] [*] Changed version of bbb for recordings config --- mod/recordings/bigbluebutton.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/recordings/bigbluebutton.yml b/mod/recordings/bigbluebutton.yml index c20328a..78c7c10 100644 --- a/mod/recordings/bigbluebutton.yml +++ b/mod/recordings/bigbluebutton.yml @@ -1,4 +1,4 @@ -bbb_version: '2.2.23' +bbb_version: '2.2.30' raw_audio_src: /var/freeswitch/meetings raw_video_src: /usr/share/red5/webapps/video/streams kurento_video_src: /var/kurento/recordings From 4854bce49ac81b73cb9c63c987027f27308ded4c Mon Sep 17 00:00:00 2001 From: cardinalit Date: Wed, 16 Dec 2020 17:38:09 +0300 Subject: [PATCH 3/8] =?UTF-8?q?[*]=20Fixed=20iss#63=20=E2=80=94=20Unable?= =?UTF-8?q?=20to=20delete=20recording?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod/recordings/Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile index 4a1485d..e7f2e13 100644 --- a/mod/recordings/Dockerfile +++ b/mod/recordings/Dockerfile @@ -75,10 +75,17 @@ RUN cd /usr/bin \ # create user # the ID should match the one creating the files in `core` RUN groupadd -g 998 bigbluebutton && useradd -m -u 998 -g bigbluebutton bigbluebutton +# change owner +# https://github.com/alangecker/bigbluebutton-docker/issues/63 +RUN chown -R 998:998 /usr/local/bigbluebutton /var/log/bigbluebutton COPY bigbluebutton.yml /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml.tmpl ADD log-collector.py /log-collector.py ADD entrypoint.sh /entrypoint.sh + +# change user before entrypoint +USER bigbluebutton + ENTRYPOINT dockerize \ -template /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml.tmpl:/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml \ /entrypoint.sh \ No newline at end of file From 151dc01a29d932bcddd656148db42c9aa0a4b383 Mon Sep 17 00:00:00 2001 From: cardinalit Date: Wed, 16 Dec 2020 17:48:45 +0300 Subject: [PATCH 4/8] [*] Small changes --- mod/recordings/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile index e7f2e13..36fa86f 100644 --- a/mod/recordings/Dockerfile +++ b/mod/recordings/Dockerfile @@ -84,6 +84,7 @@ ADD log-collector.py /log-collector.py ADD entrypoint.sh /entrypoint.sh # change user before entrypoint +# to set user rights for all generated videos USER bigbluebutton ENTRYPOINT dockerize \ From 8a7edf7693de933c49148efa92d6bac227aa35b4 Mon Sep 17 00:00:00 2001 From: chandi Date: Tue, 22 Dec 2020 00:41:01 +0100 Subject: [PATCH 5/8] applied v2.2.31 changes --- CHANGELOG.md | 1 + bbb-webrtc-sfu | 2 +- docker-compose.yml | 4 ++++ mod/core/Dockerfile | 2 +- mod/html5/Dockerfile | 10 ++++++---- mod/html5/entrypoint.sh | 11 ++++++++++- mod/html5/settings.yml | 23 +++++++++++++++++++++-- mod/nginx/bbb/bbb-html5.nginx | 20 +++++++++++++++++++- mod/recordings/Dockerfile | 2 +- 9 files changed, 64 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec7d99c..86babba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog ## Unreleased +- Applied v2.2.31 changes @alangecker ## Release v2.2.30-1 (2020-12-01) #79 - Applied v2.2.30 changes @alangecker diff --git a/bbb-webrtc-sfu b/bbb-webrtc-sfu index 0ea5bd5..9aa9f02 160000 --- a/bbb-webrtc-sfu +++ b/bbb-webrtc-sfu @@ -1 +1 @@ -Subproject commit 0ea5bd5d14f3d96c6f5ce4b5c238fbdef82e6d87 +Subproject commit 9aa9f02f07b70f01eed149296b42db4859f2fa04 diff --git a/docker-compose.yml b/docker-compose.yml index 3078f5e..d95620e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,6 +56,7 @@ services: - html5 volumes: - bigbluebutton:/var/bigbluebutton + - html5-static:/html5-static:ro - ${DEFAULT_PRESENTATION:-/dev/null}:/etc/nginx/html/default.pdf network_mode: host extra_hosts: @@ -139,6 +140,8 @@ services: - redis - mongodb - etherpad + volumes: + - html5-static:/html5-static:rw environment: DOMAIN: ${DOMAIN} CLIENT_TITLE: ${CLIENT_TITLE} @@ -171,6 +174,7 @@ volumes: bigbluebutton: vol-freeswitch: vol-kurento: + html5-static: networks: bbb-net: diff --git a/mod/core/Dockerfile b/mod/core/Dockerfile index aec4523..734a09b 100644 --- a/mod/core/Dockerfile +++ b/mod/core/Dockerfile @@ -38,7 +38,7 @@ RUN equivs-control redis-server.control \ # this variable is not used, but it triggers # rebuilding from here on if changed -ENV VERSION v2.2.29 +ENV VERSION v2.2.31 RUN apt-get update && apt-get install -y bbb-web \ bbb-fsesl-akka bbb-apps-akka bbb-transcode-akka bbb-apps \ diff --git a/mod/html5/Dockerfile b/mod/html5/Dockerfile index ff902da..c8f8dcb 100644 --- a/mod/html5/Dockerfile +++ b/mod/html5/Dockerfile @@ -1,4 +1,4 @@ -FROM node:8-buster-slim AS builder +FROM node:8.17.0-buster-slim AS builder RUN apt-get update && apt-get install -y wget curl subversion python2 python3 build-essential RUN groupadd -g 2000 meteor && useradd -m -u 2001 -g meteor meteor @@ -14,7 +14,7 @@ USER meteor ENV METEOR_VERSION 1.8.1 RUN curl -sL https://install.meteor.com?release=$METEOR_VERSION | sed s/--progress-bar/-sL/g | /bin/sh -ENV TAG v2.2.30 +ENV TAG v2.2.31 RUN cd ~ \ && svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bigbluebutton-html5 \ && mv ~/bigbluebutton-html5 ~/source \ @@ -42,12 +42,14 @@ RUN cd ~/app/bundle/programs/server \ FROM node:8-alpine -RUN addgroup -g 2000 meteor && adduser -D -u 2001 -G meteor meteor +RUN addgroup -g 2000 meteor && \ + adduser -D -u 2001 -G meteor meteor && \ + apk add su-exec COPY --from=builder /usr/local/bin/dockerize /usr/local/bin/dockerize COPY --from=builder --chown=meteor:meteor /home/meteor/app/bundle /app COPY entrypoint.sh /entrypoint.sh COPY settings.yml /app/programs/server/assets/app/config/settings.yml.tmpl -USER meteor + ENTRYPOINT ["/entrypoint.sh"] # lets set the tag again, so that it is include in the image for later version retrieval diff --git a/mod/html5/entrypoint.sh b/mod/html5/entrypoint.sh index 4bbb8d7..250ca76 100755 --- a/mod/html5/entrypoint.sh +++ b/mod/html5/entrypoint.sh @@ -1,10 +1,12 @@ #!/bin/sh +set -e cd /app export ROOT_URL=http://127.0.0.1/html5client export MONGO_URL=mongodb://10.7.7.6/meteor export NODE_ENV=production export ENVIRONMENT_TYPE=production +export SERVER_WEBSOCKET_COMPRESSION=0 export PORT=3000 export LANG=en_US.UTF-8 @@ -13,7 +15,14 @@ if [ "$DEV_MODE" == true ]; then export NODE_TLS_REJECT_UNAUTHORIZED=0 fi +# copy static files into volume for direct access by nginx +# https://github.com/bigbluebutton/bigbluebutton/issues/10739 +if [ -d "/html5-static" ]; then + rm -rf /html5-static/* + cp -r /app/programs/web.browser/* /html5-static +fi + rm -f /app/programs/server/assets/app/config/settings.yml dockerize \ -template /app/programs/server/assets/app/config/settings.yml.tmpl:/app/programs/server/assets/app/config/settings.yml \ - node main.js + su-exec meteor node main.js diff --git a/mod/html5/settings.yml b/mod/html5/settings.yml index af9509c..59b6f19 100644 --- a/mod/html5/settings.yml +++ b/mod/html5/settings.yml @@ -11,7 +11,7 @@ public: appName: BigBlueButton HTML5 Client bbbServerVersion: 2.2 copyright: "©2020 BigBlueButton Inc." - html5ClientBuild: 1095 + html5ClientBuild: 1114 helpLink: https://bigbluebutton.org/html5/ lockOnJoin: true cdn: "" @@ -36,7 +36,8 @@ public: # can generate excessive overhead to the server. We recommend # this value to be kept under 12. breakoutRoomLimit: {{ .Env.BREAKOUTROOM_LIMIT }} - customHeartbeat: false + # https://github.com/bigbluebutton/bigbluebutton/pull/10826 + customHeartbeat: true defaultSettings: application: animations: true @@ -244,6 +245,7 @@ public: time: 5000 chat: enabled: {{ .Env.CHAT_ENABLED }} + bufferChatInsertsMs: 0 startClosed: {{ .Env.CHAT_START_CLOSED }} min_message_length: 1 max_message_length: 5000 @@ -292,6 +294,16 @@ public: #user activates microphone. iceGatheringTimeout: 5000 sipjsHackViaWs: false + #Websocket keepAlive interval (seconds). You may set this to prevent + #websocket disconnection in some environments. When set, BBB will send + #'\r\n\r\n' string through SIP.js's websocket. If not set, default value + #is 0. + websocketKeepAliveInterval: 30 + #Debounce time (seconds) for sending SIP.js's websocket keep alive message. + #If not set, default value is 10. + websocketKeepAliveDebounce: 10 + #Trace sip/audio messages in browser. If not set, default value is false. + traceSip: false presentation: defaultPresentationFile: default.pdf panZoomThrottle: 32 @@ -441,6 +453,11 @@ private: timeout: 5000 password: null debug: false + metrics: + queueMetrics: false + metricsDumpIntervalMs: 60000 + metricsFolderPath: METRICS_FOLDER + removeMeetingOnEnd: true channels: toAkkaApps: to-akka-apps-redis-channel toThirdParty: to-third-party-redis-channel @@ -464,6 +481,8 @@ private: enabled: false heapdump: enabled: false + heapdumpFolderPath: HEAPDUMP_FOLDER + heapdumpIntervalMs: 3600000 minBrowserVersions: - browser: chrome version: 72 diff --git a/mod/nginx/bbb/bbb-html5.nginx b/mod/nginx/bbb/bbb-html5.nginx index fbe6cd2..69324a0 100644 --- a/mod/nginx/bbb/bbb-html5.nginx +++ b/mod/nginx/bbb/bbb-html5.nginx @@ -1,10 +1,28 @@ -location /html5client { +location @html5client { proxy_pass http://html5:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } +location /html5client/compatibility { + alias /html5-static/app/compatibility; +} +location /html5client/fonts { + alias /html5-static/app/fonts; +} +location /html5client/resources { + alias /html5-static/app/resources; +} +location /html5client/svgs { + alias /html5-static/app/svgs; +} + +location /html5client { + alias /html5-static; + try_files $uri @html5client; +} + location /_timesync { proxy_pass http://html5:3000; } diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile index 4f25704..89ccae2 100644 --- a/mod/recordings/Dockerfile +++ b/mod/recordings/Dockerfile @@ -40,7 +40,7 @@ RUN mkdir -p \ /var/log/bigbluebutton \ /var/log/bigbluebutton/presentation -ENV TAG v2.2.30 +ENV TAG v2.2.31 # add bbb-record-core (lib, scripts and Gemfile) RUN cd /usr/local/bigbluebutton/core \ From c5b21c7f896de9408b2d7eb0e03f454eea905d6d Mon Sep 17 00:00:00 2001 From: chandi Date: Tue, 22 Dec 2020 00:53:40 +0100 Subject: [PATCH 6/8] enable cameraQualityThresholds --- mod/html5/settings.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/html5/settings.yml b/mod/html5/settings.yml index 59b6f19..35cb8a9 100644 --- a/mod/html5/settings.yml +++ b/mod/html5/settings.yml @@ -195,7 +195,7 @@ public: # profile: a camera profile id from the cameraProfiles configuration array # that will be applied to all cameras when threshold is hit cameraQualityThresholds: - enabled: false + enabled: true thresholds: - threshold: 8 profile: low-u8 From 81e170736448d2af016bb1cd232c80e15da081d9 Mon Sep 17 00:00:00 2001 From: chandi Date: Tue, 22 Dec 2020 01:11:05 +0100 Subject: [PATCH 7/8] integrate workaround for freeswitch ssl bug #9667 https://github.com/bigbluebutton/bbb-install/commit/08df6bc7893c4aec9e7a8f68a5798264fecde708 --- mod/html5/settings.yml | 2 +- mod/nginx/bbb/sip.nginx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mod/html5/settings.yml b/mod/html5/settings.yml index 35cb8a9..1d64f53 100644 --- a/mod/html5/settings.yml +++ b/mod/html5/settings.yml @@ -293,7 +293,7 @@ public: #so far. Increasing this value might help avoiding 1004 error when #user activates microphone. iceGatheringTimeout: 5000 - sipjsHackViaWs: false + sipjsHackViaWs: true #Websocket keepAlive interval (seconds). You may set this to prevent #websocket disconnection in some environments. When set, BBB will send #'\r\n\r\n' string through SIP.js's websocket. If not set, default value diff --git a/mod/nginx/bbb/sip.nginx b/mod/nginx/bbb/sip.nginx index ee4993e..3d85d6c 100644 --- a/mod/nginx/bbb/sip.nginx +++ b/mod/nginx/bbb/sip.nginx @@ -1,5 +1,5 @@ location /ws { - proxy_pass https://$freeswitch_addr:7443; + proxy_pass http://$freeswitch_addr:5066; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; From c2f00afc59397f9e5093b60a5b64a2533c7e7a38 Mon Sep 17 00:00:00 2001 From: chandi Date: Wed, 23 Dec 2020 12:14:04 +0100 Subject: [PATCH 8/8] release v2.2.31-1 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86babba..1cbdd93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,11 @@ # Changelog ## Unreleased + +## Release v2.2.31-1 (2020-12-23) #84 - Applied v2.2.31 changes @alangecker +- Fix when presentation after recording unable to delete and change access rights #82 #63 @cardinalit +- Enable cameraQualityThresholds by default ## Release v2.2.30-1 (2020-12-01) #79 - Applied v2.2.30 changes @alangecker