From 4770d09c65ba135a627b18b47b32d2b388446918 Mon Sep 17 00:00:00 2001 From: chandi Date: Tue, 20 Oct 2020 20:43:12 +0200 Subject: [PATCH 1/9] apply v2.2.28 changes --- CHANGELOG.md | 2 +- mod/html5/Dockerfile | 4 ++-- mod/html5/settings.yml | 9 +++++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b8136d..23a2086 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog ## Unreleased - +- Applied v2.2.28 changes @alangecker ## Release v2.2.27-2 (2020-10-16) - Increase proxy timeout to avoid aborting websocket connections @alangecker diff --git a/mod/html5/Dockerfile b/mod/html5/Dockerfile index b582f77..6f7274c 100644 --- a/mod/html5/Dockerfile +++ b/mod/html5/Dockerfile @@ -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.27 +ENV TAG v2.2.28 RUN cd ~ \ && svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bigbluebutton-html5 \ && mv ~/bigbluebutton-html5 ~/source \ @@ -51,4 +51,4 @@ USER meteor ENTRYPOINT ["/entrypoint.sh"] # lets set the tag again, so that it is include in the image for later version retrieval -ENV TAG v2.2.27 +ENV TAG v2.2.28 diff --git a/mod/html5/settings.yml b/mod/html5/settings.yml index fb766ae..b49367f 100644 --- a/mod/html5/settings.yml +++ b/mod/html5/settings.yml @@ -11,12 +11,15 @@ public: appName: BigBlueButton HTML5 Client bbbServerVersion: 2.2 copyright: "©2020 BigBlueButton Inc." - html5ClientBuild: 1032 + html5ClientBuild: 1058 helpLink: https://bigbluebutton.org/html5/ lockOnJoin: true cdn: "" basename: "/html5client" askForFeedbackOnLogout: false + # the default logoutUrl matches window.location.origin i.e. bigbluebutton.org for demo.bigbluebutton.org + # in some cases we want only custom logoutUrl to be used when provided on meeting create. Default value: true + allowDefaultLogoutUrl: true allowUserLookup: false enableNetworkInformation: false enableLimitOfViewersInWebcam: false @@ -280,7 +283,7 @@ public: callHangupMaximumRetries: 10 echoTestNumber: 'echo' relayOnlyOnReconnect: false - listenOnlyCallTimeout: 15000 + listenOnlyCallTimeout: 25000 presentation: defaultPresentationFile: default.pdf panZoomThrottle: 32 @@ -474,5 +477,7 @@ private: version: 50 - browser: electron version: [0, 36] + - browser: SamsungInternet + version: 10 - browser: YandexBrowser version: 19 From 32c9f7c77f250de84f7d26d9dfa50e086c790557 Mon Sep 17 00:00:00 2001 From: chandi Date: Tue, 20 Oct 2020 21:43:23 +0200 Subject: [PATCH 2/9] development.md: example config & note about issue #66 --- CHANGELOG.md | 1 + docs/development.md | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23a2086..51e1b5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased - Applied v2.2.28 changes @alangecker +- Updated `development.md` docs (example config & note about issue #66) @alangecker ## Release v2.2.27-2 (2020-10-16) - Increase proxy timeout to avoid aborting websocket connections @alangecker diff --git a/docs/development.md b/docs/development.md index 4a72642..7d1624f 100644 --- a/docs/development.md +++ b/docs/development.md @@ -10,9 +10,11 @@ ENABLE_HTTPS_PROXY=true #ENABLE_COTURN=true #ENABLE_GREENLIGHT=true #ENABLE_WEBHOOKS=true +#ENABLE_PROMETHEUS_EXPORTER=true +#ENABLE_RECORDING=true DOMAIN=10.7.7.1 -EXTERNAL_IP=10.7.7.1 +EXTERNAL_IPv4=10.7.7.1 STUN_IP=216.93.246.18 STUN_PORT=3478 TURN_SERVER=turns:localhost:465?transport=tcp @@ -37,6 +39,9 @@ RAILS_SECRET=SuperRailsSecret https://mconf.github.io/api-mate/#server=https://10.7.7.1/bigbluebutton/api&sharedSecret=SuperSecret * At some point your browser will warn you about an invalid certificate, but you can press _"Accept the Risk and Continue" / "Proceed to 10.7.7.1 (unsafe)"_ +## Notes +- Joining a room via Greenlight currently leads to a "401 session not found" error (see https://github.com/alangecker/bigbluebutton-docker/issues/66). Use the API Mate instead + ## Changes - After doing some changes you usually must... * rebuild the image(s): \ From 1c4dbe2f98874db88c3befcc87f0817e1818b648 Mon Sep 17 00:00:00 2001 From: chandi Date: Wed, 21 Oct 2020 00:04:47 +0200 Subject: [PATCH 3/9] allow setting the breakout room limit --- CHANGELOG.md | 1 + docker-compose.yml | 1 + mod/html5/settings.yml | 2 +- sample.env | 6 ++++++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51e1b5c..0afe888 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Unreleased - Applied v2.2.28 changes @alangecker - Updated `development.md` docs (example config & note about issue #66) @alangecker +- Allow setting the breakout room limit @alangecker ## Release v2.2.27-2 (2020-10-16) - Increase proxy timeout to avoid aborting websocket connections @alangecker diff --git a/docker-compose.yml b/docker-compose.yml index 581f2a1..ba05fd1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -151,6 +151,7 @@ services: DISABLE_VIDEO_PREVIEW: ${DISABLE_VIDEO_PREVIEW:-false} CHAT_ENABLED: ${CHAT_ENABLED:-true} CHAT_START_CLOSED: ${CHAT_START_CLOSED:-false} + BREAKOUTROOM_LIMIT: ${BREAKOUTROOM_LIMIT:-8} DEV_MODE: ${DEV_MODE:-} networks: bbb-net: diff --git a/mod/html5/settings.yml b/mod/html5/settings.yml index b49367f..fb1cfa1 100644 --- a/mod/html5/settings.yml +++ b/mod/html5/settings.yml @@ -35,7 +35,7 @@ public: # Warning: increasing the limit of breakout rooms per meeting # can generate excessive overhead to the server. We recommend # this value to be kept under 12. - breakoutRoomLimit: 8 + breakoutRoomLimit: {{ .Env.BREAKOUTROOM_LIMIT }} defaultSettings: application: animations: true diff --git a/sample.env b/sample.env index 89da73b..bba1830 100644 --- a/sample.env +++ b/sample.env @@ -114,6 +114,12 @@ DISABLE_SOUND_MUTED=false # set to true to disable announcement "You are the only person in this conference" DISABLE_SOUND_ALONE=false +# maximum count of breakout rooms per meeting +# Warning: increasing the limit of breakout rooms per meeting +# can generate excessive overhead to the server. We recommend +# this value to be kept under 12. +BREAKOUTROOM_LIMIT=8 + # ==================================== # GREENLIGHT CONFIGURATION # ==================================== From da7967afc72492397e7b4162a08c9943934c892f Mon Sep 17 00:00:00 2001 From: Matthias Larisch Date: Wed, 21 Oct 2020 17:12:07 +0200 Subject: [PATCH 4/9] Add reasoning for custom freeswitch-mod-opusfile --- mod/freeswitch/Dockerfile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mod/freeswitch/Dockerfile b/mod/freeswitch/Dockerfile index 5b0ce8a..927c940 100644 --- a/mod/freeswitch/Dockerfile +++ b/mod/freeswitch/Dockerfile @@ -76,10 +76,11 @@ RUN cd /etc \ && rm -rf /etc/freeswitch/.svn # the current available freeswitch-mod-opusfile is broken, -# it can't write any .opus files. -# there is already a fix, but it is not included yet. +# it can't write any .opus files. The fix provided in # https://github.com/signalwire/freeswitch/pull/719/files -# we rather switch to the binary built by bigbluebutton and add its dependencies +# is not sufficient as the module still comes without opus +# write support, so we rather switch to the binary built +# by bigbluebutton and add its dependencies RUN wget -O /usr/lib/freeswitch/mod/mod_opusfile.so https://github.com/bbb-pkg/bbb-freeswitch-core/raw/43f3a47af1fcf5ea559e16bb28b900c925a7f2c3/opt/freeswitch/lib/freeswitch/mod/mod_opusfile.so \ && wget -O /tmp/libopusenc0_0.2.1-1bbb1_amd64.deb https://launchpad.net/~bigbluebutton/+archive/ubuntu/support/+files/libopusenc0_0.2.1-1bbb1_amd64.deb \ && dpkg -i /tmp/libopusenc0_0.2.1-1bbb1_amd64.deb \ From 286a89a9cc82703557370c90536b5362578ca2af Mon Sep 17 00:00:00 2001 From: chandi Date: Wed, 21 Oct 2020 19:26:01 +0200 Subject: [PATCH 5/9] etherpad: add skin and additional changes from the fork --- .gitmodules | 6 ++++++ mod/etherpad/Dockerfile | 27 ++++++++++++++------------- mod/etherpad/bbb-etherpad-plugin | 1 + mod/etherpad/bbb-etherpad-skin | 1 + mod/etherpad/settings.json | 28 +++++++++++++++++++++------- 5 files changed, 43 insertions(+), 20 deletions(-) create mode 160000 mod/etherpad/bbb-etherpad-plugin create mode 160000 mod/etherpad/bbb-etherpad-skin diff --git a/.gitmodules b/.gitmodules index a504ee2..8afffbd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,9 @@ [submodule "bbb-webrtc-sfu"] path = bbb-webrtc-sfu url = https://github.com/bigbluebutton/bbb-webrtc-sfu.git +[submodule "mod/etherpad/bbb-etherpad-skin"] + path = mod/etherpad/bbb-etherpad-skin + url = https://github.com/alangecker/bbb-etherpad-skin +[submodule "mod/etherpad/bbb-etherpad-plugin"] + path = mod/etherpad/bbb-etherpad-plugin + url = https://github.com/alangecker/bbb-etherpad-plugin diff --git a/mod/etherpad/Dockerfile b/mod/etherpad/Dockerfile index d6aaa0f..a56835e 100644 --- a/mod/etherpad/Dockerfile +++ b/mod/etherpad/Dockerfile @@ -2,20 +2,21 @@ FROM etherpad/etherpad:1.8.6 USER root -# install etherpad plugins -# - ep_delete_after_delay_lite -# - ep_redis_publisher RUN apt-get update \ - && apt-get install -y git \ - && npm install ep_delete_after_delay_lite git+https://git@github.com/pedrobmarin/ep_redis_publisher.git - -# apply "Including more data at pad update event" -# https://github.com/mconf/etherpad-lite/commit/5bc37fc92714e82165386dc0a5dd467609169a87 -# this is a necessary patch for the closed captions -RUN sed -i "s|hooks\.callAll(\"padUpdate\".*)|hooks\.callAll(\"padUpdate\", {'pad':this, 'author': author, 'revs': newRev, 'changeset': aChangeset});|" /opt/etherpad-lite/src/node/db/Pad.js - -COPY settings.json /opt/etherpad-lite/settings.json -COPY entrypoint.sh /entrypoint.sh + && apt-get install -y git USER etherpad + +RUN npm install \ + ep_delete_after_delay_lite \ + git+https://git@github.com/pedrobmarin/ep_redis_publisher.git + +# add skin from git submodule +COPY --chown=etherpad:0 ./bbb-etherpad-skin /opt/etherpad-lite/src/static/skins/bigbluebutton + +# add plugin from git submodule +COPY --chown=etherpad:0 ./bbb-etherpad-plugin /opt/etherpad-lite/node_modules/ep_bigbluebutton_patches + +COPY settings.json /opt/etherpad-lite/settings.json +COPY entrypoint.sh /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file diff --git a/mod/etherpad/bbb-etherpad-plugin b/mod/etherpad/bbb-etherpad-plugin new file mode 160000 index 0000000..6c28508 --- /dev/null +++ b/mod/etherpad/bbb-etherpad-plugin @@ -0,0 +1 @@ +Subproject commit 6c28508afde7c10aeec64403c43bf909cae60c74 diff --git a/mod/etherpad/bbb-etherpad-skin b/mod/etherpad/bbb-etherpad-skin new file mode 160000 index 0000000..05ad435 --- /dev/null +++ b/mod/etherpad/bbb-etherpad-skin @@ -0,0 +1 @@ +Subproject commit 05ad435b3e935c2563b69bc5b937d1f3fd50fe5a diff --git a/mod/etherpad/settings.json b/mod/etherpad/settings.json index c5bd1a9..768e67f 100644 --- a/mod/etherpad/settings.json +++ b/mod/etherpad/settings.json @@ -80,7 +80,7 @@ * - "colibris": the new experimental skin (since Etherpad 1.8), candidate to * become the default in Etherpad 2.0 */ - "skinName": "no-skin", + "skinName": "bigbluebutton", /* * IP and port which etherpad should bind at @@ -312,14 +312,26 @@ "trustProxy": true, /* - * When embedding the pads in an iframe set this to true. - */ - "forceSameSiteNone": false, - + * Settings controlling the session cookie issued by Etherpad. + */ + "cookie": { + /* + * Value of the SameSite cookie property. "Lax" is recommended unless + * Etherpad will be embedded in an iframe from another site, in which case + * this must be set to "None". Note: "None" will not work (the browser will + * not send the cookie to Etherpad) unless https is used to access Etherpad + * (either directly or via a reverse proxy with "trustProxy" set to true). + * + * "Strict" is not recommended because it has few security benefits but + * significant usability drawbacks vs. "Lax". See + * https://stackoverflow.com/q/41841880 for discussion. + */ + "sameSite": "None" + }, /* * Privacy: disable IP logging */ - "disableIPlogging": false, + "disableIPlogging": true, /* * Time (in seconds) to automatically reconnect pad when a "Force reconnect" @@ -527,6 +539,8 @@ */ ] - } // logconfig + }, // logconfig + /* Override any strings found in locale directories */ + "customLocaleStrings": {} } \ No newline at end of file From 95daedfc0ea77988da2a482f0f72201efb7ea7d7 Mon Sep 17 00:00:00 2001 From: chandi Date: Wed, 21 Oct 2020 19:26:25 +0200 Subject: [PATCH 6/9] nginx: reenable authorization for notes --- mod/nginx/bbb/notes.nginx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/mod/nginx/bbb/notes.nginx b/mod/nginx/bbb/notes.nginx index ea8705d..a802dc0 100644 --- a/mod/nginx/bbb/notes.nginx +++ b/mod/nginx/bbb/notes.nginx @@ -11,14 +11,8 @@ location /pad/p/ { proxy_set_header X-Forwarded-Proto https; # for EP to set secure cookie flag when https is used proxy_http_version 1.1; - # there is currently no viable source for building the - # bbb-etherpad including sesstiontokens which got introduced in v2.2.21 - # https://github.com/bigbluebutton/bigbluebutton/issues/10159 - # - # We disable the authentication for now. - - # auth_request /bigbluebutton/connection/checkAuthorization; - # auth_request_set $auth_status $upstream_status; + auth_request /bigbluebutton/connection/checkAuthorization; + auth_request_set $auth_status $upstream_status; } location /pad { @@ -53,8 +47,8 @@ location /pad/socket.io { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; - # auth_request /bigbluebutton/connection/checkAuthorization; - # auth_request_set $auth_status $upstream_status; + auth_request /bigbluebutton/connection/checkAuthorization; + auth_request_set $auth_status $upstream_status; } location /static { From 70fdf23594ed685c9bb7bb859df42c0d5fd2619e Mon Sep 17 00:00:00 2001 From: chandi Date: Wed, 21 Oct 2020 21:26:22 +0200 Subject: [PATCH 7/9] added changelog entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0afe888..fc40f0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased - Applied v2.2.28 changes @alangecker +- Etherpad skin & plugin #69 @alangecker - Updated `development.md` docs (example config & note about issue #66) @alangecker - Allow setting the breakout room limit @alangecker From 42b338f6678a50034e1ab1573d71ec522c40c5da Mon Sep 17 00:00:00 2001 From: chandi Date: Wed, 21 Oct 2020 22:13:37 +0200 Subject: [PATCH 8/9] jump to bbb-webrtc-sfu v2.4.19 --- bbb-webrtc-sfu | 2 +- scripts/upgrade | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bbb-webrtc-sfu b/bbb-webrtc-sfu index 2a6343f..2b77265 160000 --- a/bbb-webrtc-sfu +++ b/bbb-webrtc-sfu @@ -1 +1 @@ -Subproject commit 2a6343f6ccdf16edaf50a73b776bf54ccad39b23 +Subproject commit 2b77265d05625d5df8126ced381df5ccb59160a6 diff --git a/scripts/upgrade b/scripts/upgrade index 07bdb12..f10213e 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -17,8 +17,9 @@ else sed -i 's/EXTERNAL_IP=/EXTERNAL_IPv4=/' .env echo "" - echo "# pull newest bbb-webrtc-sfu" - git submodule update --remote + echo "# pull newest git submodules" + git submodule init + git submodule update echo "" From e1ff0141244755937ebb52fb2b2e035292ad75be Mon Sep 17 00:00:00 2001 From: chandi Date: Thu, 22 Oct 2020 11:57:57 +0200 Subject: [PATCH 9/9] Release v2.2.28-1 --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc40f0d..98c963b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Changelog ## Unreleased +- + +## Release v2.2.28-1 (2020-10-22) #67 - Applied v2.2.28 changes @alangecker - Etherpad skin & plugin #69 @alangecker - Updated `development.md` docs (example config & note about issue #66) @alangecker