Skip to content
John Martin edited this page Jan 14, 2022 · 7 revisions

Installation (without Docker)

Install Postgres

admin:~$ sudo apt-get install postgresql-9.5 postgresql-server-dev-9.5 postgresql-contrib-9.5

admin:~$ sudo -u postgres createuser -P -s <db_owner_name>
Enter password for new role: <db_owner_password>
Enter it again: <db_owner_password>
admin:~$ sudo -u postgres psql template1
template1=# CREATE DATABASE lrs OWNER <db_owner_name>;
template1=# \q (Exits shell.)

Install Prerequisites

admin:~$ sudo apt-get install git fabric python-setuptools python3-dev\
    libxml2-dev libxslt1-dev gcc
admin:~$ sudo pip3 install fabric3 virtualenv

Clone the LRS repository

admin:~$ cd <Wherever you want to put the LRS>
admin:~$ git clone https://github.com/adlnet/ADL_LRS.git
admin:~$ cd ADL_LRS/

Set the LRS configuration

Create a settings.ini file and place it in the adl_lrs directory. Visit the Settings wiki page to set it up.

Setup the environment

admin:ADL_LRS$ fab setup_env
admin:ADL_LRS$ source ../env/bin/activate
(env)admin:ADL_LRS$

Setup the LRS

This creates the top level folders, logs and media at the same level as the project folder, ADL_LRS. Throughout the readme and the other install guides for celery and nginx you will most likely want to direct any log files to the logs directory. Inside of logs there are directorys for celery, supervisord, uwsgi and nginx.

(env)admin:ADL_LRS$ fab setup_lrs
...
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use '<system_user_name>'):
E-mail address:
Password: <this can be different than your system password since this will just be for the LRS site>
Password (again):
Superuser created successfully.

...

If you get some sort of authentication error here, make sure that Django and PostgreSQL are both using the same form of authentication (adl_lrs/settings.py and pg_hba.conf) and that the credentials given in settings.py are the same as those you created.

IMPORTANT: You MUST setup celery for retrieving the activity metadata from the ID as well as voiding statements that might have come in out of order. Visit the Using Celery wiki page for installation instructions.

Starting

While still in the ADL_LRS directory, run:

(env)dbowner:ADL_LRS$ ./manage.py runserver

This starts a lightweight development web server on the local machine. By default, the server runs on port 8000 on the IP address 127.0.0.1. You can pass in an IP address and port number explicitly. This will serve your static files without setting up Nginx but must NOT be used for production purposes. Press CTRL + C to stop the server.

Set your site domain

Visit the admin section of your website (/admin). Click Sites and you'll see the only entry is 'example.com'. (The key for this in the DB is 1 and it maps back to the SITE_ID value in settings). Change the domain and name to the domain you're going to use. If running locally it could be localhost:8000, or if production could be lrs.adlnet.gov (DON'T include the scheme here). Again, this does not change the domain it's running on; you want to set that up first then change this value to your domain name.

Whenever you want to exit the virtual environment, just type deactivate.

For other ways to start and run the LRS, please visit our Wiki.

Test LRS

(env)dbowner:ADL_LRS$ fab test_lrs
Clone this wiki locally