tutor

Tutor is the Docker-based Open edX distribution designed for peace of mind.

tutor [OPTIONS] COMMAND [ARGS]...

Options

--version

Show the version and exit.

-r, --root <root>

Root project directory (environment variable: TUTOR_ROOT)

Default

~/.local/share/tutor

-h, --help

Print this help

Environment variables

TUTOR_ROOT

Provide a default for -r

config

Configure Open edX and store configuration values in $TUTOR_ROOT/config.yml

tutor config [OPTIONS] COMMAND [ARGS]...

patches

Commands related to patches in configurations

tutor config patches [OPTIONS] COMMAND [ARGS]...

list

Print all available patches

tutor config patches list [OPTIONS]

printroot

Print the project root

tutor config printroot [OPTIONS]

printvalue

Print a configuration value

tutor config printvalue [OPTIONS] KEY

Arguments

KEY

Required argument

save

Create and save configuration interactively

tutor config save [OPTIONS]

Options

-i, --interactive

Run interactively

-s, --set <KEY=VAL>

Set a configuration value (can be used multiple times)

-U, --unset <unset_vars>

Remove a configuration value (can be used multiple times)

-e, --env-only

Skip updating config.yml

dev

Run Open edX locally with development settings

tutor dev [OPTIONS] COMMAND [ARGS]...

copyfrom

Copy files/folders from a container directory to the local filesystem.

tutor dev copyfrom [OPTIONS] SERVICE CONTAINER_PATH HOST_PATH

Arguments

SERVICE

Required argument

CONTAINER_PATH

Required argument

HOST_PATH

Required argument

dc

Direct interface to docker-compose. This is a wrapper around docker-compose. Most commands, options and arguments passed to this command will be forwarded as-is to docker-compose.

tutor dev dc [OPTIONS] COMMAND [ARGS]...

Options

-m, --mount <mounts>

Bind-mount a folder from the host in the right containers. This option can take two different forms. The first one is explicit: ‘service1[,service2…]:/host/path:/container/path’. The other is implicit: ‘/host/path’. Arguments passed in the implicit form will be parsed by plugins to define the right folders to bind-mount from the host.

Arguments

COMMAND

Required argument

ARGS

Optional argument(s)

exec

Run a command in a running container. This is a wrapper around docker-compose exec. Any option or argument passed to this command will be forwarded to docker-compose. Thus, you may use -e to manually define environment variables.

tutor dev exec [OPTIONS] ARGS...

Arguments

ARGS

Required argument(s)

launch

Configure and run Open edX from scratch, for development

tutor dev launch [OPTIONS]

Options

-I, --non-interactive

Run non-interactively

-p, --pullimages

Update docker images

-m, --mount <mounts>

Bind-mount a folder from the host in the right containers. This option can take two different forms. The first one is explicit: ‘service1[,service2…]:/host/path:/container/path’. The other is implicit: ‘/host/path’. Arguments passed in the implicit form will be parsed by plugins to define the right folders to bind-mount from the host.

logs

View output from containers. This is a wrapper around docker-compose logs.

tutor dev logs [OPTIONS] [SERVICE]...

Options

-f, --follow

Follow log output

--tail <tail>

Number of lines to show from each container

Arguments

SERVICE

Optional argument(s)

reboot

This is more than just a restart: with reboot, the platform is fully stopped before being restarted again

tutor dev reboot [OPTIONS] service

Options

-d, --detach

Start in daemon mode

Arguments

service

Optional argument(s)

restart

Specify ‘openedx’ to restart the lms, cms and workers, or ‘all’ to restart all services. Note that this performs a ‘docker-compose restart’, so new images may not be taken into account. It is useful for reloading settings, for instance. To fully stop the platform, use the ‘reboot’ command.

tutor dev restart [OPTIONS] service

Arguments

service

Optional argument(s)

run

Run a command in a new container. This is a wrapper around docker-compose run. Any option or argument passed to this command will be forwarded to docker-compose. Thus, you may use -v or -p to mount volumes and expose ports.

tutor dev run [OPTIONS] ARGS...

Options

-m, --mount <mounts>

Bind-mount a folder from the host in the right containers. This option can take two different forms. The first one is explicit: ‘service1[,service2…]:/host/path:/container/path’. The other is implicit: ‘/host/path’. Arguments passed in the implicit form will be parsed by plugins to define the right folders to bind-mount from the host.

Arguments

ARGS

Required argument(s)

start

Run all or a selection of services. Docker images will be rebuilt where necessary.

tutor dev start [OPTIONS] service

Options

--skip-build

Skip image building

-d, --detach

Start in daemon mode

-m, --mount <mounts>

Bind-mount a folder from the host in the right containers. This option can take two different forms. The first one is explicit: ‘service1[,service2…]:/host/path:/container/path’. The other is implicit: ‘/host/path’. Arguments passed in the implicit form will be parsed by plugins to define the right folders to bind-mount from the host.

Arguments

service

Optional argument(s)

status

Print status information for containers

tutor dev status [OPTIONS]

stop

Stop a running platform

tutor dev stop [OPTIONS] service

Arguments

service

Optional argument(s)

help

Print this help

tutor help [OPTIONS]

images

Manage docker images

tutor images [OPTIONS] COMMAND [ARGS]...

build

Build the docker images necessary for an Open edX platform.

tutor images build [OPTIONS] image

Options

--no-cache

Do not use cache when building the image

-a, --build-arg <build_args>

Set build-time docker ARGS in the form ‘myarg=value’. This option may be specified multiple times.

--add-host <add_hosts>

Set a custom host-to-IP mapping (host:ip).

--target <target>

Set the target build stage to build.

-d, --docker-arg <docker_args>

Set extra options for docker build command.

Arguments

image

Optional argument(s)

printtag

Print tag associated to a Docker image

tutor images printtag [OPTIONS] image

Arguments

image

Optional argument(s)

pull

Pull images from the Docker registry

tutor images pull [OPTIONS] image

Arguments

image

Optional argument(s)

push

Push images to the Docker registry

tutor images push [OPTIONS] image

Arguments

image

Optional argument(s)

k8s

Run Open edX on Kubernetes

tutor k8s [OPTIONS] COMMAND [ARGS]...

apply

Direct interface to kubnectl-apply. This is a wrapper around kubectl apply. A;; options and arguments passed to this command will be forwarded as-is to kubectl apply.

tutor k8s apply [OPTIONS] [ARGS]...

Arguments

ARGS

Optional argument(s)

delete

Completely delete an existing platform

tutor k8s delete [OPTIONS]

Options

-y, --yes

Do not ask for confirmation

exec

Execute a command in a pod of the given application

tutor k8s exec [OPTIONS] SERVICE ARGS...

Arguments

SERVICE

Required argument

ARGS

Required argument(s)

init

Initialise all applications

tutor k8s init [OPTIONS]

Options

-l, --limit <limit>

Limit initialisation to this service or plugin

launch

Configure and run Open edX from scratch

tutor k8s launch [OPTIONS]

Options

-I, --non-interactive

Run non-interactively

logs

View output from containers

tutor k8s logs [OPTIONS] SERVICE

Options

-c, --container <container>

Print the logs of this specific container

-f, --follow

Follow log output

--tail <tail>

Number of lines to show from each container

Arguments

SERVICE

Required argument

reboot

Reboot an existing platform

tutor k8s reboot [OPTIONS]

scale

Scale the number of replicas of a given deployment

tutor k8s scale [OPTIONS] DEPLOYMENT REPLICAS

Arguments

DEPLOYMENT

Required argument

REPLICAS

Required argument

start

Run all configured Open edX resources. You may limit this command to some resources by passing name arguments.

tutor k8s start [OPTIONS] name

Arguments

name

Optional argument(s)

status

Print status information for all k8s resources

tutor k8s status [OPTIONS]

stop

Stop a running platform by deleting all resources, except for volumes. You may limit this command to some resources by passing name arguments.

tutor k8s stop [OPTIONS] name

Arguments

name

Optional argument(s)

upgrade

Perform release-specific upgrade tasks. To perform a full upgrade remember to run launch.

tutor k8s upgrade [OPTIONS]

Options

--from <from_release>
Options

ironwood | juniper | koa | lilac | maple | nutmeg

wait

Wait for a pod to become ready

tutor k8s wait [OPTIONS] NAME

Arguments

NAME

Required argument

local

Run Open edX locally with docker-compose

tutor local [OPTIONS] COMMAND [ARGS]...

copyfrom

Copy files/folders from a container directory to the local filesystem.

tutor local copyfrom [OPTIONS] SERVICE CONTAINER_PATH HOST_PATH

Arguments

SERVICE

Required argument

CONTAINER_PATH

Required argument

HOST_PATH

Required argument

dc

Direct interface to docker-compose. This is a wrapper around docker-compose. Most commands, options and arguments passed to this command will be forwarded as-is to docker-compose.

tutor local dc [OPTIONS] COMMAND [ARGS]...

Options

-m, --mount <mounts>

Bind-mount a folder from the host in the right containers. This option can take two different forms. The first one is explicit: ‘service1[,service2…]:/host/path:/container/path’. The other is implicit: ‘/host/path’. Arguments passed in the implicit form will be parsed by plugins to define the right folders to bind-mount from the host.

Arguments

COMMAND

Required argument

ARGS

Optional argument(s)

exec

Run a command in a running container. This is a wrapper around docker-compose exec. Any option or argument passed to this command will be forwarded to docker-compose. Thus, you may use -e to manually define environment variables.

tutor local exec [OPTIONS] ARGS...

Arguments

ARGS

Required argument(s)

launch

Configure and run Open edX from scratch

tutor local launch [OPTIONS]

Options

-m, --mount <mounts>

Bind-mount a folder from the host in the right containers. This option can take two different forms. The first one is explicit: ‘service1[,service2…]:/host/path:/container/path’. The other is implicit: ‘/host/path’. Arguments passed in the implicit form will be parsed by plugins to define the right folders to bind-mount from the host.

-I, --non-interactive

Run non-interactively

-p, --pullimages

Update docker images

logs

View output from containers. This is a wrapper around docker-compose logs.

tutor local logs [OPTIONS] [SERVICE]...

Options

-f, --follow

Follow log output

--tail <tail>

Number of lines to show from each container

Arguments

SERVICE

Optional argument(s)

reboot

This is more than just a restart: with reboot, the platform is fully stopped before being restarted again

tutor local reboot [OPTIONS] service

Options

-d, --detach

Start in daemon mode

Arguments

service

Optional argument(s)

restart

Specify ‘openedx’ to restart the lms, cms and workers, or ‘all’ to restart all services. Note that this performs a ‘docker-compose restart’, so new images may not be taken into account. It is useful for reloading settings, for instance. To fully stop the platform, use the ‘reboot’ command.

tutor local restart [OPTIONS] service

Arguments

service

Optional argument(s)

run

Run a command in a new container. This is a wrapper around docker-compose run. Any option or argument passed to this command will be forwarded to docker-compose. Thus, you may use -v or -p to mount volumes and expose ports.

tutor local run [OPTIONS] ARGS...

Options

-m, --mount <mounts>

Bind-mount a folder from the host in the right containers. This option can take two different forms. The first one is explicit: ‘service1[,service2…]:/host/path:/container/path’. The other is implicit: ‘/host/path’. Arguments passed in the implicit form will be parsed by plugins to define the right folders to bind-mount from the host.

Arguments

ARGS

Required argument(s)

start

Run all or a selection of services. Docker images will be rebuilt where necessary.

tutor local start [OPTIONS] service

Options

--skip-build

Skip image building

-d, --detach

Start in daemon mode

-m, --mount <mounts>

Bind-mount a folder from the host in the right containers. This option can take two different forms. The first one is explicit: ‘service1[,service2…]:/host/path:/container/path’. The other is implicit: ‘/host/path’. Arguments passed in the implicit form will be parsed by plugins to define the right folders to bind-mount from the host.

Arguments

service

Optional argument(s)

status

Print status information for containers

tutor local status [OPTIONS]

stop

Stop a running platform

tutor local stop [OPTIONS] service

Arguments

service

Optional argument(s)

upgrade

Perform release-specific upgrade tasks. To perform a full upgrade remember to run launch.

tutor local upgrade [OPTIONS]

Options

--from <from_release>
Options

ironwood | juniper | koa | lilac | maple | nutmeg

plugins

Manage Tutor plugins to add new features and customise your Open edX platform.

Plugins can be downloaded from local and remote indexes. See the tutor plugins index subcommand.

After the plugin index cache has been updated, plugins can be searched with:

tutor plugins search <pattern>

Plugins are installed with:

tutor plugins install <name>

tutor plugins [OPTIONS] COMMAND [ARGS]...

disable

Disable one or more plugins. Specify ‘all’ to disable all enabled plugins at once.

tutor plugins disable [OPTIONS] plugin

Arguments

plugin

Optional argument(s)

enable

Enable a plugin

tutor plugins enable [OPTIONS] plugin

Arguments

plugin

Optional argument(s)

index

Manage plugin indices.

A plugin index is a list of Tutor plugins. An index can be public and shared with the community, or private, for instance to share plugins with a select group of users. Plugin indexes are a great way to share your plugins with other Tutor users. By default, only the official plugin index is enabled.

Plugin indexes are fetched by running:

tutor plugins update

Plugin index cache is stored locally in the following subdirectory of the Tutor project environment:

plugins/index/cache.yml

tutor plugins index [OPTIONS] COMMAND [ARGS]...

add

Add a plugin index.

The index URL will be appended with ‘{version}/plugins.yml’. The index path can be either an http(s) url or a local file path.

For official indexes, there is no need to pass a full URL. Instead, use “main”, “contrib” or “wizard”.

tutor plugins index add [OPTIONS] URL

Arguments

URL

Required argument

list

List plugin indexes

tutor plugins index list [OPTIONS]

remove

Remove a plugin index.

tutor plugins index remove [OPTIONS] URL

Arguments

URL

Required argument

install

Install one or more plugins.

Each plugin name can be one of:

  1. A plugin name from the plugin indexes (see tutor plugins search)

  2. A local file that will be copied to the plugins root

  3. An http(s) location that will be downloaded to the plugins root

In cases 2. and 3., the plugin root corresponds to the path given by tutor plugins printroot.

tutor plugins install [OPTIONS] name

Arguments

name

Optional argument(s)

list

List installed plugins.

tutor plugins list [OPTIONS]

Options

-e, --enabled

Display enabled plugins only

printroot

Print the location of yaml-based plugins: nboth python v1 and yaml v0 plugins. This location can be manually defined by setting the TUTOR_PLUGINS_ROOT environment variable

tutor plugins printroot [OPTIONS]

show

Show plugin details from index.

tutor plugins show [OPTIONS] NAME

Arguments

NAME

Required argument

update

Update the list of available plugins.

tutor plugins update [OPTIONS]

upgrade

Upgrade one or more plugins.

Specify “all” to upgrade all installed plugins. This command will only print a warning for plugins which cannot be found.

tutor plugins upgrade [OPTIONS] name

Arguments

name

Optional argument(s)