support for v2.3-alpha

This commit is contained in:
chandi 2020-07-11 12:37:00 +02:00
parent 6b583ac565
commit 2c6116d56c
15 changed files with 38 additions and 285 deletions

View File

@ -1,17 +1,12 @@
FROM ubuntu:16.04
FROM ubuntu:18.04
MAINTAINER ffdixon@bigbluebutton.org
# TODO:
# - separate bbb-apps into an own container
# - separate bbb-web
ENV DEBIAN_FRONTEND noninteractive
ENV container docker
ENV DOCKERIZE_VERSION v0.6.1
RUN apt-get update && apt-get install -y software-properties-common language-pack-en wget apt-utils
RUN update-locale LANG=en_US.UTF-8
RUN LC_CTYPE=C.UTF-8 add-apt-repository ppa:rmescandon/yq
# install dockerize
RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
@ -22,12 +17,13 @@ RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSI
# RUN apt-get install -y tcpdump telnet htop vim
# -- Install Dependencies
RUN apt-get install -y supervisor apt-transport-https equivs libreoffice haveged ttf-liberation net-tools
RUN (echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections) \
&& apt-get install -y supervisor apt-transport-https equivs libreoffice haveged ttf-mscorefonts-installer fonts-crosextra-carlito fonts-crosextra-caladea fonts-noto net-tools
# bbb repo & packages
RUN LC_CTYPE=C.UTF-8 add-apt-repository ppa:bigbluebutton/support
RUN sh -c 'wget https://ubuntu.bigbluebutton.org/repo/bigbluebutton.asc -O- | apt-key add -' \
&& sh -c 'echo "deb https://ubuntu.bigbluebutton.org/xenial-22 bigbluebutton-xenial main" > /etc/apt/sources.list.d/bigbluebutton.list'
RUN sh -c 'wget https://packages-eu.bigbluebutton.org/repo/bigbluebutton.asc -O- | apt-key add -' \
&& sh -c 'echo "deb https://ubuntu.bigbluebutton.org/bionic-230-dev bigbluebutton-bionic main" > /etc/apt/sources.list.d/bigbluebutton.list'
# create dummy packages to satisfy dependencies
RUN equivs-control redis-server.control \
@ -38,15 +34,9 @@ RUN equivs-control redis-server.control \
# this variable is not used, but it triggers
# rebuilding from here on if changed
ENV VERSION v2.2.31
ENV VERSION v2.3-alpha-1
RUN apt-get update && apt-get install -y bbb-web \
bbb-fsesl-akka bbb-apps-akka bbb-transcode-akka bbb-apps \
bbb-apps-video bbb-apps-screenshare bbb-apps-video-broadcast
# -- avoid blocking java
# https://github.com/bigbluebutton/bigbluebutton/issues/8959
RUN sed -i 's|securerandom.source=file:/dev/random|securerandom.source=file:/dev/urandom|g' /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security
RUN apt-get update && apt-get install -y bbb-web bbb-fsesl-akka bbb-apps-akka bbb-transcode-akka
# add blank presentation files and allow conversation to pdf/svg
RUN mkdir -p /usr/share/bigbluebutton/blank \
@ -58,15 +48,6 @@ RUN mkdir -p /usr/share/bigbluebutton/blank \
# -- copy configuration files
COPY red5-webapps/bigbluebutton/application.conf /usr/share/red5/webapps/bigbluebutton/WEB-INF/classes/application.conf
COPY red5-webapps/bigbluebutton/bigbluebutton.properties /usr/share/red5/webapps/bigbluebutton/WEB-INF/bigbluebutton.properties
COPY red5-webapps/bigbluebutton/redis.properties /usr/share/red5/webapps/bigbluebutton/WEB-INF/redis.properties
COPY red5-webapps/sip/bigbluebutton-sip.properties /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties
COPY red5-webapps/screenshare/screenshare.properties /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties
COPY red5-webapps/screenshare/screenshare-app.conf /usr/share/red5/webapps/screenshare/WEB-INF/classes/screenshare-app.conf
COPY red5-webapps/screenshare/application.conf /usr/share/red5/webapps/screenshare/WEB-INF/classes/application.conf
COPY red5-webapps/video/bigbluebutton-video.properties /usr/share/red5/webapps/video/WEB-INF/bigbluebutton-video.properties
COPY red5-webapps/video-broadcast/video-broadcast.properties /usr/share/red5/webapps/video-broadcast/WEB-INF/video-broadcast.properties
COPY web/bigbluebutton.properties /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.tmpl
COPY web/turn-stun-servers.xml /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml.tmpl

View File

@ -4,4 +4,3 @@ based on the bigbluebutton/docker with bbb-install.sh setup, but got so far redu
- bbb-fsesl-akka
- bbb-apps-akka
- bbb-transcode-akka
- bbb-apps-(video|screenshare|video-broadcast)

View File

@ -1,43 +0,0 @@
akka {
actor {
debug {
# enable DEBUG logging of all AutoReceiveMessages (Kill, PoisonPill et.c.)
autoreceive = on
# enable DEBUG logging of actor lifecycle changes
lifecycle = on
}
}
loggers = ["akka.event.slf4j.Slf4jLogger"]
loglevel = "DEBUG"
redis-publish-worker-dispatcher {
mailbox-type = "akka.dispatch.SingleConsumerOnlyUnboundedMailbox"
# Throughput defines the maximum number of messages to be
# processed per actor before the thread jumps to the next actor.
# Set to 1 for as fair as possible.
throughput = 512
}
redis-subscriber-worker-dispatcher {
mailbox-type = "akka.dispatch.SingleConsumerOnlyUnboundedMailbox"
# Throughput defines the maximum number of messages to be
# processed per actor before the thread jumps to the next actor.
# Set to 1 for as fair as possible.
throughput = 512
}
}
redis {
host="redis"
port=6379
password=""
# recording keys should expire in 14 days
keyExpiry=1209600
}
eventBus {
meetingManagerChannel = "FROM APPLICATION.CONF MeetingManagerChannel"
outMessageChannel = "OutgoingMessageChannel"
incomingJsonMsgChannel = "IncomingJsonMsgChannel"
outBbbMsgMsgChannel = "OutBbbMsgChannel"
}

View File

@ -1,32 +0,0 @@
#
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
#
# Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
#
# This program is free software; you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free Software
# Foundation; either version 3.0 of the License, or (at your option) any later
# version.
#
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License along
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
#
# Locate of BBB default meeting dir
default.BigBlueButtonDirectory=/var/bigbluebutton
freeswitch.esl.host=10.7.7.1
freeswitch.esl.port=8021
freeswitch.esl.password=ClueCon
redisHost=redis
redisPort=6379
redisPassword=
redisExpireKey=1209600
# Maximum message length allowed from the client.
maxMessageLength=32000

View File

@ -1,5 +0,0 @@
# Redis settings
redis.host=redis
redis.port=6379
redis.pass=

View File

@ -1,43 +0,0 @@
akka {
actor {
debug {
# enable DEBUG logging of all AutoReceiveMessages (Kill, PoisonPill et.c.)
autoreceive = on
# enable DEBUG logging of actor lifecycle changes
lifecycle = on
}
}
loggers = ["akka.event.slf4j.Slf4jLogger"]
loglevel = "DEBUG"
redis-publish-worker-dispatcher {
mailbox-type = "akka.dispatch.SingleConsumerOnlyUnboundedMailbox"
# Throughput defines the maximum number of messages to be
# processed per actor before the thread jumps to the next actor.
# Set to 1 for as fair as possible.
throughput = 512
}
redis-subscriber-worker-dispatcher {
mailbox-type = "akka.dispatch.SingleConsumerOnlyUnboundedMailbox"
# Throughput defines the maximum number of messages to be
# processed per actor before the thread jumps to the next actor.
# Set to 1 for as fair as possible.
throughput = 512
}
}
redis {
host="redis"
port=6379
password=""
# recording keys should expire in 14 days
keyExpiry=1209600
}
eventBus {
meetingManagerChannel = "FROM APPLICATION.CONF MeetingManagerChannel"
outMessageChannel = "OutgoingMessageChannel"
incomingJsonMsgChannel = "IncomingJsonMsgChannel"
outBbbMsgMsgChannel = "OutBbbMsgChannel"
}

View File

@ -1,43 +0,0 @@
akka {
actor {
debug {
# enable DEBUG logging of all AutoReceiveMessages (Kill, PoisonPill et.c.)
autoreceive = on
# enable DEBUG logging of actor lifecycle changes
lifecycle = on
}
}
loggers = ["akka.event.slf4j.Slf4jLoggerDDD"]
loglevel = "DEBUG"
redis-publish-worker-dispatcher {
mailbox-type = "akka.dispatch.SingleConsumerOnlyUnboundedMailbox"
# Throughput defines the maximum number of messages to be
# processed per actor before the thread jumps to the next actor.
# Set to 1 for as fair as possible.
throughput = 512
}
redis-subscriber-worker-dispatcher {
mailbox-type = "akka.dispatch.SingleConsumerOnlyUnboundedMailbox"
# Throughput defines the maximum number of messages to be
# processed per actor before the thread jumps to the next actor.
# Set to 1 for as fair as possible.
throughput = 512
}
}
redis {
host="redis"
port=6379
password=""
# recording keys should expire in 14 days
keyExpiry=1209600
}
eventBus {
meetingManagerChannel = "FROM SCREEN-APPLICATION.CONF MeetingManagerChannel"
outMessageChannel = "OutgoingMessageChannel"
incomingJsonMsgChannel = "IncomingJsonMsgChannel"
outBbbMsgMsgChannel = "OutBbbMsgChannel"
}

View File

@ -1,20 +0,0 @@
recordingDirectory=/usr/share/red5/webapps/screenshare/streams
redis.host=redis
redis.port=6379
redis.password=
redis.keyExpiry=1209600
streamBaseUrl=rtmp://10.130.218.38/screenshare
jnlpUrl=http://10.130.218.38/screenshare
jnlpFile=http://10.130.218.38/screenshare/screenshare.jnlp
useH264=false
# NOTES:
# 1. GOP (group of pictures) is calculated as frameRate * keyFrameInterval
# 2. intra-refresh=1 doesn't work in Chrome. Late comers can't view the stream as
# the user missed the key frame
# 3. keyFrameInterval is in seconds
# 4. Make sure you encode & into &amp; as it will break the JNLP XML
#codecOptions=crf=36&amp;preset=veryfast&amp;tune=animation,zerolatency&amp;frameRate=12.0&amp;keyFrameInterval=6
codecOptions=crf=38&amp;preset=veryfast&amp;tune=zerolatency&amp;frameRate=5.0&amp;keyFrameInterval=5

View File

@ -1,25 +0,0 @@
# The ip and port the BBB SIP app is going to use
bbb.sip.app.ip=127.0.0.1
bbb.sip.app.port=5070
# The username and password the BBB SIP app to use to
# register with FreeSWITCH
sip.server.username=bbbuser
sip.server.password=secret
# The ip and port of the FreeSWITCH server
freeswitch.ip=10.7.7.1
freeswitch.port=5060
# The start/stop RTP port the application is going to use
# for the media stream.
startAudioPort=15000
stopAudioPort=16383
redis.host=10.7.7.5
redis.port=6379
redis.password=
# If you want mjsip stack (red5/log/*access*.log) to minimize the amount of logs it
# generates, set this to a lower value (e.g. 3).
sipStackDebugLevel=3

View File

@ -1,2 +0,0 @@
redis.host=redis
redis.port=6379

View File

@ -1,5 +0,0 @@
redis.host=redis
redis.port=6379
redis.password=
# recording keys should expire in 14 days
redis.keyExpiry=1209600

View File

@ -1,12 +1,3 @@
[program:red5]
command=/usr/local/bin/prefix-log /usr/share/red5/red5.sh
user=red5
directory=/usr/share/red5
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
stderr_logfile=/dev/fd/2
stderr_logfile_maxbytes=0
[program:bbb-web]
command=/usr/local/bin/prefix-log /usr/share/bbb-web/run-prod.sh
user=bigbluebutton

View File

@ -1,6 +1,6 @@
FROM node:8.17.0-buster-slim AS builder
FROM node:12-buster-slim AS builder
RUN apt-get update && apt-get install -y wget curl subversion python2 python3 build-essential
RUN apt-get update && apt-get install -y wget curl subversion python3 build-essential
RUN groupadd -g 2000 meteor && useradd -m -u 2001 -g meteor meteor
@ -11,36 +11,24 @@ RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSI
&& rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
USER meteor
ENV METEOR_VERSION 1.8.1
ENV METEOR_VERSION 1.9
RUN curl -sL https://install.meteor.com?release=$METEOR_VERSION | sed s/--progress-bar/-sL/g | /bin/sh
ENV TAG v2.2.31
ENV TAG v2.3-alpha-1
RUN cd ~ \
&& svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bigbluebutton-html5 \
&& mv ~/bigbluebutton-html5 ~/source \
&& rm -rf ~/source/.svn
# source modifications for node v12 support:
# - remove memwatch since it is not available for node v12 and disabled anyway
# - set meteor release to 1.9
# - install newer fibers version (4.0.3) which supports node v12
# RUN sed -i -r 's/import (memwatch|heapdump).*//g' ~/source/imports/startup/server/index.js \
# && sed -i -r 's/.*(memwatch|heapdump).*//g' ~/source/package.json \
# && echo "METEOR@$METEOR_VERSION" > ~/source/.meteor/release \
# && cat ~/source/.meteor/release
RUN cd ~/source \
&& cd ~/source \
&& ~/.meteor/meteor npm install --production \
&& ~/.meteor/meteor build --directory ~/app \
&& rm -r ~/source
&& rm -rf ~/source
RUN cd ~/app/bundle/programs/server \
&& npm install --production
# ------------------------------
FROM node:8-alpine
FROM node:12-alpine
RUN addgroup -g 2000 meteor && \
adduser -D -u 2001 -G meteor meteor && \
@ -53,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.2.30
ENV TAG v2.3-alpha-1

View File

@ -45,6 +45,8 @@ public:
chatPushAlerts: false
userJoinAudioAlerts: false
userJoinPushAlerts: false
raiseHandAudioAlerts: false
raiseHandPushAlerts: false
fallbackLocale: en
overrideLocale: null
audio:
@ -96,16 +98,6 @@ public:
packetLostThreshold: 10
kurento:
wsUrl: wss://{{ .Env.DOMAIN }}/bbb-webrtc-sfu
# Valid for video-provider. Time (ms) before its WS connection times out
# and tries to reconnect.
wsConnectionTimeout: 4000
cameraTimeouts:
# Base camera timeout: used as the camera *sharing* timeout and
# as the minimum camera subscribe reconnection timeout
baseTimeout: 15000
# Max timeout: used as the max camera subscribe reconnection timeout. Each
# subscribe reattempt increases the reconnection timer up to this
maxTimeout: 60000
chromeDefaultExtensionKey: akgoaoikmbmhcopjgakkcepdgdgkjfbc
chromeDefaultExtensionLink: https://chrome.google.com/webstore/detail/bigbluebutton-screenshare/akgoaoikmbmhcopjgakkcepdgdgkjfbc
chromeExtensionKey: KEY
@ -276,6 +268,7 @@ public:
layout:
autoSwapLayout: false
hidePresentation: false
webcamsDefaultPlacement: "top"
media:
stunTurnServersFetchAddress: "/bigbluebutton/api/stuns"
cacheStunTurnServers: true
@ -304,7 +297,26 @@ public:
websocketKeepAliveDebounce: 10
#Trace sip/audio messages in browser. If not set, default value is false.
traceSip: false
stats:
enabled: true
interval: 2000
length: 5
log: false
jitter:
- 10
- 20
- 30
loss:
- 0.05
- 0.1
- 0.2
level:
- warning
- danger
- critical
help: STATS_HELP_URL
presentation:
allowDownloadable: true
defaultPresentationFile: default.pdf
panZoomThrottle: 32
restoreOnUpdate: false

View File

@ -13,7 +13,7 @@ RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSI
USER webhooks
ENV TAG v2.2.20
ENV TAG v2.3-alpha-1
RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bbb-webhooks /app \
&& rm -rf /app/.svn \
&& cd /app && npm install --production