Skip to content
Muhammad Umar Khan edited this page Nov 25, 2019 · 17 revisions

Our devstack is run on the ironwood release of Open edX. It is divided into a number of Docker containers and they are managed using custom scripts and commands (courtesy of the edX team).

Prerequisites

This project requires Docker 17.06+ CE. We recommend Docker Stable, but Docker Edge should work as well.

For downloading Docker 17.06+ CE you must follow this link

To verify the docker installation run the following command

$ docker version

This command must be run without any permission denied errors.

If you get some issues, follow the steps given in Manage Docker as a non-root user section.


To run the Open edX devstack on your local machine please follow the instructions.

Creating a proper environment.

Run the following commands to create the project directory in your $HOME directory.

$ mkdir arbisoft
$ cd arbisoft

Create the project virtualenv and activate it

$ virtualenv -p python2 ucsd
$ cd ucsd
$ source bin/activate

Create a dedicated folder for the project. It is recommended to place the project in the following folder such that it does not conflict with any other projects that you might currently have.

$ mkdir edx
$ cd edx

Now clone the git repo for edx devstack

$ git clone https://github.com/edx/devstack.git

Navigate into the devstack folder and run the following commands

$ cd devstack
# checkout the "ironwood-master" branch of devstack to avoid dependency issues.
$ git checkout open-release/ironwood.master
$ export OPENEDX_RELEASE=ironwood.master
$ make requirements
$ make dev.clone

Once all the repositories are cloned, navigate to edx-platform repo and set its remote to ucsd-etc/edx-platform

$ cd ~/arbisoft/ucsd/edx/edx-platform
$ git remote set-url origin https://github.com/ucsd-ets/edx-platform.git
$ git fetch origin
$ git reset --hard open-release/ironwood.master

Run the following commands and verify their output. It should match the one listed.

$ git remote -v
origin	https://github.com/ucsd-ets/edx-platform.git (fetch)
origin	https://github.com/ucsd-ets/edx-platform.git (push)

$ git status
On branch open-release/ironwood.master
Your branch is up to date with 'origin/open-release/ironwood.master'.

nothing to commit, working tree clean

After we have properly configured the repositories. We shall pull the corresponding docker images and provision them.

Downloading Docker Images


$ cd ../devstack
$ make pull
$ make dev.provision

Note: Most of these commands will consume significant time and will download a lot of stuff before running. But if you want to save your time you can take the docker images from our temp folder named as UCSD. For doing this you must follow section Load Docker Images and skip this section Downloading Docker Images.

Load Docker Images (Optional)


Follow this step if and only if you want to take images from temp folder and if you haven't follow the above section Downloading Docker Images

Go to the arbisoft temp folder by mounting smb://172.16.10.6/temp/ as a network folder in your ubuntu after mounting successfully go to the UCSD folder here you will find 9 different images files in .tar format just copy these files into your system.

Once you successfully copied these files go to the folder where your copied this files and run the following command:

$ docker load < image1.tar

Run this command for all of the images one by one. After loading the images successfully run the following commands in "devstack" directory:

$ make pull
$ make dev.provision

Once all are complete, run the following command to start Open edX

$ make dev.up

And run the following to stop it.

$ make stop

Note: Now each time you want to run edx locally just run the following commands

$ export OPENEDX_RELEASE=ironwood.master
$ make dev.up

If you want to get rid of export OPENEDX_RELEASE=ironwood.master command, you can just add it in .bashrc

$ echo 'export OPENEDX_RELEASE=ironwood.master' >> ~/.bashrc
$ source ~/.bashrc

Now you will have to run only make dev.up command.

Usernames and Passwords

The provisioning script creates a Django superuser for every service.


    Email: [email protected]
    Username: edx
    Password: edx

The LMS also includes demo accounts. The passwords for each of these accounts is edx.

Username Email
audit [email protected]
honor [email protected]
staff [email protected]
verified [email protected]

Service URLs

Each service is accessible at localhost on a specific port. The table below provides links to the homepage of each service. Since some services are not meant to be user-facing, the "homepage" may be the API root.

Service URL
LMS http://localhost:18000/
Studio/CMS http://localhost:18010/
Credentials http://localhost:18150/api/v2/
Catalog/Discovery http://localhost:18381/api-docs/
E-Commerce/Otto http://localhost:18130/dashboard/
Notes/edx-notes-api http://localhost:18120/api/v1/
Registrar http://localhost:18734/api-docs/

Microfrontend URLs

Each microfrontend is accessible at localhost on a specific port. The table below provides links to each microfrontend.

Service URL
Gradebook http://localhost:1994/
Program Manager http://localhost:1976/
Clone this wiki locally