Installing

To install Learning Locker using our deploy script, please follow the below instructions.
For more information, you can view the deployment repository’s documentation.

You must run this script as root user. Typically this can be done by running sudo su -

Install with cURL

1 curl -o- -L https://raw.githubusercontent.com/LearningLocker/deploy/master/deployll.sh > deployll.sh && bash deployll.sh

Install with Wget:

1 wget -qO deployll.sh https://raw.githubusercontent.com/LearningLocker/deploy/master/deployll.sh && bash deployll.sh

UPGRADING

You may choose to upgrade your Learning Locker to take advantage of new features and bug fixes. To make this process easier, it is strongly recommended that any Learning Locker running for production use has the database (Mongo) running on different servers to that of the application. This means you can seamlessly update your application without having to move your data.

You can run the install script below on your existing EC2 server and that will grab and rebuild the code directly on the server. Please note: this requires an EC2 instance with at least 2GB of RAM. You will be asked if you wish to “upgrade” any existing instance, or perform a fresh install.

If you plan on keeping the Mongo database on the same server as the application, you will need to perform a backup and restoration of your Mongo data between upgrades. For this reason we strongly recommend placing your database separate to your application.

LOGS

By default, logs are written to /var/log/learninglocker/

INSTALL LOG

If there is a problem installing the script, you can view the full install log output here: /var/log/learninglocker/install.log

SERVICE LOGS

Individual logs for the different services outputs (stdout) and errors (stderr) are available in this directory under the following names:

stdout

  • xapi_stdout***.log

  • api_stdout***.log

  • ui_stdout***.log

  • worker_stdout***.log

stderr

  • xapi_stderr***.log

  • api_stderr***.log

  • ui_stderr***.log

  • worker_stderr***.log

  • **

Logs may have slightly different names due to rotation

RESTARTING THE SERVICES

To restart the services, simply run the following command:

1 service pm2-learninglocker restart

Where learninglocker is the system user you chose to install with in the script (defaults to learninglocker)

MANAGING THE SERVICES

The PM2 service manages the 4 micro-services that Learning Locker requires. This is installed by default with the install script under the system user you chose.

In order to use the pm2 service, first ensure you are in as the correct system user:

(using the default learninglocker system user):

1 sudo su learninglocker

SERVICE STATUS

To view the status of your processes (using the default learninglocker system user):

1 pm2 status

Output:

1 2 3 4 5 6 7 8 ┌──────────┬─────────┬────────┬───┬──────┬────────────┐ │ Name │ mode │ status │ ↺ │ cpu │ memory │ ├──────────┼─────────┼────────┼───┼──────┼────────────┤ │ API │ cluster │ online │ 0 │ 0% │ 144.0 MB │ │ UIServer │ cluster │ online │ 0 │ 0% │ 105.8 MB │ │ Worker │ cluster │ online │ 0 │ 0% │ 109.5 MB │ │ xAPI │ cluster │ online │ 0 │ 0% │ 81.8 MB │ └──────────┴─────────┴──-─────┴───┴──────┴────────────┘

SERVICE LOGS

You can view a tail of the logs by running:

1 pm2 logs

Or view the logs for a particular service (by name or ID):

1 pm2 logs xAPI

To view more lines:

1 pm2 logs --lines 1000

RESTARTING THE SERVICES MANUALLY

You can restart all the services by running:

1 pm2 restart all

Or individual services by their name or ID:

1 pm2 restart UIServer

APPLICATION STRUCTURE

There are two main repositories that are installed as part of a fresh Learning Locker installation, the Learning Locker application and xAPI service. An in depth look at what both these packages do can be read in the Architecture Overview.

When installing your LL instance using the install script, these packages will be (by default) installed to /usr/local/learninglocker/current (as a symlink to a directory inside /usr/local/learninglocker/release/...).

Inside current/webapp/ lives the Learning Locker application which controls the User Interface, API and worker.

We also install the xAPI Service here, inside the current/xapi/ directory.

CONFIGURATION & ENVIRONMENT VARIABLES

Each of these applications has their own .env. These hold all the configurations that the applications require in order to run, from database settings to logging configuration.

By default the install script will copy the (.env.example) from both repos respectively.

It is likely you will wish to configure your application to connect to external databases, and whilst setup and configuration of these is beyond the scopes of this documentation, you will need to ensure that both .env files contain the same configuration values where appropriate.

A full description of all configuration values in both repositories is available in the Configuration Guide


PRODUCTION INSTALLATIONS

For production installations, we recommend the minimum configuration:

This setup ensures good performance and a reasonable degree of redundancy in case of failures in some parts. Depending on the scale of data you are ingesting and processing you will need to scale up the numbers of servers and may consider separating the API and Worker processes across different server groups. We recommend that you back up your Mongo database regularly depending on your own data requirements.

If this sounds too costly or challenging, you may wish to consider using the Learning Pool Data Cloud SaaS enterprise solution. If you require more advice for your setup, please get in touch via hello@learninglocker.net.


CUSTOM INSTALLATIONS

Please follow instructions here if you wish to install Learning Locker manually.

Learning Locker and the Squirrel logo are trademark of Learning Pool 2020 | Learning Locker is licensed under GPL 3.0.