The process for installing the Lite or Enterprise version of the LRS is quite similar. First, you'll need to download and extract the software. Veracity Learning LRS is cross-platform. You can run it on Windows or Linux. If you need to run the server on some other OS, contact us for a build - we can make a version for most operating systems. 

Inside the archive, you'll find executable for each common OS. Select the one you need and copy it to your server.
Hosting a production web server is not simple! You'll need experience with installing and configuring database, webservers, and associated technologies to successfully deploy the LRS on your own server.
You can download the LRS on-premises software here:
Read detailed configuration guidance here: Configuration

Manual Configuration Steps

  1. Install MongoDB
    MongoDB must be installed an running before the server software starts. MongoDB is very popular and has great documentation to get you started. Note that the DB does not necessarily need to be on the same server as the Veracity Learning software. In general, it's a good idea to keep the database and the webserver on different machines. If you have the Enterprise version, you should consider creating a replica set to ensure the maximum uptime.
  2. Start MongoDB. MongoDB must be running before the Veracity Learning server can be configured.
    You'll also want to make sure that MongoDB starts each time the server reboots.
  3. Unzip the zip file for your operating system.
  4. Locate the executable file. This file will be name “lrs2-” followed by a string representing your operating system.
  5. Using a command prompt (or terminal), execute the file with the "--configure" option. This will begin the setup process.
    On Linux or Mac, you may need to set the permissions on the file to allow it to execute. Also, be sure that the user running the file has write access to the direction the file is in. Otherwise, the system may not have permission to create its own configuration file.
  6. Answer the questions as presented by typing into the console and pressing enter.
    Be sure to answer ‘yes’ to the final question. This will write out a file, ‘env’ that will contain your configuration settings. You may manually edit this file and restart the server to update the configuration.
  7. Run the executable again.
    The server will start up and begin serving requests on the port you specified. You may now log in as the super admin, and create users (Enterprise Version) and LRSs. You should use your operating systems scheduling tools to set up the system to run on boot.

Explanation of Setup Questions

  1. Enter the connection string to the MongoDB database. (default: 'mongodb://localhost')
    This is the address of the MongoDB server. Do not include a database name in the connection string. You may include replicaSet or authorization options (Enterprise Version). Check the Mongo documentation for a full accounting of the format. For simple test installs, if Mongo is running on the same machine as the server, the default will work. The server tests the string after you enter it - Mongo must be running at this point.
  2. What is the external host name (DNS) that users will use to access this system? (default: '')
    The server must know its own public facing internet address. In production deployments, it is common for the address and port that the software uses to differ from the one displayed to users, because of proxy configuration, load balancers or DNS. For a local install, please accept the default. This default value is a DNS entry controlled by Veracity that resolves to ‘localhost’. Do not enter ‘localhost’ directly, as our subdomain routing features may not work on all OSs.
  3. What port number should the server run on? (default: '80')
    This is the local port that the server actually listens on. Port 80 is the default for common web servers, but often is in use by other software. You may choose any port. On some OSs, certain ports require the process to be run with administrative access.
  4. What is the port number that external users will use to access this system…
    This is the port that will be displayed to users. If behind a proxy, use the port the proxy listens on. For a local test install, use the same port as the previous question.
  5. Does your webserver use an SSL certificate?
    Is the server behind an SSL terminating proxy, or should it server SSL itself? When answering yes, you must either place the server behind an SSL terminating proxy, or configure the sslKey and sslCert paths.
  6. Enter the email address for the super-administrator user. This account must not already exist, as it will be created now.
    This question and the following control the super admin login credentials. Note that this information is visible in the .env file.
  7. Would you like to disable subdomains in the URLs for each hosted LRS?
    The default behavior of the system is to allocate subdomains to each LRS in the system. This can cause problems with some DNS providers, and is not supported for the hostname ‘localhost’. For local installs, you may use as the public address, which will resolve to your local machine properly. We recommend disabling subdomain routing. 
  8. Enter the name of the database to use for the system client information. User and LRS metadata is stored here, not the actual statements. (default: 'VTCLRS')
    The system allocates a new database on the Mongo Server for each LRS in the system. The data needed to manage the systems overall is located in the database provided in this prompt. You can answer any alphanumeric string, but it is rarely necessary to use anything other than the default.
  9. Enter a random string of characters that will be used as an encryption key. (default: 'youAbsolutelyMustChangeThis')
    Several parts of the system require a unique random string for encryption functions. Enter a string here. In a multi server install, all servers must include the same string. When backing up and restoring a database, this setting must not have changed from the initial value provided at install. Please don’t accept the default for a production deployment.
  10. Would you like the server to send emails (Enterprise Version)
    Answering ‘yes’ to this question will then prompt you for SMTP configuration information. If you answer ‘no’, the server will not allow “self service” accounts, and instead each user must be created and confirmed by the super admin.

Installing as a Service

Veracity is shipped as a bare executable file - there are no dependencies, platforms, or runtime components required. That being the case, it's your responsibility to ensure the executable starts up when your server reboots. There are many different ways to accomplish this, and a full exploration of the topic is beyond the scope of this document. Below are a few different methods that have been shown to work. 

Veracity includes its own internal process manager. It will spin up one worker process for each logical processor in your system. It is not necessary to manually start multiple copies of the software.


If you're using Linux, you can use SystemD to have the LRS server start automatically.
1. Copy the executable lrs2-linux and .env file to /etc/vtclrs/
2. Create a file  /etc/systemd/system/vtclrs.service
3. Copy the following into the files
4. Then, execute the following shell commands
            systemctl daemon-reload;
            systemctl enable vtclrs.service;
            chmod 755 /etc/vtclrs/lrs2-linux
            systemctl start vtclrs.service


  1. Some users have reported success with NSSM. ( This software allows any executable to be run as a Windows service. You can also capture log output.
  2. Modern versions of Windows include a "Task Scheduler". This can be configured to launch Veracity when the system starts. 

    • Related Articles

    • The System API

      The on-premises install of the Enterprise version of Veracity Learning includes a system level API for creating users and LRSs. This API works exactly as the LRS level does, with the same conventions for GET, PUT, POST and DELETE. You'll find the API ...
    • Versions of Veracity Learning

      Veracity Learning LRS comes in a few versions. The main version, and the one you're most likely looking at right now, is This is our cloud hosted SaaS service, where anyone can create an LRS. You can use the free version, which is ...
    • Configuration

      Setting Configuration Values It's typical to use the .env file to store configuration settings. These settings only apply to on site installations. When using a hosted SaaS plan, Veracity will manage the settings for your deployment. Contact support ...
    • Veracity Learning Basics

      Veracity Learning is an easy to use, cloud or self hosted Learning Record Store (LRS). The most essential feature of an LRS is that it receives and processes eXperience API (xAPI) data transactions. xAPI is a new standard for moving around ...
    • Custom Dashboards, Graphs and Analytics Processors

      Veracity Learning offers several ways to generate custom dashboards. At the most basic level, you can place widgets (graphs or tables) on a dashboard page. Each widget is customizable with a set of options like what actor, what object or what verb to ...