mirror of
https://github.com/bigbluebutton/docker.git
synced 2024-11-26 10:03:25 +01:00
119 lines
3.9 KiB
Markdown
119 lines
3.9 KiB
Markdown
# BigBlueButton Docker
|
|
|
|
## Please note
|
|
- Not well tested, can be still really buggy. Don't use for production!
|
|
|
|
## Install
|
|
1. Install docker-ce & docker-compose
|
|
1. follow instructions
|
|
* Debian: https://docs.docker.com/engine/install/debian/
|
|
* CentOS: https://docs.docker.com/engine/install/centos/
|
|
* Fedora: https://docs.docker.com/engine/install/fedora/
|
|
* Ubuntu: https://docs.docker.com/engine/install/ubuntu/
|
|
2. Ensure docker works with `$ docker run hello-world`
|
|
3. Install docker-compose: https://docs.docker.com/compose/install/
|
|
4. Ensure docker-compose works: `$ docker-compose --version`
|
|
5. Clone this repository
|
|
```sh
|
|
$ git clone --recurse-submodules https://github.com/alangecker/bigbluebutton-docker.git bbb-docker
|
|
$ cd bbb-docker
|
|
```
|
|
6. Create `.env` with `$ cp sample.env .env`
|
|
7. Adjust the values in `.env`
|
|
- **Important:** don't forget to change `ETHERPAD_API_KEY`, `SHARED_SECRET` and `RAILS_SECRET` to any random values! For example generated with `pwgen 40 3`
|
|
- `DOMAIN` and `EXTERNAL_IP` are also required. For example, use `dig +short <DOMAIN>` to get your external ip address.
|
|
8. Start container. either...
|
|
- **Most common setup**: BigBlueButton with automatic HTTPS certificate retrieval and Greenlight
|
|
```bash
|
|
$ 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
|
|
|
|
|
|
|
|
|
|
|
|
## 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
|
|
```bash
|
|
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.
|
|
```bash
|
|
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
|
|
- add coturn support
|
|
- 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` for `html5`
|
|
- switch to `node:12-buster-slim` for `webrtc-sfu`
|
|
- drop root privileges in `webrtc-sfu`
|
|
- drop root privileges in `kurento`
|