Install
Installing on a BigBlueButton Server
To make Greenlight as easy to install as possible, we’ve created a Docker image that wraps the application. It is highly recommended that you use Docker when install Greenlight on a BigBlueButton server.
Following this installation process will install Greenlight with the default settings. Through the Administrator Interface, you can customize the Branding Image, Primary Color and other Site Settings. If you would like to check out the Greenlight source code and make changes to it, follow these installation instructions
You should run all commands in this section as root
on your BigBlueButton server.
BigBlueButton Server Requirements
Before you install Greenlight, you must have a BigBlueButton server to install it on. This server must:
- have a version of BigBlueButton 2.0 (or greater).
- have a fully qualified hostname.
- have a valid SSL certificate (HTTPS).
1. Install Docker
The official Docker documentation is the best resource for Docker install steps. To install Docker (we recommend installing Docker CE unless you have a subscription to Docker EE), see Install Docker on Ubuntu.
Before moving onto the next step, verify that Docker is installed by running:
docker -v
2. Install Greenlight
First, create the Greenlight directory for its configuration to live in.
mkdir ~/greenlight && cd ~/greenlight
Greenlight will read its environment configuration from the .env
file. To generate this file and install the Greenlight Docker image, run:
docker run --rm bigbluebutton/greenlight:v2 cat ./sample.env > .env
3. Configure Greenlight
If you open the .env
file you’ll see that it contains information for all of the Greenlight configuration options. Some of these are mandatory.
When you installed in step two, the .env
file was generated at ~/greenlight/.env
.
Generating a Secret Key
Greenlight needs a secret key in order to run in production. To generate this, run:
docker run --rm bigbluebutton/greenlight:v2 bundle exec rake secret
Inside your .env
file, set the SECRET_KEY_BASE
option to this key. You don’t need to surround it in quotations.
Setting BigBlueButton Credentials
By default, your Greenlight instance will automatically connect to test-install.blindsidenetworks.com
if no BigBlueButton credentials are specified. To set Greenlight to connect to your BigBlueButton server (the one it’s installed on), you need to give Greenlight the endpoint and the secret. To get the credentials, run:
sudo bbb-conf --secret
In your .env
file, set the BIGBLUEBUTTON_ENDPOINT
to the URL, and set BIGBLUEBUTTON_SECRET
to the secret.
Setting Allowed Hosts
For reasons related to security, you’ll also need to specify the domain from which the application will be accessible from.
In your .env
file, set the SAFE_HOSTS
to your domain. If Greenlight is accessible at https://bbb.example.com/b
then SAFE_HOSTS=bbb.example.com
Configure Specific Settings
Other than the 3 configurations listed above, there are many different options for configuring Greenlight. All possible configurations are listed in the .env
file.
You can find more info on specific settings that can be configured here.
Verifying Configuration
Once you have finished setting the environment variables above in your .env
file, to verify that you configuration is valid, run:
docker run --rm --env-file .env bigbluebutton/greenlight:v2 bundle exec rake conf:check
If you have configured an SMTP server in your .env
file, then all four tests must pass before you proceed. If you have not configured an SMTP server, then only the first three tests must pass before you proceed.
4. Configure Nginx to Route To Greenlight
Greenlight will be configured to deploy at the /b
subdirectory. This is necessary so it doesn’t conflict with the other BigBlueButton components. The Nginx configuration for this subdirectory is stored in the Greenlight image. To add this configuration file to your BigBlueButton server, run:
docker run --rm bigbluebutton/greenlight:v2 cat ./greenlight.nginx | sudo tee /etc/bigbluebutton/nginx/greenlight.nginx
Verify that the Nginx configuration file (/etc/bigbluebutton/nginx/greenlight.nginx
) is in place. If it is, restart Nginx so it picks up the new configuration.
sudo systemctl restart nginx
This will routes all requests to https://<hostname>/b
to the Greenlight application. If you wish to use a different relative root, you can follow the steps outlined here.
Optionally, if you wish to have the default landing page at the root of your BigBlueButton server redirect to Greenlight, add the following entry to the bottom of /etc/nginx/sites-available/bigbluebutton
just before the last }
character.
location = / {
return 307 /b;
}
To have this change take effect, you must once again restart Nginx.
5. Start Greenlight 2.0
To start the Greenlight Docker container, you must install docker-compose
, which simplifies the start and stop process for Docker containers.
Install docker-compose
by following the steps for installing on Linux in the Docker documentation. You may be required to run all docker-compose
commands using sudo. If you wish to change this, check out managing docker as a non-root user. Do not install (via apt-get
) the version of docker-compose
packaged in Ubuntu is typically outdated.
Using docker-compose
Before you continue, verify that you have docker-compose
installed by running:
cd ~/greenlight
docker-compose -v
Next, you should copy the docker-compose.yml
file from the Greenlight image in to ~/greenlight
directory. To do this, run:
docker run --rm bigbluebutton/greenlight:v2 cat ./docker-compose.yml > docker-compose.yml
Finally, randomly generate a password for the PostgreSQL database and replace the entries in the .env
and .docker-compose.yml
file with this command
export pass=$(openssl rand -hex 24); sed -i 's/POSTGRES_PASSWORD=password/POSTGRES_PASSWORD='$pass'/g' docker-compose.yml;sed -i 's/DB_PASSWORD=password/DB_PASSWORD='$pass'/g' .env
Once you have completed these steps, from the ~/greenlight
directory, start the application using:
docker-compose up -d
This will start Greenlight, and you should be able to access it at https://<hostname>/b
.
The database is saved to the BigBlueButton server so data persists when you restart. This can be found at ~/greenlight/db
.
All of the logs from the application are also saved to the BigBlueButton server, which can be found at ~/greenlight/log
.
If you don’t wish for either of these to persist, simply remove the volumes from the docker-compose.yml
file.
To stop the application, run:
docker-compose down
Updating Greenlight
To update Greenlight, all you need to do is pull the latest image from Dockerhub.
cd ~/greenlight
docker-compose pull
docker-compose down
docker-compose up -d
Once you’ve updated Greenlight, you should look through the latest version of the sample.env
file here, and see if there are any new settings you would like to change or add to Greenlight. If you come across something you want to add, simply copy paste it to the bottom of your .env
file and then restart Greenlight by running:
docker-compose down
docker-compose up -d
Switching from Install
to Customize
In the case that you would like to make changes to your code without losing your current data, there are steps you can take to switch from the Install
version to the Customize
version without losing any data.
In the Greenlight directory, take down Greenlight and rename the Greenlight directory to avoid conflicts using these commands:
docker-compose down
cd ..
mv greenlight/ greenlight-old/
Then, install Greenlight by following the Customize
instructions here. Don’t worry about any of the .env
configuration, as it will be overwritten by the version you are currently using.
Copy over your database file and .env
file using these commands:
cp ~/greenlight-old/.env ~/greenlight/.env
sudo cp -r ~/greenlight-old/db ~/greenlight/
Finally, restart Greenlight with:
cd ~/greenlight
docker-compose down
docker-compose up -d
Troubleshooting Greenlight
Sometimes there are missteps and incompatibility issues when setting up applications.
Checking the Logs
The best way for determining the root cause of issues in your Greenlight application is to check the logs.
Docker is always running on a production environment, so the logs will be located in log/production.log
from the ~/greenlight
directory.
Uninstall
If you would like to uninstall Greenlight, you can do so by running the following commands:
NOTE: This will permanently delete all data associated with Greenlight. This data can not be recovered.
cd ~/greenlight
docker-compose down
docker rmi bigbluebutton/greenlight:v2
cd ../
sudo rm -rf greenlight/
See also