Giter Site home page Giter Site logo

docker's Introduction

bbb-docker-banner

πŸ“¦ BigBlueButton 2.7 Docker

Version: 2.7.3 | Changelog | Issues | Upgrading | Development

Features

  • Easy installation
  • Greenlight included
  • TURN server included
  • Fully automated HTTPS certificates
  • Full IPv6 support
  • Runs on any major linux distributon (Debian, Ubuntu, CentOS,...)

Requirements

  • 4GB of RAM
  • Linux (it will not work under Windows/WSL)
  • Root access (bbb-docker uses host networking, so it won't work with Kubernetes, any "CaaS"-Service, etc.)
  • Public IPv4 (expect issues with a firewall / NAT)

What is not implemented yet

  • bbb-lti

Install

  1. Ensure the requirements above are fulfilled (it really doesn't work without them)
  2. Install docker-ce & docker-compose-plugin
    1. follow instructions
    2. Ensure docker works with $ docker run hello-world
    3. Ensure you use a docker version β‰₯ 23.0 : $ docker --version
  3. Clone this repository
    $ git clone https://github.com/bigbluebutton/docker.git bbb-docker
    $ cd bbb-docker
    
    # use the more stable main branch (sometimes older)
    $ git checkout main 
  4. Run setup:
    $ ./scripts/setup
  5. (optional) Make additional configuration adjustments
    $ nano .env
    # always recreate the docker-compose.yml file after making any changes
    $ ./scripts/generate-compose
  6. Start containers:
    $ docker compose up -d --no-build
  7. If you use greenlight, you can create an admin account with:
    $ docker compose exec greenlight bundle exec rake admin:create

Further How-To's

docker's People

Contributors

alangecker avatar artemtech avatar bb avatar bruckwubete avatar caminsha avatar cjhille avatar clandmeter avatar criadoperez avatar demetrynan avatar derhecht avatar ffdixon avatar ichdasich avatar joshua-arts avatar lexuzieel avatar lightweight avatar manfred-w avatar mghadam avatar nerdyprojects avatar nough avatar nr23730 avatar omidmaldar avatar pedrobmarin avatar philippkolmann avatar rottaran avatar senatoregiorgio avatar tiagojacobs avatar tylercopeland avatar y0ngg4n avatar yanus avatar yksflip avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker's Issues

Build Error

sed: can't read /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security: No such file or directory The command '/bin/sh -c 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' returned a non-zero code: 2

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"

How I can fix that issue?
Could you help please?

Find new way to integrate TURN server

In some restrictive networks UDP is blocked, why we need a TURN server. Because sometimes also most TCP ports except them HTTP and Mailing are blocked as well.

To traverse these firewalls we used so far the TLS mail port 465, but firefox and chromium started blocking almost all TCP ports below 1024 for TURN Server, which basically means there is only port 443 for TURN left, but already in use by HTTPS.

Currently I see no way to automatically integrate coturn without an second IP.

Important

Existing bbb-docker instances with enabled coturn on our default port 465 will gradually throw more and more 1006 errors with recent browser updates become more spread.

Best option: get a cheap VM and setup a TURN server there on port 443. This guide is helpful:
https://docs.bigbluebutton.org/2.2/setup-turn-server.html
Minimal step: disable the TURN server with commenting out TURN_SERVER in .env

References

https://bugzilla.mozilla.org/show_bug.cgi?id=1699175
https://webrtc.googlesource.com/src/+/master/p2p/base/turn_port.cc#947
https://searchfox.org/mozilla-central/source/netwerk/base/nsIOService.cpp#98

502 Bad Gateway

Using lates development:

what is 7.11 ? in docker-compsoe ?

docker ps -q | xargs -n 1 docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} {{ .Name }}' | sed 's/ // /'

bbb-docker_nginx_1
10.7.7.200 bbb-docker_html5-frontend-1_1
10.7.7.100 bbb-docker_html5-backend-1_1
10.7.7.4 bbb-docker_etherpad_1
10.7.7.16 bbb-docker_recordings_1
10.7.7.10 bbb-docker_webrtc-sfu_1
10.7.7.15 bbb-docker_apps-akka_1
10.7.7.2 bbb-docker_bbb-web_1
bbb-docker_kurento_1
10.7.7.33 bbb-docker_prometheus-exporter_1
172.20.0.3 bbb-docker_greenlight_1
bbb-docker_freeswitch_1
10.7.7.14 bbb-docker_fsesl-akka_1
10.7.7.12 bbb-docker_periodic_1
10.7.7.5 bbb-docker_redis_1
10.7.7.6 bbb-docker_mongodb_1
172.20.0.2 bbb-docker_postgres_1
10.7.7.20 bbb-docker_jodconverter_1
bbb-docker_https_proxy_1

Enable use of TURN in environments with limited port availability - macvlan docker driver for secondary IP address.

An environment that I work in has an aversion to opening too many ports. Ports 80 and 443 can be open, but port 465 as configured in turnserver.conf would require a change request.

As such, I would suggest (as an alternative option) using the macvlan driver in docker to create a second IP address for the BBB server, which would be used for TURN. This would enable Turn to interact with ports 443 and 80 on the secondary IP address.

I have previously used this link to set up pi-hole on my home network.

I'm not sure if this is something you want to look in to, or if it's too much of a niche/edge case. I am happy to attempt configuring some of this code.

greenlight error: 443/tcp connection refused

production.log entry:

ERROR: [b733d7eb-0470-4ea1-bc8c-3d9652291329] BigBlueButtonException: Connection error. Your URL is probably incorrect: "https://$DOMAIN/bigbluebutton/api". Error: Failed to open TCP connection to v2202102130686141810.happysrv.de:443 (Connection refused - connect(2) for "$DOMAIN" port 443)

greenlight web UI:

"Serverfehler
BigBlueButton Endpunkt und SicherheitsschlΓΌssel ungΓΌltig"

api endpoint is reachable and respond SUCCESS.

any ideas to debug?

Change nginx listening port to 8081 instead of 80

Hello,

I am integrating bbb in a dev environment using docker. As in my dev environment I already have a docker container listening in the port 80, I've forked this repository and change the configuration to allow me to change the nginx of the bbb container to port 8081.

It is working fine, and my environment loads correctly after a few modifications of the setup.sh file. But I am not able to connect to the websocket. If I check the chrome dev tools, I see that the page is connecting to ws://bbb/ws (bbb is the container name). I guess that it should connect to ws://bbb:8081/ws as bbb nginx is listening in my local 8081 port.

Which file should I have to modify to tell the frontend websocket to connect to the 8081 port?

This is my setup.sh file, as you will see I've added a p option to specify the port and replaced at some points $HOST:$PORT insetad of $HOST to set the correct port.

#!/bin/bash

service ssh start

#
# BlueButton open source conferencing system - http://www.bigbluebutton.org/
#
# Copyright (c) 2018 BigBlueButton Inc.
#
# 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/>.
#
set -x

change_var_value () {
  sed -i "s<^[[:blank:]#]*\(${2}\).*<\1=${3}<" $1
}

change_yml_value () {
  sed -i "s<^\([[:blank:]#]*\)\(${2}\): .*<\1\2: ${3}<" $1
}


# docker run -p 80:80/tcp -p 443:443/tcp -p 1935:1935 -p 5066:5066 -p 3478:3478 -p 3478:3478/udp b2 -h 192.168.0.130

while getopts ":eh:s:p:" opt; do
  case $opt in
    e)
      env
      exit
      ;;
    h)
      HOST=$OPTARG
      ;;
    s)
      SECRET=$OPTARG
      ;;
    p)
      PORT=$OPTARG
      ;;
    :)
      echo "Missing option argument for -$OPTARG" >&2;
      exit 1
      ;;
    \?)
      echo "Invalid option: -$OPTARG" >&2
      cat<<HERE
Docker startup script for BigBlueButton.

  -h   Hostname for BigBlueButton server
  -s   Shared secret

HERE
      exit 1
      ;;
    :)
      echo "Option -$OPTARG requires an argument." >&2
      exit 1
      ;;
  esac
done

apt-get install -y bbb-demo && /etc/init.d/tomcat7 start
while [ ! -f /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp ]; do sleep 1; done
sudo /etc/init.d/tomcat7 stop

# In a standard BigBlueButton server you would use `bbb-conf --setip IP` to configure it listen to a given IP, but
# we are using supervisorctl (not systemd) in, so we apply all the configuration changes before running supervisorctl at
# the end of this script


# Setup the BigBlueButton configuration files
#
PROTOCOL_HTTP=http
PROTOCOL_RTMP=rtmp

IP=$(echo "$(LANG=c ifconfig  | awk -v RS="" '{gsub (/\n[ ]*inet /," ")}1' | grep ^et.* | grep addr: | head -n1 | sed 's/.*addr://g' | sed 's/ .*//g')$(LANG=c ifconfig  | awk -v RS="" '{gsub (/\n[ ]*inet /," ")}1' | grep ^en.* | grep addr: | head -n1 | sed 's/.*addr://g' | sed 's/ .*//g')" | head -n1)

xmlstarlet edit --inplace --update '//X-PRE-PROCESS[@cmd="set" and starts-with(@data, "external_rtp_ip=")]/@data' --value "external_rtp_ip=stun:coturn" /opt/freeswitch/conf/vars.xml
xmlstarlet edit --inplace --update '//X-PRE-PROCESS[@cmd="set" and starts-with(@data, "external_sip_ip=")]/@data' --value "external_sip_ip=stun:coturn" /opt/freeswitch/conf/vars.xml
xmlstarlet edit --inplace --update '//X-PRE-PROCESS[@cmd="set" and starts-with(@data, "local_ip_v4=")]/@data' --value "local_ip_v4=${IP}" /opt/freeswitch/conf/vars.xml

if [ -f /opt/freeswitch/conf/sip_profiles/external-ipv6.xml ]; then
  mv /opt/freeswitch/conf/sip_profiles/external-ipv6.xml /opt/freeswitch/conf/sip_profiles/external-ipv6.xml_
fi
if [ -f /opt/freeswitch/conf/sip_profiles/internal-ipv6.xml ]; then
  mv /opt/freeswitch/conf/sip_profiles/internal-ipv6.xml /opt/freeswitch/conf/sip_profiles/internal-ipv6.xml_
fi

sed -i "s/proxy_pass .*/proxy_pass $PROTOCOL_HTTP:\/\/$HOST:5066;/g" /etc/bigbluebutton/nginx/sip.nginx

sed -i "s/http[s]*:\/\/\([^\"\/]*\)\([\"\/]\)/$PROTOCOL_HTTP:\/\/$HOST:$PORT\2/g"  /var/www/bigbluebutton/client/conf/config.xml
sed -i "s/rtmp[s]*:\/\/\([^\"\/]*\)\([\"\/]\)/$PROTOCOL_RTMP:\/\/$HOST\2/g" /var/www/bigbluebutton/client/conf/config.xml

sed -i "s/server_name  .*/server_name  $HOST;/g" /etc/nginx/sites-available/bigbluebutton
sed -i "s/listen  .*/listen $PORT;/g" /etc/nginx/sites-available/bigbluebutton

sed -i "s/bigbluebutton.web.serverURL=http[s]*:\/\/.*/bigbluebutton.web.serverURL=$PROTOCOL_HTTP:\/\/$HOST:$PORT/g" \
  /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties

# Update Java screen share configuration
change_var_value /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties streamBaseUrl rtmp://$HOST/screenshare
change_var_value /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties jnlpUrl $PROTOCOL_HTTP://$HOST:$PORT/screenshare
change_var_value /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties jnlpFile $PROTOCOL_HTTP://$HOST:$PORT/screenshare/screenshare.jnlp

change_var_value /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties bbb.sip.app.ip $IP
change_var_value /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties freeswitch.ip $IP

change_yml_value /usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml kurentoUrl "ws://$IP:8888/kurento"
change_yml_value /usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml kurentoIp "$IP"
change_yml_value /usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml localIpAddress "$IP"
change_yml_value /usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml ip "$IP"

sed -i  "s/bbbWebAPI[ ]*=[ ]*\"[^\"]*\"/bbbWebAPI=\"${PROTOCOL_HTTP}:\/\/$HOST:$PORT\/bigbluebutton\/api\"/g" \
  /usr/share/bbb-apps-akka/conf/application.conf
sed -i "s/bbbWebHost[ ]*=[ ]*\"[^\"]*\"/bbbWebHost=\"$HOST\"/g" \
  /usr/share/bbb-apps-akka/conf/application.conf
sed -i "s/deskshareip[ ]*=[ ]*\"[^\"]*\"/deskshareip=\"$HOST\"/g" \
  /usr/share/bbb-apps-akka/conf/application.conf
sed -i  "s/defaultPresentationURL[ ]*=[ ]*\"[^\"]*\"/defaultPresentationURL=\"${PROTOCOL_HTTP}:\/\/$HOST:$PORT\/default.pdf\"/g" \
  /usr/share/bbb-apps-akka/conf/application.conf

cat > /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini  << HERE
; Only IP address are supported, not domain names for addresses
; You have to find a valid stun server. You can check if it works
; using this tool:
;   http://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
;stunServerAddress=64.233.177.127
;stunServerPort=19302

turnURL=kurento:kurento@${HOST}:3478

;pemCertificate is deprecated. Please use pemCertificateRSA instead
;pemCertificate=<path>
;pemCertificateRSA=<path>
;pemCertificateECDSA=<path>
HERE

TURN_SECRET=`openssl rand -hex 16`

# Configure coturn to handle incoming UDP connections
cat > /etc/turnserver.conf << HERE
denied-peer-ip=0.0.0.0-255.255.255.255
allowed-peer-ip=$IP
fingerprint
lt-cred-mech
use-auth-secret
static-auth-secret=$TURN_SECRET
user=user:password
log-file=/var/log/turn.log
HERE

# Setup tomcat7 to share the TURN server information with clients (with matching secret)
cat > /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/spring/turn-stun-servers.xml << HERE
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
   <bean id="turn0" class="org.bigbluebutton.web.services.turn.TurnServer">
      <constructor-arg index="0" value="$TURN_SECRET" />
      <constructor-arg index="1" value="turn:$HOST:3478" />
      <constructor-arg index="2" value="86400" />
   </bean>
   <bean id="turn1" class="org.bigbluebutton.web.services.turn.TurnServer">
      <constructor-arg index="0" value="$TURN_SECRET" />
      <constructor-arg index="1" value="turn:$HOST:3478?transport=tcp" />
      <constructor-arg index="2" value="86400" />
   </bean>
   <bean id="stunTurnService" class="org.bigbluebutton.web.services.turn.StunTurnService">
      <property name="stunServers">
         <set />
      </property>
      <property name="turnServers">
         <set>
            <ref bean="turn0" />
            <ref bean="turn1" />
         </set>
      </property>
      <property name="remoteIceCandidates">
         <set />
      </property>
   </bean>
</beans>
HERE

cat > /opt/freeswitch/conf/autoload_configs/acl.conf.xml << HERE
<configuration name="acl.conf" description="Network Lists">
  <network-lists>
    <list name="domains" default="allow">
      <!-- domain= is special it scans the domain from the directory to build the ACL -->
      <node type="allow" domain="\$\${domain}"/>
      <!-- use cidr= if you wish to allow ip ranges to this domains acl. -->
      <!-- <node type="allow" cidr="192.168.0.0/24"/> -->
    </list>

    <list name="webrtc-turn" default="deny">
      <node type="allow" cidr="$IP/32"/>
    </list>

  </network-lists>
</configuration>
HERE


# Ensure bbb-apps-akka has the latest shared secret from bbb-web
if [ -z "$SECRET" ]; then 
  SECRET=$(cat /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties | grep -v '#' | grep securitySalt | cut -d= -f2);
else
  change_var_value /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties securitySalt $SECRET
  sed -i "s/String salt = .*/String salt = \"$SECRET\";/g" /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp
fi

sed -i "s/sharedSecret[ ]*=[ ]*\"[^\"]*\"/sharedSecret=\"$SECRET\"/g" \
  /usr/share/bbb-apps-akka/conf/application.conf

sed -i "s/BigBlueButtonURL = \"http[s]*:\/\/\([^\"\/]*\)\([\"\/]\)/BigBlueButtonURL = \"$PROTOCOL_HTTP:\/\/$HOST:$PORT\2/g" \
  /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp

sed -i "s/playback_host: .*/playback_host: $HOST:$PORT/g" /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml

sed -i 's/daemonize no/daemonize yes/g' /etc/redis/redis.conf

sed -i "s|\"wsUrl.*|\"wsUrl\": \"ws://$HOST:$PORT/bbb-webrtc-sfu\",|g" \
  /usr/share/meteor/bundle/programs/server/assets/app/config/settings-production.json

rm /usr/share/red5/log/sip.log

# Add a sleep to each recording process so we can restart with supervisord
# (This works around the limitation that supervisord can't restart after intervals)
sed -i 's/BigBlueButton.logger.debug("rap-archive-worker done")/sleep 20; BigBlueButton.logger.debug("rap-archive-worker done")/g' /usr/local/bigbluebutton/core/scripts/rap-archive-worker.rb
sed -i 's/BigBlueButton.logger.debug("rap-process-worker done")/sleep 20; BigBlueButton.logger.debug("rap-process-worker done")/g' /usr/local/bigbluebutton/core/scripts/rap-process-worker.rb
sed -i 's/BigBlueButton.logger.debug("rap-sanity-worker done")/sleep 20 ; BigBlueButton.logger.debug("rap-sanity-worker done")/g'  /usr/local/bigbluebutton/core/scripts/rap-sanity-worker.rb
sed -i 's/BigBlueButton.logger.debug("rap-publish-worker done")/sleep 20; BigBlueButton.logger.debug("rap-publish-worker done")/g' /usr/local/bigbluebutton/core/scripts/rap-publish-worker.rb

# Start BigBlueButton!
#

export NODE_ENV=production

export DAEMON_LOG=/var/log/kurento-media-server
export GST_DEBUG="3,Kurento*:4,kms*:4"
export KURENTO_LOGS_PATH=$DAEMON_LOG

cat << HERE

BigBlueButton is now starting up.  You can access the API demos here (use FireFox for WebRTC audio/video)

  http://$HOST/demo/demo1.jsp

For API calls, use the following credentials

   host: $HOST
 secret: $SECRET

To interactively create API calls, here's a link to configure APIMate

  http://mconf.github.io/api-mate/#server=http://$HOST/bigbluebutton/&sharedSecret=$SECRET

HERE

updatedb

exec /usr/bin/supervisord > /var/log/supervisord.log

Thanks.

Adopt features and other developments from BBB@Scale

There's an amazing project named BBB@Scale by people from the Department of Computer Science at Darmstadt University of Applied Sciences, shaping into a great project that helps deploy BBB at various scales.

It seems to have some unique features compared with BBB+Scalelite, check comparison graph here

Let's invite contributors to pick any features that might fit in here do upstream contributions here.

License compatibility: Even BBB@Scale is licensed in LGPLv2 licence

jodconverter deploy key

Since today building starts (and fails) with this error message according jodconverter:

WARNING: Some services (jodconverter) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm.

503 and no logs

Problem: I get a 503 and it seems that nothing is running at all - in the docker only systemd is running and journalctl is empty. It looks like that the building has failed, but I only got warnings about apt-utils (I think), which was installed on the system, so I assumed I could ignore it.

Used branch v2.2.x, ran the docker build command as in the readme, added the image to the local registry and then started via Portainer. Unfortunately no logs are shown. As I got a problem to solve, it's far from ideal. Running docker logs neither brings up anything. Then also tried also with running the docker from the command line (using port 88). Again nothing.

For completeness, this is the Portainer-config.

{
    "AppArmorProfile": "docker-default",
    "Args": [
        "--system",
        "--unit=multi-user.target"
    ],
    "Config": {
        "ArgsEscaped": true,
        "AttachStderr": false,
        "AttachStdin": false,
        "AttachStdout": false,
        "Cmd": [],
        "Domainname": "meet.xxx",
        "Entrypoint": [
            "/bin/systemd",
            "--system",
            "--unit=multi-user.target"
        ],
        "Env": [
            "VIRTUAL_HOST=meet.xxx",
            "LETSENCRYPT_HOST=meet.xxx",
            "LETSENCRYPT_EMAIL=vincent@xxx",
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "DEBIAN_FRONTEND=noninteractive",
            "container=docker"
        ],
        "ExposedPorts": {
            "1935/tcp": {},
            "3478/tcp": {},
            "3478/udp": {}
        },
        "Hostname": "46.102.226.250",
        "Image": "localhost:5000/bigbluebutton",
        "Labels": {},
        "MacAddress": "02:42:ac:12:00:07",
        "OnBuild": null,
        "OpenStdin": false,
        "StdinOnce": false,
        "Tty": false,
        "User": "",
        "Volumes": null,
        "WorkingDir": ""
    },
    "Created": "2020-03-12T18:47:49.122262524Z",
    "Driver": "aufs",
    "ExecIDs": [
        "a465a656ad95c35f1d907d9a769546bb3e34be58a5f59e1ed959ea6b4cede2"
    ],
    "GraphDriver": {
        "Data": null,
        "Name": "aufs"
    },
    "HostConfig": {
        "AutoRemove": false,
        "Binds": [],
        "BlkioDeviceReadBps": null,
        "BlkioDeviceReadIOps": null,
        "BlkioDeviceWriteBps": null,
        "BlkioDeviceWriteIOps": null,
        "BlkioWeight": 0,
        "BlkioWeightDevice": null,
        "CapAdd": [
            "AUDIT_WRITE",
            "CHOWN",
            "DAC_OVERRIDE",
            "FOWNER",
            "FSETID",
            "KILL",
            "MKNOD",
            "NET_BIND_SERVICE",
            "NET_RAW",
            "SETFCAP",
            "SETGID",
            "SETPCAP",
            "SETUID",
            "SYS_CHROOT"
        ],
        "CapDrop": [
            "AUDIT_CONTROL",
            "BLOCK_SUSPEND",
            "DAC_READ_SEARCH",
            "IPC_LOCK",
            "IPC_OWNER",
            "LEASE",
            "LINUX_IMMUTABLE",
            "MAC_ADMIN",
            "MAC_OVERRIDE",
            "NET_ADMIN",
            "NET_BROADCAST",
            "SYSLOG",
            "SYS_ADMIN",
            "SYS_BOOT",
            "SYS_MODULE",
            "SYS_NICE",
            "SYS_PACCT",
            "SYS_PTRACE",
            "SYS_RAWIO",
            "SYS_RESOURCE",
            "SYS_TIME",
            "SYS_TTY_CONFIG",
            "WAKE_ALARM"
        ],
        "Cgroup": "",
        "CgroupParent": "",
        "ConsoleSize": [
            0,
            0
        ],
        "ContainerIDFile": "",
        "CpuCount": 0,
        "CpuPercent": 0,
        "CpuPeriod": 0,
        "CpuQuota": 0,
        "CpuRealtimePeriod": 0,
        "CpuRealtimeRuntime": 0,
        "CpuShares": 0,
        "CpusetCpus": "",
        "CpusetMems": "",
        "DeviceCgroupRules": null,
        "Devices": [],
        "DiskQuota": 0,
        "Dns": null,
        "DnsOptions": null,
        "DnsSearch": null,
        "ExtraHosts": [],
        "GroupAdd": null,
        "IOMaximumBandwidth": 0,
        "IOMaximumIOps": 0,
        "IpcMode": "shareable",
        "Isolation": "",
        "KernelMemory": 0,
        "Links": null,
        "LogConfig": {
            "Config": {},
            "Type": "json-file"
        },
        "MaskedPaths": [
            "/proc/acpi",
            "/proc/kcore",
            "/proc/keys",
            "/proc/latency_stats",
            "/proc/timer_list",
            "/proc/timer_stats",
            "/proc/sched_debug",
            "/proc/scsi",
            "/sys/firmware"
        ],
        "Memory": 0,
        "MemoryReservation": 0,
        "MemorySwap": 0,
        "MemorySwappiness": null,
        "NanoCpus": 0,
        "NetworkMode": "dockernet",
        "OomKillDisable": false,
        "OomScoreAdj": 0,
        "PidMode": "",
        "PidsLimit": 0,
        "PortBindings": {
            "1935/tcp": [
                {
                    "HostIp": "",
                    "HostPort": "1935"
                }
            ],
            "3478/tcp": [
                {
                    "HostIp": "",
                    "HostPort": "3478"
                }
            ],
            "3478/udp": [
                {
                    "HostIp": "",
                    "HostPort": "3478"
                }
            ]
        },
        "Privileged": false,
        "PublishAllPorts": false,
        "ReadonlyPaths": [
            "/proc/asound",
            "/proc/bus",
            "/proc/fs",
            "/proc/irq",
            "/proc/sys",
            "/proc/sysrq-trigger"
        ],
        "ReadonlyRootfs": false,
        "RestartPolicy": {
            "MaximumRetryCount": 0,
            "Name": "unless-stopped"
        },
        "Runtime": "runc",
        "SecurityOpt": null,
        "ShmSize": 67108864,
        "UTSMode": "",
        "Ulimits": null,
        "UsernsMode": "",
        "VolumeDriver": "",
        "VolumesFrom": null
    },
    "HostnamePath": "/var/lib/docker/containers/9d1b9ffdc54e34ece2cd52d9bb755967de9f4dd4cf0950052e6a889b66627f/hostname",
    "HostsPath": "/var/lib/docker/containers/9d1b9ffdc54e34ece2cd52d9bb755967de9f4dd4cf0950052e6a889b66627f/hosts",
    "Id": "9d1b9ffdc54e34ece2cd52d9bbe1755967de9f4dd4cf0950052e6a889b66627f",
    "Image": "sha256:240136351ae4c08a088b2dc9903353bf79a8c30ce7b1116644d0cc94ea1a91",
    "LogPath": "/var/lib/docker/containers/9d1b9ffdc54e34ece2cd52d9bb755967de9f4dd4cf0950052e6a889b66627f/9d1b9ffdc54e34ece2cd52d9bb755967de9f4dd4cf0950052e6a889b66627f-json.log",
    "MountLabel": "",
    "Mounts": [],
    "Name": "/BBB",
    "NetworkSettings": {
        "Bridge": "",
        "EndpointID": "",
        "Gateway": "",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "HairpinMode": false,
        "IPAddress": "",
        "IPPrefixLen": 0,
        "IPv6Gateway": "",
        "LinkLocalIPv6Address": "",
        "LinkLocalIPv6PrefixLen": 0,
        "MacAddress": "",
        "Networks": {
            "dockernet": {
                "Aliases": [
                    "9d1b9ffdc54e"
                ],
                "DriverOpts": null,
                "EndpointID": "bbcf2d5980da9cba6e5e9949b90c2871b0a371a1a289e2b94d8caee360a871",
                "Gateway": "172.18.0.1",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "IPAMConfig": {},
                "IPAddress": "172.18.0.7",
                "IPPrefixLen": 16,
                "IPv6Gateway": "",
                "Links": null,
                "MacAddress": "02:42:ac:12:00:07",
                "NetworkID": "faedd3cfcd5aa6e6d90bc397944a0adadab126914a93579ca37e53a5d16a5e"
            }
        },
        "Ports": {
            "1935/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "1935"
                }
            ],
            "3478/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "3478"
                }
            ],
            "3478/udp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "3478"
                }
            ]
        },
        "SandboxID": "dd4ad0ed5431cfc7db9fd8bd68bfca372e38592fba0532ee52871f7dffa36e",
        "SandboxKey": "/var/run/docker/netns/dd4ad0ed5431",
        "SecondaryIPAddresses": null,
        "SecondaryIPv6Addresses": null
    },
    "Path": "/bin/systemd",
    "Platform": "linux",
    "ProcessLabel": "",
    "ResolvConfPath": "/var/lib/docker/containers/9d1b9ffdc54e34ece2cd52d9bb755967de9f4dd4cf0950052e6a889b66627f/resolv.conf",
    "RestartCount": 0,
    "State": {
        "Dead": false,
        "Error": "",
        "ExitCode": 0,
        "FinishedAt": "0001-01-01T00:00:00Z",
        "OOMKilled": false,
        "Paused": false,
        "Pid": 64006,
        "Restarting": false,
        "Running": true,
        "StartedAt": "2020-03-12T18:47:50.397754664Z",
        "Status": "running"
    }
}

credentials missing?

i followed the guide to install this on docker and now its up and running but... how can i log in?!
do i have to run some console commands or is there something predefined so that i can login as admin?

404 error for demo server

Hi! Thanks for docker image.
I builded and run docker container according to instruction:
docker run --rm -p 80:80/tcp -p 1935:1935 -p 3478:3478 -p 3478:3478/udp bigbluebutton -h <HOST_IP>
Now I getting 404 error when I trying to join demo room.
In console there are error:
Uncaught ReferenceError: checkform is not defined at HTMLFormElement.onsubmit ((index):63)
Some bbb info:

root@3f209464a294:/# sudo bbb-conf --check

BigBlueButton Server 2.0.0 (1684)
                    Kernel version: 4.15.0-72-generic
                      Distribution: Ubuntu 16.04.6 LTS (64-bit)
                            Memory: 492 MB

/var/www/bigbluebutton/client/conf/config.xml (bbb-client)
                Port test (tunnel): rtmp://185.189.14.121
                              red5: 185.189.14.121
              useWebrtcIfAvailable: true

/opt/freeswitch/etc/freeswitch/sip_profiles/external.xml (FreeSWITCH)
                         websocket: :5066
                    WebRTC enabled: true

/etc/nginx/sites-available/bigbluebutton (nginx)
                       server name: 185.189.14.121
                              port: 80, [::]:80
                    bbb-client dir: /var/www/bigbluebutton

/var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties (bbb-web)
                      bbb-web host: 185.189.14.121

/var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp (API demos)
                               url: 185.189.14.121

/usr/share/red5/webapps/bigbluebutton/WEB-INF/red5-web.xml (red5)
                  voice conference: FreeSWITCH

/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml (record and playback)
                     playback host: 185.189.14.121
                            ffmpeg: 4.1.3-0york1~16.04

/usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml (Kurento)
                        kurentoUrl: ws://172.17.0.2:8888/kurento
                         kurentoIp: 172.17.0.2
                    localIpAddress: 172.17.0.2
               recordScreenSharing: true
                     recordWebcams: true
                              Node: v8.16.2
                           mongoDB: v3.4.23
root@3f209464a294:/# sudo bbb-conf --status
Failed to connect to bus: No such file or directory
red5 β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
tomcat7 β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
nginx β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
freeswitch β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
redis-server.service β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
bbb-apps-akka β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
bbb-transcode-akka β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
bbb-fsesl-akka β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
mongod β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
bbb-html5 β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
bbb-webrtc-sfu β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
kurento-media-server β€”β€”β–Ί [✘ - ]

DEFAULT_PRESENTATION mounting to wrong path

the nginx document-root in nginx-container was set to /www/ (mod/nginx/bigbluebutton:25) but the DEFAULT_PRESENTATION ist mounted to /etc/nginx/html/default.pdf (docker-compose.tmp.yml:129) so the default.pdf could not be loaded.

Switching the mountpoint to /www/default.pdf works!

docker-compose.tmpl.yml:
line 129:
old: - ${DEFAULT_PRESENTATION:-/dev/null}:/etc/nginx/html/default.pdf
new: - ${DEFAULT_PRESENTATION:-/dev/null}:/www/default.pdf

docker build fails

One of the ppa's used is now private. As a result the docker build step fails with:

Step 12/38 : RUN apt-get update && apt-get -y dist-upgrade ---> Running in c1c9addee497 Ign:1 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial InRelease Hit:2 http://archive.ubuntu.com/ubuntu xenial InRelease Hit:3 http://security.ubuntu.com/ubuntu xenial-security InRelease Hit:4 http://archive.ubuntu.com/ubuntu xenial-updates InRelease Get:5 http://ppa.launchpad.net/rmescandon/yq/ubuntu xenial InRelease [18.0 kB] Hit:6 http://archive.ubuntu.com/ubuntu xenial-backports InRelease Ign:7 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial Release Ign:8 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial/main amd64 Packages Ign:9 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial/main all Packages Hit:10 http://ubuntu.bigbluebutton.org/xenial-200 bigbluebutton-xenial InRelease Ign:8 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial/main amd64 Packages Ign:9 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial/main all Packages Ign:8 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial/main amd64 Packages Ign:9 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial/main all Packages Ign:8 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial/main amd64 Packages Ign:9 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial/main all Packages Ign:8 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial/main amd64 Packages Ign:9 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial/main all Packages Err:8 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial/main amd64 Packages 403 Forbidden Get:11 http://ppa.launchpad.net/rmescandon/yq/ubuntu xenial/main amd64 Packages [382 B] Ign:9 http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial/main all Packages Fetched 18.4 kB in 0s (19.6 kB/s) Reading package lists... W: The repository 'http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu xenial Release' does not have a Release file. E: Failed to fetch http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu/dists/xenial/main/binary-amd64/Packages 403 Forbidden E: Some index files failed to download. They have been ignored, or old ones used instead. The command '/bin/sh -c apt-get update && apt-get -y dist-upgrade' returned a non-zero code: 100 user@devsys:~/src/bigbluebutton$

Is there an alternative?

Increase nginx worker_connections

copy of alangecker/bigbluebutton-docker#91

after 120 people in one room with ~200 participants total I got following error:
nginx_1 | 2021/01/15 17:37:39 [alert] 29#29: *107420 1024 worker_connections are not enough while connecting to upstream, client: 10.7.7.33, server: _, request: "GET /bigbluebutton/api/getMeetings?checksum=[...] HTTP/1.1", upstream: "http://10.7.7.2:8090/bigbluebutton/api/getMeetings?checksum=[...]", host: "10.7.7.1:8080"

increasing the worker_connections setting in nginx solved that.

this should be applied to nginx and maybe to the https-proxy as well.

dns problems

i have a host (mybbb.ydns.eu) and i can ping it and access it.
when i start bbb (compose up) i get an error:
Invalid BigBlueButton Endpoint and Secret

so i checked the log:
2021-04-02 08:15:27 +0000 - ERROR: [d72848ca-5f0c-47e3-93d5-4780a100522f] [172.18.0.1] BigBlueButtonException: Connection error. Your URL is probably incorrect: "https://mybbb.ydns.eu/bigbluebutton/api". Error: Failed to open TCP connection to mybbb.ydns.eu:443 (getaddrinfo: Try again)

so i tried to ping that domain, no way, it says bad address.
i added 1.1.1.1 to resolv.conf, still no luck.

Create a helm chart to install BBB

  • Helm version 3, preferably.
  • It can added to Helm hub or can be added to any private repository

This will be a great advantage installing BBB in Kubernetes

ssl certificate integration

Can this container be used together traefik for proper operation ssl?
bigbluebutton:
container_name: bigbluebutton
hostname: bigbluebutton
image: bigbluebutton/bigbluebutton
ports:
- 81:80/tcp
- 1935:1935/tcp
- 5066:5066/tcp
- 3478:3478/tcp
- 32730-32768:32730-32768/udp
- 2202:2202
environment:
- HOST=serversupport.pp.ua
cap_add:
- NET_ADMIN
labels:
- "traefik.enable=true"
- "traefik.q.frontend.rule=Host:; PathPrefixStrip:/ "
- "traefik.q.port=80"
- "traefik.a.frontend.rule=Host:
_:7443; "
- "traefik.a.port=5066"
- "traefik.protocol=http"

traefik:
# https://hub.docker.com/_/traefik/
image: traefik:latest
command: --api --docker --acme.email="admin@_____-"
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock # Access to Docker
- ./traefik.toml:/traefik.toml # Traefik configuration
- ./acme.json:/acme.json # SSL certificates
ports:
# Map port 80 and 443 on the host to this container.
- "80:80"
- "443:443"
labels:
- "traefik.enable=true"
- "traefik.protocol=http"

docker build -t bigbluebutton . fails

Hello,

In the past days I have tried to create a Docker image as described in github.com/bigbluebutton/docker
Unfortunately this fails completely and at several levels it seems (please see terminal output int the file attached).

BBB_install_errors.txt

I tried to login to the incomplete image via Docker and manually complete the failed parts. I believe I managed to complete the install through apt install bigbluebutton once, but then when I try:
docker run --rm -p 80:80/tcp -p 1935:1935 -p 3478:3478 -p 3478:3478/udp bbb -h 192.168.2.205

I receive:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"-h\": executable file not found in $PATH": unknown.

I am running Docker version:

Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea
 Built:             Wed Nov 13 07:22:34 2019
 OS/Arch:           darwin/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea
  Built:            Wed Nov 13 07:29:19 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

On MacOs Catalina:
10.15.3

Additional insights I gathered during my trials:

  1. /usr/local/lib/site_ruby/2.3.0/rubygems.rb:275:in 'find_spec_for_exe': Could not find 'bundler' (1.16.1) required by your /usr/local/bigbluebutton/core/Gemfile.lock. (Gem::GemNotFoundException)
  • Can be fixed through:
  • cd /usr/local/bigbluebutton/core/
  • Executing: bundle update --bundler
  • Could there be an error in the script preventing an automated cd to the required directory?
  1. When trying to continue the installation manually by reverse traversing the Docker file, I also encountered Unable to locate package "bbb-etherpad" when trying to install this package manually, hinting at a missing remote repository?
root@193314bd411d:/# apt-get install -y bbb-etherpad
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package bbb-etherpad
root@193314bd411d:/#
  1. Since this missing package appears to be a game breaker, I decided to leave it at this. As a next step I might have tried to put the following in to a separate Docker file in order to have a chance of running this at all. Wondering if since this part was not reached in the Docker file, docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"-h\": executable file not found in $PATH": unknown. was thrown?
# -- Finish startup
ADD setup.sh /root/setup.sh
ENTRYPOINT ["/root/setup.sh"]
CMD []
  1. For some reason the (partial) Docker image that was created only had an ID but no name. Anything missing in the initial command?

Please let me know if there is any solution to this.
Many thanks in advance!

No https by default please

The reason why I chose Docker, is that the normal installation decides that my big server should be fully used by BBB and conflicts with other services running there - if nginx was left to me, it would have been a breeze, but no... Now also Docker is trying to apply the same philosophy and I fail to understand this. Separation of concerns is important. Not only in docker. So why is BBB-docker trying to provide all kinds of extras that makes deployment very difficult?

Could you please remove the https and leave that to the user? Now I have to manually make various changes that are not documented.

Branch: v2.2.x container creation fails

@tdjac0bs: container creation as described in the README-build.md fails
as rc.local is trying to access /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties which
doesn't exist yet as BBB providing this directory is only installed if you run setup.sh in the container before the starting it up via systemd as outlined in the README-build.md.

I will try to issue a PR fixing this once I have a few spare cycles.

Big Blue Button behind proxy

Hi everyone!

I use https://github.com/jwilder/nginx-proxy on my server. It listens on 80 port.

I wanna use Big Blue Button and access to it by domain name bbb.my-domain.com. I need something kinda this config:

version: "2"

services:
  bbb:
    image: bigbluebutton/bigbluebutton
    restart: unless-stopped
    environment: 
      - VIRTUAL_HOST=bbb.my-domain.com
      - VIRTUAL_PORT=80
    ports:
      - "80:80/tcp"
      - "1935:1935"
      - "3478:3478"
      - "3478:3478/udp"
    expose:
      - 80    
    networks:
      - default
      - proxy_default  
    command: "-h bbb.my-domain.com"  # my server address
networks:
  proxy_default:
    external: true         

But 80 port is busy by proxy, so I have to define another one. Which extra changes I have to do?

If I specify "81:80/tcp" I see BBB running on bbb.my-domain.com, but when I follow join-link from third part app I see meeting-room and during sound-test I get 1006 error. Also in console of browser I see error: WebSocket connection to 'wss://bbb.my-domain.com/ws' failed: Error during WebSocket handshake: Unexpected response code: 404

Thanks for help.

Add instructions for sip dial in

there should be a proper documentation in docs

steps in a nutshell:

  • create sip profile in ./conf/sip_profiles/
  • create dialplan in ./conf/dialplan_public/
  • add IP address (-range) of the SIP server to SIP_IP_ALLOWLIST in .env
  • set WELCOME_FOOTER in .env to something like WELCOME_FOOTER=<b>Dial-In:</b><br><code> +49 1234 000 0000</code><br>Conference number: <code>%%CONFNUM%%</code><br><i><SMALL>(Note: this number changes every time the room is opened.)</small></i>

Dividing Kurento into 3

It would be nice if Kurento is divided into 3 servers (main, audio, content) and balanced.

Change Salt

I see in documentation of setup.sh file that it's posible set Secret Salt, but in code no see where set this Salt, only get store Salt for use it:

# Ensure bbb-apps-akka has the latest shared secret from bbb-web
SECRET=$(cat /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties | grep -v '#' | grep securitySalt | cut -d= -f2);

I try to use the -s parameter to configure Salt, but I can not get it

# Ensure bbb-apps-akka has the latest shared secret from bbb-web
if [ -z $SECRET ]
then
	SECRET=$(cat /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties | grep -v '#' | grep securitySalt | cut -d= -f2);
else
	sed -i "s/securitySalt=.*/securitySalt=$SECRET/" /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
fi

sed -i "s/String salt =.*/String salt = \"$SECRET\";/"  /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp

sed -i "s/sharedSecret[ ]*=[ ]*\"[^\"]*\"/sharedSecret=\"$SECRET\"/g"   /usr/share/bbb-apps-akka/conf/application.conf

I try in setup.sh use bbb-conf --setsalt but does not work.

docker build error

terminal.log
I got this error when i ran "docker built -t bigbluebutton .":

Errors were encountered while processing:
 bbb-record-core
 bbb-playback-presentation
 bbb-config
 bigbluebutton
E: Sub-process /usr/bin/dpkg returned an error code (1)
The command '/bin/sh -c apt-get install -y bigbluebutton' returned a non-zero code: 100

Please show me how to fix this error. Thanks a lot.

error 1007 on remote side

i have bbb working in my lan at 192.168.1.100, i registered a domain with dyndns and it seem to work, but when people try to use audio/video, they get an error 1007.
i checked that udp ports are forwarded correctly (16xxx up to 32xxx, dont know exactly the numbers) with nc and an echo test, that worked.
i would assume with those ports open and forwarded anyone can connect but seems like (until now) no one except from inside my lan can connect with audio/video.
i can not set up a dedicated turn server which forwards all ports (1...65536) with tcp and udp because then i would lock my internet connection

Add docker healthchecks

copy of alangecker/bigbluebutton-docker#37

Docker offers to monitor the health of containers.

this can be archived either by a HEALTHCHECK command [1] in the Dockerfile or via a healthcheck property in the docker-compose file.

It can be really helpful for debugging some issues like alangecker/bigbluebutton-docker#35, so I think we should add it.


[1] https://docs.docker.com/engine/reference/builder/#healthcheck
[2] https://docs.docker.com/compose/compose-file/#healthcheck

Problem with proxy address in prebuilt image. EG apt-get update does not run in container. With workaround.

Line 4 of the docker file has the proxy IP set to 192.168.0.130 and so the container cannot reach the internet. The docs say that, by default, this is commented out, but it is not. IE:
RUN echo 'Acquire::http::Proxy "http://192.168.0.130:3142";' > /etc/apt/apt.conf.d/01proxy
Should be:
# RUN echo 'Acquire::http::Proxy "http://192.168.0.130:3142";' > /etc/apt/apt.conf.d/01proxy
The pre-built distribution image needs rebuilding ;)
or rebuild it yourself.
I just did a rebuild, after commenting out that line, and it now works :)

1002: Could not make a WebSocket connection

I successfully deployed the BBB container with the latest version. But unfortunately, I get 1002: Could not make a WebSocket connection.
I try to debug the above error by enabling ports
docker run -d --name=$NAME --hostname=$HOSTNAME -p 16384:32768 -p 443:443 -p 80:80/tcp -p 1935:1935 -p 3478:3478/udp
it doesn't work. All service is working properly I can't see any error in the logs.

I'm I missing something?.

thanks

java.lang.NullPointerException 500

Hi!
When I start docker with ip address everything is ok.

But if I try to start like docker run [skip] -h bbb.realdomname.com
I have

Status Code 500
Exception Type null
Message null
Exception java.lang.NullPointerException at org.apache.jsp.demo1_jsp.getJoinURLExtended(demo1_jsp.java:259) at org.apache.jsp.demo1_jsp.getJoinURL(demo1_jsp.java:182) at org.apache.jsp.demo1_jsp._jspService(demo1_jsp.java:1241) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:400) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:344) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:221) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)

I can see this problem at once as I change ip to hostname in /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp
or
219 sed -i "s/BigBlueButtonURL = "http[s]://([^\"\/])(["/])/BigBlueButtonURL = "$PROTOCOL_HTTP://$HOST\2/g"
220 /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp
in setup.sh

webrtc fails

I used the Dockerfile to build an image and deployed an instance. However, the webrtc connection fails and keeps defaulting to flash audio. Considering that we are running an instance of coturn alongside, shouldn't the webrtc supposed to work out of the box? If not, is it necessary that the turn server should be outside the NAT infrastructure of the bigbluebutton docker setup for webrtc to work?

Build Error

To update to the latest version installed on your system, run bundle update --bundler. To install the missing version, run gem install bundler:1.16.1οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½from /usr/local/lib/site_ruby/2.3.0/rubygems.rb:296:inactivate_bin_path'
οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½from /usr/local/bin/bundle:23:in `

'
dpkg: error processing package bbb-record-core (--configure):
οΏ½subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of bbb-playback-presentation:
bbb-playback-presentation depends on bbb-record-core; however:
οΏ½οΏ½Package bbb-record-core is not configured yet.

dpkg: error processing package bbb-playback-presentation (--configure):
οΏ½dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of bbb-config:
bbb-config depends on bbb-playback-presentation; however:
οΏ½οΏ½Package bbb-playback-presentation is not configured yet.

dpkg: error processing package bbb-config (--configure):
οΏ½dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of bigbluebutton:
bigbluebutton depends on bbb-config; however:
οΏ½οΏ½Package bbb-config is not configured yet.

dpkg: error processing package bigbluebutton (--configure):
οΏ½dependency problems - leaving unconfigured
Setting up libreoffice-pdfimport (1:5.1.6rc2-0ubuntu1xenial10) ...
Setting up humanity-icon-theme (0.6.10.1) ...
Setting up ubuntu-mono (14.04+16.04.20180326-0ubuntu1) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Processing triggers for systemd (229-4ubuntu21.28) ...
Processing triggers for libgdk-pixbuf2.0-0:amd64 (2.32.2-1ubuntu1.6) ...
Processing triggers for dbus (1.10.6-1ubuntu3.5) ...
Processing triggers for dictionaries-common (1.26.3) ...
Errors were encountered while processing:
bbb-record-core
bbb-playback-presentation
bbb-config
οΏ½bigbluebutton
E: Sub-process /usr/bin/dpkg returned an error code (1)
The command '/bin/sh -c apt-get install -y bigbluebutton' returned a non-zero code: 100 `

When trying to build on Ubuntu 18.04 Server, dpkg fails. Could somebody please provide an already built docker image?

Replace Etherpad plugin

Hi @alangecker ,

Just a heads-up regarding a change I'm doing in one of the plugins we currently use. You will probably notice it in your update scripts but I'm adding here some extra context to it to spoil the surprise.

Since ep_delete_after_delay_lite (https://www.npmjs.com/package/ep_delete_after_delay_lite) is not working as expected anymore, and I believe it stopped working at the moment Etherpad started moving their async calls to Promises, I wrote a replacement ep_pad_ttl (https://github.com/pedrobmarin/ep_pad_ttl) to better fit our needs on removing Etherpad's data from Redis when pads stale. You can find some details on configuration at https://github.com/pedrobmarin/ep_pad_ttl#configuration and I'm available to answer any questions.

Install error

Use the below command to run bigbluebutton

 docker run --rm \
> -p 80:80 \
> -p 443:443 \
> -p 1935:1935 \
> -p 5066:5066 \
> -p 3478:3478 \
> -p 3478:3478/udp \
> bigbluebutton/bigbluebutton -h 172.16.212.51

But docker entrypoint throw an error

/root/setup.sh: line 228: updatedb: command not found

+ getopts eh: opt
+ case $opt in
+ HOST=172.16.212.51
+ getopts eh: opt
+ apt-get install -y bbb-demo
Reading package lists...
Building dependency tree...
Reading state information...
bbb-demo is already the newest version (1:2.0.0-14).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+ /etc/init.d/tomcat7 start
 * Starting Tomcat servlet engine tomcat7
   ...done.
+ '[' '!' -f /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp ']'
+ sudo /etc/init.d/tomcat7 stop
 * Stopping Tomcat servlet engine tomcat7
   ...done.
+ PROTOCOL_HTTP=http
+ PROTOCOL_RTMP=rtmp
++ head -n1
+++ LANG=c
+++ ifconfig
+++ awk -v RS= '{gsub (/\n[ ]*inet /," ")}1'
+++ grep addr:
+++ grep '^et.*'
+++ sed 's/.*addr://g'
+++ head -n1
+++ sed 's/ .*//g'
+++ LANG=c
+++ ifconfig
+++ awk -v RS= '{gsub (/\n[ ]*inet /," ")}1'
+++ grep addr:
+++ head -n1
+++ sed 's/.*addr://g'
+++ sed 's/ .*//g'
+++ grep '^en.*'
++ echo 172.17.0.2
+ IP=172.17.0.2
+ xmlstarlet edit --inplace --update '//X-PRE-PROCESS[@cmd="set" and starts-with(@data, "external_rtp_ip=")]/@data' --value stun:coturn /opt/freeswitch/conf/vars.xml
/root/setup.sh: line 74: xmlstarlet: command not found
+ xmlstarlet edit --inplace --update '//X-PRE-PROCESS[@cmd="set" and starts-with(@data, "external_sip_ip=")]/@data' --value stun:coturn /opt/freeswitch/conf/vars.xml
/root/setup.sh: line 75: xmlstarlet: command not found
+ xmlstarlet edit --inplace --update '//X-PRE-PROCESS[@cmd="set" and starts-with(@data, "local_ip_v4=")]/@data' --value 172.17.0.2 /opt/freeswitch/conf/vars.xml
/root/setup.sh: line 76: xmlstarlet: command not found
+ sed -i 's/proxy_pass .*/proxy_pass http:\/\/172.17.0.2:5066;/g' /etc/bigbluebutton/nginx/sip.nginx
+ sed -i 's/http[s]*:\/\/\([^"\/]*\)\(["\/]\)/http:\/\/172.16.212.51\2/g' /var/www/bigbluebutton/client/conf/config.xml
+ sed -i 's/rtmp[s]*:\/\/\([^"\/]*\)\(["\/]\)/rtmp:\/\/172.16.212.51\2/g' /var/www/bigbluebutton/client/conf/config.xml
+ sed -i 's/server_name  .*/server_name  172.16.212.51;/g' /etc/nginx/sites-available/bigbluebutton
+ sed -i 's/bigbluebutton.web.serverURL=http[s]*:\/\/.*/bigbluebutton.web.serverURL=http:\/\/172.16.212.51/g' /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
+ change_var_value /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties streamBaseUrl rtmp://172.16.212.51/screenshare
+ sed -i 's<^[[:blank:]#]*\(streamBaseUrl\).*<\1=rtmp://172.16.212.51/screenshare<' /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties
+ change_var_value /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties jnlpUrl http://172.16.212.51/screenshare
+ sed -i 's<^[[:blank:]#]*\(jnlpUrl\).*<\1=http://172.16.212.51/screenshare<' /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties
+ change_var_value /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties jnlpFile http://172.16.212.51/screenshare/screenshare.jnlp
+ sed -i 's<^[[:blank:]#]*\(jnlpFile\).*<\1=http://172.16.212.51/screenshare/screenshare.jnlp<' /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties
+ change_var_value /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties bbb.sip.app.ip 172.17.0.2
+ sed -i 's<^[[:blank:]#]*\(bbb.sip.app.ip\).*<\1=172.17.0.2<' /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties
+ change_var_value /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties freeswitch.ip 172.17.0.2
+ sed -i 's<^[[:blank:]#]*\(freeswitch.ip\).*<\1=172.17.0.2<' /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties
+ sed -i 's/bbbWebAPI[ ]*=[ ]*"[^"]*"/bbbWebAPI="http:\/\/172.16.212.51\/bigbluebutton\/api"/g' /usr/share/bbb-apps-akka/conf/application.conf
+ sed -i 's/bbbWebHost[ ]*=[ ]*"[^"]*"/bbbWebHost="172.16.212.51"/g' /usr/share/bbb-apps-akka/conf/application.conf
+ sed -i 's/deskshareip[ ]*=[ ]*"[^"]*"/deskshareip="172.16.212.51"/g' /usr/share/bbb-apps-akka/conf/application.conf
+ sed -i 's/defaultPresentationURL[ ]*=[ ]*"[^"]*"/defaultPresentationURL="http:\/\/172.16.212.51\/default.pdf"/g' /usr/share/bbb-apps-akka/conf/application.conf
+ cat
++ openssl rand -hex 16
+ TURN_SECRET=9e8b3de035cb81dad90cc2bad324434d
+ cat
+ cat
+ cat
++ cat /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
++ grep -v '#'
++ grep securitySalt
++ cut -d= -f2
+ SECRET=6bbdc14d32df911075a5f3176adc1a0f
+ sed -i 's/sharedSecret[ ]*=[ ]*"[^"]*"/sharedSecret="6bbdc14d32df911075a5f3176adc1a0f"/g' /usr/share/bbb-apps-akka/conf/application.conf
+ sed -i 's/BigBlueButtonURL = "http[s]*:\/\/\([^"\/]*\)\(["\/]\)/BigBlueButtonURL = "http:\/\/172.16.212.51\2/g' /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp
+ sed -i 's/playback_host: .*/playback_host: 172.16.212.51/g' /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml
+ sed -i 's/daemonize no/daemonize yes/g' /etc/redis/redis.conf
+ sed -i 's|"wsUrl.*|"wsUrl": "ws://172.16.212.51/bbb-webrtc-sfu",|g' /usr/share/meteor/bundle/programs/server/assets/app/config/settings-production.json
+ rm /usr/share/red5/log/sip.log
rm: cannot remove '/usr/share/red5/log/sip.log': No such file or directory
+ sed -i 's/BigBlueButton.logger.debug("rap-archive-worker done")/sleep 20; BigBlueButton.logger.debug("rap-archive-worker done")/g' /usr/local/bigbluebutton/core/scripts/rap-archive-worker.rb
+ sed -i 's/BigBlueButton.logger.debug("rap-process-worker done")/sleep 20; BigBlueButton.logger.debug("rap-process-worker done")/g' /usr/local/bigbluebutton/core/scripts/rap-process-worker.rb
+ sed -i 's/BigBlueButton.logger.debug("rap-sanity-worker done")/sleep 20 ; BigBlueButton.logger.debug("rap-sanity-worker done")/g' /usr/local/bigbluebutton/core/scripts/rap-sanity-worker.rb
+ sed -i 's/BigBlueButton.logger.debug("rap-publish-worker done")/sleep 20; BigBlueButton.logger.debug("rap-publish-worker done")/g' /usr/local/bigbluebutton/core/scripts/rap-publish-worker.rb
+ export NODE_ENV=production
+ NODE_ENV=production
+ export DAEMON_LOG=/var/log/kurento-media-server
+ DAEMON_LOG=/var/log/kurento-media-server
+ export 'GST_DEBUG=3,Kurento*:4,kms*:4'
+ GST_DEBUG='3,Kurento*:4,kms*:4'
+ export KURENTO_LOGS_PATH=/var/log/kurento-media-server
+ KURENTO_LOGS_PATH=/var/log/kurento-media-server
+ cat

BigBlueButton is now starting up at this address

  http://172.16.212.51

+ updatedb
/root/setup.sh: line 228: updatedb: command not found
+ exec /usr/bin/supervisord
/usr/lib/python2.7/dist-packages/supervisor/options.py:297: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
  'Supervisord is running as root and it is searching '

Please check

Error 500 when container started

Hello,

i managed to get the docker build running by replace "# -- Install BigBlueButton" with

# -- Install BigBlueButton
RUN echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections
RUN apt-get install -y bigbluebutton || :
RUN gem update --system
RUN gem install bundler:1.16.1
RUN wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-220-beta
RUN apt-get install -y bigbluebutton
RUN apt-get install -y bbb-demo

So i was able to start the container afterwards.
docker run --rm -p 80:80/tcp -p 1935:1935 -p 3478:3478 -p 3478:3478/udp bigbluebutton -h 127.0.0.1

But now i got this (in the web) :

Status Code | 500
-- | --
Exception Type | null
Message | null
Exception | java.lang.NullPointerException
(...)
java.lang.Thread.run(Thread.java:748)
root@232bbd1e3448:/# sudo bbb-conf --status
Failed to connect to bus: No such file or directory
nginx β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
freeswitch β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
redis-server β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
bbb-apps-akka β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
bbb-transcode-akka β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
bbb-fsesl-akka β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
red5 β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
tomcat7 β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
mongod β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
bbb-html5 β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
bbb-webrtc-sfu β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
kurento-media-server β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
etherpad β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to connect to bus: No such file or directory
bbb-web β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
root@232bbd1e3448:/# /etc/init.d/dbus start
 * Starting system message bus dbus                                                                                             [ OK ]
root@232bbd1e3448:/# sudo bbb-conf --status
Failed to retrieve unit state: Launch helper exited with unknown return code 1
nginx β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to retrieve unit state: Launch helper exited with unknown return code 1
freeswitch β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to retrieve unit state: Launch helper exited with unknown return code 1
redis-server β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to retrieve unit state: Launch helper exited with unknown return code 1
bbb-apps-akka β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to retrieve unit state: Launch helper exited with unknown return code 1
bbb-transcode-akka β€”β€”β€”β€”β–Ί [✘ - ]
Failed to retrieve unit state: Launch helper exited with unknown return code 1
bbb-fsesl-akka β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to retrieve unit state: Launch helper exited with unknown return code 1
red5 β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to retrieve unit state: Launch helper exited with unknown return code 1
tomcat7 β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to retrieve unit state: Launch helper exited with unknown return code 1
mongod β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to retrieve unit state: Launch helper exited with unknown return code 1
bbb-html5 β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to retrieve unit state: Launch helper exited with unknown return code 1
bbb-webrtc-sfu β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to retrieve unit state: Launch helper exited with unknown return code 1
kurento-media-server β€”β€”β–Ί [✘ - ]
Failed to retrieve unit state: Launch helper exited with unknown return code 1
etherpad β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]
Failed to retrieve unit state: Launch helper exited with unknown return code 1
bbb-web β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β–Ί [✘ - ]

Any idea how to fix this ?

Error while running docker

i am trying to run docker using the command

$docker run -p 80:80/tcp -p 443:443/tcp -p 1935:1935 -p 5066:5066 -p 3478:3478 -p 3478:3478/udp bigbluebutton/bigbluebutton -h 127.0.0.1

docker did not come up with the following errors , i am trying to run the docker command on Linux Mint 19.1

  • sed -i 's/deskshareip[ ]=[ ]"[^"]*"/deskshareip="127.0.0.1"/g' /usr/share/bbb-apps-akka/conf/application.conf
  • sed -i 's/defaultPresentationURL[ ]=[ ]"[^"]*"/defaultPresentationURL="http://127.0.0.1/default.pdf"/g' /usr/share/bbb-apps-akka/conf/application.conf
  • cat
    ++ openssl rand -hex 16
  • TURN_SECRET=b58ad153647a0cc2dd4288c15f024009
  • cat
  • cat
  • cat
    ++ cat /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
    ++ grep -v '#'
    ++ grep securitySalt
    ++ cut -d= -f2
  • SECRET=6bbdc14d32df911075a5f3176adc1a0f
  • sed -i 's/sharedSecret[ ]=[ ]"[^"]*"/sharedSecret="6bbdc14d32df911075a5f3176adc1a0f"/g' /usr/share/bbb-apps-akka/conf/application.conf
  • sed -i 's/BigBlueButtonURL = "http[s]://([^"\/])(["/])/BigBlueButtonURL = "http://127.0.0.1\2/g' /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp
  • sed -i 's/playback_host: .*/playback_host: 127.0.0.1/g' /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml
  • sed -i 's/daemonize no/daemonize yes/g' /etc/redis/redis.conf
  • sed -i 's|"wsUrl.*|"wsUrl": "ws://127.0.0.1/bbb-webrtc-sfu",|g' /usr/share/meteor/bundle/programs/server/assets/app/config/settings-production.json
  • rm /usr/share/red5/log/sip.log
    rm: cannot remove '/usr/share/red5/log/sip.log': No such file or directory
  • sed -i 's/BigBlueButton.logger.debug("rap-archive-worker done")/sleep 20; BigBlueButton.logger.debug("rap-archive-worker done")/g' /usr/local/bigbluebutton/core/scripts/rap-archive-worker.rb
  • sed -i 's/BigBlueButton.logger.debug("rap-process-worker done")/sleep 20; BigBlueButton.logger.debug("rap-process-worker done")/g' /usr/local/bigbluebutton/core/scripts/rap-process-worker.rb
  • sed -i 's/BigBlueButton.logger.debug("rap-sanity-worker done")/sleep 20 ; BigBlueButton.logger.debug("rap-sanity-worker done")/g' /usr/local/bigbluebutton/core/scripts/rap-sanity-worker.rb
  • sed -i 's/BigBlueButton.logger.debug("rap-publish-worker done")/sleep 20; BigBlueButton.logger.debug("rap-publish-worker done")/g' /usr/local/bigbluebutton/core/scripts/rap-publish-worker.rb
  • export NODE_ENV=production
  • NODE_ENV=production
  • export DAEMON_LOG=/var/log/kurento-media-server
  • DAEMON_LOG=/var/log/kurento-media-server
  • export 'GST_DEBUG=3,Kurento*:4,kms*:4'
  • GST_DEBUG='3,Kurento*:4,kms*:4'
  • export KURENTO_LOGS_PATH=/var/log/kurento-media-server
  • KURENTO_LOGS_PATH=/var/log/kurento-media-server
  • cat

BigBlueButton is now starting up at this address

http://127.0.0.1

  • updatedb
    /root/setup.sh: line 228: updatedb: command not found
  • exec /usr/bin/supervisord
    /usr/lib/python2.7/dist-packages/supervisor/options.py:297: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
    'Supervisord is running as root and it is searching '

check the errors here if the readbility is an issue https://hastebin.com/cojawihaju.diff

no screensharing possible

We tested the dockerized BBB today successfully with almost all functions. Unfortunately only screensharing didn't work, not in Firefox and not in Chrome. The presentator can select the screen, the clients receive the rotating errors to indicate, that the screensharing is starting, but the it ends with the message "screensharing stopped".
Both server and clients were Ubuntu 20.04.

recordings not available

I just installed BBB through docker compose and everything seems to work except opening recordings. After the server has finished rendering, the recording appears

grafik

but after klicking on it I am redirected to a nginx error page:

grafik

build failing

invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of start.
WARNING: Could not add red5 to autostart: neither update-rc nor chkconfig found!
WARNING: Could not add freeswitch.service to autostart: neither update-rc nor chkconfig found!


RubyGems installed the following executables:
/usr/bin/gem2.3
/usr/bin/bundle2.3

RubyGems system software updated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:29: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:30: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:29: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:30: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
Fetching bundler-2.1.4.gem
Successfully installed bundler-2.1.4
1 gem installed
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:29: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:30: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:29: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:30: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:29: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:30: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:29: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:30: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
Fetching builder-3.2.4.gem
Successfully installed builder-3.2.4
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
Parsing documentation for builder-3.2.4
Installing ri documentation for builder-3.2.4
Done installing documentation for builder after 0 seconds
1 gem installed
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:29: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:30: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:29: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:30: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:29: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:30: warning: constant Gem::ConfigMap is deprecated
/usr/local/lib/site_ruby/2.3.0/rubygems.rb:275:in find_spec_for_exe': Could not find 'bundler' (1.16.1) required by your /usr/local/bigbluebutton/core/Gemfile.lock. (Gem::GemNotFoundException) To update to the latest version installed on your system, run bundle update --bundler. To install the missing version, run gem install bundler:1.16.1from /usr/local/lib/site_ruby/2.3.0/rubygems.rb:294:inactivate_bin_path'
from /usr/local/bin/bundle:23:in `

'
dpkg: error processing package bbb-record-core (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of bbb-playback-presentation:
bbb-playback-presentation depends on bbb-record-core; however:
Package bbb-record-core is not configured yet.

dpkg: error processing package bbb-playback-presentation (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of bbb-config:
bbb-config depends on bbb-playback-presentation; however:
Package bbb-playback-presentation is not configured yet.

dpkg: error processing package bbb-config (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of bigbluebutton:
bigbluebutton depends on bbb-config; however:
Package bbb-config is not configured yet.

dpkg: error processing package bigbluebutton (--configure):
dependency problems - leaving unconfigured
Setting up libreoffice-pdfimport (1:5.1.6rc2-0ubuntu1xenial10) ...
Setting up humanity-icon-theme (0.6.10.1) ...
Setting up ubuntu-mono (14.04+16.04.20180326-0ubuntu1) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Processing triggers for systemd (229-4ubuntu21.27) ...
Processing triggers for libgdk-pixbuf2.0-0:amd64 (2.32.2-1ubuntu1.6) ...
Processing triggers for dbus (1.10.6-1ubuntu3.5) ...
Processing triggers for dictionaries-common (1.26.3) ...
Errors were encountered while processing:
bbb-record-core
bbb-playback-presentation
bbb-config
bigbluebutton
E: Sub-process /usr/bin/dpkg returned an error code (1)
The command '/bin/sh -c apt-get install -y bigbluebutton' returned a non-zero code: 100

Converge all the setup options (cross-repo issue)

You seriously need to converge all the different setup options.

Here is this - not working - Docker setup.

There is another - not working docker-compose setup.

And your bbb-install.sh is just a pure clusterfuck - do you seriously expect anyone to run that OUTSIDE of a container?

So how do you install this?

I already spent like 12 hours on trying to figure out, how to install this and I am getting frustrated by now ...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.