Open edX 平台是一个面向服务的平台,用于创作和提供任何规模的在线学习。该平台是用 Python 和 JavaScript 编写的,并广泛使用 Django 框架。在最高级别,该平台由一个整体、一些独立可部署应用程序(IDA)和基于 ReactJS 的微前端(MFE)组成。
该存储库托管位于 Open edX 平台中心的整体架构。从功能上讲,edx-platform 存储库提供两项服务:
文档可以在 https://docs.openedx.org/projects/edx-platform 找到。
安装和运行 Open edX 实例并不简单。我们强烈建议您使用服务提供商来为您运行该软件。他们提供免费试用,让您可以轻松上手:https://openedx.org/get-started/
但是,如果您有时间和专业知识,则可以自行管理生产 Open edX 实例。为了帮助您构建、自定义、升级和扩展实例,我们建议使用 Tutor,这是社区支持的、基于 Docker 的 Open edX 发行版。
您可以在 docs.openedx.org 上的 Site Ops 主页中阅读有关设置和运行 Tutor 部署的更多信息。
Tutor 还具有开发模式,该模式也将帮助您修改、测试和扩展 edx 平台。我们向所有 Open edX 开发人员推荐此方法。
还可以直接在 Linux 主机上启动 Open edX 平台。这种方法不太常见,而且大多没有记录。 Open edX 社区只能为其提供有限的支持。
运行“裸机”仅适用于 (a) 寻求冒险的开发人员和 (b) 愿意将 Open edX 配置和部署的复杂性掌握在自己手中的经验丰富的系统管理员。
操作系统: * Ubuntu 20.04
解释器/工具:
服务:
语言包:
前端:
npm clean-install
(生产)npm clean-install --dev
(开发)后端构建:
pip install -r requirements/edx/assets.txt
后端应用:
pip install -r requirements/edx/base.txt
(生产)pip install -r requirements/edx/dev.txt
(开发)一些 Python 包具有系统依赖性。例如,在 Debian 或 Ubuntu 上安装这些软件包需要首先运行sudo apt install python3-dev default-libmysqlclient-dev build-essential pkg-config
以满足mysqlclient
Python 软件包的要求。
创建两个 MySQL 数据库和一个对这两个数据库都具有写入权限的 MySQL 用户,并通过更新DATABASES
设置将 Django 配置为使用它们。
然后,运行迁移:
./manage.py lms 迁移 ./manage.py lms migrate --database=student_module_history ./manage.py cms 迁移
构建静态资产(更多详细信息,请参阅构建静态资产):
npm run build # 或 'build-dev'
下载语言环境并收集静态资源(对于开发站点可以跳过):
进行 pull_translations ./manage.py lms 收集静态 ./manage.py cms 收集静态
设置 CMS SSO(用于开发):
./manage.py lms manage_user studio_worker [email protected] --unusable-password # 不要在生产中这样做。这将使您的身份验证不安全。 ./manage.py lms create_dot_application studio-sso-id studio_worker --grant-type 授权码 --跳过授权 --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --范围 user_id --client-id 'studio-sso-id' --client-secret 'studio-sso-secret'
设置 CMS SSO(用于生产):
创建 CMS 用户和 OAuth 应用程序:
./manage.py lms manage_user studio_worker--unusable-password ./manage.py lms create_dot_application studio-sso-id studio_worker --grant-type 授权码 --跳过授权 --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --范围 user_id
登录 Django admin(例如 http://localhost:18000/admin/oauth2_provider/application/),单击您在上面创建的应用程序( studio-sso-id
),然后复制其“客户端密钥”。
在您的私有 LMS_CFG yaml 文件或私有 Django 设置模块中:
- 将
SOCIAL_AUTH_EDX_OAUTH2_KEY
设置为客户端 ID (studio-sso-id
)。- 将
SOCIAL_AUTH_EDX_OAUTH2_SECRET
设置为客户端密钥(您复制的)。
首先,确保 MySQL、Mongo 和 Memcached 正在运行。
启动学习管理系统:
./manage.py lms runserver 18000
启动CMS:
./manage.py cms runserver 18010
这将为您提供一个几乎无头的 Open edX 平台。大多数前端已迁移到“微前端(MFE)”,需要单独安装和运行。您至少需要运行身份验证 MFE、学习者主页 MFE 和学习 MFE 才能有意义地导航 UI。
除非另有说明,此存储库中的代码根据 AGPL 第 3 版获得许可。详细信息请参阅许可证文件。
请访问 Open edX 网站,了解有关 Open edX 世界的更多信息。您可以找到有关托管、扩展和贡献 Open edX 软件的信息。此外,Open edX 网站还提供产品公告、Open edX 博客和其他丰富的社区资源。
如果您遇到问题,我们在 https://discuss.openedx.org 上设有讨论论坛,您可以在其中与社区中的其他人联系。
我们的实时对话是在 Slack 上进行的。您可以请求 Slack 邀请,然后加入我们的社区 Slack 团队。
有关这些选项的更多信息,请参阅获取帮助页面。
我们使用 Github Issues 作为我们的问题跟踪器。您可以搜索以前报告的问题。如果您需要报告错误,或者想在实现新功能之前对其进行讨论,请创建一个新问题。
欢迎贡献!第一步是提交已签署的个人贡献者协议。请参阅我们的贡献文件以获取更多信息——它还包含如何保持高代码质量的指南,这将使您的贡献更有可能被接受。
新功能被接受。在编写代码之前与维护人员讨论您的新想法也会增加您的工作被接受的机会。
请阅读社区行为准则以与此存储库交互。
请不要在公共场合报告安全问题。请发送电子邮件至 [email protected]。
该存储库的当前维护者可以在 Backstage 上找到。