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 上找到。