forked from extern/docker
updates for v2.3-alpha-3
This commit is contained in:
parent
d68cf44afc
commit
747f64e901
@ -1 +1 @@
|
||||
Subproject commit 400fe636e63563437fb112c2df0261d6be9f103e
|
||||
Subproject commit 54934c71cff96be1bfcff84c204b452b9529c208
|
@ -17,7 +17,7 @@ services:
|
||||
ports:
|
||||
- 10.7.7.1:5000:80
|
||||
postgres:
|
||||
image: postgres:12
|
||||
image: postgres:12-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: greenlight
|
||||
|
@ -10,6 +10,9 @@ services:
|
||||
- bigbluebutton:/var/bigbluebutton
|
||||
- vol-freeswitch:/var/freeswitch/meetings
|
||||
- vol-kurento:/var/kurento
|
||||
tmpfs:
|
||||
- /var/log/bigbluebutton
|
||||
- /tmp
|
||||
networks:
|
||||
bbb-net:
|
||||
ipv4_address: 10.7.7.16
|
@ -88,7 +88,7 @@ services:
|
||||
ipv4_address: 10.7.7.5
|
||||
|
||||
mongodb:
|
||||
image: mongo:4.2
|
||||
image: mongo:4.4
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
bbb-net:
|
||||
@ -162,12 +162,16 @@ services:
|
||||
|
||||
fsesl-akka:
|
||||
build: mod/fsesl-akka
|
||||
depends_on:
|
||||
- redis
|
||||
networks:
|
||||
bbb-net:
|
||||
ipv4_address: 10.7.7.14
|
||||
|
||||
apps-akka:
|
||||
build: mod/apps-akka
|
||||
depends_on:
|
||||
- redis
|
||||
environment:
|
||||
DOMAIN: ${DOMAIN}
|
||||
SHARED_SECRET: ${SHARED_SECRET}
|
||||
|
@ -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-2
|
||||
ENV TAG_COMMON_MESSAGE v2.3-alpha-3
|
||||
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-2
|
||||
ENV TAG v2.3-alpha-3
|
||||
RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-apps /source \
|
||||
&& rm -rf /source/.svn
|
||||
|
||||
|
@ -59,11 +59,6 @@ eventBus {
|
||||
outBbbMsgMsgChannel = "OutBbbMsgChannel"
|
||||
}
|
||||
|
||||
sharedNotes {
|
||||
maxNumberOfNotes = 3
|
||||
maxNumberOfUndos = 30
|
||||
}
|
||||
|
||||
http {
|
||||
interface = "10.7.7.2"
|
||||
port = 9999
|
||||
@ -76,6 +71,7 @@ services {
|
||||
|
||||
apps {
|
||||
checkPermissions = true
|
||||
ejectOnViolation = false
|
||||
endMeetingWhenNoMoreAuthedUsers = false
|
||||
endMeetingWhenNoMoreAuthedUsersAfterMinutes = 2
|
||||
}
|
||||
|
@ -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-2
|
||||
ENV TAG_COMMON_MESSAGE v2.3-alpha-3
|
||||
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-2
|
||||
ENV TAG_COMMON_WEB v2.3-alpha-3
|
||||
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-2
|
||||
ENV TAG_WEB v2.3-alpha-3
|
||||
RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_WEB/bigbluebutton-web /bbb-web \
|
||||
&& rm -rf /bbb-web/.svn
|
||||
|
||||
@ -90,6 +90,8 @@ COPY --from=builder /dist /usr/share/bbb-web
|
||||
COPY --from=builder /bbb-web/pres-checker/lib /usr/share/prescheck/lib
|
||||
COPY --from=builder /bbb-web/pres-checker/run.sh /usr/share/prescheck/prescheck.sh
|
||||
|
||||
COPY mocked-ps /usr/bin/ps
|
||||
|
||||
# add entrypoint and templates
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY bigbluebutton.properties /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.tmpl
|
||||
|
@ -19,7 +19,7 @@
|
||||
#
|
||||
# These are the default properites for BigBlueButton Web application
|
||||
|
||||
# Default loglevel.
|
||||
# Default loglevel.
|
||||
appLogLevel=DEBUG
|
||||
|
||||
#----------------------------------------------------
|
||||
@ -172,19 +172,10 @@ defaultMaxUsers=0
|
||||
# Current default is 0 (meeting doesn't end).
|
||||
defaultMeetingDuration=0
|
||||
|
||||
# Number of minutes elapse of no activity before
|
||||
# ending the meeting. Default zero (0) to disable
|
||||
# check.
|
||||
maxInactivityTimeoutMinutes=0
|
||||
|
||||
# Number of minutes to logout client if user
|
||||
# isn't responsive
|
||||
clientLogoutTimerInMinutes=0
|
||||
|
||||
# Send warning to moderators to warn that
|
||||
# meeting would be ended due to inactivity
|
||||
warnMinutesBeforeMax=5
|
||||
|
||||
# End meeting if no user joined within
|
||||
# a period of time after meeting created.
|
||||
meetingExpireIfNoUserJoinedInMinutes=5
|
||||
@ -204,7 +195,7 @@ userInactivityThresholdInMinutes=30
|
||||
# warning before being logged out.
|
||||
userActivitySignResponseDelayInMinutes=5
|
||||
|
||||
# Disable recording by default.
|
||||
# Disable recording by default.
|
||||
# true - don't record even if record param in the api call is set to record
|
||||
# false - when record param is passed from api, override this default
|
||||
{{ if isTrue .Env.ENABLE_RECORDING }}
|
||||
@ -215,7 +206,7 @@ disableRecordingDefault=true
|
||||
|
||||
# Start recording when first user joins the meeting.
|
||||
# For backward compatibility with 0.81 where whole meeting
|
||||
# is recorded.
|
||||
# is recorded.
|
||||
autoStartRecording=false
|
||||
|
||||
# Allow the user to start/stop recording.
|
||||
@ -256,31 +247,19 @@ bigbluebutton.web.serverURL=https://{{ .Env.DOMAIN }}
|
||||
# If "default", it returns to bigbluebutton.web.serverURL
|
||||
bigbluebutton.web.logoutURL=default
|
||||
|
||||
# The url of the BigBlueButton client. Users will be redirected here when
|
||||
# The url of the BigBlueButton HTML5 client. Users will be redirected here when
|
||||
# successfully joining the meeting.
|
||||
defaultClientUrl=${bigbluebutton.web.serverURL}/client/BigBlueButton.html
|
||||
defaultHTML5ClientUrl=${bigbluebutton.web.serverURL}/html5client/%%INSTANCEID%%/join
|
||||
|
||||
# Allow requests without JSESSIONID to be handled (default = false)
|
||||
allowRequestsWithoutSession=false
|
||||
|
||||
# Force all attendees to join the meeting using the HTML5 client
|
||||
attendeesJoinViaHTML5Client=true
|
||||
|
||||
# Force all moderators to join the meeting using the HTML5 client
|
||||
moderatorsJoinViaHTML5Client=true
|
||||
|
||||
# The url of the BigBlueButton HTML5 client. Users will be redirected here when
|
||||
# successfully joining the meeting.
|
||||
html5ClientUrl=${bigbluebutton.web.serverURL}/html5client/join
|
||||
|
||||
|
||||
# The url for where the guest will poll if approved to join or not.
|
||||
defaultGuestWaitURL=${bigbluebutton.web.serverURL}/client/guest-wait.html
|
||||
defaultGuestWaitURL=${bigbluebutton.web.serverURL}/html5client/guestWait
|
||||
|
||||
# The default avatar image to display if nothing is passed on the JOIN API (avatarURL)
|
||||
# call. This avatar is displayed if the user isn't sharing the webcam and
|
||||
# the option (displayAvatar) is enabled in config.xml
|
||||
defaultAvatarURL=${bigbluebutton.web.serverURL}/client/avatar.png
|
||||
# The default avatar image to display.
|
||||
useDefaultAvatar=false
|
||||
defaultAvatarURL=${bigbluebutton.web.serverURL}/html5client/resources/images/avatar.png
|
||||
|
||||
# The URL of the default configuration
|
||||
defaultConfigURL=${bigbluebutton.web.serverURL}/client/conf/config.xml
|
||||
|
@ -8,6 +8,22 @@ for i in `seq 1 4` ; do
|
||||
socat TCP-LISTEN:$PORT,fork TCP:10.7.7.7:$PORT &
|
||||
done
|
||||
|
||||
# create recording directory structure if it doesn't exist yet
|
||||
mkdir -p /var/bigbluebutton/recording/raw
|
||||
mkdir -p /var/bigbluebutton/recording/process
|
||||
mkdir -p /var/bigbluebutton/recording/publish
|
||||
mkdir -p /var/bigbluebutton/recording/status/recorded
|
||||
mkdir -p /var/bigbluebutton/recording/status/archived
|
||||
mkdir -p /var/bigbluebutton/recording/status/processed
|
||||
mkdir -p /var/bigbluebutton/recording/status/sanity
|
||||
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/deleted
|
||||
mkdir -p /var/bigbluebutton/unpublished
|
||||
chown -R bigbluebutton:bigbluebutton /var/bigbluebutton
|
||||
|
||||
cd /usr/share/bbb-web/
|
||||
dockerize \
|
||||
-template /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.tmpl:/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties \
|
||||
|
3
mod/bbb-web/mocked-ps
Executable file
3
mod/bbb-web/mocked-ps
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
echo "(mocked-ps for HTML5LoadBalancingService.java)"
|
||||
echo " 0.1 /usr/share/node-v12.16.1-linux-x64/bin/node main.js INFO_INSTANCE_ID=1"
|
@ -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-2
|
||||
ENV TAG_COMMON_MESSAGE v2.3-alpha-3
|
||||
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-2
|
||||
ENV TAG_FSESL v2.3-alpha-3
|
||||
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-2
|
||||
ENV TAG v2.3-alpha-3
|
||||
RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-fsesl /source \
|
||||
&& rm -rf /source/.svn
|
||||
|
||||
|
@ -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-2
|
||||
ENV TAG v2.3-alpha-3
|
||||
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-2
|
||||
ENV TAG v2.3-alpha-3
|
||||
|
@ -2,13 +2,13 @@
|
||||
set -e
|
||||
|
||||
cd /app
|
||||
export ROOT_URL=http://127.0.0.1/html5client
|
||||
# export MONGO_OPLOG_URL=mongodb://10.7.7.6/local
|
||||
export MONGO_URL=mongodb://10.7.7.6/meteor
|
||||
export NODE_ENV=production
|
||||
export ENVIRONMENT_TYPE=production
|
||||
export SERVER_WEBSOCKET_COMPRESSION=0
|
||||
export PORT=3000
|
||||
export BIND_IP=0.0.0.0
|
||||
export LANG=en_US.UTF-8
|
||||
export INSTANCE_MAX=1
|
||||
|
||||
if [ "$DEV_MODE" == true ]; then
|
||||
echo "DEV_MODE=true, disable TLS certificate rejecting"
|
||||
@ -22,6 +22,14 @@ if [ -d "/html5-static" ]; then
|
||||
cp -r /app/programs/web.browser/* /html5-static
|
||||
fi
|
||||
|
||||
|
||||
# TODO: start multiple instances (introduced with v2.3-alpha-3)
|
||||
# https://github.com/bigbluebutton/bigbluebutton/releases/tag/v2.3-alpha-3
|
||||
|
||||
export INSTANCE_ID=1
|
||||
export ROOT_URL=http://127.0.0.1/html5client/$INSTANCE_ID
|
||||
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 \
|
||||
|
@ -9,13 +9,13 @@ public:
|
||||
skipCheck: {{ .Env.DISABLE_ECHO_TEST }}
|
||||
clientTitle: {{ .Env.CLIENT_TITLE }}
|
||||
appName: BigBlueButton HTML5 Client
|
||||
bbbServerVersion: 2.3-dev
|
||||
copyright: "©2020 BigBlueButton Inc."
|
||||
html5ClientBuild: 1250
|
||||
bbbServerVersion: 2.3-dev-docker
|
||||
copyright: '©2020 BigBlueButton Inc.'
|
||||
html5ClientBuild: "1311-docker"
|
||||
helpLink: https://bigbluebutton.org/html5/
|
||||
lockOnJoin: true
|
||||
cdn: ""
|
||||
basename: "/html5client"
|
||||
cdn: ''
|
||||
basename: '/html5client'
|
||||
askForFeedbackOnLogout: false
|
||||
# the default logoutUrl matches window.location.origin i.e. bigbluebutton.org for demo.bigbluebutton.org
|
||||
# in some cases we want only custom logoutUrl to be used when provided on meeting create. Default value: true
|
||||
@ -27,17 +27,18 @@ public:
|
||||
enableTalkingIndicator: true
|
||||
mirrorOwnWebcam: false
|
||||
viewersInWebcam: 8
|
||||
ipv4FallbackDomain: ""
|
||||
ipv4FallbackDomain: ''
|
||||
allowLogout: true
|
||||
allowFullscreen: true
|
||||
preloadNextSlides: 2
|
||||
mutedAlert:
|
||||
enabled: true
|
||||
enabled: false
|
||||
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 12.
|
||||
@ -89,6 +90,9 @@ public:
|
||||
openActions:
|
||||
accesskey: A
|
||||
descId: openActions
|
||||
openDebugWindow:
|
||||
accesskey: K
|
||||
descId: openDebugWindow
|
||||
branding:
|
||||
displayBrandingArea: true
|
||||
connectionTimeout: 60000
|
||||
@ -261,8 +265,8 @@ public:
|
||||
captions:
|
||||
enabled: true
|
||||
enableDictation: false
|
||||
backgroundColor: "#000000"
|
||||
fontColor: "#FFFFFF"
|
||||
backgroundColor: '#000000'
|
||||
fontColor: '#FFFFFF'
|
||||
fontFamily: Calibri
|
||||
fontSize: 24px
|
||||
takeOwnership: true
|
||||
@ -301,13 +305,13 @@ public:
|
||||
layout:
|
||||
autoSwapLayout: false
|
||||
hidePresentation: false
|
||||
webcamsDefaultPlacement: "top"
|
||||
webcamsDefaultPlacement: 'top'
|
||||
media:
|
||||
stunTurnServersFetchAddress: "/bigbluebutton/api/stuns"
|
||||
stunTurnServersFetchAddress: '/bigbluebutton/api/stuns'
|
||||
cacheStunTurnServers: true
|
||||
fallbackStunServer: ''
|
||||
fallbackStunServer: ''
|
||||
recvonlyIceGatheringCheck: true
|
||||
mediaTag: "#remote-media"
|
||||
mediaTag: '#remote-media'
|
||||
callTransferTimeout: 5000
|
||||
callHangupTimeout: 2000
|
||||
callHangupMaximumRetries: 10
|
||||
@ -353,46 +357,46 @@ public:
|
||||
defaultPresentationFile: default.pdf
|
||||
panZoomThrottle: 32
|
||||
restoreOnUpdate: false
|
||||
uploadEndpoint: "/bigbluebutton/presentation/upload"
|
||||
uploadEndpoint: '/bigbluebutton/presentation/upload'
|
||||
uploadSizeMin: 0
|
||||
uploadSizeMax: 50000000
|
||||
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
|
||||
- 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
|
||||
user:
|
||||
role_moderator: MODERATOR
|
||||
role_viewer: VIEWER
|
||||
@ -405,77 +409,77 @@ public:
|
||||
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"
|
||||
- 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
|
||||
- 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
|
||||
- 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
|
||||
- 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
|
||||
- text
|
||||
- line
|
||||
- ellipse
|
||||
- triangle
|
||||
- rectangle
|
||||
- pencil
|
||||
- hand
|
||||
multiUserTools:
|
||||
- text
|
||||
- line
|
||||
- ellipse
|
||||
- triangle
|
||||
- rectangle
|
||||
- pencil
|
||||
- hand
|
||||
- text
|
||||
- line
|
||||
- ellipse
|
||||
- triangle
|
||||
- rectangle
|
||||
- pencil
|
||||
- hand
|
||||
clientLog:
|
||||
server:
|
||||
enabled: false
|
||||
@ -490,11 +494,11 @@ public:
|
||||
method: POST
|
||||
throttleInterval: 400
|
||||
flushOnClose: true
|
||||
logTag: ""
|
||||
logTag: ''
|
||||
private:
|
||||
app:
|
||||
host: 0.0.0.0
|
||||
port: 3000
|
||||
port: 4000
|
||||
localesUrl: /locales
|
||||
pencilChunkLength: 100
|
||||
loadSlidesFromHttpAlways: false
|
||||
@ -518,15 +522,15 @@ private:
|
||||
toAkkaApps: to-akka-apps-redis-channel
|
||||
toThirdParty: to-third-party-redis-channel
|
||||
subscribeTo:
|
||||
- to-html5-redis-channel
|
||||
- from-akka-apps-*
|
||||
- from-third-party-redis-channel
|
||||
- from-etherpad-redis-channel
|
||||
- to-html5-redis-channel
|
||||
- from-akka-apps-*
|
||||
- from-third-party-redis-channel
|
||||
- from-etherpad-redis-channel
|
||||
async:
|
||||
- from-akka-apps-wb-redis-channel
|
||||
- from-akka-apps-wb-redis-channel
|
||||
ignored:
|
||||
- CheckAlivePongSysMsg
|
||||
- DoLatencyTracerMsg
|
||||
- CheckAlivePongSysMsg
|
||||
- DoLatencyTracerMsg
|
||||
serverLog:
|
||||
level: info
|
||||
streamerLog: false
|
||||
|
@ -2,7 +2,7 @@ FROM nginx:1.19-alpine
|
||||
|
||||
RUN apk add subversion
|
||||
|
||||
ENV TAG v2.3-alpha-2
|
||||
ENV TAG v2.3-alpha-3
|
||||
|
||||
# get bbb-playback-presentation web files
|
||||
RUN mkdir /www \
|
||||
|
@ -1,28 +1,33 @@
|
||||
location @html5client {
|
||||
proxy_pass http://html5:3000;
|
||||
proxy_pass http://html5:4000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
}
|
||||
|
||||
location /html5client/compatibility {
|
||||
location /html5client/1/compatibility {
|
||||
alias /html5-static/app/compatibility;
|
||||
}
|
||||
location /html5client/fonts {
|
||||
location /html5client/1/fonts {
|
||||
alias /html5-static/app/fonts;
|
||||
}
|
||||
location /html5client/resources {
|
||||
location /html5client/1/resources {
|
||||
alias /html5-static/app/resources;
|
||||
}
|
||||
location /html5client/svgs {
|
||||
location /html5client/1/svgs {
|
||||
alias /html5-static/app/svgs;
|
||||
}
|
||||
|
||||
location /html5client {
|
||||
location /html5client/1 {
|
||||
alias /html5-static;
|
||||
try_files $uri @html5client;
|
||||
}
|
||||
|
||||
location /html5client/ {
|
||||
alias /html5-static;
|
||||
try_files $uri @html5client;
|
||||
}
|
||||
|
||||
location /_timesync {
|
||||
proxy_pass http://html5:3000;
|
||||
proxy_pass http://html5:4000;
|
||||
}
|
||||
|
@ -1,4 +0,0 @@
|
||||
location = /client/guest-wait.html {
|
||||
alias /etc/nginx/bbb/guest-wait.html;
|
||||
}
|
||||
|
@ -1,81 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
|
||||
<head>
|
||||
<title>Guest Lobby</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<style></style>
|
||||
|
||||
<script type="text/javascript">
|
||||
function updateMessage(message) {
|
||||
document.querySelector('#content > p').innerHTML = message;
|
||||
}
|
||||
|
||||
function findSessionToken() {
|
||||
return location.search
|
||||
.substr(1)
|
||||
.split('&')
|
||||
.find(function(item) {
|
||||
return item.split('=')[0] === 'sessionToken'
|
||||
});
|
||||
};
|
||||
|
||||
function fetchGuestWait(sessionToken) {
|
||||
const GUEST_WAIT_ENDPOINT = '/bigbluebutton/api/guestWait';
|
||||
return window.fetch(GUEST_WAIT_ENDPOINT+'?'+sessionToken+'&redirect=false')
|
||||
.then(res => res.json())
|
||||
};
|
||||
|
||||
function pollGuestStatus(token, attempt, limit, everyMs) {
|
||||
setTimeout(function() {
|
||||
var REDIRECT_STATUSES = ['ALLOW', 'DENY'];
|
||||
|
||||
|
||||
if (attempt >= limit) {
|
||||
updateMessage('TIMEOUT_MESSAGE_HERE');
|
||||
return;
|
||||
}
|
||||
|
||||
fetchGuestWait(token).then(function(data) {
|
||||
console.log("data=" + JSON.stringify(data));
|
||||
var status = data.response.guestStatus;
|
||||
|
||||
if (REDIRECT_STATUSES.includes(status)) {
|
||||
window.location = data.response.url;
|
||||
return;
|
||||
}
|
||||
|
||||
return pollGuestStatus(token, attempt + 1, limit, everyMs);
|
||||
})
|
||||
}, everyMs);
|
||||
};
|
||||
|
||||
window.onload = function() {
|
||||
try {
|
||||
var ATTEMPT_EVERY_MS = 5000;
|
||||
var ATTEMPT_LIMIT = 100;
|
||||
|
||||
var sessionToken = findSessionToken();
|
||||
|
||||
if(!sessionToken) {
|
||||
updateMessage('NO_SESSION_TOKEN_MESSAGE');
|
||||
return;
|
||||
}
|
||||
|
||||
pollGuestStatus(sessionToken, 0, ATTEMPT_LIMIT, ATTEMPT_EVERY_MS);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
updateMessage('GENERIC_ERROR_MESSAGE');
|
||||
}
|
||||
};
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="banner"></div>
|
||||
<div id="content">
|
||||
<p>Please wait for a moderator to approve you joining the meeting.</p>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -14,7 +14,8 @@ RUN apt-get update && apt-get install -y \
|
||||
python3-icu \
|
||||
ffmpeg \
|
||||
poppler-utils \
|
||||
imagemagick
|
||||
imagemagick \
|
||||
supervisor
|
||||
|
||||
# compile and install mkclean
|
||||
RUN cd /tmp \
|
||||
@ -25,7 +26,7 @@ RUN cd /tmp \
|
||||
&& ./mkclean/configure.compiled \
|
||||
&& make -C mkclean \
|
||||
&& cp ./release/gcc_linux_x64/mkclean /usr/bin/mkclean \
|
||||
&& rm -r /tmp/mkclean-0.8.10
|
||||
&& rm -r /tmp/mkclean-*
|
||||
|
||||
# add dockerize
|
||||
ENV DOCKERIZE_VERSION v0.6.1
|
||||
@ -36,11 +37,9 @@ RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSI
|
||||
RUN mkdir -p \
|
||||
/usr/local/bigbluebutton \
|
||||
/usr/local/bigbluebutton/core \
|
||||
/etc/bigbluebutton \
|
||||
/var/log/bigbluebutton \
|
||||
/var/log/bigbluebutton/presentation
|
||||
/etc/bigbluebutton
|
||||
|
||||
ENV TAG v2.3-alpha-2
|
||||
ENV TAG v2.3-alpha-3
|
||||
|
||||
# add bbb-record-core (lib, scripts and Gemfile)
|
||||
RUN cd /usr/local/bigbluebutton/core \
|
||||
@ -48,8 +47,8 @@ RUN cd /usr/local/bigbluebutton/core \
|
||||
&& svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/record-and-playback/core/scripts \
|
||||
&& rm -rf /usr/local/bigbluebutton/core/*/.svn \
|
||||
&& wget https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/$TAG/record-and-playback/core/Gemfile.lock \
|
||||
&& wget https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/$TAG/record-and-playback/core/Gemfile
|
||||
|
||||
&& wget https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/$TAG/record-and-playback/core/Gemfile \
|
||||
&& wget https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/$TAG/record-and-playback/core/Rakefile
|
||||
|
||||
# add bbb-playback-presentation scripts
|
||||
RUN cd /tmp \
|
||||
@ -60,33 +59,36 @@ RUN cd /tmp \
|
||||
# install ruby dependencies
|
||||
RUN cd /usr/local/bigbluebutton/core \
|
||||
&& gem install builder \
|
||||
&& gem install bundler \
|
||||
&& gem install bundler -v 2.1.4 \
|
||||
&& /usr/local/bin/bundle
|
||||
|
||||
# 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
|
||||
|
||||
# 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 \
|
||||
&& chmod +x /usr/bin/bbb-record \
|
||||
&& sed -i 's/^BBB_WEB.*/BBB_WEB=""/' /usr/bin/bbb-record \
|
||||
&& sed -i 's/systemctl.*//' /usr/bin/bbb-record \
|
||||
&& echo "BIGBLUEBUTTON_RELEASE=$TAG" > /etc/bigbluebutton/bigbluebutton-release \
|
||||
&& touch /var/log/bigbluebutton/bbb-web.log
|
||||
&& echo "BIGBLUEBUTTON_RELEASE=$TAG" > /etc/bigbluebutton/bigbluebutton-release
|
||||
|
||||
# create user
|
||||
# the ID should match the one creating the files in `core`
|
||||
RUN groupadd -g 998 bigbluebutton && useradd -m -u 998 -g bigbluebutton bigbluebutton
|
||||
|
||||
# change owner
|
||||
# https://github.com/alangecker/bigbluebutton-docker/issues/63
|
||||
RUN chown -R 998:998 /usr/local/bigbluebutton /var/log/bigbluebutton
|
||||
RUN chown -R 998:998 /usr/local/bigbluebutton
|
||||
|
||||
COPY bigbluebutton.yml /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml.tmpl
|
||||
ADD log-collector.py /log-collector.py
|
||||
ADD entrypoint.sh /entrypoint.sh
|
||||
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
|
||||
# change user before entrypoint
|
||||
# to set user rights for all generated videos
|
||||
USER bigbluebutton
|
||||
|
||||
ENTRYPOINT dockerize \
|
||||
-template /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml.tmpl:/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml \
|
||||
/entrypoint.sh
|
||||
ENTRYPOINT /entrypoint.sh
|
@ -1,4 +1,4 @@
|
||||
bbb_version: '2.2.30'
|
||||
bbb_version: '2.1.0'
|
||||
raw_audio_src: /var/freeswitch/meetings
|
||||
raw_video_src: /usr/share/red5/webapps/video/streams
|
||||
kurento_video_src: /var/kurento/recordings
|
||||
@ -11,14 +11,30 @@ notes_endpoint: http://etherpad:9001/p
|
||||
# Specify the notes formats we archive
|
||||
# txt, doc and odt are also supported
|
||||
notes_formats:
|
||||
- etherpad
|
||||
- html
|
||||
- pdf
|
||||
- etherpad
|
||||
- html
|
||||
- pdf
|
||||
redis_host: redis
|
||||
redis_port: 6379
|
||||
# Uncomment and set password if redis require it.
|
||||
# redis_password: changeme
|
||||
|
||||
# redis_workers_host: 127.0.0.1
|
||||
# redis_workers_port: 6379
|
||||
|
||||
# Sequence of recording steps. Keys are the current step, values
|
||||
# are the next step(s). Examples:
|
||||
# current_step: next_step
|
||||
# "current_step-format": "next_step-format"
|
||||
# current_step:
|
||||
# - next_step
|
||||
# - another_step-format
|
||||
steps:
|
||||
archive: "sanity"
|
||||
sanity: "captions"
|
||||
captions: "process:presentation"
|
||||
"process:presentation": "publish:presentation"
|
||||
|
||||
# For PRODUCTION
|
||||
log_dir: /var/log/bigbluebutton
|
||||
events_dir: /var/bigbluebutton/events
|
||||
@ -34,4 +50,4 @@ playback_protocol: https
|
||||
#log_dir: /home/ubuntu/temp/log
|
||||
#recording_dir: /home/ubuntu/temp/recording
|
||||
#published_dir: /home/ubuntu/temp/published
|
||||
#playback_host: meet.livingutopia.org
|
||||
#playback_host: 127.0.0.1
|
@ -1,27 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# print all logs to stdout
|
||||
python3 -u /log-collector.py &
|
||||
touch /var/log/bigbluebutton/recording.log
|
||||
touch /var/log/bigbluebutton/bbb-web.log
|
||||
mkdir -p /var/log/bigbluebutton/presentation
|
||||
chown -R bigbluebutton:bigbluebutton /var/log/bigbluebutton
|
||||
|
||||
cd /usr/local/bigbluebutton/core/scripts
|
||||
PATH_CHECK="/var/bigbluebutton/recording/status"
|
||||
while true; do
|
||||
echo "execute workers..."
|
||||
if [[ $(compgen -G "$PATH_CHECK/recorded/*.done") ]];then
|
||||
bundle exec ruby rap-archive-worker.rb
|
||||
fi
|
||||
if [[ $(compgen -G "$PATH_CHECK/archived/*.done") ]];then
|
||||
bundle exec ruby rap-sanity-worker.rb
|
||||
fi
|
||||
if [[ $(compgen -G "$PATH_CHECK/sanity/*.done") ]];then
|
||||
bundle exec ruby rap-process-worker.rb
|
||||
fi
|
||||
if [[ $(compgen -G "$PATH_CHECK/processed/*.done") ]];then
|
||||
bundle exec ruby rap-publish-worker.rb
|
||||
fi
|
||||
#bundle exec ruby rap-caption-inbox.rb
|
||||
if [[ $(compgen -G "$PATH_CHECK/ended/*.done") ]];then
|
||||
bundle exec ruby rap-events-worker.rb
|
||||
fi
|
||||
sleep 30s
|
||||
done
|
||||
dockerize \
|
||||
-template /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml.tmpl:/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml \
|
||||
-stdout /var/log/bigbluebutton/recording.log \
|
||||
/usr/bin/supervisord --nodaemon
|
@ -1,45 +0,0 @@
|
||||
# this script sends all entries from different logfiles
|
||||
# to stdout, so that they appear in the docker logs
|
||||
|
||||
import threading
|
||||
import subprocess
|
||||
import time
|
||||
import pyinotify
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
log_dir = '/var/log/bigbluebutton'
|
||||
|
||||
def thread_function(name, filename):
|
||||
f = subprocess.Popen(['tail','-F', '-n', '0', filename],\
|
||||
stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
||||
while True:
|
||||
line = f.stdout.readline().decode('utf-8').strip()
|
||||
if len(line):
|
||||
print(name.ljust(10)+' |', line)
|
||||
sys.stdout.flush()
|
||||
|
||||
def tail_file(name, filename):
|
||||
x = threading.Thread(target=thread_function, args=(name, filename,))
|
||||
x.start()
|
||||
|
||||
|
||||
tail_file('rap-worker', log_dir+'/bbb-rap-worker.log')
|
||||
tail_file('sanity', log_dir+'/sanity.log')
|
||||
tail_file('publish', log_dir+'/post_publish.log')
|
||||
|
||||
class EventHandler(pyinotify.ProcessEvent):
|
||||
def process_IN_CREATE(self, event):
|
||||
filename = os.path.basename(event.pathname)
|
||||
if re.match('^archive-.*\.log$', filename):
|
||||
tail_file('archive', event.pathname)
|
||||
elif re.match('^process-.*\.log$', filename):
|
||||
tail_file('process', event.pathname)
|
||||
|
||||
|
||||
wm = pyinotify.WatchManager()
|
||||
handler = EventHandler()
|
||||
notifier = pyinotify.Notifier(wm, handler)
|
||||
wdd = wm.add_watch(log_dir, pyinotify.IN_CREATE, rec=True)
|
||||
notifier.loop()
|
32
mod/recordings/supervisord.conf
Normal file
32
mod/recordings/supervisord.conf
Normal file
@ -0,0 +1,32 @@
|
||||
[supervisord]
|
||||
user=root
|
||||
|
||||
[program:rasque_workers]
|
||||
command=rake resque:workers
|
||||
directory=/usr/local/bigbluebutton/core/scripts
|
||||
environment=QUEUE="rap:archive,rap:publish,rap:process,rap:sanity,rap:captions",COUNT="1",VVERBOSE="1"
|
||||
user=bigbluebutton
|
||||
stdout_logfile=/dev/fd/1
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/fd/2
|
||||
stderr_logfile_maxbytes=0
|
||||
|
||||
|
||||
[program:rap_starter]
|
||||
command=bundle exec ruby /usr/local/bigbluebutton/core/scripts/rap-starter.rb
|
||||
directory=/usr/local/bigbluebutton/core/scripts
|
||||
user=bigbluebutton
|
||||
stdout_logfile=/dev/fd/1
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/fd/2
|
||||
stderr_logfile_maxbytes=0
|
||||
|
||||
|
||||
[program:rap_caption_inbox]
|
||||
command=bundle exec ruby /usr/local/bigbluebutton/core/scripts/rap-caption-inbox.rb
|
||||
directory=/usr/local/bigbluebutton/core/scripts
|
||||
user=bigbluebutton
|
||||
stdout_logfile=/dev/fd/1
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/fd/2
|
||||
stderr_logfile_maxbytes=0
|
Loading…
Reference in New Issue
Block a user