Skip to content

Simple web applcation for providing BigBlueButton rooms through LTI using a bbb-lti-broker

License

Notifications You must be signed in to change notification settings

mconf/bbb-app-rooms

 
 

Repository files navigation

HOW TO LOCALLY DEPLOY THE ROOMS TOOL WITH THE LTI-BROKER

This is a tutorial for a local deployment of the rooms and broker apps as well as setting it up with moodle (or any other LMS).

Prerequisites:

Repo Setup:

  1. Clone the two repositories: bbb-app-rooms and bbb-lti-broker

  2. 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
  1. 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
  1. Create, migrate and seed the databases for both the rooms and broker (rake db:create db:migrate db:seed)

  2. 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>]

NGINX Configuration

  1. 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

Adding the tool to an LMS

  1. 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
  2. In your browser, go to lti.<JOHN>.blindside-dev.com\lti

  3. 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.

  4. 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)

Other

Custom parameters

Custom parameters accepted in the launch:

  • custom_recording: Set to true to create the room with this flag checked. Don't set it on the launch to use the default value.
  • custom_all_moderators: Set to true to create the room with this flag checked. Don't set it on the launch to use the default value.
  • custom_wait_moderator: Set to true 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 to true 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 to true 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.

About

Simple web applcation for providing BigBlueButton rooms through LTI using a bbb-lti-broker

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 57.4%
  • HTML 23.0%
  • SCSS 8.1%
  • JavaScript 7.2%
  • Shell 3.5%
  • Dockerfile 0.6%
  • CoffeeScript 0.2%