Manage Open edX projects¶
Derex simplifies running Open edX: it takes care of starting the needed services (mysql, mongodb, rabbitmq etc) and introduces the concept of Open edX projects.
A project is a directory that defines what an Open edX instance should look like. It can specify additional requirements, custom themes and plugins.
derex.runner uses docker compose (it’s bundled, you don’t have to
install it separately) to orchestrate the many necessary pieces.
It provides two commands,
ddc-services to manage services (mysql, mongodb, elasticsearch etc)
ddc-project to manage project-specific services (lms, cms, workers and maybe others if plugins are installed).
They are wrappers to
docker-compose: ddc stands for derex docker compose.
As such familiarity with docker compose is required to use derex.
Make sure you have python 3.6 or later and docker 19.03.5 or later installed.
A virtualenv is also recommended. For derex we use direnv. Its main purpose is to define directory-specific
environment variables, but it can also automatically activate a virtualenv when
cd into a directory. We include a
.envrc file that will instruct
direnv to create and activate a local python3 virtualenv.
We recommend to install it to try
out the following instructions. Alternatively you can replace
with your virtualenv activation command.
Run the following commands:
git clone https://github.com/Abstract-Tech/derex.runner.git cd derex.runner direnv allow pip install -r requirements.txt -e . cd examples/juniper/minimal/ ddc-services up -d # Start mysql, mongodb, rabbitmq and admin tools derex reset-mailslurper # Prime the mailslurper mysql database derex reset-rabbitmq # Create rabbitmq user and queue derex mysql reset # Prime the mysql database derex create-bucket # Create the S3-like buckets on Minio ddc-project up -d # Start LMS/CMS daemons and workers
Run derex to see running services:
derex ... http://studio.minimal.localhost http://mailslurper.localhost # (debug emails sent by the platform) http://minio.localhost http://adminer.localhost # (mysql administration tool) http://flower.minimal.localhost # (monitor celery workers) http://portainer.localhost # (mysql administration tool) http://minimal.localhost
You can login to the CMS and LMS using one of these users (the password is
firstname.lastname@example.orgRepresents a student user.
email@example.comRepresents a member of the teaching staff.
firstname.lastname@example.orgRepresents an administrator of Open edX. This user has full permissions inside the platform.
This work uses extensively parts of the tutor project. Many thanks to Régis Behmo!