Skip to content
Paul Jamason edited this page Mar 30, 2021 · 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 (3/30/2021: python3 -m virtualenv -p python3 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

**note that juniper version is now master and ironwood is now at https://github.com/edx/devstack/blob/open-release/ironwood.master/README.rst**

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-ets/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

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/