From f5cf50b2eb8fbab3a8b21b515e3175e0247fc20c Mon Sep 17 00:00:00 2001 From: chandi Date: Wed, 6 Oct 2021 13:43:53 +0200 Subject: [PATCH 01/15] v2.4-rc-1: node v14, learning dashboard, base images update --- docker-compose.tmpl.yml | 1 + mod/apps-akka/Dockerfile | 8 ++-- mod/bbb-web/Dockerfile | 10 ++--- mod/bbb-web/bbb-web.properties | 2 + mod/etherpad/Dockerfile | 4 +- mod/freeswitch/Dockerfile | 2 +- mod/fsesl-akka/Dockerfile | 10 ++--- mod/html5/Dockerfile | 12 +++--- mod/html5/settings.yml | 59 ++++++++++++++++++++------ mod/nginx/Dockerfile | 14 +++--- mod/nginx/bbb/learning-dashboard.nginx | 9 ++++ mod/recordings/Dockerfile | 4 +- mod/webhooks/Dockerfile | 6 +-- mod/webrtc-sfu/bbb-webrtc-sfu | 2 +- sample.env | 3 ++ scripts/upgrade | 2 +- 16 files changed, 97 insertions(+), 51 deletions(-) create mode 100644 mod/nginx/bbb/learning-dashboard.nginx diff --git a/docker-compose.tmpl.yml b/docker-compose.tmpl.yml index b585b73..97aad4a 100644 --- a/docker-compose.tmpl.yml +++ b/docker-compose.tmpl.yml @@ -56,6 +56,7 @@ services: STUN_SERVER: stun:${STUN_IP}:${STUN_PORT} TURN_SERVER: ${TURN_SERVER:-} TURN_SECRET: ${TURN_SECRET:-} + ENABLE_LEARNING_DASHBOARD: ${ENABLE_LEARNING_DASHBOARD:-true} NUMBER_OF_BACKEND_NODEJS_PROCESSES: {{ .Env.NUMBER_OF_BACKEND_NODEJS_PROCESSES }} volumes: - bigbluebutton:/var/bigbluebutton diff --git a/mod/apps-akka/Dockerfile b/mod/apps-akka/Dockerfile index 8835ef7..5469450 100644 --- a/mod/apps-akka/Dockerfile +++ b/mod/apps-akka/Dockerfile @@ -1,9 +1,9 @@ -FROM mozilla/sbt:8u181_1.2.7 AS builder +FROM mozilla/sbt:8u212_1.2.8 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.3.14 +ENV TAG_COMMON_MESSAGE v2.4-rc-1 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -14,7 +14,7 @@ RUN cd /bbb-common-message \ # =================================================== -ENV TAG v2.3.14 +ENV TAG v2.4-rc-1 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-apps /source \ && rm -rf /source/.svn @@ -31,7 +31,7 @@ RUN apt update && apt-get install -y wget gosu # install dockerize ENV DOCKERIZE_VERSION v0.6.1 -RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ +RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz diff --git a/mod/bbb-web/Dockerfile b/mod/bbb-web/Dockerfile index ea71da5..995754e 100644 --- a/mod/bbb-web/Dockerfile +++ b/mod/bbb-web/Dockerfile @@ -1,9 +1,9 @@ -FROM mozilla/sbt:8u181_1.2.7 AS builder +FROM mozilla/sbt:8u212_1.2.8 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.3.14 +ENV TAG_COMMON_MESSAGE v2.4-rc-1 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -26,7 +26,7 @@ RUN cd /opt \ ENV PATH="/opt/gradle-6.7/bin:${PATH}" # download bbb-common-web -ENV TAG_COMMON_WEB v2.3.14 +ENV TAG_COMMON_WEB v2.4-rc-1 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_WEB/bbb-common-web /bbb-common-web \ && rm -rf /bbb-common-message/.svn @@ -35,7 +35,7 @@ RUN cd /bbb-common-web \ && ./deploy.sh # download bbb-web -ENV TAG_WEB v2.3.14 +ENV TAG_WEB v2.4-rc-1 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_WEB/bigbluebutton-web /bbb-web \ && rm -rf /bbb-web/.svn @@ -68,7 +68,7 @@ RUN groupadd -g 998 bigbluebutton && useradd -m -u 998 -g bigbluebutton bigblueb # add dockerize ENV DOCKERIZE_VERSION v0.6.1 -RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ +RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz diff --git a/mod/bbb-web/bbb-web.properties b/mod/bbb-web/bbb-web.properties index 1c7d96c..0f500d2 100644 --- a/mod/bbb-web/bbb-web.properties +++ b/mod/bbb-web/bbb-web.properties @@ -18,3 +18,5 @@ beans.presentationService.defaultUploadedPresentation=https://test.bigbluebutton {{else}} beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/default.pdf {{end}} + +learningDashboardEnabled={{ .Env.ENABLE_LEARNING_DASHBOARD }} \ No newline at end of file diff --git a/mod/etherpad/Dockerfile b/mod/etherpad/Dockerfile index cd956e8..8065d0b 100644 --- a/mod/etherpad/Dockerfile +++ b/mod/etherpad/Dockerfile @@ -1,4 +1,4 @@ -FROM etherpad/etherpad:1.8.13 +FROM etherpad/etherpad:1.8.14 USER root @@ -9,7 +9,7 @@ USER etherpad # only used to trigger a fresh run of the npm install # command without caching -ENV TAG v2.3.0 +ENV TAG v2.4-rc-1 RUN npm install \ git+https://git@github.com/pedrobmarin/ep_pad_ttl.git \ diff --git a/mod/freeswitch/Dockerfile b/mod/freeswitch/Dockerfile index 2cb4d30..01733ba 100644 --- a/mod/freeswitch/Dockerfile +++ b/mod/freeswitch/Dockerfile @@ -8,7 +8,7 @@ echo 'deb http://files.freeswitch.org/repo/deb/debian-release/ buster main' > /e # install dockerize ENV DOCKERIZE_VERSION v0.6.1 -RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ +RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz diff --git a/mod/fsesl-akka/Dockerfile b/mod/fsesl-akka/Dockerfile index bace1ea..544b7d6 100644 --- a/mod/fsesl-akka/Dockerfile +++ b/mod/fsesl-akka/Dockerfile @@ -1,9 +1,9 @@ -FROM mozilla/sbt:8u181_1.2.7 AS builder +FROM mozilla/sbt:8u212_1.2.8 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.3.14 +ENV TAG_COMMON_MESSAGE v2.4-rc-1 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -13,7 +13,7 @@ RUN cd /bbb-common-message \ # =================================================== -ENV TAG_FSESL v2.3.14 +ENV TAG_FSESL v2.4-rc-1 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_FSESL/bbb-fsesl-client /bbb-fsesl-client \ && rm -rf /bbb-fsesl-client/.svn @@ -21,7 +21,7 @@ RUN cd /bbb-fsesl-client \ && ./deploy.sh -ENV TAG v2.3.14 +ENV TAG v2.4-rc-1 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-fsesl /source \ && rm -rf /source/.svn @@ -38,7 +38,7 @@ RUN apt update && apt-get install -y wget gosu # install dockerize ENV DOCKERIZE_VERSION v0.6.1 -RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ +RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz diff --git a/mod/html5/Dockerfile b/mod/html5/Dockerfile index cbb78d1..6c5c94d 100644 --- a/mod/html5/Dockerfile +++ b/mod/html5/Dockerfile @@ -1,4 +1,4 @@ -FROM node:12-buster-slim AS builder +FROM node:14-buster-slim AS builder RUN apt-get update && apt-get install -y wget curl subversion python3 build-essential RUN groupadd -g 2000 meteor && useradd -m -u 2001 -g meteor meteor @@ -6,15 +6,15 @@ RUN groupadd -g 2000 meteor && useradd -m -u 2001 -g meteor meteor # download dockerize ENV DOCKERIZE_VERSION v0.6.1 -RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ +RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz USER meteor -ENV METEOR_VERSION 1.10.2 +ENV METEOR_VERSION 2.3.6 RUN curl -sL https://install.meteor.com?release=$METEOR_VERSION | sed s/--progress-bar/-sL/g | /bin/sh -ENV TAG v2.3.14 +ENV TAG v2.4-rc-1 RUN cd ~ \ && svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bigbluebutton-html5 \ && mv ~/bigbluebutton-html5 ~/source \ @@ -29,7 +29,7 @@ RUN cd ~/app/bundle/programs/server \ # ------------------------------ -FROM node:12-alpine +FROM node:14-alpine RUN addgroup -g 2000 meteor && \ adduser -D -u 2001 -G meteor meteor && \ @@ -42,4 +42,4 @@ COPY settings.yml /app/programs/server/assets/app/config/settings.yml.tmpl ENTRYPOINT ["/entrypoint.sh"] # lets set the tag again, so that it is include in the image for later version retrieval -ENV TAG v2.3.14 +ENV TAG v2.4-rc-1 diff --git a/mod/html5/settings.yml b/mod/html5/settings.yml index a05e340..1fcf6ff 100644 --- a/mod/html5/settings.yml +++ b/mod/html5/settings.yml @@ -13,13 +13,13 @@ public: # Skips the echo test when connecting with microphone. skipCheck: {{ .Env.DISABLE_ECHO_TEST }} # Skips the echo test when connecting with microphone right after user - # joins the room the first time. Subsequents joins to microphone won't - # have echo test skipped, for example if user leave and join mic again - # or reloading page and joining mic again. + # joins the room the first time. Subsequent joins to microphone won't + # have echo test skipped, for example if user leaves and joins the mic + # again or reloading page and joining mic again. # This setting won't have effect if skipCheck = true skipCheckOnJoin: false # - # Allow users to change microphone/speaker dinamically + # Allow users to change microphone/speaker dynamically # The device is changed immediately, without the need to rejoin # audio. Default value is true # Firefox users: if no output devices is shown, you may set the flag @@ -28,9 +28,9 @@ public: # clientTitle: {{ .Env.CLIENT_TITLE }} appName: BigBlueButton HTML5 Client - bbbServerVersion: 2.3-docker + bbbServerVersion: "2.4-docker" copyright: '©2021 BigBlueButton Inc.' - html5ClientBuild: "1845-docker" + html5ClientBuild: "2277-docker" helpLink: https://bigbluebutton.org/html5/ lockOnJoin: true cdn: '' @@ -44,7 +44,6 @@ public: allowUserLookup: false dynamicGuestPolicy: true enableGuestLobbyMessage: true - enableNetworkInformation: false enableLimitOfViewersInWebcam: false enableMultipleCameras: true enableTalkingIndicator: true @@ -93,9 +92,9 @@ public: # # Shows stats about download and upload rates, audio jitter, lost packets # and turn information - enableNetworkStats: false + enableNetworkStats: true # Enable the button to allow users to copy network stats to clipboard - enableCopyNetworkStatsButton: false + enableCopyNetworkStatsButton: true defaultSettings: application: animations: true @@ -103,11 +102,14 @@ public: chatPushAlerts: false userJoinAudioAlerts: false userJoinPushAlerts: false + userLeaveAudioAlerts: false + userLeavePushAlerts: false raiseHandAudioAlerts: true raiseHandPushAlerts: true guestWaitingAudioAlerts: true guestWaitingPushAlerts: true paginationEnabled: true + pushLayoutToEveryone: false # fallbackLocale: if the locale the client is loaded in does not have a # translation a string, it will use the translation from the locale # specified in fallbackLocale. Note that fallbackLocale should be a @@ -188,9 +190,6 @@ public: - warning externalVideoPlayer: enabled: true - networkMonitoring: - enableNetworkMonitoring: false - packetLostThreshold: 10 kurento: wsUrl: wss://{{ .Env.DOMAIN }}/bbb-webrtc-sfu # Valid for video-provider. Time (ms) before its WS connection times out @@ -206,6 +205,14 @@ public: # subscribe reattempt increases the reconnection timer up to this maxTimeout: 60000 screenshare: + # Experimental. True is the canonical behavior. Flip to false to reverse + # the negotiation flow for subscribers. + subscriberOffering: true + # Experimental. Server wide configuration to choose which bbb-webrtc-sfu + # media server adapter should be used for screen sharing. + # Default is undefined, which means the default setting in bbb-webrtc-sfu + # prevails (screenshareMediaServer). + #mediaServer: Kurento bitrate: 1500 mediaTimeouts: maxConnectionAttempts: 2 @@ -305,6 +312,16 @@ public: enableVideo: true enableVideoMenu: true enableListenOnly: true + # Experimental. Server wide configuration to choose which bbb-webrtc-sfu + # media server adapter should be used for listen only. + # Default is undefined, which means the default setting in bbb-webrtc-sfu + # prevails (listenOnlyMediaServer). + #listenOnlyMediaServer: Kurento + # Experimental. Server wide configuration to choose which bbb-webrtc-sfu + # media server adapter should be used for webcams. + # Default is undefined, which means the default setting in bbb-webrtc-sfu + # prevails (videoMediaServer). + #videoMediaServer: Kurento autoShareWebcam: {{ .Env.AUTO_SHARE_WEBCAM }} skipVideoPreview: {{ .Env.DISABLE_VIDEO_PREVIEW }} skipVideoPreviewOnFirstJoin: false @@ -399,6 +416,7 @@ public: maxCustom: 5 allowDragAndDropFile: false maxTypedAnswerLength: 45 + chatMessage: true captions: enabled: true enableDictation: false @@ -434,6 +452,7 @@ public: chat_poll_result: PUBLIC_CHAT_POLL_RESULT typingIndicator: enabled: true + moderatorChatEmphasized: true note: enabled: true url: https://{{ .Env.DOMAIN }}/pad @@ -452,6 +471,9 @@ public: echoTestNumber: 'echo' relayOnlyOnReconnect: false listenOnlyCallTimeout: 25000 + # Experimental. True is the canonical behavior. Flip to false to reverse + # the negotiation flow for LO subscribers. + listenOnlyOffering: true #Timeout (ms) for gathering ICE candidates. When this timeout expires #the SDP is sent to the server with the candidates the browser gathered #so far. Increasing this value might help avoiding 1004 error when @@ -499,7 +521,6 @@ public: help: STATS_HELP_URL presentation: allowDownloadable: true - defaultPresentationFile: default.pdf panZoomThrottle: 32 restoreOnUpdate: false uploadEndpoint: '/bigbluebutton/presentation/upload' @@ -550,6 +571,7 @@ public: moderator: false mobile: true guest: true + sharingWebcam: true whiteboard: annotationsQueueProcessInterval: 60 cursorInterval: 150 @@ -646,6 +668,16 @@ public: throttleInterval: 400 flushOnClose: true logTag: '' + virtualBackgrounds: + enabled: true + storedOnBBB: true + showThumbnails: true + imagesPath: /resources/images/virtual-backgrounds/ + thumbnailsPath: /resources/images/virtual-backgrounds/thumbnails/ + fileNames: + - home.jpg + - coffeeshop.jpg + - board.jpg private: analytics: includeChat: true @@ -711,4 +743,3 @@ private: version: 10 - browser: YandexBrowser version: 19 - \ No newline at end of file diff --git a/mod/nginx/Dockerfile b/mod/nginx/Dockerfile index 6a0e23a..82ee09e 100644 --- a/mod/nginx/Dockerfile +++ b/mod/nginx/Dockerfile @@ -4,20 +4,20 @@ RUN apk add subversion git # -------------------- +ENV TAG_LEARNING_DASHBOARD v2.4-rc-1 +RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_LEARNING_DASHBOARD/bbb-learning-dashboard /bbb-learning-dashboard && rm -r /bbb-learning-dashboard/.svn +RUN cd /bbb-learning-dashboard && npm ci && npm run build + ENV TAG_PLAYBACK v3.1.0 ENV REACT_APP_BBB_PLAYBACK_BUILD=$TAG_PLAYBACK - -# apparently there is currently no github release & tag created -# for the latest bbb-playback version shipped with 2.3-alpha-6 -# so we use the master branch -# RUN svn checkout https://github.com/bigbluebutton/bbb-playback/tags/$TAG_PLAYBACK /bbb-playback -RUN git clone https://github.com/bigbluebutton/bbb-playback.git /bbb-playback && cd /bbb-playback && git checkout 5934114aa434aba9b73b1a4c2ce228d18f276610 -RUN cd /bbb-playback && npm install && npm run-script build +RUN svn checkout https://github.com/bigbluebutton/bbb-playback/tags/$TAG_PLAYBACK /bbb-playback && rm -r /bbb-playback/.svn +RUN cd /bbb-playback && npm ci && npm run build # -------------------- FROM nginx:1.21-alpine +COPY --from=builder /bbb-learning-dashboard/build /www/learning-dashboard COPY --from=builder /bbb-playback/build /www/playback/presentation/2.3 COPY ./bbb /etc/nginx/bbb COPY ./bigbluebutton /etc/nginx/conf.d/default.conf diff --git a/mod/nginx/bbb/learning-dashboard.nginx b/mod/nginx/bbb/learning-dashboard.nginx new file mode 100644 index 0000000..af549bf --- /dev/null +++ b/mod/nginx/bbb/learning-dashboard.nginx @@ -0,0 +1,9 @@ +location ~ /learning-dashboard/([0-9a-f]+-[0-9]+)/(.*) { + root /var/bigbluebutton/learning-dashboard/; + autoindex off; +} + +location /learning-dashboard/ { + alias /www/learning-dashboard/; + autoindex off; +} diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile index c91e8aa..10cf1ea 100644 --- a/mod/recordings/Dockerfile +++ b/mod/recordings/Dockerfile @@ -36,7 +36,7 @@ RUN cd /tmp \ # add dockerize ENV DOCKERIZE_VERSION v0.6.1 -RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ +RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz @@ -45,7 +45,7 @@ RUN mkdir -p \ /usr/local/bigbluebutton/core \ /etc/bigbluebutton -ENV TAG v2.3.14 +ENV TAG v2.4-rc-1 # add bbb-record-core (lib, scripts and Gemfile) RUN cd /usr/local/bigbluebutton/core \ diff --git a/mod/webhooks/Dockerfile b/mod/webhooks/Dockerfile index 2992d07..f2e12fa 100644 --- a/mod/webhooks/Dockerfile +++ b/mod/webhooks/Dockerfile @@ -1,8 +1,8 @@ -FROM node:12-alpine +FROM node:14-alpine # download dockerize ENV DOCKERIZE_VERSION v0.6.1 -RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ +RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && apk add subversion \ @@ -13,7 +13,7 @@ RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSI USER webhooks -ENV TAG v2.3.4 +ENV TAG v2.4-rc-1 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bbb-webhooks /app \ && rm -rf /app/.svn \ && cd /app && npm install --production diff --git a/mod/webrtc-sfu/bbb-webrtc-sfu b/mod/webrtc-sfu/bbb-webrtc-sfu index 4f10ca8..e7c88d6 160000 --- a/mod/webrtc-sfu/bbb-webrtc-sfu +++ b/mod/webrtc-sfu/bbb-webrtc-sfu @@ -1 +1 @@ -Subproject commit 4f10ca89ee638d78fee364e3932f80ed5cc7496b +Subproject commit e7c88d652e9af13cbc668c924a4a0ce867f907fb diff --git a/sample.env b/sample.env index f9c6596..cbe3b8e 100644 --- a/sample.env +++ b/sample.env @@ -144,6 +144,9 @@ DISABLE_SOUND_ALONE=false # this value to be kept under 12. BREAKOUTROOM_LIMIT=8 +# set to false to disable the learning dashboard +ENABLE_LEARNING_DASHBOARD=true + # ==================================== # Tuning # ==================================== diff --git a/scripts/upgrade b/scripts/upgrade index 941a288..d1fab6a 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -26,7 +26,7 @@ else echo "" echo "# pull newest images" - docker-compose pull + docker-compose pull --ignore-pull-failures echo "" echo "# rebuild images" From c2aa6ad42b089fff34b3f1b518529c7104bc45d4 Mon Sep 17 00:00:00 2001 From: chandi Date: Sat, 27 Nov 2021 17:38:40 +0100 Subject: [PATCH 02/15] v2.4-rc-5, debian bullseye, mongo 5.0 --- CHANGELOG.md | 4 ++++ docker-compose.tmpl.yml | 2 +- mod/apps-akka/Dockerfile | 6 +++--- mod/bbb-web/Dockerfile | 16 ++++++++-------- mod/etherpad/Dockerfile | 7 +++++-- mod/freeswitch/Dockerfile | 6 +++--- mod/fsesl-akka/Dockerfile | 8 ++++---- mod/html5/Dockerfile | 15 +++++++-------- mod/nginx/Dockerfile | 2 +- mod/nginx/bbb/bbb-html5.nginx | 8 ++++++++ mod/nginx/bbb/notes-playback.nginx | 4 ++++ mod/periodic/Dockerfile | 2 +- mod/recordings/Dockerfile | 2 +- mod/webhooks/Dockerfile | 2 +- mod/webrtc-sfu/Dockerfile | 20 +++++++++++++++----- mod/webrtc-sfu/bbb-webrtc-sfu | 2 +- 16 files changed, 67 insertions(+), 39 deletions(-) create mode 100644 mod/nginx/bbb/notes-playback.nginx diff --git a/CHANGELOG.md b/CHANGELOG.md index 2072775..634adc4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Changelog ## Unreleased +- BigBlueButton v2.4 @alangecker [#159](https://github.com/bigbluebutton/docker/pull/159) +- Enable optimization for Prometheus Exporter when recording is enabled @omidmaldar [#161](https://github.com/bigbluebutton/docker/pull/161) +- Automatically remove old recordings after N days @omidmaldar [#162](https://github.com/bigbluebutton/docker/pull/162) + ## Release v2.3.14-1 (2021-10-06) - Applied changes v2.3.5-v2.3.14 @alangecker diff --git a/docker-compose.tmpl.yml b/docker-compose.tmpl.yml index 97aad4a..4c65f3c 100644 --- a/docker-compose.tmpl.yml +++ b/docker-compose.tmpl.yml @@ -160,7 +160,7 @@ services: ipv4_address: 10.7.7.5 mongodb: - image: mongo:4.4 + image: mongo:5.0 restart: unless-stopped volumes: - ./mod/mongo/mongod.conf:/etc/mongod.conf diff --git a/mod/apps-akka/Dockerfile b/mod/apps-akka/Dockerfile index 5469450..97067dc 100644 --- a/mod/apps-akka/Dockerfile +++ b/mod/apps-akka/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u212_1.2.8 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.4-rc-1 +ENV TAG_COMMON_MESSAGE v2.4-rc-5 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -14,7 +14,7 @@ RUN cd /bbb-common-message \ # =================================================== -ENV TAG v2.4-rc-1 +ENV TAG v2.4-rc-5 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-apps /source \ && rm -rf /source/.svn @@ -25,7 +25,7 @@ RUN cd /source \ # =================================================== -FROM openjdk:8-jre-slim-buster +FROM openjdk:8-jre-slim-bullseye RUN apt update && apt-get install -y wget gosu diff --git a/mod/bbb-web/Dockerfile b/mod/bbb-web/Dockerfile index 995754e..1f32681 100644 --- a/mod/bbb-web/Dockerfile +++ b/mod/bbb-web/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u212_1.2.8 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.4-rc-1 +ENV TAG_COMMON_MESSAGE v2.4-rc-5 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -26,7 +26,7 @@ RUN cd /opt \ ENV PATH="/opt/gradle-6.7/bin:${PATH}" # download bbb-common-web -ENV TAG_COMMON_WEB v2.4-rc-1 +ENV TAG_COMMON_WEB v2.4-rc-5 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_WEB/bbb-common-web /bbb-common-web \ && rm -rf /bbb-common-message/.svn @@ -35,7 +35,7 @@ RUN cd /bbb-common-web \ && ./deploy.sh # download bbb-web -ENV TAG_WEB v2.4-rc-1 +ENV TAG_WEB v2.4-rc-5 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_WEB/bigbluebutton-web /bbb-web \ && rm -rf /bbb-web/.svn @@ -50,7 +50,7 @@ RUN unzip -q /bbb-web/build/libs/bigbluebutton-0.10.0.war -d /dist # =================================================== -FROM openjdk:8-jre-slim-buster +FROM openjdk:8-jre-slim-bullseye RUN apt-get update && apt-get install -y \ wget unzip gosu locales \ @@ -77,10 +77,10 @@ RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VE RUN mkdir -p /usr/share/bigbluebutton/blank \ && cd /usr/share/bigbluebutton/blank \ && wget \ - https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.3.4/bigbluebutton-config/slides/blank-svg.svg \ - https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.3.4/bigbluebutton-config/slides/blank-thumb.png \ - https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.3.4/bigbluebutton-config/slides/blank-presentation.pdf \ - https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.3.4/bigbluebutton-config/slides/blank-png.png \ + https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-5/bigbluebutton-config/slides/blank-svg.svg \ + https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-5/bigbluebutton-config/slides/blank-thumb.png \ + https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-5/bigbluebutton-config/slides/blank-presentation.pdf \ + https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-5/bigbluebutton-config/slides/blank-png.png \ && sed -i 's///g' /etc/ImageMagick-6/policy.xml # get bbb-web diff --git a/mod/etherpad/Dockerfile b/mod/etherpad/Dockerfile index 8065d0b..9da82f6 100644 --- a/mod/etherpad/Dockerfile +++ b/mod/etherpad/Dockerfile @@ -1,4 +1,5 @@ -FROM etherpad/etherpad:1.8.14 +FROM etherpad/etherpad:1.8.14 +# TODO: update to 1.8.15 as soon as available USER root @@ -9,9 +10,11 @@ USER etherpad # only used to trigger a fresh run of the npm install # command without caching -ENV TAG v2.4-rc-1 +ENV TAG v2.4-rc-5 +# ep_cursortrace: using mconf's fork due to https://github.com/ether/ep_cursortrace/pull/25 not being accepted upstream RUN npm install \ + git+https://github.com/mconf/ep_cursortrace.git \ git+https://git@github.com/pedrobmarin/ep_pad_ttl.git \ git+https://git@github.com/pedrobmarin/ep_redis_publisher.git \ git+https://git@github.com/ether/ep_disable_chat.git \ diff --git a/mod/freeswitch/Dockerfile b/mod/freeswitch/Dockerfile index 01733ba..7c38e25 100644 --- a/mod/freeswitch/Dockerfile +++ b/mod/freeswitch/Dockerfile @@ -1,10 +1,10 @@ -FROM debian:buster-slim +FROM debian:bullseye-slim # add freeswitch repo RUN apt-get update && \ apt-get install -y --no-install-recommends subversion curl wget ca-certificates gnupg gnupg2 lsb-release unzip && \ -curl -k https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc | apt-key add - && \ -echo 'deb http://files.freeswitch.org/repo/deb/debian-release/ buster main' > /etc/apt/sources.list.d/freeswitch.list +wget -O /usr/share/keyrings/freeswitch-archive-keyring.gpg https://files.freeswitch.org/repo/deb/debian-release/freeswitch-archive-keyring.gpg && \ +echo 'deb [signed-by=/usr/share/keyrings/freeswitch-archive-keyring.gpg] http://files.freeswitch.org/repo/deb/debian-release/ bullseye main' > /etc/apt/sources.list.d/freeswitch.list # install dockerize ENV DOCKERIZE_VERSION v0.6.1 diff --git a/mod/fsesl-akka/Dockerfile b/mod/fsesl-akka/Dockerfile index 544b7d6..aab2101 100644 --- a/mod/fsesl-akka/Dockerfile +++ b/mod/fsesl-akka/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u212_1.2.8 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.4-rc-1 +ENV TAG_COMMON_MESSAGE v2.4-rc-5 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -13,7 +13,7 @@ RUN cd /bbb-common-message \ # =================================================== -ENV TAG_FSESL v2.4-rc-1 +ENV TAG_FSESL v2.4-rc-5 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_FSESL/bbb-fsesl-client /bbb-fsesl-client \ && rm -rf /bbb-fsesl-client/.svn @@ -21,7 +21,7 @@ RUN cd /bbb-fsesl-client \ && ./deploy.sh -ENV TAG v2.4-rc-1 +ENV TAG v2.4-rc-5 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-fsesl /source \ && rm -rf /source/.svn @@ -32,7 +32,7 @@ RUN unzip /source/target/universal/bbb-fsesl-akka-0.0.2.zip -d / # # =================================================== -FROM openjdk:8-jre-slim-buster +FROM openjdk:8-jre-slim-bullseye RUN apt update && apt-get install -y wget gosu diff --git a/mod/html5/Dockerfile b/mod/html5/Dockerfile index 6c5c94d..825d5ac 100644 --- a/mod/html5/Dockerfile +++ b/mod/html5/Dockerfile @@ -1,4 +1,4 @@ -FROM node:14-buster-slim AS builder +FROM node:14.18.1-bullseye-slim AS builder RUN apt-get update && apt-get install -y wget curl subversion python3 build-essential RUN groupadd -g 2000 meteor && useradd -m -u 2001 -g meteor meteor @@ -11,17 +11,16 @@ RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VE && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz USER meteor -ENV METEOR_VERSION 2.3.6 +ENV METEOR_VERSION 2.5 RUN curl -sL https://install.meteor.com?release=$METEOR_VERSION | sed s/--progress-bar/-sL/g | /bin/sh -ENV TAG v2.4-rc-1 +ENV TAG v2.4-rc-5 RUN cd ~ \ && svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bigbluebutton-html5 \ && mv ~/bigbluebutton-html5 ~/source \ && cd ~/source \ - && ~/.meteor/meteor npm install --production \ - && npm rebuild node-sass \ - && METEOR_DISABLE_OPTIMISTIC_CACHING=1 ~/.meteor/meteor build --directory ~/app \ + && ~/.meteor/meteor npm ci --production \ + && METEOR_DISABLE_OPTIMISTIC_CACHING=1 ~/.meteor/meteor build --architecture os.linux.x86_64 --directory ~/app \ && rm -rf ~/source RUN cd ~/app/bundle/programs/server \ @@ -29,7 +28,7 @@ RUN cd ~/app/bundle/programs/server \ # ------------------------------ -FROM node:14-alpine +FROM node:14.18.1-alpine RUN addgroup -g 2000 meteor && \ adduser -D -u 2001 -G meteor meteor && \ @@ -42,4 +41,4 @@ COPY settings.yml /app/programs/server/assets/app/config/settings.yml.tmpl ENTRYPOINT ["/entrypoint.sh"] # lets set the tag again, so that it is include in the image for later version retrieval -ENV TAG v2.4-rc-1 +ENV TAG v2.4-rc-5 diff --git a/mod/nginx/Dockerfile b/mod/nginx/Dockerfile index 82ee09e..3fc4c05 100644 --- a/mod/nginx/Dockerfile +++ b/mod/nginx/Dockerfile @@ -4,7 +4,7 @@ RUN apk add subversion git # -------------------- -ENV TAG_LEARNING_DASHBOARD v2.4-rc-1 +ENV TAG_LEARNING_DASHBOARD v2.4-rc-5 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_LEARNING_DASHBOARD/bbb-learning-dashboard /bbb-learning-dashboard && rm -r /bbb-learning-dashboard/.svn RUN cd /bbb-learning-dashboard && npm ci && npm run build diff --git a/mod/nginx/bbb/bbb-html5.nginx b/mod/nginx/bbb/bbb-html5.nginx index 809635f..fefc7cf 100644 --- a/mod/nginx/bbb/bbb-html5.nginx +++ b/mod/nginx/bbb/bbb-html5.nginx @@ -25,6 +25,14 @@ location /html5client/fonts { alias /html5-static/app/fonts; } +location /html5client/wasm { + types { + application/wasm wasm; + } + gzip_static on; + alias /html5-static/app/wasm; +} + location /html5client/ { alias /html5-static; try_files $uri @html5client; diff --git a/mod/nginx/bbb/notes-playback.nginx b/mod/nginx/bbb/notes-playback.nginx new file mode 100644 index 0000000..16f7c43 --- /dev/null +++ b/mod/nginx/bbb/notes-playback.nginx @@ -0,0 +1,4 @@ +location /notes { + root /var/bigbluebutton/published; + index index.html index.htm; +} \ No newline at end of file diff --git a/mod/periodic/Dockerfile b/mod/periodic/Dockerfile index 95535b4..56fea76 100644 --- a/mod/periodic/Dockerfile +++ b/mod/periodic/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:buster-slim +FROM debian:bullseye-slim # -- install mongo cli RUN apt-get update \ diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile index 10cf1ea..f200cde 100644 --- a/mod/recordings/Dockerfile +++ b/mod/recordings/Dockerfile @@ -45,7 +45,7 @@ RUN mkdir -p \ /usr/local/bigbluebutton/core \ /etc/bigbluebutton -ENV TAG v2.4-rc-1 +ENV TAG v2.4-rc-5 # add bbb-record-core (lib, scripts and Gemfile) RUN cd /usr/local/bigbluebutton/core \ diff --git a/mod/webhooks/Dockerfile b/mod/webhooks/Dockerfile index f2e12fa..d864fa0 100644 --- a/mod/webhooks/Dockerfile +++ b/mod/webhooks/Dockerfile @@ -13,7 +13,7 @@ RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VE USER webhooks -ENV TAG v2.4-rc-1 +ENV TAG v2.4-rc-5 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bbb-webhooks /app \ && rm -rf /app/.svn \ && cd /app && npm install --production diff --git a/mod/webrtc-sfu/Dockerfile b/mod/webrtc-sfu/Dockerfile index d315afa..72884c4 100644 --- a/mod/webrtc-sfu/Dockerfile +++ b/mod/webrtc-sfu/Dockerfile @@ -1,7 +1,15 @@ -FROM node:14-alpine +FROM node:14-bullseye-slim -RUN apk add git \ - && adduser -D -u 2004 -g webrtc-sfu webrtc-sfu + +RUN apt-get update && apt-get -y install \ + git \ + make \ + python \ + python3-pip \ + g++ \ + ffmpeg + +RUN useradd --uid 2004 --user-group webrtc-sfu ADD ./bbb-webrtc-sfu app @@ -17,8 +25,10 @@ RUN cp config/default.example.yml config/production.yml \ && chown -R webrtc-sfu:webrtc-sfu config \ && rm .git \ && npm install --unsafe-perm \ - && npm cache clear --force - + && npm cache clear --force \ + && rm -rf node_modules/mediasoup/worker/out/Release/subprojects \ + && rm -rf node_modules/mediasoup/worker/out/Release/mediasoup-worker.p \ + && rm -rf node_modules/mediasoup/worker/out/Release/deps COPY docker-entrypoint.sh /app/docker-entrypoint.sh USER webrtc-sfu diff --git a/mod/webrtc-sfu/bbb-webrtc-sfu b/mod/webrtc-sfu/bbb-webrtc-sfu index e7c88d6..c33878c 160000 --- a/mod/webrtc-sfu/bbb-webrtc-sfu +++ b/mod/webrtc-sfu/bbb-webrtc-sfu @@ -1 +1 @@ -Subproject commit e7c88d652e9af13cbc668c924a4a0ce867f907fb +Subproject commit c33878c89e5f4486ca980086e814491ece436e1c From 9284035e835f929dc2f2e184f6b5b96d538f5c0f Mon Sep 17 00:00:00 2001 From: chandi Date: Sat, 27 Nov 2021 17:39:23 +0100 Subject: [PATCH 03/15] html5: use override config file --- mod/html5/Dockerfile | 2 +- mod/html5/bbb-html5.yml | 27 ++ mod/html5/entrypoint.sh | 4 +- mod/html5/settings.yml | 745 ---------------------------------------- 4 files changed, 30 insertions(+), 748 deletions(-) create mode 100644 mod/html5/bbb-html5.yml delete mode 100644 mod/html5/settings.yml diff --git a/mod/html5/Dockerfile b/mod/html5/Dockerfile index 825d5ac..97ac31a 100644 --- a/mod/html5/Dockerfile +++ b/mod/html5/Dockerfile @@ -36,7 +36,7 @@ RUN addgroup -g 2000 meteor && \ 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 +COPY bbb-html5.yml /app/bbb-html5.yml.tmpl ENTRYPOINT ["/entrypoint.sh"] diff --git a/mod/html5/bbb-html5.yml b/mod/html5/bbb-html5.yml new file mode 100644 index 0000000..5194e43 --- /dev/null +++ b/mod/html5/bbb-html5.yml @@ -0,0 +1,27 @@ +public: + app: + listenOnlyMode: {{ .Env.LISTEN_ONLY_MODE }} + skipCheck: {{ .Env.DISABLE_ECHO_TEST }} + clientTitle: {{ .Env.CLIENT_TITLE }} + appName: BigBlueButton HTML5 Client (docker) + breakouts: + breakoutRoomLimit: {{ .Env.BREAKOUTROOM_LIMIT }} + kurento: + wsUrl: wss://{{ .Env.DOMAIN }}/bbb-webrtc-sfu + autoShareWebcam: {{ .Env.AUTO_SHARE_WEBCAM }} + skipVideoPreview: {{ .Env.DISABLE_VIDEO_PREVIEW }} + chat: + enabled: {{ .Env.CHAT_ENABLED }} + startClosed: {{ .Env.CHAT_START_CLOSED }} + note: + url: https://{{ .Env.DOMAIN }}/pad +private: + app: + host: 0.0.0.0 + etherpad: + apikey: {{ .Env.ETHERPAD_API_KEY }} + host: etherpad + port: 9001 + redis: + host: redis + port: '6379' diff --git a/mod/html5/entrypoint.sh b/mod/html5/entrypoint.sh index 19f91f9..bb4d61a 100755 --- a/mod/html5/entrypoint.sh +++ b/mod/html5/entrypoint.sh @@ -12,6 +12,7 @@ export LANG=en_US.UTF-8 export INSTANCE_MAX=1 export ENVIRONMENT_TYPE=production export NODE_VERSION=node-v12.16.1-linux-x64 +export BBB_HTML5_LOCAL_SETTINGS=/app/bbb-html5.yml if [ "$DEV_MODE" == true ]; then echo "DEV_MODE=true, disable TLS certificate rejecting" @@ -36,8 +37,7 @@ if [ "$BBB_HTML5_ROLE" == "frontend" ] && [ "$INSTANCE_ID" == "1" ]; then 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 \ + -template /app/bbb-html5.yml.tmpl:/app/bbb-html5.yml \ su-exec meteor \ node --max-old-space-size=2048 --max_semi_space_size=128 main.js $PARAM diff --git a/mod/html5/settings.yml b/mod/html5/settings.yml deleted file mode 100644 index 1fcf6ff..0000000 --- a/mod/html5/settings.yml +++ /dev/null @@ -1,745 +0,0 @@ -public: - app: - mobileFontSize: 16px - desktopFontSize: 14px - audioChatNotification: false - # Shows the audio modal when user joins the room. The audio modal prompts - # user to select an option ("Microphone" and/or "Listen only") for joining - # audio - autoJoin: true - # Disables the listen only option in audio modal. - listenOnlyMode: {{ .Env.LISTEN_ONLY_MODE }} - forceListenOnly: false - # Skips the echo test when connecting with microphone. - skipCheck: {{ .Env.DISABLE_ECHO_TEST }} - # Skips the echo test when connecting with microphone right after user - # joins the room the first time. Subsequent joins to microphone won't - # have echo test skipped, for example if user leaves and joins the mic - # again or reloading page and joining mic again. - # This setting won't have effect if skipCheck = true - skipCheckOnJoin: false - # - # Allow users to change microphone/speaker dynamically - # The device is changed immediately, without the need to rejoin - # audio. Default value is true - # Firefox users: if no output devices is shown, you may set the flag - # "media.setsinkid.enabled" to make it work properly - # enableDynamicAudioDeviceSelection: true - # - clientTitle: {{ .Env.CLIENT_TITLE }} - appName: BigBlueButton HTML5 Client - bbbServerVersion: "2.4-docker" - copyright: '©2021 BigBlueButton Inc.' - html5ClientBuild: "2277-docker" - helpLink: https://bigbluebutton.org/html5/ - lockOnJoin: true - cdn: '' - basename: '/html5client' - # Use https URL of CSS file. Example: https://docs.bigbluebutton.org/admin/customize.html#examples - customStyleUrl: null - 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 - dynamicGuestPolicy: true - enableGuestLobbyMessage: true - enableLimitOfViewersInWebcam: false - enableMultipleCameras: true - enableTalkingIndicator: true - mirrorOwnWebcam: false - viewersInWebcam: 8 - ipv4FallbackDomain: '' - allowLogout: true - allowFullscreen: true - preloadNextSlides: 2 - warnAboutUnsavedContentOnMeetingEnd: false - mutedAlert: - enabled: true - interval: 200 - threshold: -50 - duration: 4000 - remainingTimeThreshold: 30 - remainingTimeAlertThreshold: 1 - enableDebugWindow: true - # Warning: increasing the limit of breakout rooms per meeting - # can generate excessive overhead to the server. We recommend - # this value to be kept under 16. - breakouts: - breakoutRoomLimit: {{ .Env.BREAKOUTROOM_LIMIT }} - sendInvitationToIncludedModerators: false - # https://github.com/bigbluebutton/bigbluebutton/pull/10826 - customHeartbeat: false - showAllAvailableLocales: true - # Show "Audio Filters for Microphone" option in settings menu. - # When set to true, users are able to enable/disable microphone constraints, - # otherwise default values for 'microphoneConstraints' option - # are used. - # For more info, see 'microphoneConstraints' option in this config. - # If not set, default value is true. - showAudioFilters: true - raiseHandActionButton: - enabled: true - # If enabled, before joining microphone the client will perform a trickle - # ICE against Kurento and use the information about successfull - # candidate-pairs to filter out local candidates in SIP.js's SDP. - # Try enabling this setting in scenarios where the listenonly mode works, - # but microphone doesn't (for example, when using VPN). - # For compatibility check "Browser compatbility" section in: - # https://developer.mozilla.org/en-US/docs/Web/API/RTCDtlsTransport/iceTransport - # This is an EXPERIMENTAL setting and the default value is false - # experimentalUseKmsTrickleIceForMicrophone: false - # - # Shows stats about download and upload rates, audio jitter, lost packets - # and turn information - enableNetworkStats: true - # Enable the button to allow users to copy network stats to clipboard - enableCopyNetworkStatsButton: true - defaultSettings: - application: - animations: true - chatAudioAlerts: false - chatPushAlerts: false - userJoinAudioAlerts: false - userJoinPushAlerts: false - userLeaveAudioAlerts: false - userLeavePushAlerts: false - raiseHandAudioAlerts: true - raiseHandPushAlerts: true - guestWaitingAudioAlerts: true - guestWaitingPushAlerts: true - paginationEnabled: true - pushLayoutToEveryone: false - # fallbackLocale: if the locale the client is loaded in does not have a - # translation a string, it will use the translation from the locale - # specified in fallbackLocale. Note that fallbackLocale should be a - # 100% translated locale for best user experience - fallbackLocale: en - # overrideLocale (default is null): if set (for example to 'de') will - # force all clients to display the German translations of the strings. - # Users can individually set their preferred locale through Settings, - # but on first page load overrideLocale will trump the browser's - # preferred locale - overrideLocale: null - #Audio constraints for microphone. Use this to control browser's - #filters, such as AGC (Auto Gain Control) , Echo Cancellation, - #Noise Supression, etc. - #For more deails, see: - # https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints - #Currently, google chrome sets {ideal: true} for autoGainControl, - #echoCancellation and noiseSuppression, if not set. - #The accepted value for each constraint is an object of type - #https://developer.mozilla.org/en-US/docs/Web/API/ConstrainBoolean - #These values are used as initial constraints for every new participant, - #and can be changed by user in: Settings > Application > Microphone - #Audio Filters. - # microphoneConstraints: - # autoGainControl: - # ideal: true - # echoCancellation: - # ideal: true - # noiseSuppression: - # ideal: true - audio: - inputDeviceId: undefined - outputDeviceId: undefined - dataSaving: - viewParticipantsWebcams: true - viewScreenshare: true - shortcuts: - openOptions: - accesskey: O - descId: openOptions - toggleUserList: - accesskey: U - descId: toggleUserList - toggleMute: - accesskey: M - descId: toggleMute - joinAudio: - accesskey: J - descId: joinAudio - leaveAudio: - accesskey: L - descId: leaveAudio - togglePublicChat: - accesskey: P - descId: togglePublicChat - hidePrivateChat: - accesskey: H - descId: hidePrivateChat - closePrivateChat: - accesskey: G - descId: closePrivateChat - raiseHand: - accesskey: R - descId: raiseHand - openActions: - accesskey: A - descId: openActions - openDebugWindow: - accesskey: K - descId: openDebugWindow - branding: - displayBrandingArea: true - connectionTimeout: 60000 - showHelpButton: true - effectiveConnection: - - critical - - danger - - warning - externalVideoPlayer: - enabled: true - kurento: - wsUrl: wss://{{ .Env.DOMAIN }}/bbb-webrtc-sfu - # Valid for video-provider. Time (ms) before its WS connection times out - # and tries to reconnect. - wsConnectionTimeout: 4000 - # Time in milis to wait for the browser to return a gUM call (used in video-preview) - gUMTimeout: 20000 - cameraTimeouts: - # Base camera timeout: used as the camera *sharing* timeout and - # as the minimum camera subscribe reconnection timeout - baseTimeout: 30000 - # Max timeout: used as the max camera subscribe reconnection timeout. Each - # subscribe reattempt increases the reconnection timer up to this - maxTimeout: 60000 - screenshare: - # Experimental. True is the canonical behavior. Flip to false to reverse - # the negotiation flow for subscribers. - subscriberOffering: true - # Experimental. Server wide configuration to choose which bbb-webrtc-sfu - # media server adapter should be used for screen sharing. - # Default is undefined, which means the default setting in bbb-webrtc-sfu - # prevails (screenshareMediaServer). - #mediaServer: Kurento - bitrate: 1500 - mediaTimeouts: - maxConnectionAttempts: 2 - # Base screen media timeout (send|recv) - baseTimeout: 30000 - # Max timeout: used as the max camera subscribe reconnection timeout. Each - # subscribe reattempt increases the reconnection timer up to this - maxTimeout: 60000 - timeoutIncreaseFactor: 1.5 - constraints: - video: - frameRate: - ideal: 5 - max: 10 - width: - max: 2560 - height: - max: 1600 - audio: true - # cameraProfiles is an array of: - # - id: profile identifier - # name: human-readable profile name - # bitrate - # hidden: whether this profile will be hidden in the video preview dropdown - # constraints: a video media constraints dictionary (without the video key) - cameraProfiles: - # id: unique identifier of the profile - # name: name of the profile visible to users - # default: if this is the default profile which is pre-selected - # bitrate: the average bitrate for used for a webcam stream - # constraints: - # # Optional constraints put on the requested video a browser MAY honor - # # For a detailed list on possible values see: - # # https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints - # # Examples: - # width: requested width of the camera stream - # frameRate: requested framerate - - id: low-u30 - name: low-u30 - bitrate: 30 - hidden: true - constraints: - frameRate: 3 - - id: low-u25 - name: low-u25 - bitrate: 40 - hidden: true - constraints: - frameRate: 3 - - id: low-u20 - name: low-u20 - bitrate: 50 - hidden: true - constraints: - frameRate: 5 - - id: low-u15 - name: low-u15 - bitrate: 70 - hidden: true - constraints: - frameRate: 8 - - id: low-u12 - name: low-u12 - bitrate: 90 - hidden: true - constraints: - frameRate: 10 - - id: low-u8 - name: low-u8 - bitrate: 100 - hidden: true - constraints: - frameRate: 10 - - id: low - name: Low - default: false - bitrate: 100 - - id: medium - name: Medium - default: true - bitrate: 200 - - id: high - name: High - default: false - bitrate: 500 - constraints: - width: 1280 - frameRate: 15 - - id: hd - name: High definition - default: false - bitrate: 800 - constraints: - width: 1280 - frameRate: 30 - enableScreensharing: true - enableVideo: true - enableVideoMenu: true - enableListenOnly: true - # Experimental. Server wide configuration to choose which bbb-webrtc-sfu - # media server adapter should be used for listen only. - # Default is undefined, which means the default setting in bbb-webrtc-sfu - # prevails (listenOnlyMediaServer). - #listenOnlyMediaServer: Kurento - # Experimental. Server wide configuration to choose which bbb-webrtc-sfu - # media server adapter should be used for webcams. - # Default is undefined, which means the default setting in bbb-webrtc-sfu - # prevails (videoMediaServer). - #videoMediaServer: Kurento - autoShareWebcam: {{ .Env.AUTO_SHARE_WEBCAM }} - skipVideoPreview: {{ .Env.DISABLE_VIDEO_PREVIEW }} - skipVideoPreviewOnFirstJoin: false - # cameraSortingModes.paginationSorting: sorting mode to be applied when pagination is active - # cameraSortingModes.defaultSorting: sorting mode when pagination is not active (full mesh) - # Current implemented modes are: - # 'LOCAL_ALPHABETICAL' | 'VOICE_ACTIVITY_LOCAL' | 'LOCAL_VOICE_ACTIVITY' | 'LOCAL_PRESENTER_ALPHABETICAL' - # The algorithm names are self-explanatory. - cameraSortingModes: - defaultSorting: LOCAL_ALPHABETICAL - paginationSorting: VOICE_ACTIVITY_LOCAL - # Entry `thresholds` is an array of: - # - threshold: minimum number of cameras being shared for profile to applied - # profile: a camera profile id from the cameraProfiles configuration array - # that will be applied to all cameras when threshold is hit - cameraQualityThresholds: - enabled: true - thresholds: - - threshold: 8 - profile: low-u8 - - threshold: 12 - profile: low-u12 - - threshold: 15 - profile: low-u15 - - threshold: 20 - profile: low-u20 - - threshold: 25 - profile: low-u25 - - threshold: 30 - profile: low-u30 - pagination: - # WARNING: the pagination.enabled setting has moved to - # public.app.defaultSettings.application.paginationEnabled - # paginationToggleEnabled: show a pagination toggle in settings for the - # user to enable/disable it - paginationToggleEnabled: true - # how long (in ms) the negotiation will be debounced after a page change. - pageChangeDebounceTime: 2500 - # video page sizes for DESKTOP endpoints. It stands for the number of SUBSCRIBER streams. - # PUBLISHERS aren't accounted for . - # A page size of 0 (zero) means that the page size is unlimited (disabled). - desktopPageSizes: - moderator: 0 - viewer: 5 - # video page sizes for MOBILE endpoints - mobilePageSizes: - moderator: 2 - viewer: 2 - paginationThresholds: - enabled: false - thresholds: - - users: 30 - desktopPageSizes: - moderator: 25 - viewer: 25 - - users: 40 - desktopPageSizes: - moderator: 20 - viewer: 20 - - users: 50 - desktopPageSizes: - moderator: 16 - viewer: 16 - - users: 60 - desktopPageSizes: - moderator: 14 - viewer: 12 - - users: 70 - desktopPageSizes: - moderator: 12 - viewer: 10 - - users: 80 - desktopPageSizes: - moderator: 10 - viewer: 8 - - users: 90 - desktopPageSizes: - moderator: 8 - viewer: 6 - - users: 100 - desktopPageSizes: - moderator: 6 - viewer: 4 - syncUsersWithConnectionManager: - enabled: false - syncInterval: 60000 - allowOutsideCommands: - toggleRecording: false - toggleSelfVoice: false - poll: - enabled: true - maxCustom: 5 - allowDragAndDropFile: false - maxTypedAnswerLength: 45 - chatMessage: true - captions: - enabled: true - enableDictation: false - backgroundColor: '#000000' - fontColor: '#FFFFFF' - fontFamily: Calibri - fontSize: 24px - takeOwnership: true - lines: 2 - time: 5000 - chat: - enabled: {{ .Env.CHAT_ENABLED }} - itemsPerPage: 100 - timeBetweenFetchs: 1000 - enableSaveAndCopyPublicChat: true - bufferChatInsertsMs: 0 - startClosed: {{ .Env.CHAT_START_CLOSED }} - min_message_length: 1 - max_message_length: 5000 - grouping_messages_window: 10000 - type_system: SYSTEM_MESSAGE - type_public: PUBLIC_ACCESS - type_private: PRIVATE_ACCESS - system_userid: SYSTEM_MESSAGE - system_username: SYSTEM_MESSAGE - public_id: public - public_group_id: MAIN-PUBLIC-GROUP-CHAT - public_userid: public_chat_userid - public_username: public_chat_username - storage_key: UNREAD_CHATS - system_messages_keys: - chat_clear: PUBLIC_CHAT_CLEAR - chat_poll_result: PUBLIC_CHAT_POLL_RESULT - typingIndicator: - enabled: true - moderatorChatEmphasized: true - note: - enabled: true - url: https://{{ .Env.DOMAIN }}/pad - layout: - autoSwapLayout: false - hidePresentation: false - showParticipantsOnLogin: true - media: - stunTurnServersFetchAddress: '/bigbluebutton/api/stuns' - cacheStunTurnServers: true - fallbackStunServer: '' - mediaTag: '#remote-media' - callTransferTimeout: 5000 - callHangupTimeout: 2000 - callHangupMaximumRetries: 10 - echoTestNumber: 'echo' - relayOnlyOnReconnect: false - listenOnlyCallTimeout: 25000 - # Experimental. True is the canonical behavior. Flip to false to reverse - # the negotiation flow for LO subscribers. - listenOnlyOffering: true - #Timeout (ms) for gathering ICE candidates. When this timeout expires - #the SDP is sent to the server with the candidates the browser gathered - #so far. Increasing this value might help avoiding 1004 error when - #user activates microphone. - iceGatheringTimeout: 5000 - sipjsHackViaWs: false - # Mute/umute toggle throttle time - toggleMuteThrottleTime: 300 - #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 - # SDP semantics: plan-b|unified-plan - sdpSemantics: 'unified-plan' - stats: - enabled: true - interval: 10000 - timeout: 30000 - log: true - notification: - warning: false - error: true - jitter: - - 10 - - 20 - - 30 - loss: - - 0.05 - - 0.1 - - 0.2 - rtt: - - 500 - - 1000 - - 2000 - level: - - warning - - danger - - critical - help: STATS_HELP_URL - presentation: - allowDownloadable: true - panZoomThrottle: 32 - restoreOnUpdate: false - uploadEndpoint: '/bigbluebutton/presentation/upload' - uploadValidMimeTypes: - - extension: .pdf - mime: application/pdf - - extension: .doc - mime: application/msword - - extension: .docx - mime: application/vnd.openxmlformats-officedocument.wordprocessingml.document - - extension: .xls - mime: application/vnd.ms-excel - - extension: .xlsx - mime: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - - extension: .ppt - mime: application/vnd.ms-powerpoint - - extension: .pptx - mime: application/vnd.openxmlformats-officedocument.presentationml.presentation - - extension: .txt - mime: text/plain - - extension: .rtf - mime: application/rtf - - extension: .odt - mime: application/vnd.oasis.opendocument.text - - extension: .ods - mime: application/vnd.oasis.opendocument.spreadsheet - - extension: .odp - mime: application/vnd.oasis.opendocument.presentation - - extension: .odg - mime: application/vnd.oasis.opendocument.graphics - - extension: .odc - mime: application/vnd.oasis.opendocument.chart - - extension: .odi - mime: application/vnd.oasis.opendocument.image - - extension: .jpg - mime: image/jpeg - - extension: .jpeg - mime: image/jpeg - - extension: .png - mime: image/png - selectRandomUser: - enabled: true - countdown: false - user: - role_moderator: MODERATOR - role_viewer: VIEWER - label: - moderator: false - mobile: true - guest: true - sharingWebcam: true - whiteboard: - annotationsQueueProcessInterval: 60 - cursorInterval: 150 - annotations: - status: - start: DRAW_START - update: DRAW_UPDATE - end: DRAW_END - toolbar: - multiUserPenOnly: false - colors: - - label: black - value: '#000000' - - label: white - value: '#ffffff' - - label: red - value: '#ff0000' - - label: orange - value: '#ff8800' - - label: eletricLime - value: '#ccff00' - - label: Lime - value: '#00ff00' - - label: Cyan - value: '#00ffff' - - label: dodgerBlue - value: '#0088ff' - - label: blue - value: '#0000ff' - - label: violet - value: '#8800ff' - - label: magenta - value: '#ff00ff' - - label: silver - value: '#c0c0c0' - thickness: - - value: 14 - - value: 12 - - value: 10 - - value: 8 - - value: 6 - - value: 4 - - value: 2 - - value: 1 - font_sizes: - - value: 36 - - value: 32 - - value: 28 - - value: 24 - - value: 20 - - value: 16 - tools: - - icon: text_tool - value: text - - icon: line_tool - value: line - - icon: circle_tool - value: ellipse - - icon: triangle_tool - value: triangle - - icon: rectangle_tool - value: rectangle - - icon: pen_tool - value: pencil - - icon: hand - value: hand - presenterTools: - - text - - line - - ellipse - - triangle - - rectangle - - pencil - - hand - multiUserTools: - - text - - line - - ellipse - - triangle - - rectangle - - pencil - clientLog: - server: - enabled: false - level: info - console: - enabled: true - level: debug - external: - enabled: false - level: info - url: https://LOG_HOST/html5Log - method: POST - throttleInterval: 400 - flushOnClose: true - logTag: '' - virtualBackgrounds: - enabled: true - storedOnBBB: true - showThumbnails: true - imagesPath: /resources/images/virtual-backgrounds/ - thumbnailsPath: /resources/images/virtual-backgrounds/thumbnails/ - fileNames: - - home.jpg - - coffeeshop.jpg - - board.jpg -private: - analytics: - includeChat: true - app: - host: 0.0.0.0 - localesUrl: /locale-list - pencilChunkLength: 100 - loadSlidesFromHttpAlways: false - etherpad: - apikey: {{ .Env.ETHERPAD_API_KEY }} - version: 1.2.13 - host: etherpad - port: 9001 - redis: - host: redis - port: '6379' - 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 - subscribeTo: - - to-html5-redis-channel - - from-akka-apps-[^f]* - - from-third-party-redis-channel - - from-etherpad-redis-channel - async: - - from-akka-apps-wb-redis-channel - ignored: - - CheckAlivePongSysMsg - - DoLatencyTracerMsg - serverLog: - level: info - streamerLog: false - minBrowserVersions: - - browser: chrome - version: 72 - - browser: chromeMobileIOS - version: Infinity - - browser: firefox - version: 68 - - browser: firefoxMobile - version: 68 - - browser: edge - version: 79 - - browser: ie - version: Infinity - - browser: safari - version: [12, 1] - - browser: mobileSafari - version: [12, 1] - - browser: opera - version: 50 - - browser: electron - version: [0, 36] - - browser: SamsungInternet - version: 10 - - browser: YandexBrowser - version: 19 From 79734af55317040df92e9a094ab0304959f26d76 Mon Sep 17 00:00:00 2001 From: chandi Date: Sat, 27 Nov 2021 17:49:42 +0100 Subject: [PATCH 04/15] minor fixes for recording scripts --- mod/bbb-web/entrypoint.sh | 1 + mod/recordings/Dockerfile | 7 ++++++- mod/recordings/bbb-web.properties | 1 + mod/recordings/entrypoint.sh | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 mod/recordings/bbb-web.properties diff --git a/mod/bbb-web/entrypoint.sh b/mod/bbb-web/entrypoint.sh index 4762952..cf65053 100755 --- a/mod/bbb-web/entrypoint.sh +++ b/mod/bbb-web/entrypoint.sh @@ -13,6 +13,7 @@ mkdir -p /var/bigbluebutton/recording/status/ended mkdir -p /var/bigbluebutton/recording/status/published mkdir -p /var/bigbluebutton/captions/inbox mkdir -p /var/bigbluebutton/published +mkdir -p /var/bigbluebutton/published/notes mkdir -p /var/bigbluebutton/deleted mkdir -p /var/bigbluebutton/unpublished chown -R bigbluebutton:bigbluebutton /var/bigbluebutton diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile index f200cde..5b447c6 100644 --- a/mod/recordings/Dockerfile +++ b/mod/recordings/Dockerfile @@ -71,7 +71,11 @@ RUN cd /usr/local/bigbluebutton/core \ # log to file instead of journald RUN sed -i 's|Journald::Logger\.new.*|Logger.new("/var/log/bigbluebutton/recording.log")|g' /usr/local/bigbluebutton/core/lib/recordandplayback.rb && \ sed -i 's|Journald::Logger\.new.*|Logger.new("/var/log/bigbluebutton/recording.log")|g' /usr/local/bigbluebutton/core/scripts/rap-caption-inbox.rb && \ - sed -i 's|Logger\.new.*|Logger.new("/var/log/bigbluebutton/recording.log")|g' /usr/local/bigbluebutton/core/scripts/rap-process-worker.rb + sed -i 's|Logger\.new.*|Logger.new("/var/log/bigbluebutton/recording.log")|g' /usr/local/bigbluebutton/core/scripts/rap-process-worker.rb && \ + sed -i 's|Logger\.new.*|Logger.new("/var/log/bigbluebutton/recording.log")|g' /usr/local/bigbluebutton/core/scripts/archive/archive.rb && \ + sed -i 's|Logger\.new.*|Logger.new("/var/log/bigbluebutton/recording.log")|g' /usr/local/bigbluebutton/core/scripts/publish/presentation.rb && \ + sed -i 's|Logger\.new.*|Logger.new("/var/log/bigbluebutton/recording.log")|g' /usr/local/bigbluebutton/core/scripts/utils/captions.rb && \ + sed -i 's|Logger\.new.*|Logger.new("/var/log/bigbluebutton/recording.log")|g' /usr/local/bigbluebutton/core/scripts/process/presentation.rb # add bbb-record with some adjustments so bbb-record works in this environment RUN cd /usr/bin \ @@ -89,6 +93,7 @@ RUN groupadd -g 998 bigbluebutton && useradd -m -u 998 -g bigbluebutton bigblueb # https://github.com/alangecker/bigbluebutton-docker/issues/63 RUN chown -R 998:998 /usr/local/bigbluebutton +COPY bbb-web.properties /etc/bigbluebutton/bbb-web.properties.tmpl COPY bigbluebutton.yml /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml.tmpl COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY entrypoint.sh /entrypoint.sh diff --git a/mod/recordings/bbb-web.properties b/mod/recordings/bbb-web.properties new file mode 100644 index 0000000..c36b7e6 --- /dev/null +++ b/mod/recordings/bbb-web.properties @@ -0,0 +1 @@ +securitySalt={{ .Env.SHARED_SECRET }} \ No newline at end of file diff --git a/mod/recordings/entrypoint.sh b/mod/recordings/entrypoint.sh index 2b85140..7b73930 100755 --- a/mod/recordings/entrypoint.sh +++ b/mod/recordings/entrypoint.sh @@ -7,5 +7,6 @@ chown -R bigbluebutton:bigbluebutton /var/log/bigbluebutton dockerize \ -template /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml.tmpl:/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml \ + -template /etc/bigbluebutton/bbb-web.properties.tmpl:/etc/bigbluebutton/bbb-web.properties \ -stdout /var/log/bigbluebutton/recording.log \ /usr/bin/supervisord --nodaemon \ No newline at end of file From 37d2b16bc7a8b7ac869714d75cd1d14c790bbdbd Mon Sep 17 00:00:00 2001 From: chandi Date: Sat, 27 Nov 2021 18:22:03 +0100 Subject: [PATCH 05/15] change nginx port from 8080 to 48087 https://github.com/bigbluebutton/docker/issues/133 --- CHANGELOG.md | 1 + docker-compose.tmpl.yml | 4 +-- docs/existing-web-server.md | 10 ++++---- docs/upgrading.md | 48 +++++------------------------------- mod/https/site-ipv4only.conf | 2 +- mod/https/site.conf | 2 +- mod/nginx/bigbluebutton | 4 +-- 7 files changed, 18 insertions(+), 53 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 634adc4..0c48b8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased - BigBlueButton v2.4 @alangecker [#159](https://github.com/bigbluebutton/docker/pull/159) +- **Breaking change:** change nginx port from `8080` to `48087`. see [upgrade note](docs/upgrading.md) @alangeker [#133](https://github.com/bigbluebutton/docker/issues/133) - Enable optimization for Prometheus Exporter when recording is enabled @omidmaldar [#161](https://github.com/bigbluebutton/docker/pull/161) - Automatically remove old recordings after N days @omidmaldar [#162](https://github.com/bigbluebutton/docker/pull/162) diff --git a/docker-compose.tmpl.yml b/docker-compose.tmpl.yml index 4c65f3c..5f93f42 100644 --- a/docker-compose.tmpl.yml +++ b/docker-compose.tmpl.yml @@ -363,7 +363,7 @@ services: DB_USERNAME: postgres DB_PASSWORD: ${POSTGRESQL_SECRET:-password} {{ if isTrue .Env.DEV_MODE }} - BIGBLUEBUTTON_ENDPOINT: http://10.7.7.1:8080/bigbluebutton/api/ + BIGBLUEBUTTON_ENDPOINT: http://10.7.7.1:48087/bigbluebutton/api/ {{else}} BIGBLUEBUTTON_ENDPOINT: https://${DOMAIN}/bigbluebutton/api/ {{end}} @@ -393,7 +393,7 @@ services: image: greenstatic/bigbluebutton-exporter:v0.7.0-preview2 restart: unless-stopped environment: - API_BASE_URL: http://10.7.7.1:8080/bigbluebutton/api/ + API_BASE_URL: http://10.7.7.1:48087/bigbluebutton/api/ API_SECRET: ${SHARED_SECRET} RECORDINGS_METRICS_READ_FROM_DISK: "${ENABLE_PROMETHEUS_EXPORTER_OPTIMIZATION:-false}" networks: diff --git a/docs/existing-web-server.md b/docs/existing-web-server.md index 867e32f..adf2ff8 100644 --- a/docs/existing-web-server.md +++ b/docs/existing-web-server.md @@ -8,7 +8,7 @@ You could dedicate a virtual host to BigBlueButton, allowing external access to ## Installation 1. Install BigBlueButton Docker [as explained above](#install). While running the setup script, please choose `n` when you're asked the following question: `Should an automatic HTTPS Proxy be included? (y/n)`. -2. Now all the required Docker containers should be running. BigBlueButton listens to port 8080. Create a virtual host by which BigBlueButton will be publicly accessible (in this case, let's assume the following server name for the virtual host: `bbb.example.com`). Enable SSL for the new _https_ virtual host. Make sure that the SSL certificate you will be using is signed by a CA (Certificate Authority). You could generate an SSL certificate for free using Let's Encrypt. It is suggested to add some directives to the _http_ virtual host `bbb.example.com` to redirect all requests to the _https_ one. +2. Now all the required Docker containers should be running. BigBlueButton listens to port 48087. Create a virtual host by which BigBlueButton will be publicly accessible (in this case, let's assume the following server name for the virtual host: `bbb.example.com`). Enable SSL for the new _https_ virtual host. Make sure that the SSL certificate you will be using is signed by a CA (Certificate Authority). You could generate an SSL certificate for free using Let's Encrypt. It is suggested to add some directives to the _http_ virtual host `bbb.example.com` to redirect all requests to the _https_ one. At this point, choose one of the following sections according to which Web server you're running ([Apache](#integration-with-apache)). @@ -39,7 +39,7 @@ server { location / { proxy_http_version 1.1; - proxy_pass http://$endpoint_addr:8080; + proxy_pass http://$endpoint_addr:48087; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -68,12 +68,12 @@ ProxyPreserveHost On RewriteEngine On RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR] RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] -RewriteRule .* ws://127.0.0.1:8080%{REQUEST_URI} [P,QSA,L] +RewriteRule .* ws://127.0.0.1:48087%{REQUEST_URI} [P,QSA,L] Require all granted - ProxyPass http://127.0.0.1:8080/ - ProxyPassReverse http://127.0.0.1:8080/ + ProxyPass http://127.0.0.1:48087/ + ProxyPassReverse http://127.0.0.1:48087/ ``` 3. Restart Apache: diff --git a/docs/upgrading.md b/docs/upgrading.md index 82e1023..80261ad 100644 --- a/docs/upgrading.md +++ b/docs/upgrading.md @@ -1,6 +1,11 @@ # How To Upgrade bbb-docker -### within `2.3.x +### Upgrading `v2.3.x` -> `v2.4.x` +*Breaking change:* The nginx port changes from `8080` to the less common port `48087`, to avoid port conflicts (see [#133](https://github.com/bigbluebutton/docker/issues/133)). If you use an reverse proxy not included in this repo, ensure to update your config accordingly! + +apart from that follow the guide below. + +### within `v2.4.x` or `v2.3.x` #### Backup if you use greenlight, create a database backup first ```bash @@ -15,44 +20,3 @@ docker exec -t docker_postgres_1 pg_dumpall -c -U postgres > /root/greenlight_`d # restart updated services docker-compose up -d ``` - - -### from `2.2.x` to `2.3.x` - -```bash -cd bbb-docker - -# if you use greenlight: create a database backup -./scripts/compose exec postgres pg_dumpall -c -U postgres > /root/bbb-docker-2.2-backup.sql - -# stop bbb-docker -./scripts/compose down - -# go back and rename folder -cd .. -mv bbb-docker bbb-docker-2.2-archived - -# get bbb-docker 2.3 -git clone --recurse-submodules https://github.com/bigbluebutton/docker.git bbb-docker -cd bbb-docker - -# do setup -./scripts/setup - -# optionally do additional changes -nano .env - -# regenerate the docker-compose file -./scripts/generate-compose - -# if you use greenlight, import database backup -docker-compose up -d postgres -cat /root/bbb-docker-2.2-backup.sql | docker-compose exec -T postgres psql -U postgres - -# start new BBB 2.3 -docker-compose up -d - - -``` -- `$ cd bbb-docker` -- (if you use greenlight) create a database backup first diff --git a/mod/https/site-ipv4only.conf b/mod/https/site-ipv4only.conf index 8b0abff..3ab9c1c 100644 --- a/mod/https/site-ipv4only.conf +++ b/mod/https/site-ipv4only.conf @@ -16,7 +16,7 @@ server { location / { proxy_http_version 1.1; - proxy_pass http://127.0.0.1:8080; + proxy_pass http://127.0.0.1:48087; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/mod/https/site.conf b/mod/https/site.conf index 9b21df6..ba81f57 100644 --- a/mod/https/site.conf +++ b/mod/https/site.conf @@ -16,7 +16,7 @@ server { location / { proxy_http_version 1.1; - proxy_pass http://$endpoint_addr:8080; + proxy_pass http://$endpoint_addr:48087; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/mod/nginx/bigbluebutton b/mod/nginx/bigbluebutton index 65ae22e..fbbf02a 100644 --- a/mod/nginx/bigbluebutton +++ b/mod/nginx/bigbluebutton @@ -17,8 +17,8 @@ upstream poolhtml5servers { } server { - listen 8080 default_server; - listen [::]:8080 default_server; + listen 48087 default_server; + listen [::]:48087 default_server; server_name _; access_log /dev/stdout; absolute_redirect off; From ea5514c1b01c4f1b67e7367436cfef82d5886d17 Mon Sep 17 00:00:00 2001 From: chandi Date: Wed, 1 Dec 2021 14:21:51 +0100 Subject: [PATCH 06/15] README, etherpad 1.8.16 --- README.md | 4 ++-- mod/etherpad/Dockerfile | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7d5da15..4e7a4c6 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ bbb-docker-banner -# 📦 BigBlueButton 2.3 Docker +# 📦 BigBlueButton 2.4 Docker -Version: 2.3.14 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigbluebutton/docker/issues) +Version: 2.4-rc-5 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigbluebutton/docker/issues) ## Features - Easy installation diff --git a/mod/etherpad/Dockerfile b/mod/etherpad/Dockerfile index 9da82f6..db4c305 100644 --- a/mod/etherpad/Dockerfile +++ b/mod/etherpad/Dockerfile @@ -1,5 +1,4 @@ -FROM etherpad/etherpad:1.8.14 -# TODO: update to 1.8.15 as soon as available +FROM etherpad/etherpad:1.8.16 USER root From 14b0c085fbd5c5507e755a8486e6e50f4d6f54e9 Mon Sep 17 00:00:00 2001 From: chandi Date: Mon, 13 Dec 2021 17:52:13 +0100 Subject: [PATCH 07/15] BBB v2.4-rc-7 --- README.md | 2 +- docker-compose.tmpl.yml | 2 ++ mod/apps-akka/Dockerfile | 4 ++-- mod/bbb-web/Dockerfile | 14 ++++++------ mod/etherpad/Dockerfile | 14 +++++------- mod/fsesl-akka/Dockerfile | 6 ++--- mod/html5/Dockerfile | 4 ++-- mod/mongo/mongod.conf | 3 +++ mod/nginx/Dockerfile | 2 +- mod/nginx/bbb/loadbalancer.nginx | 4 ++++ mod/nginx/bbb/presentation-slides.nginx | 12 ++++++++++ mod/nginx/bbb/web.nginx | 30 +++++++++++++++++++++---- mod/nginx/bbb/webrtc-sfu.nginx | 14 +++++++++--- mod/recordings/Dockerfile | 2 +- mod/webrtc-sfu/bbb-webrtc-sfu | 2 +- 15 files changed, 81 insertions(+), 34 deletions(-) create mode 100644 mod/nginx/bbb/loadbalancer.nginx diff --git a/README.md b/README.md index 4e7a4c6..6837a9d 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ # 📦 BigBlueButton 2.4 Docker -Version: 2.4-rc-5 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigbluebutton/docker/issues) +Version: 2.4-rc-7 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigbluebutton/docker/issues) ## Features - Easy installation diff --git a/docker-compose.tmpl.yml b/docker-compose.tmpl.yml index 5f93f42..ee9fc58 100644 --- a/docker-compose.tmpl.yml +++ b/docker-compose.tmpl.yml @@ -243,6 +243,8 @@ services: jodconverter: build: mod/jodconverter restart: unless-stopped + tmpfs: + - /tmp deploy: resources: limits: diff --git a/mod/apps-akka/Dockerfile b/mod/apps-akka/Dockerfile index 97067dc..07b4775 100644 --- a/mod/apps-akka/Dockerfile +++ b/mod/apps-akka/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u212_1.2.8 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.4-rc-5 +ENV TAG_COMMON_MESSAGE v2.4-rc-7 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -14,7 +14,7 @@ RUN cd /bbb-common-message \ # =================================================== -ENV TAG v2.4-rc-5 +ENV TAG v2.4-rc-7 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-apps /source \ && rm -rf /source/.svn diff --git a/mod/bbb-web/Dockerfile b/mod/bbb-web/Dockerfile index 1f32681..4ec69e7 100644 --- a/mod/bbb-web/Dockerfile +++ b/mod/bbb-web/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u212_1.2.8 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.4-rc-5 +ENV TAG_COMMON_MESSAGE v2.4-rc-7 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -26,7 +26,7 @@ RUN cd /opt \ ENV PATH="/opt/gradle-6.7/bin:${PATH}" # download bbb-common-web -ENV TAG_COMMON_WEB v2.4-rc-5 +ENV TAG_COMMON_WEB v2.4-rc-7 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_WEB/bbb-common-web /bbb-common-web \ && rm -rf /bbb-common-message/.svn @@ -35,7 +35,7 @@ RUN cd /bbb-common-web \ && ./deploy.sh # download bbb-web -ENV TAG_WEB v2.4-rc-5 +ENV TAG_WEB v2.4-rc-7 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_WEB/bigbluebutton-web /bbb-web \ && rm -rf /bbb-web/.svn @@ -77,10 +77,10 @@ RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VE RUN mkdir -p /usr/share/bigbluebutton/blank \ && cd /usr/share/bigbluebutton/blank \ && wget \ - https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-5/bigbluebutton-config/slides/blank-svg.svg \ - https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-5/bigbluebutton-config/slides/blank-thumb.png \ - https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-5/bigbluebutton-config/slides/blank-presentation.pdf \ - https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-5/bigbluebutton-config/slides/blank-png.png \ + https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-7/bigbluebutton-config/slides/blank-svg.svg \ + https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-7/bigbluebutton-config/slides/blank-thumb.png \ + https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-7/bigbluebutton-config/slides/blank-presentation.pdf \ + https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-7/bigbluebutton-config/slides/blank-png.png \ && sed -i 's///g' /etc/ImageMagick-6/policy.xml # get bbb-web diff --git a/mod/etherpad/Dockerfile b/mod/etherpad/Dockerfile index db4c305..a8d4ebc 100644 --- a/mod/etherpad/Dockerfile +++ b/mod/etherpad/Dockerfile @@ -7,17 +7,13 @@ RUN apt-get update \ USER etherpad -# only used to trigger a fresh run of the npm install -# command without caching -ENV TAG v2.4-rc-5 - # ep_cursortrace: using mconf's fork due to https://github.com/ether/ep_cursortrace/pull/25 not being accepted upstream RUN npm install \ - git+https://github.com/mconf/ep_cursortrace.git \ - git+https://git@github.com/pedrobmarin/ep_pad_ttl.git \ - git+https://git@github.com/pedrobmarin/ep_redis_publisher.git \ - git+https://git@github.com/ether/ep_disable_chat.git \ - git+https://github.com/ether/ep_sticky_attributes.git \ + git+https://github.com/mconf/ep_cursortrace.git#v3.1.8 \ + git+https://github.com/pedrobmarin/ep_pad_ttl.git#360136cd38493dd698435631f2373cbb7089082d \ + git+https://github.com/pedrobmarin/ep_redis_publisher.git#ed7d8af49876757559ef9d7c8970665c08445d4b \ + git+https://github.com/ether/ep_disable_chat.git#v0.0.3 \ + git+https://github.com/ether/ep_sticky_attributes.git#v0.1.9 \ # remove npm lockfile, because somehow it prevents etherpad from detecting the manual added plugin ep_bigbluebutton_patches && rm package-lock.json diff --git a/mod/fsesl-akka/Dockerfile b/mod/fsesl-akka/Dockerfile index aab2101..91d8d06 100644 --- a/mod/fsesl-akka/Dockerfile +++ b/mod/fsesl-akka/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u212_1.2.8 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.4-rc-5 +ENV TAG_COMMON_MESSAGE v2.4-rc-7 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -13,7 +13,7 @@ RUN cd /bbb-common-message \ # =================================================== -ENV TAG_FSESL v2.4-rc-5 +ENV TAG_FSESL v2.4-rc-7 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_FSESL/bbb-fsesl-client /bbb-fsesl-client \ && rm -rf /bbb-fsesl-client/.svn @@ -21,7 +21,7 @@ RUN cd /bbb-fsesl-client \ && ./deploy.sh -ENV TAG v2.4-rc-5 +ENV TAG v2.4-rc-7 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-fsesl /source \ && rm -rf /source/.svn diff --git a/mod/html5/Dockerfile b/mod/html5/Dockerfile index 97ac31a..15c24f4 100644 --- a/mod/html5/Dockerfile +++ b/mod/html5/Dockerfile @@ -14,7 +14,7 @@ USER meteor ENV METEOR_VERSION 2.5 RUN curl -sL https://install.meteor.com?release=$METEOR_VERSION | sed s/--progress-bar/-sL/g | /bin/sh -ENV TAG v2.4-rc-5 +ENV TAG v2.4-rc-7 RUN cd ~ \ && svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bigbluebutton-html5 \ && mv ~/bigbluebutton-html5 ~/source \ @@ -41,4 +41,4 @@ COPY bbb-html5.yml /app/bbb-html5.yml.tmpl ENTRYPOINT ["/entrypoint.sh"] # lets set the tag again, so that it is include in the image for later version retrieval -ENV TAG v2.4-rc-5 +ENV TAG v2.4-rc-7 diff --git a/mod/mongo/mongod.conf b/mod/mongo/mongod.conf index bce6bd9..f791065 100644 --- a/mod/mongo/mongod.conf +++ b/mod/mongo/mongod.conf @@ -28,3 +28,6 @@ replication: setParameter: diagnosticDataCollectionEnabled: false + +security: + javascriptEnabled: false diff --git a/mod/nginx/Dockerfile b/mod/nginx/Dockerfile index 3fc4c05..aa7b532 100644 --- a/mod/nginx/Dockerfile +++ b/mod/nginx/Dockerfile @@ -4,7 +4,7 @@ RUN apk add subversion git # -------------------- -ENV TAG_LEARNING_DASHBOARD v2.4-rc-5 +ENV TAG_LEARNING_DASHBOARD v2.4-rc-7 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_LEARNING_DASHBOARD/bbb-learning-dashboard /bbb-learning-dashboard && rm -r /bbb-learning-dashboard/.svn RUN cd /bbb-learning-dashboard && npm ci && npm run build diff --git a/mod/nginx/bbb/loadbalancer.nginx b/mod/nginx/bbb/loadbalancer.nginx new file mode 100644 index 0000000..e254118 --- /dev/null +++ b/mod/nginx/bbb/loadbalancer.nginx @@ -0,0 +1,4 @@ +# If you run this BBB node behind a proxy loadbalancer set the hostname of +# the loadbalancer here. This will be used to add CORS headers so requesting +# slides and API calls won't fail +set $bbb_loadbalancer_node ''; diff --git a/mod/nginx/bbb/presentation-slides.nginx b/mod/nginx/bbb/presentation-slides.nginx index d458a1b..1ea4c4f 100644 --- a/mod/nginx/bbb/presentation-slides.nginx +++ b/mod/nginx/bbb/presentation-slides.nginx @@ -22,20 +22,32 @@ location ~^\/bigbluebutton\/presentation\/(?[A-Za-z0-9\-]+)\/(?[A-Za-z0-9\-]+)\/(?[A-Za-z0-9\-]+)\/svg\/(?\d+)$ { default_type image/svg+xml; alias /var/bigbluebutton/$meeting_id_2/$meeting_id_2/$pres_id/svgs/slide$page_num.svg; + if ($bbb_loadbalancer_node) { + add_header 'Access-Control-Allow-Origin' $bbb_loadbalancer_node always; + } } location ~^\/bigbluebutton\/presentation\/(?[A-Za-z0-9\-]+)\/(?[A-Za-z0-9\-]+)\/(?[A-Za-z0-9\-]+)\/slide\/(?\d+)$ { alias /var/bigbluebutton/$meeting_id_2/$meeting_id_2/$pres_id/slide-$page_num.swf; + if ($bbb_loadbalancer_node) { + add_header 'Access-Control-Allow-Origin' $bbb_loadbalancer_node always; + } } location ~^\/bigbluebutton\/presentation\/(?[A-Za-z0-9\-]+)\/(?[A-Za-z0-9\-]+)\/(?[A-Za-z0-9\-]+)\/thumbnail\/(?\d+)$ { default_type image/png; alias /var/bigbluebutton/$meeting_id_2/$meeting_id_2/$pres_id/thumbnails/thumb-$page_num.png; + if ($bbb_loadbalancer_node) { + add_header 'Access-Control-Allow-Origin' $bbb_loadbalancer_node always; + } } location ~^\/bigbluebutton\/presentation\/(?[A-Za-z0-9\-]+)\/(?[A-Za-z0-9\-]+)\/(?[A-Za-z0-9\-]+)\/textfiles\/(?\d+)$ { default_type text/plain; alias /var/bigbluebutton/$meeting_id_2/$meeting_id_2/$pres_id/textfiles/slide-$page_num.txt; + if ($bbb_loadbalancer_node) { + add_header 'Access-Control-Allow-Origin' $bbb_loadbalancer_node always; + } } diff --git a/mod/nginx/bbb/web.nginx b/mod/nginx/bbb/web.nginx index bc310a8..8352ccf 100755 --- a/mod/nginx/bbb/web.nginx +++ b/mod/nginx/bbb/web.nginx @@ -7,18 +7,34 @@ proxy_redirect default; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - # Workaround IE refusal to set cookies in iframe - add_header P3P 'CP="No P3P policy available"'; + # Workaround IE refusal to set cookies in iframe + add_header P3P 'CP="No P3P policy available"'; + if ($bbb_loadbalancer_node) { + add_header 'Access-Control-Allow-Origin' $bbb_loadbalancer_node always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + } } location ~ "^\/bigbluebutton\/presentation\/(?[a-zA-Z0-9_-]+)/upload$" { - proxy_pass http://bbb-web:8090; + # Grails can't handle CORS OPTION preflight requests correctly -> lets do this in nginx + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' $bbb_loadbalancer_node always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + add_header 'Content-Type' 'text/plain; charset=utf-8'; + add_header 'Content-Length' 0; + return 204; + } + proxy_pass http://bbb-web:8090; proxy_redirect default; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Workaround IE refusal to set cookies in iframe - add_header P3P 'CP="No P3P policy available"'; + add_header P3P 'CP="No P3P policy available"'; + if ($bbb_loadbalancer_node) { + add_header 'Access-Control-Allow-Origin' $bbb_loadbalancer_node always; + add_header 'Access-Control-Allow-Credentials' 'true' always; + } # high limit for presentation as bbb-web will reject upload if larger than configured client_max_body_size 1000m; @@ -57,6 +73,9 @@ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Workaround IE refusal to set cookies in iframe add_header P3P 'CP="No P3P policy available"'; + if ($bbb_loadbalancer_node) { + add_header 'Access-Control-Allow-Origin' $bbb_loadbalancer_node always; + } } location = /bigbluebutton/presentation/checkPresentation { @@ -102,6 +121,9 @@ location ~ "^/bigbluebutton\/textTrack\/(?[a-zA-Z0-9]+)\/(?[a-zA-Z0-9_-]+)\/(?.+)$" { # Workaround IE refusal to set cookies in iframe add_header P3P 'CP="No P3P policy available"'; + if ($bbb_loadbalancer_node) { + add_header 'Access-Control-Allow-Origin' $bbb_loadbalancer_node always; + } # Allow 30M uploaded presentation document. client_max_body_size 30m; diff --git a/mod/nginx/bbb/webrtc-sfu.nginx b/mod/nginx/bbb/webrtc-sfu.nginx index b9d96e2..71a5a00 100644 --- a/mod/nginx/bbb/webrtc-sfu.nginx +++ b/mod/nginx/bbb/webrtc-sfu.nginx @@ -1,14 +1,22 @@ location /bbb-webrtc-sfu { + auth_request /bigbluebutton/connection/checkAuthorization; + auth_request_set $auth_status $upstream_status; + # Extra variables are annotated by bbb-web as custom headers + auth_request_set $user_id $sent_http_user_id; + auth_request_set $meeting_id $sent_http_meeting_id; + auth_request_set $voice_bridge $sent_http_voice_bridge; + proxy_pass http://webrtc-sfu:3008; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; + # Following custom headers are used by bbb-webrtc-sfu + proxy_set_header User-Id $user_id; + proxy_set_header Meeting-Id $meeting_id; + proxy_set_header Voice-Bridge $voice_bridge; proxy_read_timeout 6h; proxy_send_timeout 6h; client_body_timeout 6h; send_timeout 6h; - - auth_request /bigbluebutton/connection/checkAuthorization; - auth_request_set $auth_status $upstream_status; } diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile index 5b447c6..e50cdf0 100644 --- a/mod/recordings/Dockerfile +++ b/mod/recordings/Dockerfile @@ -45,7 +45,7 @@ RUN mkdir -p \ /usr/local/bigbluebutton/core \ /etc/bigbluebutton -ENV TAG v2.4-rc-5 +ENV TAG v2.4-rc-7 # add bbb-record-core (lib, scripts and Gemfile) RUN cd /usr/local/bigbluebutton/core \ diff --git a/mod/webrtc-sfu/bbb-webrtc-sfu b/mod/webrtc-sfu/bbb-webrtc-sfu index c33878c..4e0fa6b 160000 --- a/mod/webrtc-sfu/bbb-webrtc-sfu +++ b/mod/webrtc-sfu/bbb-webrtc-sfu @@ -1 +1 @@ -Subproject commit c33878c89e5f4486ca980086e814491ece436e1c +Subproject commit 4e0fa6bf8ffc1bb8fbbe4fe9843651331e018188 From cb9099fb1e995fefa01da23fc84ab04c41199e0b Mon Sep 17 00:00:00 2001 From: chandi Date: Mon, 13 Dec 2021 17:53:06 +0100 Subject: [PATCH 08/15] fix and reenable etherpad authorization --- docker-compose.tmpl.yml | 1 + mod/etherpad/bbb-etherpad-plugin | 2 +- mod/nginx/bbb/notes.nginx | 8 +++----- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/docker-compose.tmpl.yml b/docker-compose.tmpl.yml index ee9fc58..1528cbc 100644 --- a/docker-compose.tmpl.yml +++ b/docker-compose.tmpl.yml @@ -43,6 +43,7 @@ services: restart: unless-stopped depends_on: - redis + - etherpad healthcheck: test: wget --no-proxy --no-verbose --tries=1 --spider http://10.7.7.2:8090/bigbluebutton/api || exit 1 start_period: 2m diff --git a/mod/etherpad/bbb-etherpad-plugin b/mod/etherpad/bbb-etherpad-plugin index dccf33f..068ded5 160000 --- a/mod/etherpad/bbb-etherpad-plugin +++ b/mod/etherpad/bbb-etherpad-plugin @@ -1 +1 @@ -Subproject commit dccf33f8e9ced8ee94520535b487f5f76fbe02f2 +Subproject commit 068ded573380087e120713d1ccc3c86713ec8c88 diff --git a/mod/nginx/bbb/notes.nginx b/mod/nginx/bbb/notes.nginx index 7fe3945..95bde11 100644 --- a/mod/nginx/bbb/notes.nginx +++ b/mod/nginx/bbb/notes.nginx @@ -33,7 +33,7 @@ location /pad/socket.io/socket.io.js { proxy_set_header Host $host; proxy_buffering off; } - + location /pad/socket.io { rewrite /pad/socket.io/(.*) /socket.io/$1 break; proxy_pass http://etherpad:9001/; @@ -49,10 +49,8 @@ location /pad/socket.io { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; - # this is currently broken - # TODO: fix & reenable - #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 a60ed91f63c7ac35e640863b820605eea8d69ae0 Mon Sep 17 00:00:00 2001 From: chandi Date: Mon, 13 Dec 2021 17:54:33 +0100 Subject: [PATCH 09/15] mongodb: switch back from 5 -> 4.4 because 5.x is not supported by meteor yet leading to endless echo test connection modal due to the state observer does not get triggered. --- docker-compose.tmpl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.tmpl.yml b/docker-compose.tmpl.yml index 1528cbc..b33e7b4 100644 --- a/docker-compose.tmpl.yml +++ b/docker-compose.tmpl.yml @@ -161,7 +161,7 @@ services: ipv4_address: 10.7.7.5 mongodb: - image: mongo:5.0 + image: mongo:4.4 restart: unless-stopped volumes: - ./mod/mongo/mongod.conf:/etc/mongod.conf From 58f441f3ee2e53b803034647d3651de4e99c2820 Mon Sep 17 00:00:00 2001 From: chandi Date: Mon, 13 Dec 2021 18:16:22 +0100 Subject: [PATCH 10/15] make default passwords obvious and set FSESL_PASSWORD --- sample.env | 9 +++++---- scripts/setup | 13 +++++-------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/sample.env b/sample.env index cbe3b8e..3646d11 100644 --- a/sample.env +++ b/sample.env @@ -42,10 +42,11 @@ ENABLE_GREENLIGHT=true # SECRETS # ==================================== # important! change these to any random values -SHARED_SECRET=w6y7nycPafjPhVz3gZdBpQhR4H4MvEQzcZzia5LT -ETHERPAD_API_KEY=NEQKi2eFXSBce4kyGjwAzMn2jeF66peNYQmyFVRr -RAILS_SECRET=cdfbae48b197805a435ab7881da31c642ac1a7d4d5c006441efa8125ae63865ce7c915c651117e0f14358cd98f5287c431929e0f796f4100b2b1c3eb5baad1b0 -POSTGRESQL_SECRET=4xksXUDsaqAkZFSu8HF7pFppN34yy0a9g2iSqD14 +SHARED_SECRET=SuperSecret +ETHERPAD_API_KEY=SuperEtherpadKey +RAILS_SECRET=SuperRailsSecret +POSTGRESQL_SECRET=SuperPostgresSecret +FSESL_PASSWORD=SuperFreeswitchESLPassword diff --git a/scripts/setup b/scripts/setup index 7a3ad6b..189a157 100755 --- a/scripts/setup +++ b/scripts/setup @@ -186,17 +186,14 @@ fi RANDOM_1=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 40) RANDOM_2=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 40) RANDOM_3=$(head /dev/urandom | tr -dc a-f0-9 | head -c 128) -if [ ! "$greenlight" == "y" ] -then - RANDOM_4=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 40) -fi +RANDOM_4=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 40) +RANDOM_5=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 40) + sed -i "s/SHARED_SECRET=.*/SHARED_SECRET=$RANDOM_1/" .env sed -i "s/ETHERPAD_API_KEY=.*/ETHERPAD_API_KEY=$RANDOM_2/" .env sed -i "s/RAILS_SECRET=.*/RAILS_SECRET=$RANDOM_3/" .env -if [ ! "$greenlight" == "y" ] -then - sed -i "s/POSTGRESQL_SECRET=.*/POSTGRESQL_SECRET=$RANDOM_4/" .env -fi +sed -i "s/FSESL_PASSWORD=.*/FSESL_PASSWORD=$RANDOM_4/" .env +sed -i "s/POSTGRESQL_SECRET=.*/POSTGRESQL_SECRET=$RANDOM_5/" .env ./scripts/generate-compose From 32a4ea41b62e85c4d7353be107037c800ebcaa28 Mon Sep 17 00:00:00 2001 From: chandi Date: Mon, 13 Dec 2021 18:36:58 +0100 Subject: [PATCH 11/15] ep_redis_publisher: fix for issue after 1.8.16 update https://github.com/mconf/ep_redis_publisher/issues/3 --- mod/etherpad/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/etherpad/Dockerfile b/mod/etherpad/Dockerfile index a8d4ebc..79c7404 100644 --- a/mod/etherpad/Dockerfile +++ b/mod/etherpad/Dockerfile @@ -11,7 +11,7 @@ USER etherpad RUN npm install \ git+https://github.com/mconf/ep_cursortrace.git#v3.1.8 \ git+https://github.com/pedrobmarin/ep_pad_ttl.git#360136cd38493dd698435631f2373cbb7089082d \ - git+https://github.com/pedrobmarin/ep_redis_publisher.git#ed7d8af49876757559ef9d7c8970665c08445d4b \ + git+https://github.com/pedrobmarin/ep_redis_publisher.git#1d903bf900dd53ebc5347f9583b6e240cf754d63 \ git+https://github.com/ether/ep_disable_chat.git#v0.0.3 \ git+https://github.com/ether/ep_sticky_attributes.git#v0.1.9 \ # remove npm lockfile, because somehow it prevents etherpad from detecting the manual added plugin ep_bigbluebutton_patches From 422888ecfadcfa8ac2e9e5fb841cd0e2a89cdec9 Mon Sep 17 00:00:00 2001 From: chandi Date: Tue, 14 Dec 2021 10:42:46 +0100 Subject: [PATCH 12/15] setup: fix missing `fi` closes #175 --- scripts/setup | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/setup b/scripts/setup index 189a157..5d5c60c 100755 --- a/scripts/setup +++ b/scripts/setup @@ -79,6 +79,7 @@ then while [[ ! $prometheus_exporter_optimization =~ ^(y|n)$ ]]; do read -p "Choice (y/n): " prometheus_exporter_optimization done +fi if [ "$recording" == "y" ] then From a7bb299b74e3f44907da846ad380797c66b6bb23 Mon Sep 17 00:00:00 2001 From: chandi Date: Mon, 20 Dec 2021 23:46:07 +0100 Subject: [PATCH 13/15] avoid errors with paths containing spaces --- scripts/setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/setup b/scripts/setup index 5d5c60c..3f4ecdf 100755 --- a/scripts/setup +++ b/scripts/setup @@ -1,7 +1,7 @@ #!/bin/bash set -e -cd $(dirname $0)/.. +cd "$(dirname "$0")/.." if ! [ -x "$(command -v curl)" ]; then echo "Error: curl is not installed, but the setup script relies on it." From 8ea186fbff4ff24a278cdd55777aa1a1d15ce67d Mon Sep 17 00:00:00 2001 From: chandi Date: Tue, 21 Dec 2021 14:23:59 +0100 Subject: [PATCH 14/15] BBB v2.4.0 --- README.md | 2 +- mod/apps-akka/Dockerfile | 4 ++-- mod/bbb-web/Dockerfile | 14 +++++++------- mod/etherpad/Dockerfile | 2 +- mod/fsesl-akka/Dockerfile | 6 +++--- mod/html5/Dockerfile | 4 ++-- mod/nginx/Dockerfile | 2 +- mod/nginx/bbb/web.nginx | 7 +++++++ mod/nginx/bigbluebutton | 9 +++++---- mod/recordings/Dockerfile | 2 +- mod/webhooks/Dockerfile | 2 +- 11 files changed, 31 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 6837a9d..c6ad205 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ # 📦 BigBlueButton 2.4 Docker -Version: 2.4-rc-7 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigbluebutton/docker/issues) +Version: 2.4.0 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigbluebutton/docker/issues) ## Features - Easy installation diff --git a/mod/apps-akka/Dockerfile b/mod/apps-akka/Dockerfile index 07b4775..0758a26 100644 --- a/mod/apps-akka/Dockerfile +++ b/mod/apps-akka/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u212_1.2.8 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.4-rc-7 +ENV TAG_COMMON_MESSAGE v2.4.0 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -14,7 +14,7 @@ RUN cd /bbb-common-message \ # =================================================== -ENV TAG v2.4-rc-7 +ENV TAG v2.4.0 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-apps /source \ && rm -rf /source/.svn diff --git a/mod/bbb-web/Dockerfile b/mod/bbb-web/Dockerfile index 4ec69e7..2dcf037 100644 --- a/mod/bbb-web/Dockerfile +++ b/mod/bbb-web/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u212_1.2.8 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.4-rc-7 +ENV TAG_COMMON_MESSAGE v2.4.0 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -26,7 +26,7 @@ RUN cd /opt \ ENV PATH="/opt/gradle-6.7/bin:${PATH}" # download bbb-common-web -ENV TAG_COMMON_WEB v2.4-rc-7 +ENV TAG_COMMON_WEB v2.4.0 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_WEB/bbb-common-web /bbb-common-web \ && rm -rf /bbb-common-message/.svn @@ -35,7 +35,7 @@ RUN cd /bbb-common-web \ && ./deploy.sh # download bbb-web -ENV TAG_WEB v2.4-rc-7 +ENV TAG_WEB v2.4.0 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_WEB/bigbluebutton-web /bbb-web \ && rm -rf /bbb-web/.svn @@ -77,10 +77,10 @@ RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VE RUN mkdir -p /usr/share/bigbluebutton/blank \ && cd /usr/share/bigbluebutton/blank \ && wget \ - https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-7/bigbluebutton-config/slides/blank-svg.svg \ - https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-7/bigbluebutton-config/slides/blank-thumb.png \ - https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-7/bigbluebutton-config/slides/blank-presentation.pdf \ - https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4-rc-7/bigbluebutton-config/slides/blank-png.png \ + https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4.0/bigbluebutton-config/slides/blank-svg.svg \ + https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4.0/bigbluebutton-config/slides/blank-thumb.png \ + https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4.0/bigbluebutton-config/slides/blank-presentation.pdf \ + https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/v2.4.0/bigbluebutton-config/slides/blank-png.png \ && sed -i 's///g' /etc/ImageMagick-6/policy.xml # get bbb-web diff --git a/mod/etherpad/Dockerfile b/mod/etherpad/Dockerfile index 79c7404..0aa80fa 100644 --- a/mod/etherpad/Dockerfile +++ b/mod/etherpad/Dockerfile @@ -9,7 +9,7 @@ USER etherpad # ep_cursortrace: using mconf's fork due to https://github.com/ether/ep_cursortrace/pull/25 not being accepted upstream RUN npm install \ - git+https://github.com/mconf/ep_cursortrace.git#v3.1.8 \ + ep_cursortrace@3.1.11 \ git+https://github.com/pedrobmarin/ep_pad_ttl.git#360136cd38493dd698435631f2373cbb7089082d \ git+https://github.com/pedrobmarin/ep_redis_publisher.git#1d903bf900dd53ebc5347f9583b6e240cf754d63 \ git+https://github.com/ether/ep_disable_chat.git#v0.0.3 \ diff --git a/mod/fsesl-akka/Dockerfile b/mod/fsesl-akka/Dockerfile index 91d8d06..be10fee 100644 --- a/mod/fsesl-akka/Dockerfile +++ b/mod/fsesl-akka/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u212_1.2.8 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.4-rc-7 +ENV TAG_COMMON_MESSAGE v2.4.0 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -13,7 +13,7 @@ RUN cd /bbb-common-message \ # =================================================== -ENV TAG_FSESL v2.4-rc-7 +ENV TAG_FSESL v2.4.0 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_FSESL/bbb-fsesl-client /bbb-fsesl-client \ && rm -rf /bbb-fsesl-client/.svn @@ -21,7 +21,7 @@ RUN cd /bbb-fsesl-client \ && ./deploy.sh -ENV TAG v2.4-rc-7 +ENV TAG v2.4.0 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-fsesl /source \ && rm -rf /source/.svn diff --git a/mod/html5/Dockerfile b/mod/html5/Dockerfile index 15c24f4..62029ee 100644 --- a/mod/html5/Dockerfile +++ b/mod/html5/Dockerfile @@ -14,7 +14,7 @@ USER meteor ENV METEOR_VERSION 2.5 RUN curl -sL https://install.meteor.com?release=$METEOR_VERSION | sed s/--progress-bar/-sL/g | /bin/sh -ENV TAG v2.4-rc-7 +ENV TAG v2.4.0 RUN cd ~ \ && svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bigbluebutton-html5 \ && mv ~/bigbluebutton-html5 ~/source \ @@ -41,4 +41,4 @@ COPY bbb-html5.yml /app/bbb-html5.yml.tmpl ENTRYPOINT ["/entrypoint.sh"] # lets set the tag again, so that it is include in the image for later version retrieval -ENV TAG v2.4-rc-7 +ENV TAG v2.4.0 diff --git a/mod/nginx/Dockerfile b/mod/nginx/Dockerfile index aa7b532..21026d2 100644 --- a/mod/nginx/Dockerfile +++ b/mod/nginx/Dockerfile @@ -4,7 +4,7 @@ RUN apk add subversion git # -------------------- -ENV TAG_LEARNING_DASHBOARD v2.4-rc-7 +ENV TAG_LEARNING_DASHBOARD v2.4.0 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_LEARNING_DASHBOARD/bbb-learning-dashboard /bbb-learning-dashboard && rm -r /bbb-learning-dashboard/.svn RUN cd /bbb-learning-dashboard && npm ci && npm run build diff --git a/mod/nginx/bbb/web.nginx b/mod/nginx/bbb/web.nginx index 8352ccf..c14e5bb 100755 --- a/mod/nginx/bbb/web.nginx +++ b/mod/nginx/bbb/web.nginx @@ -109,6 +109,13 @@ proxy_set_header Content-Length ""; proxy_set_header X-Original-URI $request_uri; } + location = /bigbluebutton/connection/legacyCheckAuthorization { + internal; + proxy_pass http://bbb-web:8090; + proxy_pass_request_body off; + proxy_set_header Content-Length ""; + proxy_set_header X-Original-URI $request_uri; + } location = /bigbluebutton/connection/validatePad { internal; diff --git a/mod/nginx/bigbluebutton b/mod/nginx/bigbluebutton index fbbf02a..833ef33 100644 --- a/mod/nginx/bigbluebutton +++ b/mod/nginx/bigbluebutton @@ -10,10 +10,11 @@ upstream poolhtml5servers { server 10.7.7.201:4101 fail_timeout=120s max_fails=1; server 10.7.7.202:4102 fail_timeout=120s max_fails=1; server 10.7.7.203:4103 fail_timeout=120s max_fails=1; - server 10.7.7.204:4104 fail_timeout=120s max_fails=1; - server 10.7.7.205:4105 fail_timeout=120s max_fails=1; - server 10.7.7.206:4106 fail_timeout=120s max_fails=1; - server 10.7.7.207:4107 fail_timeout=120s max_fails=1; + # TODO: set server list based on NUMBER_OF_FRONTEND_NODEJS_PROCESSES + # server 10.7.7.204:4104 fail_timeout=120s max_fails=1; + # server 10.7.7.205:4105 fail_timeout=120s max_fails=1; + # server 10.7.7.206:4106 fail_timeout=120s max_fails=1; + # server 10.7.7.207:4107 fail_timeout=120s max_fails=1; } server { diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile index e50cdf0..9e55053 100644 --- a/mod/recordings/Dockerfile +++ b/mod/recordings/Dockerfile @@ -45,7 +45,7 @@ RUN mkdir -p \ /usr/local/bigbluebutton/core \ /etc/bigbluebutton -ENV TAG v2.4-rc-7 +ENV TAG v2.4.0 # add bbb-record-core (lib, scripts and Gemfile) RUN cd /usr/local/bigbluebutton/core \ diff --git a/mod/webhooks/Dockerfile b/mod/webhooks/Dockerfile index d864fa0..9d3efbd 100644 --- a/mod/webhooks/Dockerfile +++ b/mod/webhooks/Dockerfile @@ -13,7 +13,7 @@ RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VE USER webhooks -ENV TAG v2.4-rc-5 +ENV TAG v2.4.0 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bbb-webhooks /app \ && rm -rf /app/.svn \ && cd /app && npm install --production From c34f407f6d6171a9c8e63e6837825d68413f4047 Mon Sep 17 00:00:00 2001 From: chandi Date: Tue, 21 Dec 2021 14:24:53 +0100 Subject: [PATCH 15/15] fix issue with jodconverter #178 closes #178 --- mod/jodconverter/Dockerfile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mod/jodconverter/Dockerfile b/mod/jodconverter/Dockerfile index 070db8d..fdbab6f 100644 --- a/mod/jodconverter/Dockerfile +++ b/mod/jodconverter/Dockerfile @@ -9,4 +9,9 @@ RUN apt-get update && apt -y install --no-install-recommends \ fonts-noto-cjk \ fonts-liberation \ fontconfig \ - ttf-mscorefonts-installer \ No newline at end of file + ttf-mscorefonts-installer + + +# avoid "APPLICATION FAILED TO START. Config data location '/etc/app/' does not exist" +# https://github.com/bigbluebutton/docker/issues/178 +CMD ["--spring.config.additional-location=optional:/etc/app/"] \ No newline at end of file