Updated documentation

This commit is contained in:
jfederico
2020-02-13 14:59:35 -05:00
parent 9869c53d18
commit 5593ced6d8
2 changed files with 72 additions and 24 deletions

View File

@@ -3,7 +3,6 @@
This document provides instructions on how to deploy scalelite + redis behind a nginx proxy This document provides instructions on how to deploy scalelite + redis behind a nginx proxy
using docker-compose. using docker-compose.
## Prerequisites ## Prerequisites
- Install - Install
@@ -16,14 +15,22 @@ using docker-compose.
- [scalelite](https://cloud.docker.com/u/blindsidenetwks/repository/docker/blindsidenetwks/scalelite) - [scalelite](https://cloud.docker.com/u/blindsidenetwks/repository/docker/blindsidenetwks/scalelite)
- Make sure you have your own DNS and a public domain name or a delegated one (e.g. <JOHN>.blindside-dev.com). - Make sure you have your own DNS and a public domain name (e.g. example.com) or a delegated one (e.g. <JOHN>.blindside-dev.com).
## Preliminary steps - As you have to have access to dockerhub private repositories sign in into docker hub with your account
with `docker login` any type your username and password using the stdin.
```
docker login
```
## Steps ## Steps
These steps were written for an Ubuntu 18.04 machine. It is assumed that your machine has the same (or a compatible version).
### Getting the scripts
Clone this repository: Clone this repository:
``` ```
@@ -34,17 +41,41 @@ cd scalelite-run
Copy `dotenv` file located in the root of the project as `.env` and edit it Copy `dotenv` file located in the root of the project as `.env` and edit it
``` ```
cp dotenv .env
vi .env vi .env
``` ```
You will need to replace both variables as in: You need to replace the variable `HOST_NAME=sl.xlab.blindside-dev.com` with a hostname under your own domain name (e.g. `HOST_NAME=sl.john.blindside-dev.com`) or delegated sub-domain.
`DOMAIN_ROOT=bigbluebutton.org` to the one assigned to you (e.g. `DOMAIN_ROOT=blindside-dev.com`)
`DOMAIN_SUB=lab` to the one assigned to you (e.g. `DOMAIN_SUB=<JOHN>`)
Create your own SSL Letsencrypt certificates. As you are normally going to
have this deployment running on your own computer (or in a private VM), you Copy `dotenv` file located in the scalelite directory as `.env` and in the same way as before, edit it:
need to generate the SSL certificates with certbot by adding the challenge to
your DNS. ```
cp scalelite/dotenv scalelite/.env
vi scalelite/.env
```
You can start it as is, but you may want to replace both variables with your own values.
`SECRET_KEY_BASE` is the Ruby On Rails secret key and should be replaced with a random one generated with `bundle exec rake secret`
`LOADBALANCER_SECRET` is the shared secret used by external applications for accessing the Load Balancer as if it was a BigBlueButton server. By default, it includes the Secret used for test-install (which is also the first server added to the pool as example).
### Using SSL Letsencrypt in the cloud
If all the previous steps were followed properly and the machine is accessible in the Internet, only execute:
```
./init-letsencrypt.sh
```
This will generate the SSL certificates and run scalelite for the first time, so all the required files are automatically generated.
### Using SSL Letsencrypt certificate in private Networks
If you are trying to install scalelite locally or in a private network, the process is more manual. You need to generate the SSL certificates with certbot by adding the challenge to your DNS.
Install letsencrypt in your own computer Install letsencrypt in your own computer
@@ -94,20 +125,10 @@ Copy the certificates to your scalelite-run directory. Although `/etc/letsencryp
holds the latest certificate, they are only symbolic links. The real files must be copied and renamed holds the latest certificate, they are only symbolic links. The real files must be copied and renamed
``` ```
cp -R /etc/letsencrypt/archive/sl.<JOHN>.blindside-dev.com <YOUR ROOT>/scalelite-run/nginx/letsencrypt/live cp -R /etc/letsencrypt <YOUR ROOT>/scalelite-run/data/certbot/conf
``` ```
``` ### Starting the application
cd <YOUR ROOT>/scalelite-run/nginx/letsencrypt/live/sl.<JOHN>.blindside-dev.com/
mv cert1.pem cert.pem
mv chain1.pem chain.pem
mv fullchain1.pem fullchain.pem
mv privkey1.pem privkey.pem
```
As you have to have access to dockerhub private repositories sign in into docker hub with your account
with `docker login -u <YOUR_USERNAME> -p <YOUR_PASSWORD>` or `docker login -u <YOUR_USERNAME>` if you
want to type your password using the stdin
And finally, start your environment with docker-compose And finally, start your environment with docker-compose
@@ -122,3 +143,30 @@ end you will have access to scalelite through:
``` ```
https://sl.<JOHN>.blindside-dev.com/bigbluebutton/api https://sl.<JOHN>.blindside-dev.com/bigbluebutton/api
``` ```
Note that you can always run the application in the background `docker-compose up -d`
### Final Steps
As the only BigBlueButton Server configured by default is test-install, this comes intentionally disabled. You would have to either enable it or to add new ones. Either way this has to be done through the console.
Open a new console and get the ids of the docker containers running:
```
docker ps
```
Get into the container running the api
```
docker exec -it <CONTAINER_ID> sh
```
Once inside, you can see execute all the rails commands as needed. In this case, lets assume that you want to enable the current BigBlueButton server
```
bundle exec rake servers
bundle exec rake servers:enable["SERVER_ID_AS SHOWN"]
```
For more information on what rake commands can be executed, see scalelite documentation.

View File

@@ -14,7 +14,7 @@ services:
- ./nginx/sites.template:/etc/nginx/sites-available/sites.template - ./nginx/sites.template:/etc/nginx/sites-available/sites.template
- ./nginx/default/html:/var/www/html - ./nginx/default/html:/var/www/html
- ./nginx/log/nginx:/var/log/nginx - ./nginx/log/nginx:/var/log/nginx
- ./data/certbot/conf/live:/etc/letsencrypt/live - ./data/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot - ./data/certbot/www:/var/www/certbot
ports: ports:
- "80:80" - "80:80"