diff --git a/bbb-webrtc-sfu b/bbb-webrtc-sfu index 54934c7..a73429e 160000 --- a/bbb-webrtc-sfu +++ b/bbb-webrtc-sfu @@ -1 +1 @@ -Subproject commit 54934c71cff96be1bfcff84c204b452b9529c208 +Subproject commit a73429ebb82827a6be9cfae7b22f154a47d4dcf4 diff --git a/docker-compose.webhooks.yml b/docker-compose.webhooks.yml index 556afb2..396ef56 100644 --- a/docker-compose.webhooks.yml +++ b/docker-compose.webhooks.yml @@ -10,4 +10,4 @@ services: - redis networks: bbb-net: - ipv4_address: 10.7.7.15 \ No newline at end of file + ipv4_address: 10.7.7.17 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index abab638..4bff075 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -142,6 +142,8 @@ services: - redis - mongodb - etherpad + cap_add: + - SYS_NICE volumes: - html5-static:/html5-static:rw environment: diff --git a/mod/apps-akka/Dockerfile b/mod/apps-akka/Dockerfile index bc57c8b..27944b3 100644 --- a/mod/apps-akka/Dockerfile +++ b/mod/apps-akka/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u181_1.2.7 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.3-alpha-3 +ENV TAG_COMMON_MESSAGE v2.3-alpha-6 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-alpha-3 +ENV TAG v2.3-alpha-6 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 aaecb35..da3cc8f 100644 --- a/mod/bbb-web/Dockerfile +++ b/mod/bbb-web/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u181_1.2.7 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.3-alpha-3 +ENV TAG_COMMON_MESSAGE v2.3-alpha-6 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-alpha-3 +ENV TAG_COMMON_WEB v2.3-alpha-6 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-alpha-3 +ENV TAG_WEB v2.3-alpha-6 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_WEB/bigbluebutton-web /bbb-web \ && rm -rf /bbb-web/.svn diff --git a/mod/bbb-web/bigbluebutton.properties b/mod/bbb-web/bigbluebutton.properties index fd8ecf4..13fd67b 100644 --- a/mod/bbb-web/bigbluebutton.properties +++ b/mod/bbb-web/bigbluebutton.properties @@ -148,6 +148,9 @@ defaultDialAccessNumber=613-555-1234 # defaultGuestPolicy=ALWAYS_ACCEPT +# Enables or disables authenticated guest +authenticatedGuest=true + # #---------------------------------------------------- # Default welcome message to display when the participant joins the web @@ -255,7 +258,7 @@ defaultHTML5ClientUrl=${bigbluebutton.web.serverURL}/html5client/%%INSTANCEID%%/ allowRequestsWithoutSession=false # The url for where the guest will poll if approved to join or not. -defaultGuestWaitURL=${bigbluebutton.web.serverURL}/html5client/guestWait +defaultGuestWaitURL=${bigbluebutton.web.serverURL}/html5client/%%INSTANCEID%%/guestWait # The default avatar image to display. useDefaultAvatar=false diff --git a/mod/freeswitch/Dockerfile b/mod/freeswitch/Dockerfile index b5c8522..5e4779d 100644 --- a/mod/freeswitch/Dockerfile +++ b/mod/freeswitch/Dockerfile @@ -70,7 +70,11 @@ RUN apt-get update && apt-get install -y \ # we use svn for retrieving the files since the repo is quite large, # git sparse-checkout is not yet available with buster and there # is no other sane way of downloading a single directory via git -ENV GIT_TAG v2.2.9-freeswitch + +# TODO: +# switch to official source +# https://github.com/bigbluebutton/bigbluebutton/pull/11361 +ENV GIT_TAG v2.3-alpha-6 RUN cd /etc \ && svn checkout https://github.com/alangecker/bbb-packages/tags/$GIT_TAG/bbb-freeswitch-core/data/opt/freeswitch/etc/freeswitch \ && rm -rf /etc/freeswitch/.svn diff --git a/mod/fsesl-akka/Dockerfile b/mod/fsesl-akka/Dockerfile index b5975ef..dd95dad 100644 --- a/mod/fsesl-akka/Dockerfile +++ b/mod/fsesl-akka/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u181_1.2.7 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.3-alpha-3 +ENV TAG_COMMON_MESSAGE v2.3-alpha-6 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-alpha-3 +ENV TAG_FSESL v2.3-alpha-6 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-alpha-3 +ENV TAG v2.3-alpha-6 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 4ac662b..e857614 100644 --- a/mod/html5/Dockerfile +++ b/mod/html5/Dockerfile @@ -14,7 +14,7 @@ USER meteor ENV METEOR_VERSION 1.10.2 RUN curl -sL https://install.meteor.com?release=$METEOR_VERSION | sed s/--progress-bar/-sL/g | /bin/sh -ENV TAG v2.3-alpha-3 +ENV TAG v2.3-alpha-6 RUN cd ~ \ && svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bigbluebutton-html5 \ && mv ~/bigbluebutton-html5 ~/source \ @@ -41,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.3-alpha-3 +ENV TAG v2.3-alpha-6 diff --git a/mod/html5/entrypoint.sh b/mod/html5/entrypoint.sh index 3e7f92d..09f7694 100755 --- a/mod/html5/entrypoint.sh +++ b/mod/html5/entrypoint.sh @@ -9,6 +9,8 @@ export SERVER_WEBSOCKET_COMPRESSION=0 export BIND_IP=0.0.0.0 export LANG=en_US.UTF-8 export INSTANCE_MAX=1 +export ENVIRONMENT_TYPE=production +export NODE_VERSION=node-v12.16.1-linux-x64 if [ "$DEV_MODE" == true ]; then echo "DEV_MODE=true, disable TLS certificate rejecting" @@ -33,4 +35,6 @@ export PORT=4000 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 \ - su-exec meteor node main.js + nice -n-2 \ + su-exec meteor \ + node --max-old-space-size=2048 --max_semi_space_size=128 main.js diff --git a/mod/html5/settings.yml b/mod/html5/settings.yml index 0b2e5bb..e65acf4 100644 --- a/mod/html5/settings.yml +++ b/mod/html5/settings.yml @@ -7,11 +7,12 @@ public: listenOnlyMode: {{ .Env.LISTEN_ONLY_MODE }} forceListenOnly: false skipCheck: {{ .Env.DISABLE_ECHO_TEST }} + skipCheckOnJoin: false clientTitle: {{ .Env.CLIENT_TITLE }} appName: BigBlueButton HTML5 Client bbbServerVersion: 2.3-dev-docker - copyright: '©2020 BigBlueButton Inc.' - html5ClientBuild: "1311-docker" + copyright: '©2021 BigBlueButton Inc.' + html5ClientBuild: "1353-docker" helpLink: https://bigbluebutton.org/html5/ lockOnJoin: true cdn: '' @@ -56,6 +57,25 @@ public: raiseHandPushAlerts: true fallbackLocale: en 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 @@ -111,10 +131,12 @@ public: # 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: 15000 + baseTimeout: 30000 # Max timeout: used as the max camera subscribe reconnection timeout. Each # subscribe reattempt increases the reconnection timer up to this maxTimeout: 60000 @@ -219,6 +241,7 @@ public: enableListenOnly: true autoShareWebcam: {{ .Env.AUTO_SHARE_WEBCAM }} skipVideoPreview: {{ .Env.DISABLE_VIDEO_PREVIEW }} + skipVideoPreviewOnFirstJoin: false # 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 @@ -253,9 +276,9 @@ public: mobilePageSizes: moderator: 2 viewer: 2 - pingPong: - clearUsersInSeconds: 180 - pongTimeInSeconds: 15 + syncUsersWithConnectionManager: + enabled: false + syncInterval: 60000 allowOutsideCommands: toggleRecording: false toggleSelfVoice: false @@ -324,6 +347,8 @@ public: #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 @@ -400,7 +425,13 @@ public: user: role_moderator: MODERATOR role_viewer: VIEWER + label: + moderator: false + mobile: true + guest: true whiteboard: + annotationsQueueProcessInterval: 60 + cursorInterval: 150 annotations: status: start: DRAW_START @@ -498,7 +529,6 @@ public: private: app: host: 0.0.0.0 - port: 4000 localesUrl: /locales pencilChunkLength: 100 loadSlidesFromHttpAlways: false @@ -540,6 +570,7 @@ private: leak: enabled: false heapdump: + thresholdMb: 1024 enabled: false heapdumpFolderPath: HEAPDUMP_FOLDER heapdumpIntervalMs: 3600000 diff --git a/mod/libreoffice/Dockerfile b/mod/libreoffice/Dockerfile index 4c411ba..3402042 100644 --- a/mod/libreoffice/Dockerfile +++ b/mod/libreoffice/Dockerfile @@ -2,7 +2,11 @@ FROM woahbase/alpine-libreoffice USER root -RUN apk add su-exec +RUN apk add --no-cache \ + su-exec \ + font-noto \ + font-noto-cjk + # should use the same user ID as in `core` to avoid file permission issues RUN addgroup -g 998 bigbluebutton && adduser -D -u 998 -G bigbluebutton bigbluebutton COPY entrypoint.sh /entrypoint.sh diff --git a/mod/nginx/Dockerfile b/mod/nginx/Dockerfile index 56d6405..bd5f5df 100644 --- a/mod/nginx/Dockerfile +++ b/mod/nginx/Dockerfile @@ -1,14 +1,29 @@ -FROM nginx:1.19-alpine +FROM node:14-alpine AS builder RUN apk add subversion -ENV TAG v2.3-alpha-3 +# -------------------- -# get bbb-playback-presentation web files -RUN mkdir /www \ - && cd /www \ - && svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/record-and-playback/presentation/playback/presentation/ \ - && rm -rf /www/presentation/.svn /www/presentation/0.* +ENV TAG_PlAYBACK_LEGACY v2.3-alpha-6 +RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_PlAYBACK_LEGACY/record-and-playback/presentation/playback/presentation /playback-legacy +# -------------------- + +ENV TAG_PLAYBACK v2.3.2 +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 svn checkout https://github.com/bigbluebutton/bbb-playback/trunk /bbb-playback +RUN cd /bbb-playback && npm install && npm run-script build + +# -------------------- + +FROM nginx:1.19-alpine + +COPY --from=builder /playback-legacy/2.0 /www/presentation/2.0 +COPY --from=builder /bbb-playback/build /www/presentation/2.3 COPY ./bbb /etc/nginx/bbb COPY ./bigbluebutton /etc/nginx/conf.d/default.conf \ No newline at end of file diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile index 60a58ec..66cc0be 100644 --- a/mod/recordings/Dockerfile +++ b/mod/recordings/Dockerfile @@ -39,7 +39,7 @@ RUN mkdir -p \ /usr/local/bigbluebutton/core \ /etc/bigbluebutton -ENV TAG v2.3-alpha-3 +ENV TAG v2.3-alpha-6 # add bbb-record-core (lib, scripts and Gemfile) RUN cd /usr/local/bigbluebutton/core \ @@ -59,7 +59,7 @@ RUN cd /tmp \ # install ruby dependencies RUN cd /usr/local/bigbluebutton/core \ && gem install builder \ - && gem install bundler -v 2.1.4 \ + && gem install bundler --no-document \ && /usr/local/bin/bundle # log to file instead of journald @@ -67,10 +67,6 @@ RUN sed -i 's|Journald::Logger\.new.*|Logger.new("/var/log/bigbluebutton/recordi 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 -# fix syntax error in v2.3-alpha-3 -# https://github.com/bigbluebutton/bigbluebutton/pull/11060 -RUN sed -i 's|File\.exist(|File.exist?(|' /usr/local/bigbluebutton/core/lib/recordandplayback/workers/events_worker.rb - # add bbb-record with some adjustments so bbb-record works in this environment RUN cd /usr/bin \ && wget https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/$TAG/bigbluebutton-config/bin/bbb-record \ diff --git a/mod/webhooks/Dockerfile b/mod/webhooks/Dockerfile index 201aa68..91649d8 100644 --- a/mod/webhooks/Dockerfile +++ b/mod/webhooks/Dockerfile @@ -13,7 +13,7 @@ RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSI USER webhooks -ENV TAG v2.3-alpha-2 +ENV TAG v2.3-alpha-6 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bbb-webhooks /app \ && rm -rf /app/.svn \ && cd /app && npm install --production