This page describes how to install Open edX on a single Ubuntu 16.04 64-bit server from scratch.
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 m3.medium server, see https://aws.amazon.com/ec2/pricing
Community Ubuntu AMIs have 8GB on the root directory, make sure to expand it before installing.
WARNING:
These instructions will potentially destroy the server they are run on, you should only do them on a freshly installed virtual machine. But if you still want to have a try to re-install the Open edX stack on the same server, please see this article for some issues you may face and how to fix them.
By default ssh will only allow key based authentication. Please setup key based SSH logins or modify the configuration repo to allow for password based SSH logins before running Ansible.
NOTES:
Launch an Ubuntu 16.04 64-bit server and login to it as a user that has full sudo privileges. If you use EC2, use at least m1.large type with EBS and allocate ~50 GB to the root user.
Update your Ubuntu package sources:
sudo apt-get update -y sudo apt-get upgrade -y sudo reboot |
You will run two 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.
wget https://raw.githubusercontent.com/edx/configuration/master/util/install/ansible-bootstrap.sh -O - | sudo bash wget https://raw.githubusercontent.com/edx/configuration/master/util/install/sandbox.sh -O - | bash |
If you want to install an Open edX release, such as Dogwood, just set the OPENEDX_RELEASE
variable before running the scripts. For example:
export OPENEDX_RELEASE=the-tag/you-want-to-install wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/ansible-bootstrap.sh -O - | sudo bash wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/sandbox.sh -O - | bash |
As it would behoove administrators to change the default passwords, an additional command should be run, and an additional argument should be passed to the Sandbox call. More can be found here:
How to Override Default Configuration Passwords and Verify Exposed Services
Here is an example:
export OPENEDX_RELEASE=the-tag/you-want-to-install wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/ansible-bootstrap.sh -O - | sudo bash while read line; do REPLACE=$(LC_ALL=C < /dev/urandom tr -dc 'A-Za-z0-9' | head -c35) && echo $line | sed "s/\!\!null/\'$REPLACE\'/"; done < ./passwords.yml > ./my-passwords.yml wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/sandbox.sh -e@/path/to/my-passwords.yml -O - | bash |
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:
do-release-upgrade
to upgrade to that newer version. Don't do it.pip install --upgrade pip
to install it. Don't do it.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