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:
|
ports:
|
||||||
- 10.7.7.1:5000:80
|
- 10.7.7.1:5000:80
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:12
|
image: postgres:12-alpine
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_DB: greenlight
|
POSTGRES_DB: greenlight
|
||||||
|
@ -10,6 +10,9 @@ services:
|
|||||||
- bigbluebutton:/var/bigbluebutton
|
- bigbluebutton:/var/bigbluebutton
|
||||||
- vol-freeswitch:/var/freeswitch/meetings
|
- vol-freeswitch:/var/freeswitch/meetings
|
||||||
- vol-kurento:/var/kurento
|
- vol-kurento:/var/kurento
|
||||||
|
tmpfs:
|
||||||
|
- /var/log/bigbluebutton
|
||||||
|
- /tmp
|
||||||
networks:
|
networks:
|
||||||
bbb-net:
|
bbb-net:
|
||||||
ipv4_address: 10.7.7.16
|
ipv4_address: 10.7.7.16
|
@ -88,7 +88,7 @@ services:
|
|||||||
ipv4_address: 10.7.7.5
|
ipv4_address: 10.7.7.5
|
||||||
|
|
||||||
mongodb:
|
mongodb:
|
||||||
image: mongo:4.2
|
image: mongo:4.4
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
bbb-net:
|
bbb-net:
|
||||||
@ -162,12 +162,16 @@ services:
|
|||||||
|
|
||||||
fsesl-akka:
|
fsesl-akka:
|
||||||
build: mod/fsesl-akka
|
build: mod/fsesl-akka
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
networks:
|
networks:
|
||||||
bbb-net:
|
bbb-net:
|
||||||
ipv4_address: 10.7.7.14
|
ipv4_address: 10.7.7.14
|
||||||
|
|
||||||
apps-akka:
|
apps-akka:
|
||||||
build: mod/apps-akka
|
build: mod/apps-akka
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
environment:
|
environment:
|
||||||
DOMAIN: ${DOMAIN}
|
DOMAIN: ${DOMAIN}
|
||||||
SHARED_SECRET: ${SHARED_SECRET}
|
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
|
RUN apt-get update && apt-get install -y subversion
|
||||||
|
|
||||||
# download bbb-common-message
|
# 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 \
|
RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \
|
||||||
&& rm -rf /bbb-common-message/.svn
|
&& 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 \
|
RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-apps /source \
|
||||||
&& rm -rf /source/.svn
|
&& rm -rf /source/.svn
|
||||||
|
|
||||||
|
@ -59,11 +59,6 @@ eventBus {
|
|||||||
outBbbMsgMsgChannel = "OutBbbMsgChannel"
|
outBbbMsgMsgChannel = "OutBbbMsgChannel"
|
||||||
}
|
}
|
||||||
|
|
||||||
sharedNotes {
|
|
||||||
maxNumberOfNotes = 3
|
|
||||||
maxNumberOfUndos = 30
|
|
||||||
}
|
|
||||||
|
|
||||||
http {
|
http {
|
||||||
interface = "10.7.7.2"
|
interface = "10.7.7.2"
|
||||||
port = 9999
|
port = 9999
|
||||||
@ -76,6 +71,7 @@ services {
|
|||||||
|
|
||||||
apps {
|
apps {
|
||||||
checkPermissions = true
|
checkPermissions = true
|
||||||
|
ejectOnViolation = false
|
||||||
endMeetingWhenNoMoreAuthedUsers = false
|
endMeetingWhenNoMoreAuthedUsers = false
|
||||||
endMeetingWhenNoMoreAuthedUsersAfterMinutes = 2
|
endMeetingWhenNoMoreAuthedUsersAfterMinutes = 2
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ FROM mozilla/sbt:8u181_1.2.7 AS builder
|
|||||||
RUN apt-get update && apt-get install -y subversion
|
RUN apt-get update && apt-get install -y subversion
|
||||||
|
|
||||||
# download bbb-common-message
|
# 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 \
|
RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \
|
||||||
&& rm -rf /bbb-common-message/.svn
|
&& rm -rf /bbb-common-message/.svn
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ RUN cd /opt \
|
|||||||
ENV PATH="/opt/gradle-6.7/bin:${PATH}"
|
ENV PATH="/opt/gradle-6.7/bin:${PATH}"
|
||||||
|
|
||||||
# download bbb-common-web
|
# 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 \
|
RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_WEB/bbb-common-web /bbb-common-web \
|
||||||
&& rm -rf /bbb-common-message/.svn
|
&& rm -rf /bbb-common-message/.svn
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ RUN cd /bbb-common-web \
|
|||||||
&& ./deploy.sh
|
&& ./deploy.sh
|
||||||
|
|
||||||
# download bbb-web
|
# 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 \
|
RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_WEB/bigbluebutton-web /bbb-web \
|
||||||
&& rm -rf /bbb-web/.svn
|
&& 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/lib /usr/share/prescheck/lib
|
||||||
COPY --from=builder /bbb-web/pres-checker/run.sh /usr/share/prescheck/prescheck.sh
|
COPY --from=builder /bbb-web/pres-checker/run.sh /usr/share/prescheck/prescheck.sh
|
||||||
|
|
||||||
|
COPY mocked-ps /usr/bin/ps
|
||||||
|
|
||||||
# add entrypoint and templates
|
# add entrypoint and templates
|
||||||
COPY entrypoint.sh /entrypoint.sh
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
COPY bigbluebutton.properties /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.tmpl
|
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
|
# These are the default properites for BigBlueButton Web application
|
||||||
|
|
||||||
# Default loglevel.
|
# Default loglevel.
|
||||||
appLogLevel=DEBUG
|
appLogLevel=DEBUG
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
@ -172,19 +172,10 @@ defaultMaxUsers=0
|
|||||||
# Current default is 0 (meeting doesn't end).
|
# Current default is 0 (meeting doesn't end).
|
||||||
defaultMeetingDuration=0
|
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
|
# Number of minutes to logout client if user
|
||||||
# isn't responsive
|
# isn't responsive
|
||||||
clientLogoutTimerInMinutes=0
|
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
|
# End meeting if no user joined within
|
||||||
# a period of time after meeting created.
|
# a period of time after meeting created.
|
||||||
meetingExpireIfNoUserJoinedInMinutes=5
|
meetingExpireIfNoUserJoinedInMinutes=5
|
||||||
@ -204,7 +195,7 @@ userInactivityThresholdInMinutes=30
|
|||||||
# warning before being logged out.
|
# warning before being logged out.
|
||||||
userActivitySignResponseDelayInMinutes=5
|
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
|
# 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
|
# false - when record param is passed from api, override this default
|
||||||
{{ if isTrue .Env.ENABLE_RECORDING }}
|
{{ if isTrue .Env.ENABLE_RECORDING }}
|
||||||
@ -215,7 +206,7 @@ disableRecordingDefault=true
|
|||||||
|
|
||||||
# Start recording when first user joins the meeting.
|
# Start recording when first user joins the meeting.
|
||||||
# For backward compatibility with 0.81 where whole meeting
|
# For backward compatibility with 0.81 where whole meeting
|
||||||
# is recorded.
|
# is recorded.
|
||||||
autoStartRecording=false
|
autoStartRecording=false
|
||||||
|
|
||||||
# Allow the user to start/stop recording.
|
# 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
|
# If "default", it returns to bigbluebutton.web.serverURL
|
||||||
bigbluebutton.web.logoutURL=default
|
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.
|
# 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)
|
# Allow requests without JSESSIONID to be handled (default = false)
|
||||||
allowRequestsWithoutSession=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.
|
# 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)
|
# The default avatar image to display.
|
||||||
# call. This avatar is displayed if the user isn't sharing the webcam and
|
useDefaultAvatar=false
|
||||||
# the option (displayAvatar) is enabled in config.xml
|
defaultAvatarURL=${bigbluebutton.web.serverURL}/html5client/resources/images/avatar.png
|
||||||
defaultAvatarURL=${bigbluebutton.web.serverURL}/client/avatar.png
|
|
||||||
|
|
||||||
# The URL of the default configuration
|
# The URL of the default configuration
|
||||||
defaultConfigURL=${bigbluebutton.web.serverURL}/client/conf/config.xml
|
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 &
|
socat TCP-LISTEN:$PORT,fork TCP:10.7.7.7:$PORT &
|
||||||
done
|
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/
|
cd /usr/share/bbb-web/
|
||||||
dockerize \
|
dockerize \
|
||||||
-template /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.tmpl:/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties \
|
-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
|
RUN apt-get update && apt-get install -y subversion
|
||||||
|
|
||||||
# download bbb-common-message
|
# 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 \
|
RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \
|
||||||
&& rm -rf /bbb-common-message/.svn
|
&& 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 \
|
RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_FSESL/bbb-fsesl-client /bbb-fsesl-client \
|
||||||
&& rm -rf /bbb-fsesl-client/.svn
|
&& rm -rf /bbb-fsesl-client/.svn
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ RUN cd /bbb-fsesl-client \
|
|||||||
&& ./deploy.sh
|
&& ./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 \
|
RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-fsesl /source \
|
||||||
&& rm -rf /source/.svn
|
&& rm -rf /source/.svn
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ USER meteor
|
|||||||
ENV METEOR_VERSION 1.10.2
|
ENV METEOR_VERSION 1.10.2
|
||||||
RUN curl -sL https://install.meteor.com?release=$METEOR_VERSION | sed s/--progress-bar/-sL/g | /bin/sh
|
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 ~ \
|
RUN cd ~ \
|
||||||
&& svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bigbluebutton-html5 \
|
&& svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bigbluebutton-html5 \
|
||||||
&& mv ~/bigbluebutton-html5 ~/source \
|
&& mv ~/bigbluebutton-html5 ~/source \
|
||||||
@ -41,4 +41,4 @@ COPY settings.yml /app/programs/server/assets/app/config/settings.yml.tmpl
|
|||||||
ENTRYPOINT ["/entrypoint.sh"]
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
|
||||||
# lets set the tag again, so that it is include in the image for later version retrieval
|
# 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
|
set -e
|
||||||
|
|
||||||
cd /app
|
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 MONGO_URL=mongodb://10.7.7.6/meteor
|
||||||
export NODE_ENV=production
|
export NODE_ENV=production
|
||||||
export ENVIRONMENT_TYPE=production
|
|
||||||
export SERVER_WEBSOCKET_COMPRESSION=0
|
export SERVER_WEBSOCKET_COMPRESSION=0
|
||||||
export PORT=3000
|
export BIND_IP=0.0.0.0
|
||||||
export LANG=en_US.UTF-8
|
export LANG=en_US.UTF-8
|
||||||
|
export INSTANCE_MAX=1
|
||||||
|
|
||||||
if [ "$DEV_MODE" == true ]; then
|
if [ "$DEV_MODE" == true ]; then
|
||||||
echo "DEV_MODE=true, disable TLS certificate rejecting"
|
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
|
cp -r /app/programs/web.browser/* /html5-static
|
||||||
fi
|
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
|
rm -f /app/programs/server/assets/app/config/settings.yml
|
||||||
dockerize \
|
dockerize \
|
||||||
-template /app/programs/server/assets/app/config/settings.yml.tmpl:/app/programs/server/assets/app/config/settings.yml \
|
-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 }}
|
skipCheck: {{ .Env.DISABLE_ECHO_TEST }}
|
||||||
clientTitle: {{ .Env.CLIENT_TITLE }}
|
clientTitle: {{ .Env.CLIENT_TITLE }}
|
||||||
appName: BigBlueButton HTML5 Client
|
appName: BigBlueButton HTML5 Client
|
||||||
bbbServerVersion: 2.3-dev
|
bbbServerVersion: 2.3-dev-docker
|
||||||
copyright: "©2020 BigBlueButton Inc."
|
copyright: '©2020 BigBlueButton Inc.'
|
||||||
html5ClientBuild: 1250
|
html5ClientBuild: "1311-docker"
|
||||||
helpLink: https://bigbluebutton.org/html5/
|
helpLink: https://bigbluebutton.org/html5/
|
||||||
lockOnJoin: true
|
lockOnJoin: true
|
||||||
cdn: ""
|
cdn: ''
|
||||||
basename: "/html5client"
|
basename: '/html5client'
|
||||||
askForFeedbackOnLogout: false
|
askForFeedbackOnLogout: false
|
||||||
# the default logoutUrl matches window.location.origin i.e. bigbluebutton.org for demo.bigbluebutton.org
|
# 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
|
# 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
|
enableTalkingIndicator: true
|
||||||
mirrorOwnWebcam: false
|
mirrorOwnWebcam: false
|
||||||
viewersInWebcam: 8
|
viewersInWebcam: 8
|
||||||
ipv4FallbackDomain: ""
|
ipv4FallbackDomain: ''
|
||||||
allowLogout: true
|
allowLogout: true
|
||||||
allowFullscreen: true
|
allowFullscreen: true
|
||||||
preloadNextSlides: 2
|
preloadNextSlides: 2
|
||||||
mutedAlert:
|
mutedAlert:
|
||||||
enabled: true
|
enabled: false
|
||||||
interval: 200
|
interval: 200
|
||||||
threshold: -50
|
threshold: -50
|
||||||
duration: 4000
|
duration: 4000
|
||||||
remainingTimeThreshold: 30
|
remainingTimeThreshold: 30
|
||||||
remainingTimeAlertThreshold: 1
|
remainingTimeAlertThreshold: 1
|
||||||
|
enableDebugWindow: true
|
||||||
# Warning: increasing the limit of breakout rooms per meeting
|
# Warning: increasing the limit of breakout rooms per meeting
|
||||||
# can generate excessive overhead to the server. We recommend
|
# can generate excessive overhead to the server. We recommend
|
||||||
# this value to be kept under 12.
|
# this value to be kept under 12.
|
||||||
@ -89,6 +90,9 @@ public:
|
|||||||
openActions:
|
openActions:
|
||||||
accesskey: A
|
accesskey: A
|
||||||
descId: openActions
|
descId: openActions
|
||||||
|
openDebugWindow:
|
||||||
|
accesskey: K
|
||||||
|
descId: openDebugWindow
|
||||||
branding:
|
branding:
|
||||||
displayBrandingArea: true
|
displayBrandingArea: true
|
||||||
connectionTimeout: 60000
|
connectionTimeout: 60000
|
||||||
@ -261,8 +265,8 @@ public:
|
|||||||
captions:
|
captions:
|
||||||
enabled: true
|
enabled: true
|
||||||
enableDictation: false
|
enableDictation: false
|
||||||
backgroundColor: "#000000"
|
backgroundColor: '#000000'
|
||||||
fontColor: "#FFFFFF"
|
fontColor: '#FFFFFF'
|
||||||
fontFamily: Calibri
|
fontFamily: Calibri
|
||||||
fontSize: 24px
|
fontSize: 24px
|
||||||
takeOwnership: true
|
takeOwnership: true
|
||||||
@ -301,13 +305,13 @@ public:
|
|||||||
layout:
|
layout:
|
||||||
autoSwapLayout: false
|
autoSwapLayout: false
|
||||||
hidePresentation: false
|
hidePresentation: false
|
||||||
webcamsDefaultPlacement: "top"
|
webcamsDefaultPlacement: 'top'
|
||||||
media:
|
media:
|
||||||
stunTurnServersFetchAddress: "/bigbluebutton/api/stuns"
|
stunTurnServersFetchAddress: '/bigbluebutton/api/stuns'
|
||||||
cacheStunTurnServers: true
|
cacheStunTurnServers: true
|
||||||
fallbackStunServer: ''
|
fallbackStunServer: ''
|
||||||
recvonlyIceGatheringCheck: true
|
recvonlyIceGatheringCheck: true
|
||||||
mediaTag: "#remote-media"
|
mediaTag: '#remote-media'
|
||||||
callTransferTimeout: 5000
|
callTransferTimeout: 5000
|
||||||
callHangupTimeout: 2000
|
callHangupTimeout: 2000
|
||||||
callHangupMaximumRetries: 10
|
callHangupMaximumRetries: 10
|
||||||
@ -353,46 +357,46 @@ public:
|
|||||||
defaultPresentationFile: default.pdf
|
defaultPresentationFile: default.pdf
|
||||||
panZoomThrottle: 32
|
panZoomThrottle: 32
|
||||||
restoreOnUpdate: false
|
restoreOnUpdate: false
|
||||||
uploadEndpoint: "/bigbluebutton/presentation/upload"
|
uploadEndpoint: '/bigbluebutton/presentation/upload'
|
||||||
uploadSizeMin: 0
|
uploadSizeMin: 0
|
||||||
uploadSizeMax: 50000000
|
uploadSizeMax: 50000000
|
||||||
uploadValidMimeTypes:
|
uploadValidMimeTypes:
|
||||||
- extension: .pdf
|
- extension: .pdf
|
||||||
mime: application/pdf
|
mime: application/pdf
|
||||||
- extension: .doc
|
- extension: .doc
|
||||||
mime: application/msword
|
mime: application/msword
|
||||||
- extension: .docx
|
- extension: .docx
|
||||||
mime: application/vnd.openxmlformats-officedocument.wordprocessingml.document
|
mime: application/vnd.openxmlformats-officedocument.wordprocessingml.document
|
||||||
- extension: .xls
|
- extension: .xls
|
||||||
mime: application/vnd.ms-excel
|
mime: application/vnd.ms-excel
|
||||||
- extension: .xlsx
|
- extension: .xlsx
|
||||||
mime: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
|
mime: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
|
||||||
- extension: .ppt
|
- extension: .ppt
|
||||||
mime: application/vnd.ms-powerpoint
|
mime: application/vnd.ms-powerpoint
|
||||||
- extension: .pptx
|
- extension: .pptx
|
||||||
mime: application/vnd.openxmlformats-officedocument.presentationml.presentation
|
mime: application/vnd.openxmlformats-officedocument.presentationml.presentation
|
||||||
- extension: .txt
|
- extension: .txt
|
||||||
mime: text/plain
|
mime: text/plain
|
||||||
- extension: .rtf
|
- extension: .rtf
|
||||||
mime: application/rtf
|
mime: application/rtf
|
||||||
- extension: .odt
|
- extension: .odt
|
||||||
mime: application/vnd.oasis.opendocument.text
|
mime: application/vnd.oasis.opendocument.text
|
||||||
- extension: .ods
|
- extension: .ods
|
||||||
mime: application/vnd.oasis.opendocument.spreadsheet
|
mime: application/vnd.oasis.opendocument.spreadsheet
|
||||||
- extension: .odp
|
- extension: .odp
|
||||||
mime: application/vnd.oasis.opendocument.presentation
|
mime: application/vnd.oasis.opendocument.presentation
|
||||||
- extension: .odg
|
- extension: .odg
|
||||||
mime: application/vnd.oasis.opendocument.graphics
|
mime: application/vnd.oasis.opendocument.graphics
|
||||||
- extension: .odc
|
- extension: .odc
|
||||||
mime: application/vnd.oasis.opendocument.chart
|
mime: application/vnd.oasis.opendocument.chart
|
||||||
- extension: .odi
|
- extension: .odi
|
||||||
mime: application/vnd.oasis.opendocument.image
|
mime: application/vnd.oasis.opendocument.image
|
||||||
- extension: .jpg
|
- extension: .jpg
|
||||||
mime: image/jpeg
|
mime: image/jpeg
|
||||||
- extension: .jpeg
|
- extension: .jpeg
|
||||||
mime: image/jpeg
|
mime: image/jpeg
|
||||||
- extension: .png
|
- extension: .png
|
||||||
mime: image/png
|
mime: image/png
|
||||||
user:
|
user:
|
||||||
role_moderator: MODERATOR
|
role_moderator: MODERATOR
|
||||||
role_viewer: VIEWER
|
role_viewer: VIEWER
|
||||||
@ -405,77 +409,77 @@ public:
|
|||||||
toolbar:
|
toolbar:
|
||||||
multiUserPenOnly: false
|
multiUserPenOnly: false
|
||||||
colors:
|
colors:
|
||||||
- label: black
|
- label: black
|
||||||
value: "#000000"
|
value: '#000000'
|
||||||
- label: white
|
- label: white
|
||||||
value: "#ffffff"
|
value: '#ffffff'
|
||||||
- label: red
|
- label: red
|
||||||
value: "#ff0000"
|
value: '#ff0000'
|
||||||
- label: orange
|
- label: orange
|
||||||
value: "#ff8800"
|
value: '#ff8800'
|
||||||
- label: eletricLime
|
- label: eletricLime
|
||||||
value: "#ccff00"
|
value: '#ccff00'
|
||||||
- label: Lime
|
- label: Lime
|
||||||
value: "#00ff00"
|
value: '#00ff00'
|
||||||
- label: Cyan
|
- label: Cyan
|
||||||
value: "#00ffff"
|
value: '#00ffff'
|
||||||
- label: dodgerBlue
|
- label: dodgerBlue
|
||||||
value: "#0088ff"
|
value: '#0088ff'
|
||||||
- label: blue
|
- label: blue
|
||||||
value: "#0000ff"
|
value: '#0000ff'
|
||||||
- label: violet
|
- label: violet
|
||||||
value: "#8800ff"
|
value: '#8800ff'
|
||||||
- label: magenta
|
- label: magenta
|
||||||
value: "#ff00ff"
|
value: '#ff00ff'
|
||||||
- label: silver
|
- label: silver
|
||||||
value: "#c0c0c0"
|
value: '#c0c0c0'
|
||||||
thickness:
|
thickness:
|
||||||
- value: 14
|
- value: 14
|
||||||
- value: 12
|
- value: 12
|
||||||
- value: 10
|
- value: 10
|
||||||
- value: 8
|
- value: 8
|
||||||
- value: 6
|
- value: 6
|
||||||
- value: 4
|
- value: 4
|
||||||
- value: 2
|
- value: 2
|
||||||
- value: 1
|
- value: 1
|
||||||
font_sizes:
|
font_sizes:
|
||||||
- value: 36
|
- value: 36
|
||||||
- value: 32
|
- value: 32
|
||||||
- value: 28
|
- value: 28
|
||||||
- value: 24
|
- value: 24
|
||||||
- value: 20
|
- value: 20
|
||||||
- value: 16
|
- value: 16
|
||||||
tools:
|
tools:
|
||||||
- icon: text_tool
|
- icon: text_tool
|
||||||
value: text
|
value: text
|
||||||
- icon: line_tool
|
- icon: line_tool
|
||||||
value: line
|
value: line
|
||||||
- icon: circle_tool
|
- icon: circle_tool
|
||||||
value: ellipse
|
value: ellipse
|
||||||
- icon: triangle_tool
|
- icon: triangle_tool
|
||||||
value: triangle
|
value: triangle
|
||||||
- icon: rectangle_tool
|
- icon: rectangle_tool
|
||||||
value: rectangle
|
value: rectangle
|
||||||
- icon: pen_tool
|
- icon: pen_tool
|
||||||
value: pencil
|
value: pencil
|
||||||
- icon: hand
|
- icon: hand
|
||||||
value: hand
|
value: hand
|
||||||
presenterTools:
|
presenterTools:
|
||||||
- text
|
- text
|
||||||
- line
|
- line
|
||||||
- ellipse
|
- ellipse
|
||||||
- triangle
|
- triangle
|
||||||
- rectangle
|
- rectangle
|
||||||
- pencil
|
- pencil
|
||||||
- hand
|
- hand
|
||||||
multiUserTools:
|
multiUserTools:
|
||||||
- text
|
- text
|
||||||
- line
|
- line
|
||||||
- ellipse
|
- ellipse
|
||||||
- triangle
|
- triangle
|
||||||
- rectangle
|
- rectangle
|
||||||
- pencil
|
- pencil
|
||||||
- hand
|
- hand
|
||||||
clientLog:
|
clientLog:
|
||||||
server:
|
server:
|
||||||
enabled: false
|
enabled: false
|
||||||
@ -490,11 +494,11 @@ public:
|
|||||||
method: POST
|
method: POST
|
||||||
throttleInterval: 400
|
throttleInterval: 400
|
||||||
flushOnClose: true
|
flushOnClose: true
|
||||||
logTag: ""
|
logTag: ''
|
||||||
private:
|
private:
|
||||||
app:
|
app:
|
||||||
host: 0.0.0.0
|
host: 0.0.0.0
|
||||||
port: 3000
|
port: 4000
|
||||||
localesUrl: /locales
|
localesUrl: /locales
|
||||||
pencilChunkLength: 100
|
pencilChunkLength: 100
|
||||||
loadSlidesFromHttpAlways: false
|
loadSlidesFromHttpAlways: false
|
||||||
@ -518,15 +522,15 @@ private:
|
|||||||
toAkkaApps: to-akka-apps-redis-channel
|
toAkkaApps: to-akka-apps-redis-channel
|
||||||
toThirdParty: to-third-party-redis-channel
|
toThirdParty: to-third-party-redis-channel
|
||||||
subscribeTo:
|
subscribeTo:
|
||||||
- to-html5-redis-channel
|
- to-html5-redis-channel
|
||||||
- from-akka-apps-*
|
- from-akka-apps-*
|
||||||
- from-third-party-redis-channel
|
- from-third-party-redis-channel
|
||||||
- from-etherpad-redis-channel
|
- from-etherpad-redis-channel
|
||||||
async:
|
async:
|
||||||
- from-akka-apps-wb-redis-channel
|
- from-akka-apps-wb-redis-channel
|
||||||
ignored:
|
ignored:
|
||||||
- CheckAlivePongSysMsg
|
- CheckAlivePongSysMsg
|
||||||
- DoLatencyTracerMsg
|
- DoLatencyTracerMsg
|
||||||
serverLog:
|
serverLog:
|
||||||
level: info
|
level: info
|
||||||
streamerLog: false
|
streamerLog: false
|
||||||
|
@ -2,7 +2,7 @@ FROM nginx:1.19-alpine
|
|||||||
|
|
||||||
RUN apk add subversion
|
RUN apk add subversion
|
||||||
|
|
||||||
ENV TAG v2.3-alpha-2
|
ENV TAG v2.3-alpha-3
|
||||||
|
|
||||||
# get bbb-playback-presentation web files
|
# get bbb-playback-presentation web files
|
||||||
RUN mkdir /www \
|
RUN mkdir /www \
|
||||||
|
@ -1,28 +1,33 @@
|
|||||||
location @html5client {
|
location @html5client {
|
||||||
proxy_pass http://html5:3000;
|
proxy_pass http://html5:4000;
|
||||||
proxy_http_version 1.1;
|
proxy_http_version 1.1;
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
proxy_set_header Connection "Upgrade";
|
proxy_set_header Connection "Upgrade";
|
||||||
}
|
}
|
||||||
|
|
||||||
location /html5client/compatibility {
|
location /html5client/1/compatibility {
|
||||||
alias /html5-static/app/compatibility;
|
alias /html5-static/app/compatibility;
|
||||||
}
|
}
|
||||||
location /html5client/fonts {
|
location /html5client/1/fonts {
|
||||||
alias /html5-static/app/fonts;
|
alias /html5-static/app/fonts;
|
||||||
}
|
}
|
||||||
location /html5client/resources {
|
location /html5client/1/resources {
|
||||||
alias /html5-static/app/resources;
|
alias /html5-static/app/resources;
|
||||||
}
|
}
|
||||||
location /html5client/svgs {
|
location /html5client/1/svgs {
|
||||||
alias /html5-static/app/svgs;
|
alias /html5-static/app/svgs;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /html5client {
|
location /html5client/1 {
|
||||||
|
alias /html5-static;
|
||||||
|
try_files $uri @html5client;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /html5client/ {
|
||||||
alias /html5-static;
|
alias /html5-static;
|
||||||
try_files $uri @html5client;
|
try_files $uri @html5client;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /_timesync {
|
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 \
|
python3-icu \
|
||||||
ffmpeg \
|
ffmpeg \
|
||||||
poppler-utils \
|
poppler-utils \
|
||||||
imagemagick
|
imagemagick \
|
||||||
|
supervisor
|
||||||
|
|
||||||
# compile and install mkclean
|
# compile and install mkclean
|
||||||
RUN cd /tmp \
|
RUN cd /tmp \
|
||||||
@ -25,7 +26,7 @@ RUN cd /tmp \
|
|||||||
&& ./mkclean/configure.compiled \
|
&& ./mkclean/configure.compiled \
|
||||||
&& make -C mkclean \
|
&& make -C mkclean \
|
||||||
&& cp ./release/gcc_linux_x64/mkclean /usr/bin/mkclean \
|
&& cp ./release/gcc_linux_x64/mkclean /usr/bin/mkclean \
|
||||||
&& rm -r /tmp/mkclean-0.8.10
|
&& rm -r /tmp/mkclean-*
|
||||||
|
|
||||||
# add dockerize
|
# add dockerize
|
||||||
ENV DOCKERIZE_VERSION v0.6.1
|
ENV DOCKERIZE_VERSION v0.6.1
|
||||||
@ -36,11 +37,9 @@ RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSI
|
|||||||
RUN mkdir -p \
|
RUN mkdir -p \
|
||||||
/usr/local/bigbluebutton \
|
/usr/local/bigbluebutton \
|
||||||
/usr/local/bigbluebutton/core \
|
/usr/local/bigbluebutton/core \
|
||||||
/etc/bigbluebutton \
|
/etc/bigbluebutton
|
||||||
/var/log/bigbluebutton \
|
|
||||||
/var/log/bigbluebutton/presentation
|
|
||||||
|
|
||||||
ENV TAG v2.3-alpha-2
|
ENV TAG v2.3-alpha-3
|
||||||
|
|
||||||
# add bbb-record-core (lib, scripts and Gemfile)
|
# add bbb-record-core (lib, scripts and Gemfile)
|
||||||
RUN cd /usr/local/bigbluebutton/core \
|
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 \
|
&& svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/record-and-playback/core/scripts \
|
||||||
&& rm -rf /usr/local/bigbluebutton/core/*/.svn \
|
&& 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.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
|
# add bbb-playback-presentation scripts
|
||||||
RUN cd /tmp \
|
RUN cd /tmp \
|
||||||
@ -60,33 +59,36 @@ RUN cd /tmp \
|
|||||||
# install ruby dependencies
|
# install ruby dependencies
|
||||||
RUN cd /usr/local/bigbluebutton/core \
|
RUN cd /usr/local/bigbluebutton/core \
|
||||||
&& gem install builder \
|
&& gem install builder \
|
||||||
&& gem install bundler \
|
&& gem install bundler -v 2.1.4 \
|
||||||
&& /usr/local/bin/bundle
|
&& /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
|
# add bbb-record with some adjustments so bbb-record works in this environment
|
||||||
RUN cd /usr/bin \
|
RUN cd /usr/bin \
|
||||||
&& wget https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/$TAG/bigbluebutton-config/bin/bbb-record \
|
&& wget https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/$TAG/bigbluebutton-config/bin/bbb-record \
|
||||||
&& chmod +x /usr/bin/bbb-record \
|
&& chmod +x /usr/bin/bbb-record \
|
||||||
&& sed -i 's/^BBB_WEB.*/BBB_WEB=""/' /usr/bin/bbb-record \
|
&& sed -i 's/^BBB_WEB.*/BBB_WEB=""/' /usr/bin/bbb-record \
|
||||||
&& sed -i 's/systemctl.*//' /usr/bin/bbb-record \
|
&& sed -i 's/systemctl.*//' /usr/bin/bbb-record \
|
||||||
&& echo "BIGBLUEBUTTON_RELEASE=$TAG" > /etc/bigbluebutton/bigbluebutton-release \
|
&& echo "BIGBLUEBUTTON_RELEASE=$TAG" > /etc/bigbluebutton/bigbluebutton-release
|
||||||
&& touch /var/log/bigbluebutton/bbb-web.log
|
|
||||||
|
|
||||||
# create user
|
# create user
|
||||||
# the ID should match the one creating the files in `core`
|
# the ID should match the one creating the files in `core`
|
||||||
RUN groupadd -g 998 bigbluebutton && useradd -m -u 998 -g bigbluebutton bigbluebutton
|
RUN groupadd -g 998 bigbluebutton && useradd -m -u 998 -g bigbluebutton bigbluebutton
|
||||||
|
|
||||||
# change owner
|
# change owner
|
||||||
# https://github.com/alangecker/bigbluebutton-docker/issues/63
|
# 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
|
COPY bigbluebutton.yml /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml.tmpl
|
||||||
ADD log-collector.py /log-collector.py
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
ADD entrypoint.sh /entrypoint.sh
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
# change user before entrypoint
|
ENTRYPOINT /entrypoint.sh
|
||||||
# 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
|
|
@ -1,4 +1,4 @@
|
|||||||
bbb_version: '2.2.30'
|
bbb_version: '2.1.0'
|
||||||
raw_audio_src: /var/freeswitch/meetings
|
raw_audio_src: /var/freeswitch/meetings
|
||||||
raw_video_src: /usr/share/red5/webapps/video/streams
|
raw_video_src: /usr/share/red5/webapps/video/streams
|
||||||
kurento_video_src: /var/kurento/recordings
|
kurento_video_src: /var/kurento/recordings
|
||||||
@ -11,14 +11,30 @@ notes_endpoint: http://etherpad:9001/p
|
|||||||
# Specify the notes formats we archive
|
# Specify the notes formats we archive
|
||||||
# txt, doc and odt are also supported
|
# txt, doc and odt are also supported
|
||||||
notes_formats:
|
notes_formats:
|
||||||
- etherpad
|
- etherpad
|
||||||
- html
|
- html
|
||||||
- pdf
|
- pdf
|
||||||
redis_host: redis
|
redis_host: redis
|
||||||
redis_port: 6379
|
redis_port: 6379
|
||||||
# Uncomment and set password if redis require it.
|
# Uncomment and set password if redis require it.
|
||||||
# redis_password: changeme
|
# 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
|
# For PRODUCTION
|
||||||
log_dir: /var/log/bigbluebutton
|
log_dir: /var/log/bigbluebutton
|
||||||
events_dir: /var/bigbluebutton/events
|
events_dir: /var/bigbluebutton/events
|
||||||
@ -34,4 +50,4 @@ playback_protocol: https
|
|||||||
#log_dir: /home/ubuntu/temp/log
|
#log_dir: /home/ubuntu/temp/log
|
||||||
#recording_dir: /home/ubuntu/temp/recording
|
#recording_dir: /home/ubuntu/temp/recording
|
||||||
#published_dir: /home/ubuntu/temp/published
|
#published_dir: /home/ubuntu/temp/published
|
||||||
#playback_host: meet.livingutopia.org
|
#playback_host: 127.0.0.1
|
@ -1,27 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# print all logs to stdout
|
touch /var/log/bigbluebutton/recording.log
|
||||||
python3 -u /log-collector.py &
|
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
|
dockerize \
|
||||||
PATH_CHECK="/var/bigbluebutton/recording/status"
|
-template /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml.tmpl:/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml \
|
||||||
while true; do
|
-stdout /var/log/bigbluebutton/recording.log \
|
||||||
echo "execute workers..."
|
/usr/bin/supervisord --nodaemon
|
||||||
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
|
|
@ -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