pull latest updates on the docs made by @mmarangoni
This commit is contained in:
parent
d739b2c148
commit
a64272d6c6
@ -8,39 +8,39 @@ The purpose of this repo is to get BigBlueButton working in a multi-container Do
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Ensure you have the latest version of Docker-CE by following the install steps
|
||||
#### Ensure you have the latest version of Docker-CE by following the install steps
|
||||
|
||||
Ubuntu: https://docs.docker.com/install/linux/docker-ce/ubuntu/
|
||||
|
||||
Fedora: https://docs.docker.com/install/linux/docker-ce/fedora/
|
||||
|
||||
Make sure to also do the post install steps
|
||||
#### Make sure to also do the post install steps
|
||||
|
||||
https://docs.docker.com/install/linux/linux-postinstall/
|
||||
|
||||
Install docker-compose
|
||||
#### Install docker-compose
|
||||
|
||||
Ubuntu:
|
||||
```
|
||||
$ sudo dnf install docker-compose
|
||||
sudo apt-get install docker-compose
|
||||
```
|
||||
|
||||
Fedora:
|
||||
```
|
||||
$ sudo apt-get install docker-compose
|
||||
sudo dnf install docker-compose
|
||||
```
|
||||
|
||||
## Build all docker images
|
||||
|
||||
You should now be able to build all docker images with one command
|
||||
#### Build all docker images with one command
|
||||
```
|
||||
$ cd labs/docker/
|
||||
$ make release
|
||||
cd labs/docker/
|
||||
make release
|
||||
```
|
||||
|
||||
Verify that you have all the necessary images
|
||||
#### Verify that you have all the necessary images
|
||||
```
|
||||
$ docker images
|
||||
docker images
|
||||
```
|
||||
|
||||
You should see:
|
||||
@ -48,7 +48,7 @@ You should see:
|
||||
* bbb-common-message
|
||||
* bbb-common-web
|
||||
* bbb-fsesl-client
|
||||
* bbb-akka-apps
|
||||
* bbb-apps-akka
|
||||
* bbb-fsesl-akka
|
||||
* bbb-web
|
||||
* bbb-html5
|
||||
@ -67,133 +67,147 @@ In the event that any of the above images are missing, you'll need to build them
|
||||
|
||||
sbt is needed to build the Scala components
|
||||
```
|
||||
$ cd labs/docker/sbt/
|
||||
$ docker build -t 'sbt:0.13.8' .
|
||||
cd labs/docker/sbt/
|
||||
docker build -t 'sbt:0.13.8' .
|
||||
```
|
||||
|
||||
Build libraries
|
||||
```
|
||||
$ cd bbb-common-message/
|
||||
$ docker build -t 'bbb-common-message' --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
cd bbb-common-message/
|
||||
docker build -t 'bbb-common-message' --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
|
||||
$ cd bbb-common-web/
|
||||
$ docker build -t 'bbb-common-web' --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
cd bbb-common-web/
|
||||
docker build -t 'bbb-common-web' --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
|
||||
$ cd bbb-fsesl-client/
|
||||
$ docker build -t 'bbb-fsesl-client' --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
cd bbb-fsesl-client/
|
||||
docker build -t 'bbb-fsesl-client' --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
```
|
||||
|
||||
Build akka components
|
||||
```
|
||||
$ cd akka-bbb-apps/
|
||||
$ docker build -t bbb-apps-akka --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
cd akka-bbb-apps/
|
||||
docker build -t bbb-apps-akka --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
|
||||
# Not needed since we're setting up HTML5 only
|
||||
$ cd akka-bbb-transcode/
|
||||
$ docker build -t bbb-transcode --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
cd akka-bbb-transcode/
|
||||
docker build -t bbb-transcode --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
|
||||
$ cd akka-bbb-fsesl/
|
||||
$ docker build -t bbb-fsesl-akka --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
cd akka-bbb-fsesl/
|
||||
docker build -t bbb-fsesl-akka --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
```
|
||||
|
||||
Build bbb-web
|
||||
```
|
||||
$ cd bigbluebutton-web/
|
||||
$ docker build -t bbb-web --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
cd bigbluebutton-web/
|
||||
docker build -t bbb-web --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
|
||||
```
|
||||
|
||||
Build bbb-html5
|
||||
```
|
||||
$ cd bigbluebutton-html5/
|
||||
$ docker build -t bbb-html5 .
|
||||
cd bigbluebutton-html5/
|
||||
docker build -t bbb-html5 .
|
||||
```
|
||||
|
||||
Build bbb-webrtc-sfu
|
||||
```
|
||||
$ cd labs/bbb-webrtc-sfu/
|
||||
$ docker build -t bbb-webrtc-sfu .
|
||||
cd labs/bbb-webrtc-sfu/
|
||||
docker build -t bbb-webrtc-sfu .
|
||||
```
|
||||
|
||||
Build bbb-webhooks
|
||||
```
|
||||
$ cd bbb-webhooks/
|
||||
$ docker build -t bbb-webhooks .
|
||||
cd bbb-webhooks/
|
||||
docker build -t bbb-webhooks .
|
||||
```
|
||||
|
||||
Build Kurento Media Server
|
||||
```
|
||||
$ cd labs/docker/kurento/
|
||||
$ docker build -t bbb-kurento .
|
||||
cd labs/docker/kurento/
|
||||
docker build -t bbb-kurento .
|
||||
```
|
||||
|
||||
Build FreeSWITCH
|
||||
```
|
||||
$ cd labs/docker/freeswitch/
|
||||
$ docker build -t bbb-freeswitch .
|
||||
cd labs/docker/freeswitch/
|
||||
docker build -t bbb-freeswitch .
|
||||
```
|
||||
|
||||
Build nginx
|
||||
```
|
||||
$ cd labs/docker/nginx/
|
||||
$ docker build -t bbb-nginx .
|
||||
```
|
||||
|
||||
Build nginx-dhp (used to generate the Diffie-Hellman file)
|
||||
```
|
||||
$ cd labs/docker/nginx-dhp/
|
||||
$ docker build -t nginx-dhp .
|
||||
cd labs/docker/nginx/
|
||||
docker build -t bbb-nginx .
|
||||
```
|
||||
|
||||
Build coturn
|
||||
```
|
||||
$ cd labs/docker/coturn
|
||||
$ docker build -t bbb-coturn .
|
||||
cd labs/docker/coturn
|
||||
docker build -t bbb-coturn .
|
||||
```
|
||||
|
||||
(Optional) Build bbb-lti
|
||||
```
|
||||
$ cd bbb-lti/
|
||||
$ docker build -t bbb-lti .
|
||||
cd bbb-lti/
|
||||
docker build -t bbb-lti .
|
||||
```
|
||||
|
||||
## Setup
|
||||
|
||||
Export your configuration as environment variables, make sure to replace the SERVER_DOMAIN value with your hostname
|
||||
#### Export your configuration as environment variables
|
||||
NOTE: replace the example SERVER_DOMAIN's value with your own FQDN
|
||||
```
|
||||
$ export SERVER_DOMAIN=docker.bigbluebutton.org
|
||||
$ export EXTERNAL_IP=$(dig +short $SERVER_DOMAIN | grep '^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$' | head -n 1)
|
||||
$ export SHARED_SECRET=`openssl rand -hex 16`
|
||||
$ export COTURN_REST_SECRET=`openssl rand -hex 16`
|
||||
$ export SECRET_KEY_BASE=`openssl rand -hex 64`
|
||||
$ export SCREENSHARE_EXTENSION_KEY=akgoaoikmbmhcopjgakkcepdgdgkjfbc
|
||||
$ export SCREENSHARE_EXTENSION_LINK=https://chrome.google.com/webstore/detail/bigbluebutton-screenshare/akgoaoikmbmhcopjgakkcepdgdgkjfbc
|
||||
$ export TAG_PREFIX=
|
||||
$ export TAG_SUFFIX=
|
||||
export SERVER_DOMAIN=docker.bigbluebutton.org
|
||||
export EXTERNAL_IP=$(dig +short $SERVER_DOMAIN | grep '^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$' | head -n 1)
|
||||
export SHARED_SECRET=`openssl rand -hex 16`
|
||||
export COTURN_REST_SECRET=`openssl rand -hex 16`
|
||||
export SECRET_KEY_BASE=`openssl rand -hex 64`
|
||||
export SCREENSHARE_EXTENSION_KEY=akgoaoikmbmhcopjgakkcepdgdgkjfbc
|
||||
export SCREENSHARE_EXTENSION_LINK=https://chrome.google.com/webstore/detail/bigbluebutton-screenshare/akgoaoikmbmhcopjgakkcepdgdgkjfbc
|
||||
export TAG_PREFIX=
|
||||
export TAG_SUFFIX=
|
||||
```
|
||||
|
||||
Create a volume for the static files (optional)
|
||||
#### Create a volume for the SSL certs
|
||||
```
|
||||
$ docker volume create docker_static
|
||||
$ cd bigbluebutton-config/web/
|
||||
$ docker run -d --rm --name nginx -v docker_static:/var/www/bigbluebutton-default nginx tail -f /dev/null
|
||||
$ docker cp . nginx:/var/www/bigbluebutton-default
|
||||
$ docker exec -it nginx chown -R www-data:www-data /var/www/bigbluebutton-default
|
||||
$ docker stop nginx
|
||||
docker volume create docker_ssl-conf
|
||||
```
|
||||
|
||||
#### Generate SSL certs
|
||||
```
|
||||
docker run --rm -p 80:80 -v docker_ssl-conf:/etc/letsencrypt -it certbot/certbot certonly --non-interactive --register-unsafely-without-email --agree-tos --expand --domain $SERVER_DOMAIN --standalone
|
||||
|
||||
# certificate path: docker_ssl-conf/live/$SERVER_DOMAIN/fullchain.pem
|
||||
# key path: docker_ssl-conf/live/$SERVER_DOMAIN/privkey.pem
|
||||
```
|
||||
NOTE: If running on AWS, you won't be able to use the default Public DNS for your SERVER_DOMAIN as Let's Encrypt doesn't allow generating SSL certs from any *.amazonaws.com domain. Alternatively, you can create a PTR record that goes from a non-AWS FQDN to the AWS FQDN.
|
||||
|
||||
#### Create a volume for the static files (optional)
|
||||
```
|
||||
docker volume create docker_static
|
||||
cd bigbluebutton-config/web/
|
||||
docker run -d --rm --name nginx -v docker_static:/var/www/bigbluebutton-default nginx tail -f /dev/null
|
||||
docker cp . nginx:/var/www/bigbluebutton-default
|
||||
docker exec -it nginx chown -R www-data:www-data /var/www/bigbluebutton-default
|
||||
docker stop nginx
|
||||
```
|
||||
|
||||
#### Ensure the following ports are open
|
||||
* TCP/UDP 3478
|
||||
* TCP 80
|
||||
* TCP 443
|
||||
|
||||
## Run
|
||||
|
||||
Launch everything with docker compose
|
||||
#### Launch everything with docker compose
|
||||
```
|
||||
$ cd labs/docker/
|
||||
$ docker-compose up
|
||||
cd labs/docker/
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
You should be able to start using greenlight to access your server and create meetings
|
||||
#### Access your server via greenlight and create meetings
|
||||
|
||||
https://<your_hostname>/b
|
||||
https://<your_fqdn_here>/b
|
||||
|
||||
To exit
|
||||
#### To shut down and exit gracefully
|
||||
```
|
||||
CTRL+C
|
||||
```
|
||||
@ -203,58 +217,58 @@ CTRL+C
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Install kubeadm, kubelet, and kubectl
|
||||
#### Install kubeadm, kubelet, and kubectl
|
||||
|
||||
https://kubernetes.io/docs/setup/independent/install-kubeadm/
|
||||
|
||||
To disable swap, comment out the "swap" line in the following file, then do a reboot:
|
||||
#### Disable swap by commenting out the "swap" line in /etc/fstab, then do a reboot
|
||||
```
|
||||
$ sudo vi /etc/fstab
|
||||
$ sudo systemctl reboot
|
||||
sudo vi /etc/fstab
|
||||
sudo systemctl reboot
|
||||
```
|
||||
|
||||
Verify swap is disabled
|
||||
#### Verify swap is disabled
|
||||
```
|
||||
$ sudo free -h
|
||||
sudo free -h
|
||||
```
|
||||
|
||||
Install Minikube
|
||||
#### Install Minikube
|
||||
|
||||
https://kubernetes.io/docs/tasks/tools/install-minikube/
|
||||
|
||||
Install VirtualBox Manager
|
||||
#### Install VirtualBox Manager
|
||||
|
||||
Ubuntu:
|
||||
```
|
||||
$ sudo dnf install virtualbox
|
||||
sudo apt-get install virtualbox
|
||||
```
|
||||
|
||||
Fedora:
|
||||
```
|
||||
$ sudo apt-get install virtualbox
|
||||
sudo dnf install virtualbox
|
||||
```
|
||||
|
||||
## Setup
|
||||
|
||||
Ensure you have the following kernel modules loaded to avoid preflight errors and warnings when setting up your cluster:
|
||||
#### The following kernel modules are required to avoid preflight errors and warnings during cluster setup
|
||||
* ip_vs
|
||||
* ip_vs_rr
|
||||
* ip_vs_wrr
|
||||
* ip_vs_sh
|
||||
|
||||
You can check if you already have these loaded with
|
||||
#### Check if kernel modules are already loaded
|
||||
```
|
||||
$ lsmod | grep ip_vs
|
||||
lsmod | grep ip_vs
|
||||
```
|
||||
|
||||
If the kernel modules aren't loaded, go ahead and add them
|
||||
#### Add the kernel modules (if not already loaded)
|
||||
```
|
||||
$ sudo modprobe ip_vs
|
||||
$ sudo modprobe ip_vs_rr
|
||||
$ sudo modprobe ip_vs_wrr
|
||||
$ sudo modprobe ip_vs_sh
|
||||
sudo modprobe ip_vs
|
||||
sudo modprobe ip_vs_rr
|
||||
sudo modprobe ip_vs_wrr
|
||||
sudo modprobe ip_vs_sh
|
||||
```
|
||||
|
||||
Create a single master cluster with kubeadm
|
||||
#### Create a single master cluster with kubeadm
|
||||
|
||||
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/
|
||||
|
Loading…
Reference in New Issue
Block a user