Devstack basics¶
This tutorial covers some of the basics of using the OpenEdX devstack. It is not a comprehensive guide rather it is meant to help with some frequently asked questions by newcomers.
Getting started¶
To get started with the devstack, boot it up with
make dev.up
This will boot up all the services within the devstack. We can selectively boot individual service or a combination of services, this helps us to save time and get to the development faster.
For example, the most used service is LMS, to selectively start this service we can run make dev.up.lms
, in order to run a combination of LMS and Studio we can run make dev.up.lms+studio
.
To shut down the LMS, use make dev.stop
. You can also use make down
on more recent versions to both stop the devstack & remove its docker images (This helps when you have many devstacks). Do not use make down
with the ironwood devstack as it'll delete all your data!
Shelling into services¶
Next, you'll want to log into a running container! You can do that with make dev.shell.lms
(Replace 'lms' with the service you'd like to access).
Accessing logs¶
Accessing logs is as easy as make dev.logs
or make dev.logs.lms
for a particular service. Note that a lot of people experience the logs freezing after some time and for that reason, it might be a better idea to attach to the container instead.
Attaching to services¶
While make dev.shell.lms
will let you shell into the same container, you can also use make dev.attach.lms
to attach your session to the process in the container. This is helpful to view logs as make dev.logs
can be buggy.
Compiling static files¶
When making changes to static files (Or experiencing static file related bugs) you need to compile & update static files with the command: make static
Note: This command takes a long time to run. If you are working on comprehensive theming you can use a shortcut by shelling into the LMS and running the following command: paver compile_sass --system=lms --theme-dirs /edx/src/ --themes {theme_folder_name} && ./manage.py lms collectstatic --noinput
Restarting services¶
If you want to restart a particular service without restarting the entire container (& other containers), you can use: make lms-restart
, make studio-restart
, etc.
More commands¶
Each release of EdX adds some variation to the commands available, and you can check them all out by reading the 'Makefile' in the devstack folder.