forked from extern/docker
Docker files for BigBlueButton
bbb-webrtc-sfu@400fe636e6 | ||
conf | ||
mod | ||
.gitignore | ||
.gitmodules | ||
docker-compose.demo.yml | ||
docker-compose.greenlight.yml | ||
docker-compose.https.yml | ||
docker-compose.yml | ||
LICENSE | ||
README.md | ||
sample.env |
BigBlueButton Docker
Please note
- Not well tested, can be still really buggy. Don't use for production!
Install
- Install docker-ce & docker-compose
- follow instructions
- Ensure docker works with
$ docker run hello-world
- Install docker-compose: https://docs.docker.com/compose/install/
- Ensure docker-compose works:
$ docker-compose --version
- Clone this repository
$ git clone --recurse-submodules https://github.com/alangecker/bigbluebutton-docker.git bbb-docker $ cd bbb-docker
- Create
.env
with$ cp sample.env .env
- Adjust the values in
.env
- Important: don't forget to change
ETHERPAD_API_KEY
,SHARED_SECRET
andRAILS_SECRET
to any random values! For example generated withpwgen 40 3
DOMAIN
andEXTERNAL_IP
are also required. For example, usedig +short <DOMAIN>
to get your external ip address.
- Important: don't forget to change
- Start container. either...
- Most common setup: BigBlueButton with automatic HTTPS certificate retrieval and Greenlight
$ docker-compose \ -f docker-compose.yml \ -f docker-compose.https.yml \ -f docker-compose.greenlight.yml \ up --detach
- Individual parts:
- BigBlueButton
$ docker-compose up -d
- HTTPS reverse proxy
$ docker-compose -f docker-compose.https.yml up -d
- API demos
$ docker-compose -f docker-compose.demo.yml up -d
- Access https://bbb.example.com/demo/
- Greenlight
$ docker-compose -f docker-compose.greenlight.yml up -d
- Create an administrator account
$ docker exec greenlight-v2 bundle exec rake admin:create
- Access https://bbb.example.com/b
- BigBlueButton
- Most common setup: BigBlueButton with automatic HTTPS certificate retrieval and Greenlight
Note if you use a Firewall / NAT
Kurento binds somehow always to the external IP instead of the local one or 0.0.0.0
. For that reason you need to add your external IP to your interface.
Temporary way (until next reboot)
$ ip addr add 144.76.97.34/32 dev ens3
Permanent way
Specific to your linux distribution. Use a search engine of your choice. ;)
Ports
Also don't forget to forward all necassary ports listed in http://docs.bigbluebutton.org/2.2/configure-firewall.html
Upgrading
Upgrade BigBlueButton
cd bbb-docker
# pull repo changes
git pull
# update bbb-webrtc-sfu
git submodule update --remote
# rebuild images
docker-compose build --pull --no-cache
# recreate updated services
docker-compose up -d
Upgrade Greenlight
Important: especially with a version before 2020-05-17 create a database backup first, otherwise the data will not be persistent between container recreations.
cd bbb-docker
# create a database backup
docker exec -t docker_postgres_1 pg_dumpall -c -U postgres > /root/greenlight_`date +%d-%m-%Y"_"%H_%M_%S`.sql
# pull repo changes
git pull
# pull image updates
docker-compose -f docker-compose.greenlight.yml pull
# recreate & restart services if necessary
docker-compose -f docker-compose.greenlight.yml up -d
Upgrade HTTPS Proxy
[to be written]
Special thanks to
- @dkrenn, whos dockerized version (bigbluebutton#8858)(https://github.com/bigbluebutton/bigbluebutton/pull/8858) helped me a lot in understand and some configs.
Open Tasks
- add support for recording
- further separate bbb-core into individual container
- enable IPv6 support
- fix captions (they don't appear,
readOnlyPadId
is missing) - switch to
node:12-buster-slim
forhtml5
- switch to
node:12-buster-slim
forwebrtc-sfu
- drop root privileges in
webrtc-sfu
- drop root privileges in
kurento