Installing, Configuring, and Running the Open edX Platform provides instructions for using your own instance of the Open edX Platform and associated applications.
This document applies to the most recent version of the Open edX Platform; that is, it applies to the master branch of the edX Platform.
This document also contains instructions for instaling named releases of Open edX. The most recent named release of Open edX is Cypress.
The Installing and Configuring the Open edX Platform documentation is created using RST files and Sphinx. As a member of the community, you can help update and revise this documentation project on GitHub:
https://github.com/edx/edx- documentation/tree/master/en_us/install_operations/source
To suggest a revision, follow the GitHub Flow: fork the project, make changes in your fork, and submit a pull request back to the original project.
Course teams, researchers, developers, learners: the edX community includes groups with a range of reasons for using the platform and objectives to accomplish. To help members of each group learn about what edX offers, reach goals, and solve problems, edX provides a variety of information resources.
To help you find what you need, browse the edX offerings in the following categories.
All members of the edX community are encouraged to make use of any of the resources described in this preface. We welcome your feedback on these edX information resources. Contact the edX documentation team at docs@edx.org.
The edX Partner Portal is the destination for partners to learn, connect, and collaborate with one another. Partners can explore rich resources and share success stories and best practices while staying up-to-date with important news and updates.
To use the edX Partner Portal, you must register and request verification as an edX partner. If you are an edX partner and have not used the edX Partner Portal, follow these steps.
EdX partner course teams can get technical support in the edX Partner Portal. To access technical support, submit a support ticket, or review any support tickets you have created, go to partners.edx.org and select Course Staff Support at the top of the page. This option is available on every page in the Partner Portal.
The Open edX Portal is the destination for all edX users to learn about the edX roadmap, as well as hosting, extending the edX platform, and contributing to Open edX. In addition, the Open edX Portal provides product announcements, the Open edX blog, and other rich community resources.
All users can view content on the Open edX Portal without creating an account and logging in.
To comment on blog posts or the edX roadmap, or subscribe to email updates, you must create an account and log in. If you do not have an account, follow these steps.
To receive and share product and release announcements by email, subscribe to announcements on the Open edX Portal.
You will now receive email messages when new announcements of the types you selected are posted.
Note
EdX partners can complete the same steps on the Announcements page in the edX Partner Portal.
For system-related notifications from the edX operations team, including outages and the status of error reports. On Twitter, you can follow @edxstatus.
Current system status and the uptime percentages for edX servers, along with the Twitter feed, are published on the edX Status web page.
Course teams include faculty, instructional designers, course staff, discussion moderators, and others who contribute to the creation and delivery of courses on edx.org or edX Edge.
The edX101 course was built in Studio and is available for enrollment on edx.org. This course takes one to two hours to complete, and is designed to provide a high-level overview of the course creation and delivery process. It also highlights the extensive capabilities of the edX platform.
Documentation for course teams is available on the docs.edx.org web page.
Building and Running an edX Course is a comprehensive guide with concepts and procedures to help you build a course in edX Studio, and then use the Learning Management System (LMS) to run a course.
When you are working in edX Studio, you can access relevant sections of this guide by selecting Help on any page.
Using edX Insights describes the metrics, visualizations, and downloadable .csv files that course teams can use to gain information about student background and activity.
edX Release Notes summarize the changes in each new version of deployed software.
edX Open Learning XML Guide provides guidelines for building edX courses with Open Learning XML (OLX). Note that this guide is currently an alpha version.
These guides open in your web browser. The left side of each page includes a Search docs field and links to the contents of that guide. To open or save a PDF version, select v: latest at the lower right of the page, then select PDF.
Note
If you use the Safari browser, be aware that it does not support the search feature for edX documentation. This is a known limitation.
To receive and share information by email, course team members can:
The edX product team maintains public product roadmaps on the Open edX Portal and the edX Partner Portal.
The edX Author Support site for edX partners hosts discussions that are monitored by edX staff.
Data for the courses on edx.org and edX Edge is available to the “data czars” at our partner institutions, and then used by database experts, statisticians, educational investigators, and others for educational research.
The edX Research Guide is available on the docs.edx.org web page.
This guide opens in your web browser, with a Search docs field and links to that guide’s contents on the left side of each page. To open or save a PDF version, select v: latest at the lower right of the page, and then select PDF.
Note
If you use the Safari browser, be aware that it does not support the search feature for edX documentation. This is a known limitation.
To receive and share information by email, researchers can join the openedx-analytics Google group to ask questions and participate in discussions with peers at other edX partner organizations and edX staffers.
The edX Analytics team maintains the Open edX Analytics wiki, which includes links to periodic release notes and other resources for researchers.
The edx-tools wiki lists publicly shared tools for working with the edX platform, including scripts for data analysis and reporting.
Software engineers, system administrators, and translators work on extending and localizing the code for the edX platform.
Documentation for developers is available on the docs.edx.org web page.
Note
If you use the Safari browser, be aware that it does not support the search feature for edX documentation. This is a known limitation.
These are the main edX repositories on GitHub.
Additional repositories are used for other projects. Our contributor agreement, contributor guidelines and coding conventions, and other resources are available in these repositories.
To receive and share information by email, developers can join these Google groups to ask questions and participate in discussions with peers and edX staffers.
Additional Google groups are occasionally formed for individual projects.
Note
Please do not report security issues in public. If you have a concern, please email security@edx.org.
EdX engineers often monitor the Freenode #edx-code IRC channel.
The Open edX Portal is the entry point for new contributors.
The edX Engineering team maintains an open Confluence wiki, which provides insights into the plans, projects, and questions that the edX Open Source team is working on with the community.
The pull request dashboard is a visualization of the count and age of the pull requests (PRs) assigned to teams at edX. Select the bars in this chart to get more information about the PRs.
The edx-tools wiki lists publicly shared tools for working with the edX platform, including scripts and helper utilities.
Hosting providers, platform extenders, core contributors, and course staff all use Open edX. EdX provides release-specific documentation, as well as the latest version of all guides, for Open edX users. The following documentation is available.
Open edX Release Notes provides information on the contents of Open edX releases.
Building and Running an Open edX Course is a comprehensive guide with concepts and procedures to help you build a course in Studio, and then use the Learning Management System (LMS) to run a course.
When you are working in Studio, you can access relevant sections of this guide by selecting Help on any page.
Open edX Learner’s Guide helps students use the Open edX LMS to take courses. This guide is available on the docs.edx.org web page. Because learners are currently only guided to this resource through the courseware, we encourage course teams to provide learners with links to this guide as needed in course updates or discussions.
Installing, Configuring, and Running the edX Platform provides information about installing and using Devstack and Fullstack.
The edX Platform Developer’s Guide includes guidelines for contributing to Open edX, options for extending the Open edX platform, using the edX public sandboxes, instrumenting analytics, and testing.
Open edX XBlock Tutorial guides developers through the process of creating an XBlock, and explains the concepts and anatomy of XBlocks.
Open edX XBlock API Guide provides reference information on the XBlock API.
EdX Open Learning XML Guide provides guidelines for building edX courses with Open Learning XML (OLX). Note that this guide is currently an alpha version.
EdX Data Analytics API provides reference information for using the data analytics API to build applications to view and analyze learner activity in your course.
EdX Platform APIs provide reference information for building applications to view course information and videos and work with user and enrollment data.
Note
If you use the Safari browser, be aware that it does not support the search feature for edX documentation. This is a known limitation.
The EdX Learner’s Guide and the Open edX Learner’s Guide are available on the docs.edx.org web page. Because learners are currently only guided to this resource through the courseware, we encourage course teams to provide learners with links to these guides as needed in course updates or discussions.
All edX courses have a discussion forum where you can ask questions and interact with other students and with the course team: select Discussion. Many courses also offer a wiki for additional resources and materials: select Wiki.
Other resources might also be available, such as a course-specific Facebook page or Twitter feed, or opportunities for Google Hangouts. Be sure to check the Course Info page for your course as well as the Discussion and Wiki pages.
From time to time, the course team might send email messages to all students. While you can opt out of these messages, doing so means that you can miss important or time-sensitive information. To change your preferences for course email, select edX or edX edge at the top of any page. On your dashboard of current courses, locate the course and then select Email Settings.
To help you get started with the edX learning experience, edX offers a course (of course!). You can find the edX Demo course on the edX web site. EdX also maintains a list of frequently asked questions and answers.
If you still have questions or suggestions, you can get help from the edX support team: select Contact at the bottom of any edX web page or send an email message to info@edx.org.
For opportunities to meet others who are interested in edX courses, check the edX Global Community meetup group.
The edX Platform runs on the following browsers.
Note
If you use the Safari browser, be aware that it does not support the search feature for the edX documentation. This is a known limitation.
The edX Platform is routinely tested and verified on the current and previous version of each of these browsers. We generally encourage the use of and fully support only the latest version.
This information is updated as new major operating system and browser versions are released. All point releases are supported unless noted; occasional exceptions are based on specific bug fixes or feature updates.
The following table shows operating system and browser support for the edX learning management system (LMS), which learners and course teams use to interact with course content.
Chrome | Safari | Firefox | IE 11 | IE 10 | |
---|---|---|---|---|---|
Windows 8 | Yes | N/A | Yes | Yes | Yes |
Mac OSX Mavericks or Yosemite | Yes | Yes | Yes | N/A | N/A |
For more information about the LMS, see Building and Running an edX Course.
The following table shows operating system and browser support for edX Studio, which course teams use to build a course.
Chrome | Safari | Firefox | IE 11 | IE 10 | |
---|---|---|---|---|---|
Windows 8 | Yes | N/A | Yes | Provisional | Provisional |
Mac OSX Mavericks or Yosemite | Yes | Yes | Yes | N/A | N/A |
For more information about Studio, see Building and Running an edX Course.
The following table shows operating system and browser support for edX Insights, which course teams use to review and download data about their courses and learners.
Chrome | Safari | Firefox | IE 11 | IE 10 | |
---|---|---|---|---|---|
Windows 8 | Yes | N/A | Yes | Provisional | Provisional |
Mac OSX Mavericks or Yosemite | Yes | Yes | Yes | N/A | N/A |
For more information about edX Insights, see Using edX Insights.
This section describes how to install the Open edX Cypress release.
The Open edX Cypress release contains several new features for learners, course teams, and developers. See the Open edX Release Notes for more details.
Note
There are several new features in the Cypress release that are available, but not enabled by default in new installations. For details, see the following topics.
The Git tag for the Cypress release is named-release/cypress
. You use this
tag to identify the version of Open edX code that is the Cypress release.
The following Open edX Git repositories have the Git tag
named-release/cypress
.
You can install the Open edX Cypress release using Devstack or Fullstack.
Review the prerequisites and instructions for each option, and then choose the option that best meets your needs. Ensure that you install the required software to run the edX Platform.
If you are upgrading from the Birch release, see Upgrading from Birch to Cypress.
For new installations, follow these steps.
Download the Vagrant Box or Download the BitTorrent File.
Caution
The Vagrant boxes have a large file size (about 2.5GB). If you have a slow or unreliable Internet connection, use BitTorrent to download the Vagrant box you need.
If you have a fast and reliable Internet connection, you can download the
Vagrant box directly or by running vagrant up
when installing
Devstack or
Fullstack.
See the Open edX Named Releases Wiki page to access the latest Vagrant boxes.
See Vagrant’s documentation on boxes for more information.
You can also download the BitTorrent file for the option you selected. BitTorrent is recommended if you have a slow or unreliable data connection. You then use the BitTorrent file to download the Vagrant box. If the Internet connection is temporarily lost while you are downloading the Vagrant box through BitTorrent, you can later continue the download without data loss or corruption.
See the Open edX Named Releases Wiki page to access the latest Vagrant boxes.
See BitTorrent for more information.
If you download the Vagrant box through BitTorrent, you must add the box to Vagrant before continuing with the installation process.
For Devstack installations, run the following command.
$ vagrant box add /path-to-downloaded-box/name-of-vagrant-box --name cypress-devstack
For Fullstack installations, run the following command.
$ vagrant box add /path-to-downloaded-box/name-of-vagrant-box --name cypress-fullstack
Before installing the Vagrant box, you must set the value of the
OPENEDX_RELEASE
environment variable to the Git tag for the Cypress
release. Use the Linux export
command.
export OPENEDX_RELEASE="named-release/cypress"
You can upgrade an Open edX instance that is running the Birch release to the
Cypress release, by using the migrate.sh
script in the configuration
repository, available here.
Note
The upgrade scripts provided are verified only for upgrading instances running the Birch release. If you are running any other version of the Open edX Platform, the upgrade scripts might not work.
Caution
Before upgrading your Open edX instance, back up all data and configuration files. Then verify that you can restore your Open edX instance from the backup files.
On the computer or virtual machine that is running the Birch release of Open edX, run the upgrade script for your type of installation:
./migrate.sh -c devstack
../migrate.sh -c fullstack
../migrate.sh -h
to see which other options the script
accepts.The script creates a temporary directory in which it upgrades Open edX, then cleans up extra files and directories when it finishes running.
After upgrading Open edX to the Cypress release, start the LMS and Studio and verify that course content and data was migrated correctly.
This section describes how to install the Open edX Birch release.
Note
Now that the Open edX Cypress release is available, edX no longer supports the Birch release.
The Open edX Birch release contains several new features for students, course teams, and developers. See the Open edX Release Notes for more details.
Note
There are several new features in the Birch release that are available, but not configured in new installations. For details, see the following topics.
The Git tag for the Birch release is named-release/birch.2. You use this tag to identify the version of Open edX code that is the Birch release.
The following Open edX Git repositories have the Git tag named-release/birch.2:
You can install the Open edX Birch release using Devstack or Fullstack.
Review the prerequisites and instructions for each option, then choose the option that best meets your needs. Ensure you install the required software to run the edX Platform.
If you are upgrading from the Aspen release, see Upgrading from Aspen to Birch.
For new installations, follow the steps below.
Download the Vagrant Box or Download the BitTorrent File.
Caution
The Vagrant boxes have a large file size (about 2.5GB). If you have a slow or unreliable Internet connection, use BitTorrent to download the Vagrant box you need.
If you have a fast and reliable Internet connection, you can download the
Vagrant box directly or by running vagrant up
when installing
Devstack or
Fullstack.
See the Open edX Named Releases Wiki page to access the latest Vagrant boxes.
See Vagrant’s documentation on boxes for more information.
You can also download the BitTorrent file for the option you selected. BitTorrent is recommended if you have a slow or unreliable data connection. You then use the BitTorrent file to download the Vagrant box. If the Internet connection is temporarily lost while you are downloading the Vagrant box through BitTorrent, you can later continue the download without data loss or corruption.
See the Open edX Named Releases Wiki page to access the latest Vagrant boxes.
See BitTorrent for more information.
If you download the Vagrant box through BitTorrent, you must add the box to Vagrant before continuing with the installation process.
For Devstack installations, run the following command.
$ vagrant box add /path-to-downloaded-box/vagrant-images-birch-2-devstack.box --name birch-devstack-2
For Fullstack installations, run the following command.
$ vagrant box add /path-to-downloaded-box/vagrant-images-birch-2-fullstack.box --name birch-fullstack-2
Before installing the Vagrant box, you must set the value of the OPENEDX_RELEASE environment variable to the Git tag for the Birch release:
export OPENEDX_RELEASE="named-release/birch.2"
You can upgrade your Open edX instance that is running the Aspen release to the
Birch release, using the migrate.sh
script in the configuration repository,
available here.
Note
The upgrade scripts provided are verified only for upgrading instances running the Aspen release. If you are running any other version of the Open edX Platform, the upgrade scripts might not work.
Caution
Before upgrading your Open edX instance, back up all data and configuration files. Then verify that you can restore your Open edX instance from the backup files.
On the computer or virtual machine running the Aspen release of Open edX, run the upgrade script for your type of installation:
./migrate.sh -t named-release/birch.2 -c devstack
../migrate.sh -t named-release/birch.2 -c fullstack
../migrate.sh -h
to see which other options the script accepts.The script creates a temporary directory in which it upgrades Open edX, then cleans up extra files and directories when it finishes running.
After upgrading Open edX to the Birch release, run the edX Platform and verify that course content and data was migrated correctly.
This section describes the Open edX installation options.
The Open edX Developer Stack, known as Devstack, is a Vagrant instance designed for local development.
Devstack is in the edx configuration repository on GitHub.
This guide includes the following sections about Devstack:
Additional sections are planned for future versions of this guide.
See the edx configuration repository wiki for information from edX and the Open edX community about Devstack and other installation and configuration options. This wiki contains two pages with more information about Devstack.
Open edX Fullstack, known as Fullstack, is a Vagrant instance designed for deploying all edX services on a single server.
Fullstack is in the edx configuration repository on GitHub.
This guide includes Installing Open edX Fullstack.
See the edx configuration repository wiki for information from edX and the Open edX community on Fullstack and other installation and configuration options.
You can install Fullstack on a single Ubuntu 12.04 64-bit server.
Ubuntu information is planned for future versions of this guide.
See the edx configuration repository wiki for information from edX and the Open edX community about Ubuntu and other installation and configuration options.
This section describes how to install the Open edX Developer Stack.
The Open edX Developer Stack, known as Devstack, is a Vagrant instance designed for local development.
Devstack Uses the same system requirements as Open edX Fullstack. This allows you to discover and fix system configuration issues early in development.
Devstack Simplifies certain production settings to make development more convenient. For example, nginx and gunicorn are disabled in Devstack; Devstack uses Django’s runserver instead.
See the Vagrant documentation for more information.
Devstack includes the following edX components:
Devstack also includes a demo edX course.
To use Devstack, you should meeting the following knowledge requirements.
To install and run Devstack, you must first install the following required software.
To install Devstack directly from the command line, follow the instructions below. You can also install DevStack using a Torrent file, as explained in the next section.
Before beginning the installation, ensure that you have the administrator password for your local computer. The administrator password is needed so that NFS can be set up to allow users to access code directories directly from your computer.
Ensure the nfsd
client is running.
Create the devstack
directory and navigate to it in the command prompt.
mkdir devstack
cd devstack
Download the Devstack Vagrant file.
curl -L https://raw.github.com/edx/configuration/master/vagrant/release/devstack/Vagrantfile > Vagrantfile
Install the Vagrant vbguest
plugin.
vagrant plugin install vagrant-vbguest
Create the Devstack virtual machine.
vagrant up
The first time you create the Devstack virtual machine, Vagrant downloads the base box, which has a file size of about 4GB. If you destroy and recreate the virtual machine, Vagrant re-uses the box it downloaded. See Vagrant’s documentation on boxes for more information.
When prompted, enter the administrator password for your local computer.
When you have completed these steps, see Running the Open edX Developer Stack to begin using Devstack.
For help with the Devstack installation, see Troubleshooting the Devstack Installation.
Download the Devstack Torrent file.
When you have the file on your computer, add the virtual machine using the following command.
vagrant box add box-name path-to-box-file
In some cases, you see an error when you attempt to create the Devstack virtual
machine (vagrant up
). For example:
mount.nfs: mount to NFS server '192.168.33.1:/path/to/edx-platform' failed: timed out, giving up
This error situation arises because Vagrant uses a host-only network in
Virtualbox to communicate with your computer. If a network does not exist, one
is created on vagrant up
. If this network is created with the VPN up, it
will not work. You must recreate the network with the VPN down.
To resolve the error, follow these steps.
vagrant halt
.vagrant up
.This section describes how to run the Open edX Developer Stack.
To connect to the Devstack virtual machine, use the SSH command from the devstack directory.
vagrant ssh
To use Devstack and perform any of the tasks described in this section, you must connect as the user edxapp.
sudo su edxapp
This command loads the edxapp environment from the file
/edx/app/edxapp/edxapp_env
. This puts venv python
and rbenv ruby
in your search path.
This command also sets the current working directory to the edx-platform
repository (/edx/app/edxapp/edx-platform
).
If you are installing Devstack on a Linux or Macintosh computer, in order to
use the preview feature in edX Studio, you must add the following line to the
etc/hosts
file.
192.168.33.10 preview.localhost
You can customize the location of the edX source code that gets cloned when you provision Devstack. You may want to do this to have Devstack work with source code that already exists on your computer.
By default, the source code location is the directory in which you run
vagrant up
. To change this location, set the VAGRANT_MOUNT_BASE
environment variable to set the base directory for the edx-platform and
cs_comments_service source code directories.
When you run the LMS on Devstack, the command updates requirements and
compiles assets, unless you use the fast
option.
The command uses the file lms/envs/devstack.py
. This file
overrides production settings for the LMS.
To run the LMS on Devstack, follow these steps.
Run the following command.
paver devstack lms
Or, to start the LMS without updating requirements and compiling assets, use
the fast
option.
paver devstack lms --fast
The LMS starts.
Open the LMS in your browser at http://localhost:8000/
.
Vagrant forwards port 8000 to the LMS server running in the virtual machine.
When you run Studio on Devstack, the command updates requirements and compiles
assets, unless you use the fast
option.
You run Studio on Devstack with the file cms/envs/devstack.py
. This file
overrides production settings for Studio.
To run Studio on Devstack:
Run the following command/
paver devstack studio
Or, to start Studio without updating requirements and compiling assets, use
the fast
option.
paver devstack studio --fast
Studio starts.
Open Studio in your browser at http://localhost:8001/
.
Vagrant forwards port 8001 to the Studio server running in the virtual machine.
To view all available commands for Studio, enter the following command.
./manage.py cms -h --settings=devstack
To run discussion forums on Devstack:
Switch to the discussion forum account by entering the following command.
sudo su forum
Update Ruby requirements.
bundle install
Note
If you get a message for entering a password to install the bundled
RubyGems to the system, you can safely exit by entering control+c
on a
Macintosh or Ctrl+C
on Windows. The RubyGems will still be installed
correctly for the forum user.
Start the discussion forums server.
ruby app.rb -p 18080
The discussions forum server starts. You can access the discussion forums API
at http://localhost:18080/
.
When you install Devstack, the following accounts are created.
Account Description staff@example.com An LMS and Studio user with course creation and editing permissions. This user is a course team member with rights to work with the demonstration course in Studio, the LMS, and Insights. verified@example.com A student account that you can use to access the LMS for testing verified certificates. audit@example.com A student account that you can use the access the LMS for testing course auditing. honor@example.com A student account that you can use the access the LMS for testing honor code certificates.
The password for all of these accounts is edx
.
This section describes how to install the Open edX Fullstack.
Open edX Fullstack is a Vagrant instance designed for deploying all Open edX services on a single server.
See the Vagrant documentation for more information.
Open edX Fullstack includes the following edX components.
To use Fullstack, you should meeting the following knowledge requirements.
To install and run Open edX Fullstack, you must first install the following software.
To install Open edX Fullstack directly from the command line, follow the instructions below.
Before beginning the installation, ensure that you have your local computer’s administrator’s password. The password is needed so that NFS can be set up to allow users to access code directories directly from your computer.
Ensure the nfsd
client is running.
Create the fullstack
directory and navigate to it in the command prompt.
mkdir fullstack
cd fullstack
Download the fullstack Vagrant file.
curl -L https://raw.githubusercontent.com/edx/configuration/master/vagrant/release/fullstack/Vagrantfile > Vagrantfile
Install the Vagrant hostsupdater
plugin.
vagrant plugin install vagrant-hostsupdater
Create the Fullstack virtual machine.
vagrant up
The first time you create the Fullstack virtual machine, Vagrant downloads the base box, which has a file size of about 4GB. If you destroy and recreate the virtual machine, Vagrant re-uses the box it downloaded. See Vagrant’s documentation on boxes for more information.
When prompted, enter the administrator password for your local computer.
In your browser, go to Go to preview.localhost
, which is an alias entry
for 192.168.33.10 that was created in your /etc/hosts
file.
The latest version of fullstack has the demo course pre-loaded and a set of dummy accounts.
The following sections provide information about Open edX Platform configuration options.
When you update the edX Platform, you should not change configuration files on a running server. Doing so can result in unpredictable problems.
If you need to change settings on a running server, take the following steps.
In the Open edX Birch release, course teams can embed Google calendars and Google Drive files in courseware.
To enable this feature on your instance of Open edX, you install the Google Drive XBlock.
For information about using Google calendars and Google Drive files in courses, see the Building and Running an Open edX Course guide.
Note
Before proceeding, review Guidelines for Updating the edX Platform.
To install the Google Drive XBlock, follow these steps.
In the edX Platform installation directory, edit the file
requirements/edx/github.txt
Add a line to include the XBlock utilities.
git+https://github.com/edx-solutions/xblock-
utils.git@349d6e05dbd553e1f18d3ad1f7ca02c0497f39d7#egg=xblock-utils
Add a line to add the Google Drive XBlock.
git+https://github.com/edx-solutions/xblock-google-drive.
git@138e6fa0bf3a2013e904a085b9fed77dab7f3f21#egg=xblock-google-drive
Save the requirements/edx/github.txt
file.
After you configure the edX Platform, to use Google Drive files or a Google Calendar in a course, you must add the XBlock to the advanced settings for the course. See the following documentation:
This section describes how to enable course prerequisites in your instance of Open edX.
Course teams can set prerequisites for a course. Learners must complete the prerequisite courses before participating in the course.
To use this feature on your instance of Open edX, you must configure the Milestones application, then enable prerequisites in Studio and the Learning Management System.
For information about prerequisites, see the Building and Running an Open edX Course and Open edX Learner’s guides.
Note
Before proceeding, review Guidelines for Updating the edX Platform.
Set the value of MILESTONES_APP
in the /cms/envs/common.py
and
/lms/envs/common.py
files to True
.
# Milestones application flag
'MILESTONES_APP': True,
Save the /cms/envs/common.py
and /lms/envs/common.py
files.
Run database migrations.
Set the value of ENABLE_PREREQUISITE_COURSES
in the
/cms/envs/common.py
and /lms/envs/common.py
files to True
.
# Prerequisite courses feature flag
'ENABLE_PREREQUISITE_COURSES': True,
Save the the /cms/envs/common.py
and /lms/envs/common.py
files.
This section describes how to enable entrance exams in your instance of Open edX.
Course teams can create an entrance exam for the course. Learners must pass the entrance exam before participating in the course.
To enable this feature on your instance of Open edX, you must enable entrance exams in Studio and the Learning Management System.
For information about entrance exams, see the Building and Running an Open edX Course and Open edX Learner’s guides.
Note
Before proceeding, review Guidelines for Updating the edX Platform.
Set the value of MILESTONES_APP
in the /cms/envs/common.py
and
/lms/envs/common.py
files to True
.
# Milestones application flag
'MILESTONES_APP': True,
Save the /cms/envs/common.py
and /lms/envs/common.py
files.
Run database migrations.
Set the value of ENTRANCE_EXAMS
in the
/cms/envs/common.py
and /lms/envs/common.py
files to True
.
# Entrance exams feature flag
'ENTRANCE_EXAMS': True,
Save the /cms/envs/common.py
and /lms/envs/common.py
files.
This section describes how to enable licensing in your instance of Open edX.
Course teams can specify licensing options for course content as well as for each video in a course.
Course teams can select one of the following license options.
By specifying the license, course teams communicate to learners whether and how they can reuse course content.
To enable this feature on your instance of Open edX, you must enable licensing in both Studio and the Learning Management System.
Note
Before proceeding, review Guidelines for Updating the edX Platform.
In the edX Platform installation directory, edit the file
/cms/envs/common.py
In the FEATURES
dictionary, add 'LICENSING':True
:
FEATURES = {
'LICENSING': True,
. . .
Save the /cms/envs/common.py
file.
In the edX Platform installation directory, edit the file
/lms/envs/common.py
In the FEATURES
dictionary, add 'LICENSING':True
:
FEATURES = {
'LICENSING': True,
. . .
Save the /lms/envs/common.py
file.
This section describes how to enable search in your instance of Open edX.
EdX Search is a Django application that provides access to search services from within edX Platform applications. Searching is accomplished by creating an index of documents, and then searching within that index for matching information.
Note
Before proceeding, review Guidelines for Updating the edX Platform.
By default, edX Search uses MockSearchEngine for testing and ElasticSearch Engine for production. You can configure edX Search to use a different search engine.
MockSearchEngine is a simple implementation using a JSON file for index storage. It has no specific requirements, but it does not scale well and should only be used for testing.
ElasticSearchEngine is a ElasticSearch back-end implementation. It uses same ElasticSearch version that is already part of edX Platform. The current version is v0.90.13, and Django Elasticsearch is 0.4.5.
EdX Search requires the following applications.
EdX Search is included in edX Platform Github requirements and is installed automatically when you install edX Platform.
For existing installations, you must install edX Search manually.
To install edX Search, make sure you are logged to your server as the
edxapp
user and are located in edx-platform
directory.
If you are not, run the following before continuing:
sudo su edxapp -s /bin/bash cd ~source edxapp_env
Then install edX Search using one of the three following options.
Add the Github link to edx-search to the requirements/edx/github.txt
file.
-e git+https://github.com/edx/edx-search.git@ae459ead41962c656ce794619f58cdae46eb7896#egg=edx-search
Then reinstall Github requirements.
pip install -r requirements/edx/github.txt
Checkout the edx-search
Github repository.
Then in the edx-search
directory, run the following command.
pip install -e ./
Run pip
with a Github link.
pip install -e git+https://github.com/edx/edx-search.
git@ae459ead41962c656ce794619f58cdae46eb7896
You enable course indexing by setting the ENABLE_COURSEWARE_INDEX
flag.
You enable library indexing by setting the ENABLE_LIBRARY_INDEX
flag.
Indexing is done from Studio as a Celery task. Every publish event triggers the reindex procedure.
You can also reindex the course manually through the Reindex button in the Course Overview page.
Which data gets indexed is determined by the module index_dictionary()
function implementation. Modules supporting this method are Sequence
,
Vertical
, Video
and HTML Block
. You can add support to any module
type.
Course metadata, including the name, description, and start and end dates are also indexed.
The following flags are supported in the CMS and LMS applications.
ENABLE_COURSEWARE_INDEX
: Enables/disables courseware content and course
info indexing.
ENABLE_LIBRARY_INDEX
: Enables/disables library content indexing.
SEARCH_ENGINE
: Sets used search engine. There are 2 predefined values,
but more can be added:
"search.elastic.ElasticSearchEngine"
"search.tests.mock_search_engine.MockSearchEngine"
ELASTIC_FIELD_MAPPINGS
: Sets any additional field mappings that elastic
search should be aware of. For example, the following code includes the
course start date:
ELASTIC_FIELD_MAPPINGS = {
"start_date": {
"type": "date"
}
}
ENABLE_COURSEWARE_SEARCH
: Enables/disables Courseware Search feature (in
course searching)ENABLE_DASHBOARD_SEARCH
: Enables/disables Dashboard Search feature (in
enrolled courses searching)ENABLE_COURSE_DISCOVERY
: Enables/disables Course Discovery feature (over
courses searching and facet filtering)SEARCH_ENGINE
: Sets used search engine. There are 2 predefined values,
but more can be added:"search.elastic.ElasticSearchEngine"
"search.tests.mock_search_engine.MockSearchEngine"
SEARCH_INITIALIZER
: Used to set custom
SearchInitializer.SearchInitializer provides an extension to achieve
masquerade and other presearch environmental settings.SearchInitializer
lms.lib.courseware_search.lms_search_initializer.LmsSearchInitializer
SEARCH_RESULT_PROCESSOR
: Used to set custom SearchResultProcessor.
SearchResultProcessor does post processing and data manipulation on a result
set returned by SearchEngine.SearchResultProcessor
lms.lib.courseware_search.lms_result_processor.LmsSearchResultProcessor
SEARCH_FILTER_GENERATOR
: Used to set custom SearchFilterGenerator.
SearchFilterGenerator sets filters defined by current active user. Basic
implementation sets only course start date filter.SearchFilterGenerator
"lms.lib.courseware_search.lms_filter_generator.LmsSearchFilterGenerator
This section describes how to enable certificates in your instance of Open edX.
Organizations and course teams can now generate certificates for learners who have completed courses. Learners can view, print, or share their certificates.
For information about certificates, see the Building and Running an Open edX Course and Open edX Learner’s guides.
To enable this feature on your instance of Open edX, you must enable the feature flag in both Studio and the Learning Management System and perform the configuration tasks described in this topic.
Note
Before proceeding, review Guidelines for Updating the edX Platform.
In the /cms/envs/common.py
and /lms/envs/common.py
files, set the
value of CERTIFICATES_HTML_VIEW
to True
.
# Certificates Web/HTML Views
'CERTIFICATES_HTML_VIEW': True,
Save the /cms/envs/common.py
and /lms/envs/common.py
files.
Run database migrations.
https://<host name of your Open edX instance>/admin
. For
example, this might be https://YourOrganization.com/admin
.
platform_name
company_about_url
company_privacy_url
company_tos_url
company_verified_certificate_url
logo_src
logo_url
For each course mode, such as “honor” or “verified”, define
certificate_type
,certificate_title
anddocument_body_class_append
. The mode name should match your course mode name exactly.{ "default": { "accomplishment_class_append": "accomplishment-certificate", "platform_name": "YourPlatformName", "company_about_url":"http://www.YourOrganization.com/about-us", "company_privacy_url": "http://www.YourOrganization.com/our-privacy-policy", "company_tos_url": "http://www.YourOrganization.com/our-terms-service", "company_verified_certificate_url": "http://www.YourOrganization.com/about_verified_certificates", "logo_src": "/static/certificates/images/our_logo.svg", "logo_url": "www.YourOrganization.com" }, "honor": { "certificate_type": "honor", "certificate_title": "Honor Certificate", "document_body_class_append": "is-honorcode" }, "verified": { "certificate_type": "verified", "certificate_title": "Verified Certificate", "document_body_class_append": "is-idverified" }, "base": { "certificate_type": "base", "certificate_title": "Certificate of Achievement", "document_body_class_append": "is-base" }, "distinguished": { "certificate_type": "distinguished", "certificate_title": "Distinguished Certificate of Achievement", "document_body_class_append": "is-distinguished" } }
Set up the templates for certificates that your organization will issue. Base templates are included, but you must ensure that they are customized for your organization. For example, you can change the images that appear on certificates for each course mode that your organization supports, as well as fonts and colors that are used on certificates.
Assets for HTML certificates exist in the following locations.
lms/templates/certificates - this folder contains .html files for
certificates. The file valid.html
is an example of a certificate file.
Files with names starting with an underscore, such as
_certificate_footer.html
are partial files that can be referenced in the
main certificate .html files
lms/static/certificates - subfolders of this folder contain assets used in creating certificates, such as images, fonts, and sass/css files.
Note
The organization logo on a certificate is uploaded in Studio. For details, see Set Up Course HTML Certificates in Building and Running an Open edX Course.
Within Studio, course team members with the Admin role can create and edit a certificate configuration that is used to generate certificates for their course, including adding signatories and images for organization logo and signature images for signatories. For details, see Set Up Course HTML Certificates in Building and Running an Open edX Course.
To generate certificates for a course, run the manage.py
script with the
following settings. When the script finishes running, grades are calculated
for learners who are enrolled in the course, and certificates are generated
for eligible learners.
Obtain the course ID for the course for which you are generating
certificates. When you view course content in your browser, the course ID
appears as part of the URL. For example, in the URL
http://www.edx.org/course/course-v1:edX+demoX_Demo_2015
, the course ID
is course-v1:edX+demoX_Demo_2015
. For some courses, the course ID
contains slashes. For example, edX/Demox/Demo_2014
.
Run manage.py
with the following settings, replacing {CourseID}
with the actual course ID. Do not include beginning or trailing slashes.
/manage.py lms --settings=aws ungenerated_certs -c {CourseID}
For example,
/manage.py lms --settings=aws ungenerated_certs -c course-v1:edX+demoX_Demo_2015
.
View the certificate generation status for a course using gen_cert_report
. For example,
/manage.py lms --settings=aws gen_cert_report -c course-v1:edX+demoX_Demo_2015
.
This section describes how to enable badging in your instance of Open edX.
Badges provide a way for learners to share their course achievements. For courses that have badges enabled, learners receive a badge at the same time as they receive a course certificate, and have the option of sharing their badges to a badging site such as Mozilla Backpack.
Open EdX supports Open Badges, an open standard originally developed by the Mozilla Foundation. For more information about Open Badges, see http://openbadges.org/.
Enabling the badges feature on your instance of Open edX involves the following set up and configuration tasks.
Note
Before proceeding, review Guidelines for Updating the edX Platform.
Badge generation depends on certificate generation. Badges are automatically generated when a certificate is generated for a learner. Make sure certificates are enabled on your Open edX instance. For details, see Enabling Certificates.
Badgr Server provides an API for issuing Open Badges. Follow the instructions at https://github.com/concentricsky/badgr-server to install and run Badgr Server.
Important
You must install Badgr Server at a publicly accessible IP address, to allow the Open edX LMS and services such as Mozilla Backpack to contact Badgr Server.
Log in to your installation of Badgr Server and add an issuer of Open Badges for your organization.
For information about issuing Open Badges, see https://wiki.mozilla.org/Badges /Onboarding-Issuer#Issuing_Badges
In the /cms/envs/common.py
and /lms/envs/common.py
files, set the
value of ENABLE_OPENBADGES
to True
.
# Enable OpenBadge support. See the BADGR_* settings later in this file.
'ENABLE_OPENBADGES': True,
In /lms/envs/common.py
, set the values for the following parameters.
BADGR_API_TOKEN
- a string containing the API token for the Badgr
superuser account. Obtain the token from the /v1/user/auth-token page
while logged in to the API as the superuser.BADGR_BASE_URL
- a string containing the base URL for Badgr Server.
The Badgr Server must be installed at a publicly accessible IP address.BADGR_ISSUER_SLUG
- a string that is the slug for the Badgr issuer.
The slug can be obtained from the URL of the Badgr Server page that
displays the issuer. For example, in the URL
http://exampleserver.com/issuer /test-issuer
, the issuer slug is
test-issuer
.############## Badgr OpenBadges generation ##############
BADGR_API_TOKEN = None
# Do not add the trailing slash here.
BADGR_BASE_URL = "http://localhost:8005"
BADGR_ISSUER_SLUG = "test-issuer"
Save the /cms/envs/common.py
and /lms/envs/common.py
files.
Run database migrations.
Restart the Studio and Learning Management System processes so that the updated environment configurations are loaded.
Access the Django Administration website for your instance of Open edX. To
do this, go to https://<host name of your Open edX instance>/admin
. For
example, this might be https://YourOrganization.org/admin
.
Under Site Administration > Certificates, define a Badge Image Configuration for each course mode on your platform for which you want to issue badges. For example, “honor” and “verified”.
For each badge image configuration, set these parameters.
Important
Default images are supplied for badges. You must replace the default images with your organization’s own badge images before any badges are issued. When the first badge is issued for a given course, badge images are uploaded to Badgr Server. All badges issued in future for this course will use the original badge image, even if you subsequently change badge images in the Django Administration badge image configuration.
Optionally, define a default image for any course modes that do not have an explicitly specified badge image. Select Default in the badge image configuration.
Note
You can specify only one default badge image.
Save each configuration parameter and exit the Django Administration website.
Badge issuing is enabled by default for all courses, but can be turned off or on again using an advanced setting in Studio. For details, see Enable Badges In Each Course in Building and Running an Open edX Course.
To enable designated users to create custom courses (CCX) on your instance of
Open edX, you must configure the server-vars.yml
file in the edX platform.
Note
Before proceeding, review Guidelines for Updating the edX Platform.
/edx/app/edx_ansible/server-vars.yml
to
include the CCX feature flag.EDXAPP_FEATURES: CUSTOM_COURSES_EDX: true
/edx/bin/update
.sudo /edx/bin/update edx-platform <your-branch-name>
To enhance sign in options for your users, you can enable third party authentication between institutional authentication systems and your implementation of the edX platform. After you enable third party authentication, users can register and sign in to your Open edX site with their campus or institutional credentials.
In an exchange of authentication and authorization data, an identity provider securely asserts the identity and access rights of a set of users. Your implementation of the Open edX platform is the service provider that allows the users access on the basis of credentials sent by an identity provider.
For example, your Open edX installation hosts the courses of three different institutions. When you configure the open edX installation to be a service provider, and configure each of the three institutions to be identity providers, you permit learners who have valid user credentials at any of those institutions to access the Open edX site.
You can enable third party authentication between your Open edX system and identity providers that use the SAML 2.0 (Security Assertion Markup Language, version 2.0). For more information, see Integrating with a SAML Identity Provider.
At an Open edX installation, you begin by enabling the third party authentication feature for your installation.
At an institution that has a partner membership with edX, you can enable third party authentication between your institutional authentication systems and the edX Edge site.
By default, third party authentication is not enabled on edX installations. To enable this feature, follow these steps.
In the edx/app/edxapp/lms.env.json
file, edit the file so that it
includes the following line in the features section.
"FEATURES" : {
...
"ENABLE_COMBINED_LOGIN_REGISTRATION": true,
"ENABLE_THIRD_PARTY_AUTH": true
}
Save the edx/app/edxapp/lms.env.json
file.
The first step in configuring your Open edX installation to act as a SAML SP (service provider) is to create a credential key pair to ensure secure data transfers with identity providers. To complete the configuration procedure, you configure your Open edX installation as a SAML service provider which creates your metadata XML file.
After you complete this configuration, you can share your metadata file with SAML identity providers, and configure them to assert identity and access rights for users to your installation. For more information, see Integrating with a SAML Identity Provider.
To generate the keys for your Open edX installation, follow these steps.
On your local computer or on the server, open Terminal or a Command Prompt and run the following command.
openssl req -new -x509 -days 3652 -nodes -out saml.crt -keyout saml.key
Provide information at each prompt.
Two files, saml.crt
and saml.key
, are created in the directory where
you ran the command.
To configure your Open edX installation as a SAML service provider, follow these steps.
http://{your_URL}/admin
.
Private key: Use a text editor to open the
saml.key
file, and then copy the RSA private key into this field.Public key: Use a text editor to open the
saml.crt
file, and then copy the certificate into this field.Entity ID: Enter a URI for the server. To ensure that this value uniquely identifies your site, the naming convention that edX recommends is to include the server’s domain name. For example,
http://saml.mydomain.com/
.Organization Info: Use the format in the example that follows to specify a language and locale code and identifying information for your installation.
{ "en-US": { "url": "http://www.mydomain.com", "displayname": "{Complete Name}", "name": "{Short Name}" } }Other config str: Define the security settings for the IdP metadata files. For more information about the security settings, see the Python SAML Toolkit. An example follows.
{ "SECURITY_CONFIG": { "signMetadata": false, "metadataCacheDuration": "" } }
{your LMS URL}/auth/saml/metadata.xml
for your metadata file.By default, SAML is included as an approved data format for identity providers.
The default configuration of the /edx/app/edxapp/lms.env.json
file does not
explicitly include the THIRD_PARTY_AUTH_BACKENDS
setting.
If you have customized this file and added the THIRD_PARTY_AUTH_BACKENDS
setting to it, you might need to verify that the
third_party_auth.saml.SAMLAuthBackend
python-social-auth backend class is
specified for it. That backend is required before you can add SAML IdPs.
To verify that the SAML authentication backend is loaded on a devstack or
fullstack installation, review the /edx/app/edxapp/lms.env.json
file.
You can integrate your Open edX installation with federated identity solutions that use the SAML 2.0 (Security Assertion Markup Language, version 2.0) standard. An example is Shibboleth, a single sign on system that is used by many educational institutions.
SAML metadata is an XML file that contains the information necessary for secure interactions between identity providers and security providers. You send the URL of your metadata file, created when you configured your installation as a SAML service provider, to each identity provider that you want to add. Similarly, you obtain the metadata URLs from identity providers before you add and enable them for your installation.
To add and enable a SAML 2.0 identity provider, follow these steps.
Log in to the Django administration console for your base URL. For example,
http://{your_URL}/admin
.
In the Third_Party_Auth section, next to Provider Configuration (SAML IdPs) select Add.
Note
If you want to change the configuration of an existing provider, next to Provider Configuration (SAML IdPs) select Change, and then select Update for the provider that you want to configure.
- Icon class: Specifies a Font Awesome image for the button that users will select to access the sign in page for this IdP. The fa-sign-in icon is used by default. For university or institutional providers, a suggested alternative is fa-university.
- Name: The name of the IdP as you want it to appear on the sign in page.
- Secondary: Select this option to include the IdP in an intermediary list of providers that users access from a Use my institution/campus credentials button on the sign in page.
- Backend name: The default, tpa-saml, is optimized for use with Open edX and works with most SAML providers. Select a different option only if you have added a custom backend that provides additional functionality.
- IdP slug: A short, unique name to identify this IdP in the URL. The slug becomes part of a URL, so the value that you enter cannot include spaces.
- Entity ID: The URI that identifies the IdP. This ID must match the value specified in the metadata XML file.
- Metadata source: The URL of the XML file that contains this provider’s metadata.
Next, you can test an enabled provider.
To customize the registration process for IdP, you make selections for these optional fields on the Add Provider Configuration (SAML IdP) page.
Skip Registration Form: If you select this option, users are not asked to confirm the user account data supplied for them by the IdP (name, email address, and so on). Select this option only for providers that are known to provide accurate user information.
By default, users review a registration form with the supplied account details.
Skip Email Verification: If you select this option, users are not required to confirm their email addresses, and their accounts are activated immediately upon registration.
By default, users receive an email message and must select a link in that message to activate their user accounts.
User ID Attribute: Required. This value is used to associate the user’s edX account with the campus account. It is not displayed to users.
By default, uses userid
, urn:oid:0.9.2342.19200300.100.1.1
.
Optional user attributes: You can indicate specific URN values for the following user attributes.
By default, the registration form includes all of the following attributes if they are sent by the IdP.
commonName
, urn:oid:2.5.4.3
givenName
, urn:oid:2.5.4.42
surname
, urn:oid:2.5.4.4
userid
,
urn:oid:0.9.2342.19200300.100.1.1
mail
, urn:oid:0.9.2342.19200300.100.1.3
If the identity provider sends a value that you do not want to be included on the the registration form, you can enter a value such as “DISABLED” or “IGNORE” in that field.
To verify the sign in process for an IdP that you have enabled, follow these steps.
On the Django administration console, in the Third_Party_Auth section, select Provider Configuration (SAML IdPs).
Check the icon in the Metadata ready column for the IdP. After the provider’s metadata is fetched successfully from the URL that you provided as the metadata source, a check mark in a green circle appears and the provider is ready for use immediately.
You might need to wait 30-60 seconds for the task to complete, and then refresh this page.
If the check mark does not appear, make sure that celery is configured
correctly and is running. You can also manually trigger an update by running
the management command ./manage.py lms saml pull --settings=aws
on
Fullstack or ./manage.py lms saml pull --settings=devstack
on Devstack.
For additional information about the data fetched from the IdP, on the Django administration console select SAML Provider Data, and then select the provider. The page that opens reports data fetched from the metadata source URL and the date and time it was fetched.
To verify that users can use the IdP for sign in, go to the sign in page for your LMS. The page should include the institutional sign in button.
Select Use my institutional/campus credentials. The list of providers that appears should include the IdP that you enabled.
Institutions that have partner memberships with edX can enable third party authentication between their campus or institutional authentication systems and the edX Edge site. Learners at sites that enable third party authentication can use their campus credentials to authenticate into edX Edge. These procedures require collaboration between members of the DevOps (development operations) or IT teams at your partner institution and edX, facilitated by your program manager.
SAML 2.0 (Security Assertion Markup Language, version 2.0) is the standard that edX uses for the exchange of authentication and authorization data with institutional partners. Because it is built with SAML, this service is compatible with the Shibboleth single sign on system.
In the exchange of authentication and authorization data, your edX partner institution is an identity provider (IdP) that securely asserts the identity and access rights of a set of users. EdX is the service provider (SP) that allows the users access on the basis of those credentials.
These procedures should be performed by a member of your institution’s IT team who is familiar with your institutional Shibboleth system.
The service provider SAML metadata for Edge is available in an XML file on the Edge website. This file contains the information necessary for interaction between Edge as service provider and your campus Shibboleth system as identity provider.
On your Shibboleth system, use the SAML metadata obtained from the XML file to add edX Edge to your whitelist of authorized service providers.
For example, you might add the following information to your
$IDP_HOME/conf/relying-party.xml
file.
<MetadataProvider xsi:type="FileBackedHTTPMetadataProvider" xmlns="urn:mace:shibboleth:2.0:metadata"
id="edxEdgeMetadata"
metadataURL="https://edge.edx.org/auth/saml/metadata.xml"
backingFile="/tmp/idp-metadata-edx-edge.xml" />
For more information about defining a metadata source on a Shibboleth system, see the Shibboleth configuration wiki.
You work with edX to ensure that your identity provider will assert the user information that you want learners to see during initial sign in on edX Edge. When you send your Shibboleth configuration data to your institution’s program manager at edX, you include any customizations to the attributes that will be asserted.
By default, the edX platform uses these attributes if your system provides them.
userid
, urn:oid:0.9.2342.19200300.100.1.1
.
Required. This value is used to associate the user’s edX account with the
campus account. It is not displayed to users.commonName
, urn:oid:2.5.4.3
givenName
, urn:oid:2.5.4.42
surname
, urn:oid:2.5.4.4
userid
, urn:oid:0.9.2342.19200300.100.1.1
mail
, urn:oid:0.9.2342.19200300.100.1.3
At your request, edX can configure Edge to use only some of these attributes. The only required attribute is the user identifier. If you choose not to provide an attribute, learners are prompted to enter that information themselves during initial sign in.
You can identify different attributes to assert user information than those
listed above. For example, you might want to send the suggested username as
eduPersonPrincipalName
instead of userid
.
You can restrict access to edX Edge to a subset of your users using attributes
defined on your Shibboleth system. For example, you might want to allow
currently matriculated students to sign in to Edge, but not alumni. The
eduPersonEntitlement
attribute can be used to restrict access in this way.
Note
If you want access to be restricted to certain users, be sure to let edX know what provider assertions to use to determine access rights.
To complete the integration between your Shibboleth system and Edge, send the following information to your institution’s program manager at edX.
Metadata: The URL for your Shibboleth IdP metadata XML file.
Entity ID: The URI that identifies the Identity Provider. This ID must match the value specified in the metadata XML.
User Attributes: A list of the values that you want your Shibboleth system to assert when users sign in to edX Edge.
For more information about how you can work with edX to configure user attributes effectively, see Configure User Attributes.
Your edX program manager notifies you when integration with your IdP is complete.
To verify that users can use their campus or institutional credentials for your IdP to sign in to Edge, follow these steps.
Go to the Edge registration page. The page should include the institutional sign in button.
Select Use my institutional/campus credentials. The list of providers that appears should include your IdP.
Select your own IdP. The landing page for your Shibboleth system should open.
This section includes information for teams involved in identity management at Open edX installations, including DevOps (development operations) and IT. The Enabling Third Party Authentication with edX Edge topic describes procedures for members of the DevOps and IT teams at an edX partner institution.
This section describes how to set the YouTube API key for your instance of Open edX.
If you intend for courses on your Open edX instance to include videos that are hosted on YouTube, you must get a YouTube API key and set the key in the Open edX Platform.
The Open edX Platform uses the YouTube Data API v3, which requires that the application uses an API key.
To get the YouTube API key, follow YouTube’s instructions for obtaining authorization credentials.
Note
Before proceeding, review Guidelines for Updating the edX Platform.
After you obtain a YouTube API key, you must install that key into your Open edX installation. There are two different ways you can do this.
Ansible is the automation system used for installing and updating Open edX. If you set your YouTube API key in Ansible’s configuration file, then Ansible will make sure that the YouTube API key remains in place when you update Open edX.
To set your YouTube API key in Ansible’s configuration file, complete the following steps.
Find the configuration repository on your Open edX server. If you are
running Devstack or Fullstack, the directory is
/edx/app/edx_ansible/edx_ansible
.
In that repository, open the playbooks/roles/edxapp/defaults/main.yml
file in a text editor.
Find the line for the YouTube API key.
EDXAPP_YOUTUBE_API_KEY: "PUT_YOUR_API_KEY_HERE"
Replace PUT_YOUR_API_KEY_HERE
with your YouTube API key. Ensure
that the YouTube API key is within by quotation marks.
Save and close the file.
Run Ansible so that it applies your YouTube API key to your Open edX installation. If you are running the Cypress named release, run the following command.
/edx/bin/update edx-platform named-release/cypress
Ansible outputs information to several JSON files used by Open edX. If you prefer not to edit the Ansible configuration, you can edit these files directly.
However, every time you update Open edX, your edits will be overwritten by Ansible. As a result, we recommend setting your YouTube API key in Ansible’s configuration instead.
To set your YouTube API key by editing JSON files, complete the following steps.
Find the edx-platform repository on your Open edX server. If you are
running Devstack or Fullstack, the directory is /edx/app/edxapp/edx-
platform
.
In the directory above your repository, there should be several JSON
files, including lms.auth.json
and cms.auth.json
. If you are running
Devstack or Fullstack, the directory is /edx/app/edxapp
.
Open the lms.auth.json
file in your text editor.
Find the line for the YouTube API key.
"YOUTUBE_API_KEY": "PUT_YOUR_API_KEY_HERE",
Replace PUT_YOUR_API_KEY_HERE
with your YouTube API key. Ensure
that the YouTube API key is within by quotation marks.
Save and close the file.
Open the cms.auth.json
file and make the same change. If that line does
not exist in this file, create it.
Save and close the file.
By default, the Open Response Assessment (ORA2) application stores files that learners upload in an Amazon S3 bucket.
With the Cypress release, you can configure ORA2 to store files in an alternate system. To have learners’ files stored in a system other than Amazon S3, you must complete the following steps.
In the ORA-2 repository, implement the BaseBackend
class defined in the
base.py file.
For example, the S3.py file in the same directory is an implementation of
BaseBackend
for Amazon S3. You must implement the equivalent class for
the storage system you intend to use.
Configure ORA2 to use your alternative storage system by modifying the value
of backend_setting
in init file
to point to your implementation of BaseBackend
.
Add code to instantiate the new implementation to the get_backend()
in
the init.py
file.
Configure ORA2 to use the alternative storage system by modifying the value
of ORA2_FILEUPLOAD_BACKEND
in the Django settings to point to your
implementation of BaseBackend
.
This section is intended for those who are interested in running edX Insights and its dependencies in a production environment. Work to prepare complete installation procedures for edX Insights is in progress. Introductory material is available now.
Course teams use edX Insights to access to data gathered from active courses. Course teams use edX Insights to display charts, summary statistics, and data tables.
The Learning Management System (LMS) gathers data about student activity. This data is aggregated by the edX Analytics Pipeline. The aggregated data is exposed by the edX Analytics Data API. EdX Insights reads the data from the edX Analytics Data API and presents the data to course team members.
The LMS records student actions in tracking log files. The standard
logrotate
utility periodically compresses and copies these files into a
filesystem that can be read by the edX Analytics Pipeline. The LMS also
captures a lot of information in a MySQL database. The edX Analytics Pipeline
connects directly to this database to extract information about students.
The edX Analytics Pipeline reads the MySQL database used by the LMS as well as the tracking log files produced by the LMS. The data is processed and the resulting summary data is published to the result store. The result store is a MySQL database.
Requirements:
The Scheduler schedules the execution of data computation tasks. Data computation tasks are run by the edX Analytics Pipeline. Data computation tasks are used to update parts of the result store.
The edX Analytics Data API provides an HTTP interface for accessing data in the result store. Typically, the data in the result store is updated periodically by the edX Analytics Pipeline.
Requirements:
EdX Insights uses the edX Analytics Data API to present data to users. Users access the data using a supported web browser. EdX Insights communicates directly with the LMS to authenticate users, authorize users and read course structure information.
Requirements:
You must understand the following concepts to install edX Insights and deploy the edX Analytics Pipeline:
All edX Analytics services are designed to be relocatable. This means that they do not require a particular configuration of virtual servers. You are free to choose how the services should be distributed among the resources you have available.
Most of the computation performed by the edX Analytics Pipeline is implemented as Map Reduce jobs that currently must be executed by a Hadoop cluster. You can scale your Hadoop cluster based on your current and projected data sizes. Hadoop clusters can be scaled vertically and horizontally as your data grows. For very small installations of Open edX, a single virtual server should be sufficiently powerful to process your data.
Amazon’s Elastic MapReduce service offers pre-configured Hadoop clusters. If you are able to use Amazon Web Services, use of this service is recommended. Proper installation and configuration of Hadoop can be time consuming.
Additionally, vendors such as Cloudera and MapR offer simplified Hadoop administration experiences.
Hadoop is a distributed system that consists of several different services. It is worth noting that they are Java services and require a non-trivial amount of memory to run. The high memory requirement may prevent you from running all services on the same virtual server if it does not have enough memory available.
The edX Analytics Data API responds to a small number of requests every time a page is loaded in edX Insights. Small installations can probably host both services on the same virtual server. Larger installations will want to consider hosting them on more than one virtual server. A load balancer is recommended for each service that requires more than one virtual server.
The results of computations performed by the edX Analytics Pipeline are stored in a MySQL database. Even small installations should use a different MySQL server than the one used by the LMS. The query patterns of the edX Analytics API are more I/O intensive than usual. Placing both databases on the same server may degrade performance of the Learning Management System.
A small deployment might consist of a single master node and a single core node. The Scheduler is deployed to the master node and periodically executes the edX Analytics Data Pipeline on this server. Additionally, the edX Analytics API, edX Insights and result store are deployed to the master node. These services run continuously.
A large scale deployment consists of a single master node, several core nodes, and many task nodes deployed into a public subnet of a Virtual Private Cloud.
The edX Analytics API and edX Insights are each deployed into an auto-scaling group behind an Elastic Load Balancer which terminates SSL connections and distributes the load among the application servers. The application servers are deployed into a private subnet of the Virtual Private Cloud. A single virtual server is deployed into a private subnet to host the Scheduler. The Relational Database Service is used to deploy a MySQL server into a private subnet. The MySQL database will be used as the result store.
A large deployment that does not use Elastic MapReduce requires additional configuration steps to establish a properly configured environment. A Hadoop cluster is deployed. The master node is considered the node that is running the Job Tracker service for Hadoop 1.X deployments or the Resource Manager service for Hadoop 2.X deployments. Hive and Sqoop are deployed to the master node. Several servers are deployed outside of the Hadoop cluster that host the remainder of the infrastructure. The edX Analytics API and edX Insights services are each deployed to at least one server. The Scheduler is deployed to another server. A MySQL database is deployed to a server that is configured to host a relational database.
This section is intended for those are who are building Open edX mobile applications and customizing an Open edX installation to support their use.
There are currently two edX mobile applications, one for iOS and one for Android. You can find the source code and additional documentation for each application here.
For the mobile API and authentication to work correctly with the edX mobile
applications, you enable them in the lms.env.json
file. You then complete
the setup for authentication by creating OAuth clients and adding their IDs to
the custom configuration file of each mobile application.
Note
Configuration settings added to the lms.env.json
file are reset
to their default values when you use Ansible to update edx-platform.
To enable the mobile application features, follow these steps.
In the edx/app/edxapp/lms.env.json
file, add the following lines to the
features section.
"FEATURES" : {
...
"ENABLE_MOBILE_REST_API": true,
"ENABLE_OAUTH2_PROVIDER": true,
"ENABLE_COMBINED_LOGIN_REGISTRATION": true
}
Save the edx/app/edxapp/lms.env.json
file.
Restart the server.
You create an OAuth client ID and secret that are specific to your installation for use by the mobile applications. The procedure that follows assumes that you create a different client for each of the edX mobile applications.
Before you can create OAuth clients, a superuser must exist on the server. For more information, see edX Managing the Full Stack.
To create your OAuth clients, follow these steps.
http://{your_URL}/admin
.https://{your_URL}/api/mobile/{version}/?app=ios
. While the
console requires values for these fields, they are not used by the edX
mobile applications. You can enter the same value in both fields.The procedure that follows assumes that you have a different OAuth client ID for each edX mobile application.
To configure each edX mobile application with its OAuth client ID, you add a setting to its corresponding custom configuration .yaml file. For information about how to set up custom configuration directories and files, see the GitHub repositories for iOS and Android.
Obtain the OAuth client id for the first application from your Django administration console. For more information, see Create the OAuth Clients.
In your custom GitHub configuration directory, edit the .yaml file for the
edX mobile application for iOS. For example, edit your ios.yaml
file.
Add the following line to the .yaml file.
OAUTH_CLIENT_ID: '{client_id_for_iOS_app}'
Save the file.
Repeat steps 1-4 for the edX mobile application for Android.
Courseware videos must be specifically prepared to ensure that they are in mobile accessible formats. Video modules in mobile-available courses should have low resolution encodings that are readily accessible by mobile devices.
After you obtain a low resolution encoding for a video file and post it online, your course team can add its location to the video module that includes the video in the course structure.
html5_sources
. For
more information, see Video Components in the edX Open Learning XML
Guide.You enable push notifications on the server and then configure each of the edX mobile applications. Currently, you can use Parse for notification delivery.
The procedures that follow assume that you have obtained an application ID, REST API key, and client key from Parse.
To enable the push notification feature, follow these steps.
In the edx/app/edxapp/cms.auth.json
file, add the following lines.
PARSE_KEYS = {
"APPLICATION_ID": "{app_id}",
"REST_API_KEY": "{API_key}"
}
edx/app/edxapp/cms.auth.json
file.http://studio.{your_URL}/admin
.The procedure that follows assumes that you use a single set of Parse credentials for both of the edX mobile applications.
You add push notification settings to the applicable custom configuration .yaml file. For information about how to set up custom configuration directories and files, see the GitHub repositories for iOS and Android.
In your custom GitHub configuration directory, edit the .yaml file that
stores configuration settings that are common to both of the edX mobile
applications. For example, edit your shared.yaml
file.
Add the following lines to the .yaml file.
PARSE:
NOTIFICATIONS_ENABLED: true
APPLICATION_ID: {your application id}
CLIENT_KEY: {your client key}
PUSH_NOTIFICATIONS: true
Save the file.
A - C - D - E - F - G - H - I - K - L - M - N - O - P - R - S - T - V - W - XYZ
A/B Test
See Content Experiment.
About Page
The course page that provides potential students with a course summary, prerequisites, a course video and image, and important dates.
For more information, see The Course Summary Page.
Accessible Label
The descriptive, identifying name that you supply when you add a problem component to your course. All problems require accessible labels.
For more information, see Creating Exercises and Tools.
Advanced Editor
An XML-only editor in a problem component that allows you to can create and edit any type of problem. For more information, see The Advanced Editor.
Assignment Type
The category of graded student work, such as homework, exams, and exercises.
For more information, see Establishing a Grading Policy.
Capa Problem
Any of the problem types implemented in the edX platform by the
capa_module
XBlock. Examples range from text input, drag and drop, and math expression input problem types to circuit schematic builder, custom JavaScript, and chemical equation problem types.Other assessment methods are also available, and implemented using other XBlocks. An open response assessment is an example of a non-capa problem type.
Certificate
A document issued to an enrolled student who successfully completes a course. Not all edX courses offer certificates, and not all students enroll as certificate candidates.
Chapter
See Section.
Checkbox Problem
A problem that prompts the student to select one or more options from a list of possible answers. For more information, see Checkbox Problem.
Chemical Equation Response Problem
A problem that allows the student to enter chemical equations as answers. For more information, see Chemical Equation Problem.
Circuit Schematic Builder Problem
A problem that allows the student to construct a schematic answer (such as an electronics circuit) on an interactive grid.
For more information, see Circuit Schematic Builder Problem.
Closed Captions
See Transcript.
Cohort
A group of students who participate in a class together. Students who are in the same cohort group can communicate and share experiences in private discussions.
Cohorts are an optional feature of courses on the edX platform. For information about how you enable the cohort feature, set up cohorts, and assign students to them, see Using Cohorts in Your Courses.
Component
The part of a unit that contains your actual course content. A unit can contain one or more components. For more information, see Developing Course Components.
Content Experiment
You can define alternative course content to be delivered to different, randomly assigned groups of students. Also known as A/B or split testing, you use content experiments to compare the performance of students who have been exposed to different versions of the content. For more information, see Creating Content Experiments.
Content Library
See Library.
Content-Specific Discussion Topic
A category within the course discussion that appears at a defined point in the course to encourage questions and conversations. To add a content-specific discussion topic to your course, you add a discussion component to a unit. Students cannot contribute to a content-specific discussion topic until the release date of the section that contains it.
For more information, see Working with Discussion Components and Creating Discussion Topics for Your Course.
Course Catalog
The page that lists all courses offered in the edX learning management system.
Course Handouts
Course handouts are files you make available to students in the Course Info page.
For more information, see Add Course Handouts.
Course Info Page
The page that opens first every time students access your course. You can post announcements on the Course Info page. The Course Handouts sidebar appears in the right pane of this page.
Course Run
The term or time frame in which a specific offering of your course takes place. You set the course run when you create your course. For more information, see Create a New Course.
Courseware
The page where students access the primary instructional materials for your course. Sections, subsections, units, and components are all accessed from the Courseware page.
Course-Wide Discussion Topic
Optional categories that you create to guide how students find and share information in the course discussion. Examples of course-wide discussion topics include Announcements and Frequently Asked Questions. Students can contribute to these topics as soon as your course starts.
For more information, see Creating Discussion Topics for Your Course.
Custom Response Problem
A custom response problem evaluates text responses from students using an embedded Python script. These problems are also called “write-your-own- grader” problems. For more information, see Write-Your-Own-Grader Problem.
Data Czar
A data czar is the single representative at a partner institution who is responsible for receiving course data from edX, and transferring it securely to researchers and other interested parties after it is received.
For more information, see the edX Research Guide.
Discussion
The set of topics defined to promote course-wide or unit-specific dialog. Students use the discussion topics to communicate with each other and the course team in threaded exchanges.
For more information, see Managing Course Discussions.
Discussion Component
Discussion topics that course teams add directly to units. For example, a video component can be followed by a discussion component so that students can discuss the video content without having to leave the page. When you add a discussion component to a unit, you create a content-specific discussion topic.
For more information, see Working with Discussion Components.
Dropdown Problem
A problem that asks students to choose from a collection of answer options, presented as a drop-down list. For more information, see Dropdown Problem.
edX101
An online course about how to create online courses. The intended audience for edX101 is faculty and university administrators.
edX Edge
Edge is a less restricted site than edX.org. While only edX employees and consortium members can create and post content on edX.org, any users with course creator permissions for Edge can create courses with Studio on studio.edge.edx.org, then view the courses on the learning management system at edge.edx.org.
edX Studio
The edX tool that you use to build your courses.
For more information, see What is Studio?.
Exercises
Practice or practical problems interspersed in edX course content to keep the learner engaged. Exercises are also an important measure of teaching effectiveness and learner comprehension.
Export
A tool in edX Studio that you use to export your course or library for backup purposes, or so that you can edit the course or library directly in XML format. See also Import.
For more information, see Export a Course or Export a Library.
Grade Range
Thresholds that specify how numerical scores are associated with grades, and the score a student must obtain to pass a course.
For more information, see Set the Grade Range.
Grading Rubric
See Rubric.
HTML Component
A type of component that you can use to add and format text for your course. An HTML component can contain text, lists, links, and images.
For more information, see Working with HTML Components.
Image Mapped Input Problem
A problem that presents an image and accepts clicks on the image as an answer.
For more information, see Image Mapped Input Problem.
Import
A tool in edX Studio that you use to load a course or library in XML format into your existing course or library. When you use the Import tool, Studio replaces all of your existing course or library content with the content from the imported course or library. See also Export.
For more information, see Import a Course or Import a Library.
Keyword
A variable in a bulk email message. When you send the message, a value that is specific to the each recipient is substituted for the keyword.
Label
See Accessible Label.
LaTeX
A document markup language and document preparation system for the TeX typesetting program.
In edX Studio, you can import LaTeX code.
You can also create a problem written in LaTeX.
Learning Management System (LMS)
The platform that students use to view courses, and that course team members use to manage learner enrollment, assign team member privileges, moderate discussions, and access data while the course is running.
Learning Sequence
The horizontal navigation bar that appears at the top of the Courseware page in the LMS. The learning sequence contains an icon for each unit in the selected subsection. When a learner moves the cursor over one of these icons, the names of each component in that unit appear.
Left Pane
The navigation frame that appears at the left side of the Courseware page in the LMS. The left pane shows the sections in the course. When you click a section, the section expands to show subsections.
Library
A pool of components for use in randomized assignments that can be shared across multiple courses from your organization. Course teams configure randomized content blocks in course outlines to reference a specific library and randomly provide a specified number of problems from that library to each student.
For more information, see Libraries Overview.
Live Mode
A view that allows the course team to review all published units as students see them, regardless of the release dates of the section and subsection that contain the units.
For more information, see View Your Live Course.
LON-CAPA
The LearningOnline Network with Computer-Assisted Personalized Approach e-learning platform. The structure of capa problem types in the edX platform is based on the LON-CAPA assessment system, although they are not compatible.
See Capa Problems.
Math Expression Input Problem
A problem that requires students to enter a mathematical expression as text, such as e=m*c^2.
For more information, see Entering Mathematical and Scientific Expressions.
MathJax
A LaTeX-like language that you use to write equations. Studio uses MathJax to render text input such as x^2 and sqrt(x^2-4) as “beautiful math.”
For more information, see A Brief Introduction to MathJax in Studio.
Module
An item of course content, created in an XBlock, that appears on the Courseware page in the edX learning management system. Examples of modules include videos, HTML-formatted text, and problems.
Module is also used to refer to the structural components that organize course content. Sections, subsections, and units are modules; in fact, the course itself is a top-level module that contains all of the other course content as children.
Multiple Choice Problem
A problem that asks students to select one answer from a list of options.
For more information, see Multiple Choice Problem.
Numerical Input Problem
A problem that asks students to enter numbers or specific and relatively simple mathematical expressions.
For more information, see Numerical Input Problem.
Open Response Assessment
A type of assignment that allows learners to answer using text and, optionally, an image, as in a short essay. Learners then evaluate each others’ work by comparing each response to a rubric created by the course team. These assignments can also include a self assessment, in which learners compare their own responses to the rubric.
For more information, see Open Response Assessments.
Pages
Pages organize course materials into categories that students select in the learning management system. Pages provide access to the courseware and to tools and uploaded files that supplement the course. Each page appears in your course’s navigation bar.
For more information, see Adding Pages to a Course.
Pre-Roll Video
A short video file that plays before the video component selected by the learner. Pre-roll videos play automatically, on an infrequent schedule.
For more information, see Adding a Pre-Roll Video.
Preview Mode
A view that allows you to see all the units of your course as students see them, regardless of the unit status and regardless of whether the release dates have passed.
For more information, see Preview Course Content.
Problem Component
A component that allows you to add interactive, automatically graded exercises to your course content. You can create many different types of problems.
For more information, see Working with Problem Components.
Progress Page
The page in the learning management system that shows students their scores on graded assignments in the course.
Question
A question is a type of contribution that you can make to a course discussion topic to bring attention to an issue that the discussion moderation team or other students can resolve.
For more information, see Managing Course Discussions.
Rubric
A list of the items that a student’s response should cover in an open response assessment.
For more information, see Rubric.
Section
The topmost category in your course outline. A section can represent a time period or another organizing principle for course content. A section contains one or more subsections.
For more information, see Developing Course Sections.
Sequential
See Subsection.
Short Course Description
The description of your course that appears on the edX Course List page.
For more information, see Describe Your Course.
Simple Editor
The graphical user interface in a problem component that contains formatting buttons and is available for some problem types. For more information, see The Studio View of a Problem.
Split Test
See Content Experiment.
Subsection
A division in the course outline that represents a topic in your course, such as a lesson or another organizing principle. Subsections are defined inside sections and contain units.
For more information, see Developing Course Subsections.
Text Input Problem
A problem that asks the student to enter a line of text, which is then checked against a specified expected answer.
For more information, see Text Input Problem.
Transcript
A text version of the content of a video. You can make video transcripts available to students.
For more information, see Working with Video Components.
Unit
A unit is a division in the course outline that represents a lesson. Learners view all of the content in a unit on a single page.
For more information, see Developing Course Units.
Vertical
See Unit.
Video Component
A component that you can use to add recorded videos to your course.
For more information, see Working with Video Components.
Wiki
The page in each edX course that allows both students and members of the course team to add, modify, or delete content.
Students can use the wiki to share links, notes, and other helpful information with each other.
For more information, see Hide or Show the Course Wiki Page.
XBlock
EdX’s component architecture for writing courseware components: XBlocks are the components that deliver course content to learners.
Third parties can create components as web applications that can run within the edX learning management system.
XSeries
A set of related courses in a specific subject. Learners qualify for an XSeries certificate when they pass all of the courses in the XSeries.
For more information, see https://www.edx.org/xseries.