- Install nginx and postgresql on your machine
- Install ruby on rails
- Set up a domain
- Install moodle (I did this in a separate lxc container) or any other LMS
-
Clone the two repositories: bbb-app-rooms and bbb-lti-broker
-
Set up the environment variables for the rooms app:
$ cd bbb-app-rooms
$ cp dotenv .env
$ sudo vi .env
Edit the following variable values as necessary:
## App configuration
# Generate a secret by running the command openssl rand -hex 32
SECRET_KEY_BASE=
RELATIVE_URL_ROOT=apps
## Database configuration
# DB_ADAPTER=[postgresql]
# DB_HOST=<localhost>
# DB_NAME=
# DB_USERNAME=<root>
# DB_PASSWORD=
# BigBlueButton configuration
BIGBLUEBUTTON_ENDPOINT=https://bbb.<your-name>.blindside-dev.com/bigbluebutton/api
BIGBLUEBUTTON_SECRET=<your server's secret>
BIGBLUEBUTTON_MODERATOR_ROLES=Instructor,Faculty,Teacher,Mentor,Administrator,Admin
# BigBlueButton LTI Broker configuration
OMNIAUTH_BBBLTIBROKER_SITE=https://lti.<JOHN>.blindside-dev.com
OMNIAUTH_BBBLTIBROKER_ROOT=lti
# Should match the values used when adding the app to the broker.
# rake db:apps:add[rooms,key,secret,https://lti.<JOHN>.blindside-dev.com/apps/rooms/auth/bbbltibroker/callback]
OMNIAUTH_BBBLTIBROKER_KEY=<choose a key>
OMNIAUTH_BBBLTIBROKER_SECRET=<choose a secret>
## Set the hostname using your own domain (Required)
URL_HOST=lti.<JOHN>.blindside-dev.com
## Use to send logs to Standard Output (Optional)
RAILS_LOG_TO_STDOUT=true
## Use to serve assets through the app (Required for now)
RAILS_SERVE_STATIC_FILES=true
## Use to enable features only available for development (Optional)
# RAILS_ENV=production
- Set up the environment variables for the lti broker:
$ cd ~/bbb-lti-broker
$ cp dotenv .env
$ sudo vi .env
POSTGRES_PASSWORD=<password you set for the postgres database during setup>
POSTGRES_USER=postgres
# Create a Secret Key for Rails
#
# You can generate a secure one through the Greenlight docker image
# with the command.
#
# docker run --rm bigbluebutton/greenlight:v2 bundle exec rake secret
#
SECRET_KEY_BASE=
# App configuration
RELATIVE_URL_ROOT=lti
# LTI tools configuration
# DEFAULT_LTI_TOOL=rooms
# DEVELOPER_MODE_ENABLED=true
#WHITELIST_HOST=broker.example.com
## Set the hostname using your own domain (Required)
URL_HOST=lti.<JOHN>.blindside-dev.com
## Use only with postgres instance outside the one pre-packaged with docker-compose (Optional)
# DATABASE_URL=postgres://postgres:password@localhost
## Use to send logs to Standard Output (Optional)
RAILS_LOG_TO_STDOUT=true
## Use to serve assets through the app (Required for now)
RAILS_SERVE_STATIC_FILES=true
## Use to enable features only available for development (Optional)
#RAILS_ENV=development
-
Create, migrate and seed the databases for both the rooms and broker (
rake db:create db:migrate db:seed
) -
Add the rooms app to the broker. For key and secret, use the ones you set in the rooms app env variables:
$ rake db:apps:add[rooms,https://lti.<JOHN>.blindside-dev.com/apps/rooms/auth/bbbltibroker/callback,<key>,<secret>]
Add the key and secret to the keyset:
$ rake db:keys:add[<key>:<secret>]
- Configure nginx.
- Edit the conf file for nginx:
$ sudo vim /etc/nginx/conf.d/default.conf
- Replace the contents using this template
- Run
$ sudo systemctl restart nginx
- Edit the conf file for nginx:
-
Run both applications:
- From the bbb-app-rooms directory, run
$ rails s -b 0.0.0.0 -p 3012
- From the bbb-lti-broker directory, run
$ rails s -b 0.0.0.0 -p 3011
- From the bbb-app-rooms directory, run
-
In your browser, go to lti.<JOHN>.blindside-dev.com\lti
-
Click on 'View LTI Configuration XML'. It'll take to you a page with the following URL: https://lti.\.blindside-dev.com/lti/default/xml_config. Replace the 'default' with 'rooms' and refresh the page/press enter.
-
Copy the secure_launch_url. This is the url that you will use when adding the plugin in your lms. The consumer_key and shared_secret are the same as the ones set in the rooms env. variables (as OMNIAUTH_BBBLTIBROKER_KEY and OMNIAUTH_BBBLTIBROKER_SECRET)
Custom parameters accepted in the launch:
custom_recording
: Set totrue
to create the room with this flag checked. Don't set it on the launch to use the default value.custom_all_moderators
: Set totrue
to create the room with this flag checked. Don't set it on the launch to use the default value.custom_wait_moderator
: Set totrue
to create the room with this flag checked. Don't set it on the launch to use the default value.custom_allow_all_moderators
: Set totrue
to allow meetings to have this flag turned on/off. Set to any other value to hide this option from users. If this parameter is not set on launch the option will be shown.custom_allow_wait_moderator
: Set totrue
to allow meetings to have this flag turned on/off. Set to any other value to hide this option from users. If this parameter is not set on launch the option will be shown.