Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
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

AltStyle によって変換されたページ (->オリジナル) /