Installing ELMSLN on AWS and configuring xAPI and H5P

I’ve had the privilege recently of meeting the good people of ELMSLN and learning of the great things they are doing to advance new ed tech tools and solutions.
The purpose of this post is to walk through the steps I took to install an ELMS instance on AWS as well as configure it to post xAPI statements from an interactive H5P video, and post it to my own LRS instance from Learning Locker. As a side note, my LRS is also on AWS – if you want to see how to do that, check out this video from K. Anthony.

Step 1. I’m going to assume you already have an AWS account. If not, check this out.


Step 2. Inside your ‘EC2 Dashboard’, click ‘Launch Instance’



Step 3. Set up an Ubuntu instance; I chose all free tier for mine, but you can select more CPU, RAM, disk space as needed.  After selecting Ubuntu 14, you can go directly to ‘Review and Launch’ OR configure each stage for more resources, as needed.

step2b step2c


Step 4.  Scroll down a bit and choose ‘Edit security groups’

Click ‘Add Rule’ and select HTTP; also ‘Add Rule’ and select HTTPS

As a side note, if you are storing any kind of sensitive data and want to protect your resources, you’ll want to change the subnet to your liking.  This is NOT a firewall in any shape or form – it only restricts traffic by a given subnet to your instance.


Step 5.  Click ‘Review and Launch’ and then ‘Launch’

step5a step5b


Step 6.  Select your public/private key combo that you’ll need to SSH into your server.  I already had one, which I used, but you can learn how to do it here.  After this, click ‘Launch Instances’



Step 7.  Go back to your EC2 Management Console, where you’ll see your instance ‘Initializing’.  Once that completes (Under ‘Status Checks’, the hourglass and ‘Initializing’ will change to ‘2/2 checks passed’)


Step 8.  Select your instance on the left (check the check box next to your instance); you can also name it by clicking on the pencil, next to the ID



Step 9.  Click ‘Connect’



Step 10.  A pop-up box will appear; under ‘Example’, you’ll want to copy the ssh command (entire line) and then paste that into your shell (terminal or command line, etc.);

NOTE: You’ll need to have your key .pem file located in the same directory where you’ll be running this command.  It will ask if you want to add this fingerprint.  Say yes.  OR say no and go do something outside.

ssh -i “keyfile.pem”


Step 11.  I’m not sure if this step is absolutely necessary, but I tried running this command via sudo and it didn’t like it; so I changed the root password and su in before I ran it.

$ sudo passwd root

$ su

Enter this command below; you’ll want to generate your own, depending on your domain, subdomain, etc. settings you’ll want; you can do that here

Make sure you choose Ubuntu from the OS list; the rest is up to you



# apt-get update && apt-get -y install wget git && git clone /var/www/elmsln && bash /var/www/elmsln/scripts/install/handsfree/ubuntu14/ LearnerView LV http yes

cd $HOME && source .bashrc


As my kids would say, 10 years later…  Just kidding; mine took like 10 minutes to run; just let it do its thing




Step 12.  Note some important information once it’s done:

In green, copy the username: admin and corresponding password: PASSWORD

║  username: admin                                              ║

║  password: password


Step 13.  At this point, you’ll need to either:

  1. Copy the information into your local HOSTS file OR
  2. Create corresponding A records for your domain, so that others can access your site

Since this step can be a lot different, depending on your domain/subdomain setup, hosting options, DNS, etc. I’m not going to provide instructions here on how to do this.  Please check with your domain name hosting provider on how to create the necessary A records for those provided to you from the install (e.g. people, courses, innovate, etc.).  For me, I exported my zone file, added the necessary records, and then imported the zone file back.


Step 14.  Go to your site – e.g.; log in using the admin password generated

Your ELMSLN is ready to go!  IF you’re interestd in xAPI and H5P, keep reading


Step 15.  Go into your LRS and get your endpoint, username, and password used for accepting xAPI statements

Back on your instance, edit the following file and modify it to correspond to your LRS settings:


No need to restart anything, at least not that I Found.


Step 16.  Go HERE and download the latest (all) H5P content types – one file


Step 17.  Go to here on your site /admin/content/h5p and browse to upload the you just downloaded from the previous step.  This will allow access to the content types supported from H5P


Step 18.  Add new H5P content – I did a video; go to your site /node/add/h5p-content

  1. Select a course (assumed you already created one on this site)
  2. Give it a title
  3. Content Type – ‘Interactive Video’
  4. Click the + under ‘Video Files’


  1. Paste in a URL from the video source and click ‘Insert’
  2. Select ‘Add Interaction’s from the second tab (seen above)
  3. I chose to do a multiple choice quiz – drag this icon to a place in the video where you want to stop and ask the user to take a quiz
    1. You can chose how you want the behavior to act – e.g. force a stop, force a 100% score before watching the rest of the video, etc. There’s lots of help at H5P here


Step 19.  Once a user interacts with the video, it will generate xAPI statements, which you can confirm on your LRS



NOTE: You can also see data on your site here /elmsln/course-data

One thought on “Installing ELMSLN on AWS and configuring xAPI and H5P

Leave a Reply

Your email address will not be published. Required fields are marked *