This page describes how to install Open edX on a single Ubuntu 16.04 64-bit server from scratch. This is for releases Ficus and beyond.  For Eucalyptus and earlier, see Native Open edX Ubuntu 12.04 64 bit Installation.

Server Requirements

The following server requirements will be fine for supporting hundreds of registered students on a single server.

Note: This will run MySQL, Memcache, Mongo, nginx, and all of the Open edX services (LMS, Studio, Forums, ORA, etc) on a single server. In production configurations we recommend that these services run on different servers and that a load balancer be used for redundancy. Setting up production configurations is beyond the scope of this wiki page.

For hosting in Amazon we recommend an t2.large with at least a 50Gb EBS volume, see https://aws.amazon.com/ec2/pricing. Community Ubuntu AMIs have 8GB on the root directory, make sure to expand it before installing.

Installation instructions

WARNING:

NOTES:

Let's start:

Launch your Ubuntu 16.04 64-bit server and log in to it as a user that has full sudo privileges.

Update your Ubuntu package sources:

sudo apt-get update -y
sudo apt-get upgrade -y
sudo reboot

Automated installation

You will run a few scripts to accomplish the installation. Please read the contents of the scripts before running this to ensure you are aware of everything they will do: they are quite extensive. The scripts require that the running user can run commands as root via sudo.

You choose the version of Open edX by setting the OPENEDX_RELEASE variable before running the commands. See Open edX Releases for the tags you can use.

# 1. Set the OPENEDX_RELEASE variable:
export OPENEDX_RELEASE=the-tag/you-want-to-install
# 2. Bootstrap the Ansible installation:
wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/ansible-bootstrap.sh -O - | sudo bash
# 3. (Optional) If this is a new installation, randomize the passwords:
wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/generate-passwords.sh -O - | bash
# 4. Install Open edX:
wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/sandbox.sh -O - | bash

Bad Suggestions (Arbitrary Upgrades)

Some parts of Open edX are outdated. If you see a message suggesting that you update something manually, don't do it -- Open edX is probably relying on the outdated software remaining at that older version. Specifically:

If you arbitrarily upgrade software in Open edX, things will break. Instead, you should submit a pull request to change the line in the Open edX project where that specific version of the software is defined. All pull requests need to be reviewed before they can be merged, and part of the review process will consist of testing Open edX with the updated software, identifying any breakages, and fixing them as part of the pull request.

See edX-Managing-the-Full-Stack for how to manage and update the server once it is running