Skip to content

Deploying PeBL Services

Veden edited this page May 18, 2020 · 9 revisions

PeBL Services Runtime Dependencies

  • nodejs 13.14.0+
  • npm 6.14.0+

External System Runtime Dependencies

  • Redis 5.0.8+
  • xAPI compliant LRS 1.0.3
  • OpenID Connect Identity Management 1.0
  • PeBL Web Reader QA_1.2.25+

Misc Runtime Dependencies

  • SSL certificates for PeBL Services
  • Domain name for PeBL Services
  • Domain name for PeBL Web Reader which will use PeBL Services
  • Redis must use an auth password

Installation

  1. If you haven't done so already, download the latest stable version of the PeBL Services from: https://github.com/peblproject/PeBL-Services/releases/latest/download/PeBLServices.zip

  2. Install and configure Redis which will be used as a session cache and message queue for PeBL Services.

  3. Set up an OpenID Connect 1.0 provider if not already available.

  4. Extract the contents of PeBLServices.zip to the desired location on your server.

  5. Edit the serverConfig.json file and update the values marked as CHANGEME.

  6. Run npm install --only=production in the directory where you unpackaged the zip file to install necessary dependencies for the NodeJS server.

  7. Start the PeBL Services NodeJS server. The command is node main.js serverConfig.json, but it is recommended to use a process manager like systemd or PM2 to handle this so that the process will be restarted automatically when necessary.

Configuration

serverName - This is the URL your PeBL Services server is available at, e.g "myservices.com"

validRedirectDomains - These are domains that the PeBL Services will allow redirects to, for example your PeBL WebReader server, e.g ["myreader.com"]

privateKeyPath - This is the filepath for your SSL certificate private key, e.g "/etc/letsencrypt/live/myservices.com/privkey.pem"

certificatePath - This is the filepath for your SSL certificate, e.g "/etc/letsencrypt/live/myservices.com/fullchain.pem"

authenticationUrl - This is the URL for your OpenID Connect provider, e.g "https://keycloak.myservices.com/auth/realms/master"

authenticationClientSecret - This is the secret key that allows PeBL Services to communicate with your OpenID Connect provider.

authenticationClientId - This is the ID for PeBL Services in your OpenID Connect provider, e.g "PeBL-Services"

authenticationRedirectURIs - This should be your serverName + /redirect, e.g ["myservices.com/redirect"]

redisAuth - This is the password for your Redis DB.

sessionSecret - A long key of your choosing which will be used to secure sessions.

logFileDirectory - A path to a directory on your server where log files should be saved, e.g "/var/log/pebl-services/"

lrsUrl - The URL for your LRS where xAPI statements will be stored, e.g "mylrs.com"

Authorization - The secret key for your LRS which will permit PeBL Services to store xAPI statements to it.

systemAdmins - These are users within your OpenID Connect provider which should be given system admin permissions in PeBL Services, e.g ["john.smith", "jane.doe"]