Launch LRS Documentation
Launch Learning Documentation
Quick start
To get started immediately the quick start section provides the basic information required. Instructions are provided in further detail in the relevant sections.
Sign in
Sign into your Launch LRS with the following default administrator credentials, you will be required to change you password on first sign in:
username: admin
password: password
xAPI configuration
The majority of activity providers use Basic Authentication to connect to an LRS. To send an xAPI statement to Launch LRS you will need to use an endpoint, username and password.
Endpoint: The domain of your Launch LRS followed by /xapi/ with the correct protocol (HTTP or HTTPS) for your site. Depending on your activity provider you may not need the trailing forwards slash. For example:
https://lrs.example.com/xapi/
Username: Within the User page add a user for your activity provider, ensuring the username relates to the provider you’re configuring
Password: Add a strong password and make a note of it
The endpoint and credentials created can be added to your activity provider’s settings to start sending data to Launch LRS.
Users
A Launch LRS user is any person or system that connects to Launch LRS. This includes but is not limited to administrators, activity providers and other LRSs.
Administrators
Launch LRS is configured to have an initial administrator.
An administrator can:
- view the total number stored statements in the dashboard
- add and delete users
- store statements in the LRS
- view all statements in the LRS
- view and add licences
- configure statement mirroring and statement forwarding
- change their own password
An administrator is not able to delete their own user from the system.
Non-administrative users
Non admin users are usually activity providers. A user can:
- view the total number stored statements in the dashboard
- change their own password
A user is not able to delete themselves from the system.
Adding a user
When logged in as an administrator, navigate to the Users tab
Within the Add User section at the bottom of the page enter a username and password for the new user
Choose a strong password and make a note of it. The password will not be displayed.
Only select the administrator checkbox if you want the user to have administrator privileges
Click Add

Connecting to an activity provider
Adding an activity provider within Launch LRS
An activity provider is an application that sends data to Launch LRS. The majority of activity providers use Basic Authentication to connect to an LRS.
An activity provider is a normal user of the LRS and therefore added the same way.
Within the Add User section at the bottom of the page enter a username and password for the new user
Ensure the username relates to the activity provider you’re configuring in case you wish to delete it in the future.
Choose a strong password and make a note of it, you will need to know the password to configure your activity provider. The password will not be displayed.
We recommend that at activity provider sending data to Launch LRS does not have administrator access to ensure the provider only has access to the data it sends
Activity provider configuration
Within your activity provider settings connect to Launch LRS with the username and password created. Your activity provider might refer to them as Key and Secret Key.
The URL to use is the domain of your Launch LRS followed by /xapi/, using the correct protocol (HTTP or HTTPS) for your site. Depending on your activity provider you may not need the trailing forwards slash. For example:
https://lrs.example.com/xapi/
Integrating with LinkedIn Learning
LinkedIn Learning supports xAPI version 1.0.0 and uses OAuth 2.0 client credentials flow to authenticate with Launch LRS. For more information view the LinkedIn Learning xAPI Administration Guide.
Add a provider within Launch LRS
On the user page add a new non-administrative user for LinkedIn Learning. You will need the username and password of this new user to configure the LinkedIn Learning integration.
Configure LinkedIn Learning
Log in to your LinkedIn Learning account, if you are not already in the Admin screen, select Go to Admin, then click Me > Integration settings.
From the left-hand navigation menu, select LMS Reporting APIs.
Expand the “xAPI” section.
Click Add integration and fill out the following fields.
Integration name: A name to identify the xAPI connection, for example, Launch LRS
User type: Choose any of ID, username or e-mail
OAuth Server URL: This is the domain of your Launch LRS followed by /oauth2/token with the correct protocol (HTTP or HTTPS) for your site. For example: https://lrs.example.com/oauth2/token
Tenant Server URL: This is the domain of your Launch LRS followed by /xapi with the correct protocol (HTTP or HTTPS) for your site. For example: https://lrs.example.com/xapi
Client ID: Username for the LinkedIn Learning user previously created
Client Secret: Password for the LinkedIn Learning user previously created
Click Enable.
Licences
A Launch LRS licence plan can be purchased if additional storage is required or to access our technical support. When a licence is purchased a unique activation key will be provided.
Adding a licence
- Log into Launch LRS as an administrator and navigate to the Licences page
- In the Add Licence section enter your licence key and click add

If the licence is valid it will be added to the list of licences and additional information associated with the licence will be displayed.
If the licence key is invalid, expired or already in use an error message will be displayed.
Additional licence keys may be entered to increase the total number of allowed statements.
Installation
Launch LRS has several installation options. View our installation page for instructions on how to get started with AWS CloudFormation, AWS AMI and Ubuntu. For help getting started on different platforms please contact us.
Database configuration
If a database is not specified, the Launch LRS application will use an in-memory database which will be wiped every time you restart the Launch LRS application.
For a production environment we recommend configuring the Launch LRS database on a different host to the Launch LRS application.
Prerequisites
- An existing database server with a new database. Launch LRS supports MySQL, MariaDB, PostgreSQL, SQL Server and H2.
- A user with full permission to the database.
- Security of the database server configured to allow inbound traffic from the IP of your Launch LRS.
Step 1: Connect to your Launch LRS server
Step 2: Add your database configuration
Create and open an application.properties file in the same directory as the Launch LRS application, for example:
[user ~]$ sudo vi /opt/launch/lrs/application.properties
Insert the configuration below into the application.properties file, substituting the following:
dbms: mysql, sqlserver or postgresql
endpoint: URL of your database server. For internal database installations use localhost dbname: name of the database you intend to use for Launch LRS user: a username with full permissions to the specified database changeMe: password for the user
spring.datasource.url=jdbc:dbms://endpoint:3306/dbname?zeroDateTimeBehavior=convertToNull
spring.datasource.username=user
spring.datasource.password=changeMe
Save and quit.
Step 3: Restart Launch LRS
[user ~]$ sudo systemctl restart launch-lrs
If you now access Launch LRS in your browser you should notice the in-memory warning message at the bottom of the screen has gone.
If you receive 502 Bad Gateway, ensure you’re credentials, endpoint and port are correct in the configuration file.

If you changed your password during the initial setup, it will have been set back to the default when the database was specified. Select manage and sign in with the following credentials:
username: admin
password: password
You will be required to change your password on first sign in after specifying a database.
Lift Configuration
The downloaded Lift application files (within in the AWS S3 bucket if using the CloudFormation template) contain an assets folder with an example Lift configuration file, example cookie policy file and example privacy policy, along with the assets these files refer to. The example-config.json file must be renamed and edited with your own configuration, renaming other example files is optional.
If Lift has been installed using the AWS CloudFormation template, whenever any changes are made to the files, AWS CloudFront will need to be invalidated to clear the cache.
Initial configuration and provider setup
The minimum requirement for Lift is a config.json file and valid provider ID for Google, Microsoft or Facebook.
1. Rename the example-config.json to config.json
2. Add your client IDs in the provider section of the config.json file
Google
Create credentials in the Google developer console
Select Credentials in the left menu the select + Create Credentials
Choose OAuth client ID and select web application
Under Authorised JavaScript origins add the URI for your domain which will host Lift
The Client ID which is created needs to be added to the config.json file in Lift
For more information review the Google documentation.
Microsoft
For more information view the Microsoft Azure documentation.
Branding
After creating the config.json file, the following values may be changed to use your own branding.
"systemName": "Lift",
"systemDescription": "Fast and easy learning.",
"logo": "assets/launch-learning-logo.svg",
"icon": "assets/launch-learning-icon.svg",
"welcomeHeader": "Welcome to Lift",
"welcomeLead": "Fast and easy learning.",
"welcomeTextColor": "white",
"backgroundImage": "assets/launch-learning-bg.jpg",
"backgroundColorOpacity": 0.65,
"backgroundColor": "black",
Course configuration
The location of your learning resources is defined within the courses and catalogs section of the config.json file. A course can be defined in the config directly as shown in the example-config.json
, or a catalog can used which specifies the location of a json file defining the individual courses.
An example json course definition for a catalog to reference can be found in assets/launch-learning-example-courses.json
and is referred to in the Default
catalog.
publicCatalogs
If true
anyone can view your courses with the browse section of Lift without signing in. Course descriptions can also be viewed. To launch a course the user will need to sign in.
If false
users need to sign in to Lift before viewing your courses.
"publicCatalogs": false,
courses
The example configuration file has one course defined directly. This may be replaced or removed. Courses defined here will appear alongside courses defined in the catalog.
If a single course is defined directly in the config.json and if there are no catalogs defined, then the course will launch directly when a user logs into the system and the user will not be taken to the platform.
"courses": [
{
"name": "How High is Your Healthy Eating IQ?",
"description": "How much do you *really know* about healthy eating?\n\nTake this short interactive quiz to test your knowledge and access resources to help you achieve a healthy balanced diet.",
"thumbnail": "https://courses.launchlearning.io/nutrition/veg.png",
"url": "https://courses.launchlearning.io/nutrition/1.0.1/index_lms.html",
"activityId": "https://courses.launchlearning.io/nutrition",
"tags": ["nutrition", "health"],
"author": {
"name": "Sara Donald",
"website": "http://example.com"
}
}
],
catalogs
The example configuration file has two catalog urls listed. These may be replaced with the url of your own json course definition and additional catalogs may be added. If these are not replaced your Lift installation will display placeholder courses as seen in the Lift demo.
We recommend that if you create a course catalog you also put it in the assets folder and make the URL in the config.json file relative, this will avoid any CORS header issues.
"catalogs": [
{
"name": "Default",
"url": "assets/launch-learning-example-courses.json"
},
{
"name": "Launch Learning",
"url": "https://courses.launchlearning.io/courses.json"
}
],
CloudFront Invalidation
If Lift has been installed using the CloudFormation template AWS CloudFront will cache your configuration files. To update your Lift instance immediately navigate to the CloudFront distribution in AWS and create an invalidation for /assets/config.json. You can then view the changes in your browser. You may also have to clear your browser cache.
For more information view the AWS CloufFront Documentation.
Using the Lift demo
The Lift demo site is available for anyone to use. Sign in is available with your Google, Microsoft or Facebook credentials. A user is not created in Lift or Launch LRS, authorisation is handled by the OAuth 2 client.
When you sign in or out an xAPI statement will be sent to our demo Launch LRS. Statements are also sent when adding a course to favourites and for course progress.
Launch Learning cannot provide access to Launch LRS to view statements for privacy reasons. If you wish to see your own statements being sent, the network tab of your browser developer console will show requests as they are sent. For a full demonstration or to see how Lift can be configured for your organisation please contact us.