Skip to content
tenkal edited this page Apr 18, 2025 · 8 revisions

Open edX Tutor Setup Guide

This guide details the steps to set up Tutor locally with custom plugins, themes, and configuration.

Note:

  1. Ensure that all repositories are public. If any repository is private, use a GitHub token for authentication.
  2. Ensure you have docker installed and running

1. Install Tutor Using pip

Install Tutor with full features by running:

pip install "tutor[full]>=16.0.0,<17.0.0"

2. Launch Tutor in Development Mode

Start the Tutor development environment: tutor dev launch

Note: Once you launch the tutor, A directory will be created on your system root. for macOS, the path is Library/Application Support/tutor

3. Clone Custom Plugins into Build/Requirements

Inside tutor, Navigate to the env/build/openedx/requirements directory and clone your custom plugins repository

cd env/build/openedx/requirements

4. Clone Frontend Themes into Build/Themes

Navigate to the env/build/themes directory and clone your frontend themes repository:

5. Create a Private Requirements File

Inside the requirements directory, create a file called private.txt with the following content:

-e ./sherab-custom-plugin

This tells Tutor to install your custom plugin in editable mode.

6. Configure Tutor Plugins

In your root dir (Library/Applcation Support), check for a dir called tutur-plugins (create it if it's not there mkdir tutur-plugins). In the tutor-plugins directory, create a file called configuration_plugins.yml with the following content:

name: configuration_plugin version: 0.0.1 patches: openedx-lms-development-settings: | FEATURES['CUSTOM_COURSES_EDX'] = True FEATURES['ENABLE_CHANGE_USER_PASSWORD_ADMIN'] = True FEATURES['ENABLE_SPECIAL_EXAMS'] = True FEATURES['MILESTONES_APP'] = True FEATURES['ENABLE_PREREQUISITE_COURSES'] = True FEATURES['ENABLE_DISCUSSION_HOME_PANEL'] = True FEATURES['ENABLE_DISCUSSION_EMAIL_DIGEST'] = True FEATURES['ENABLE_ACCOUNT_DELETION'] = False FEATURES['CUSTOM_CERTIFICATE_TEMPLATES_ENABLED'] = True FEATURES['SHOW_HEADER_LANGUAGE_SELECTOR'] = True FEATURES['SHOW_FOOTER_LANGUAGE_SELECTOR'] = False FEATURES['ORGANIZATIONS_APP'] = True FEATURES['ENABLE_COURSE_DISCOVERY'] = True FEATURES['ALWAYS_REDIRECT_HOMEPAGE_TO_DASHBOARD_FOR_AUTHENTICATED_USER'] = False DEFAULT_FROM_EMAIL = "contact@sherab.org" CONTACT_EMAIL = "contact@sherab.org" DEFAULT_FEEDBACK_EMAIL = "contact@sherab.org" TECH_SUPPORT_EMAIL = "contact@sherab.org" COMMUNITY_FORUM_URL = "https://community.sherab.org/" SEARCH_SKIP_ENROLLMENT_START_DATE_FILTERING = True LANGUAGES += [('bo', 'བོད་སྐད།')]

Tip: Ensure that quotes and special characters are formatted correctly.

7. Enable the plugin

a. tutor plugins enable configuration_plugin

b. tutor config save

Note: Check if the plugin is enabled

tutor plugins list

8. Set the Theme

Set your custom theme by running:

tutor dev do settheme <theme_name>

Replace <theme_name> with the name of the theme you wish to use.

9. Run LMS Migrations

Execute the following command to run LMS database migrations:

tutor dev run lms ./manage.py lms migrate

10. Stop the Tutor Environment

If Tutor is running, stop it using: tutor dev stop

11. Append Extra Pip Requirements for the Custom Plugin

Append the custom plugin repository URL to Tutor's extra pip requirements:

tutor config save --append OPENEDX_EXTRA_PIP_REQUIREMENTS=git+https://github.com/Esukhia/sherab-custom-plugin.git

12. Build the Open edX Docker Images

Build the Docker image with your custom edX platform repository and version:

tutor images build openedx \ --build-arg EDX_PLATFORM_REPOSITORY=https://github.com/Sherab-1/edx-platform.git \ --build-arg EDX_PLATFORM_VERSION=sherab-development \ --no-cache

13. Start the Tutor Environment

Finally, start Tutor in detached mode:

tutor dev start -d

Possible Errors:

if you get npm socket timeput error, increase the npm timeout setting in the docker file

RUN npm config set fetch-timeout 120000 && npm config set fetch-retry-maxtimeout 120000