Installation

Installation

The process for installing the Lite or Enterprise version of the Veracity Learning LRS is quite similar. First, you'll need to download and extract the software. Inside the archive, you'll find executable files for each common OS. Select the one you need and copy it to your server.

The LRS is cross-platform. You can run it on Windows or Linux. If you need to run the server on some other OS, then contact us for a build — we can make a version for most operating systems. 
Warning
Hosting a production web server is not simple! You'll need experience with installing and configuring databases, webservers, and associated technologies to successfully deploy the LRS on your own server.
Notes
You can download the LRS on-premises software here: https://lrs.io/home/download
Notes
Read detailed configuration guidance here: Configuration

Manual Configuration Steps

  1. Install MongoDB.
    MongoDB must be installed and running before the LRS server software starts. MongoDB is very popular and has great documentation to get you started. Note that the database does not necessarily need to be on the same server as the LRS software. In general, it's a good idea to keep the database and the webserver on different machines. If you have the Enterprise version, then you should consider creating a replica set to ensure the maximum uptime.
  2. Start MongoDB.
    MongoDB must be running before the LRS 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 named 
    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 an .env file 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 a replica set 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, then 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: local.veracity.it)
    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, 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 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, then 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 serve 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 one 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 local.veracity.it 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 are stored here, not the actual statements. (default: VTCLRS)
    The system allocates a new database on the MongoDB server for each LRS in the system. The data needed to manage the systems overall is in the database provided in this prompt. You can enter 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, then 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 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.
Notes
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.

Linux

If you're using Linux, then you can use SystemD to have the LRS server start automatically.
  1. Copy the executable lrs2-linux and the .env file to /etc/vtclrs/.
  2. Create a file /etc/systemd/system/vtclrs.service.
  3. Copy the following into the files:
[Unit]
Description=vtclrs
After=network.target
[Service]
WorkingDirectory=/etc/vtclrs
ExecStart=/etc/vtclrs/lrs2-linux
Type=simple
PIDFile=/run/vtclrs.pid
Environment=""
[Install]
WantedBy=default.target
  1. Then, execute the following Shell commands:
systemctl daemon-reload;
systemctl enable vtclrs.service;
chmod 755 /etc/vtclrs/lrs2-linux
systemctl start vtclrs.service

Windows

  1. Some users have reported success with NSSM (https://nssm.cc/download). 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 LRS.io. LRS.io (SaaS Hosted Plans) This is our cloud hosted SaaS service, where anyone can create an LRS. You can use the free ...
    • Configuration

      Setting Configuration Values These settings only apply to on-site installations. When using a hosted SaaS plan, Veracity will manage the settings for your deployment. Contact support if you require modifications to the settings on your hosted ...
    • VQL

      (VQL) Veracity Query Language VQL is a language for representative queries over xAPI statements and how they should be processed and rendered. It underlies the Veracity Learning LRS in several places, including the xAPI and dashboard components. ...