Die Open edX-Plattform ist eine serviceorientierte Plattform für die Erstellung und Bereitstellung von Online-Lernen in jedem Umfang. Die Plattform ist in Python und JavaScript geschrieben und nutzt umfassend das Django-Framework. Auf der höchsten Ebene besteht die Plattform aus einem Monolithen, einigen unabhängig einsetzbaren Anwendungen (IDAs) und Mikro-Frontends (MFEs), die auf ReactJS basieren.
Dieses Repository beherbergt den Monolithen im Zentrum der Open edX-Plattform. Funktionell stellt das edx-Plattform-Repository zwei Dienste bereit:
Die Dokumentation finden Sie unter https://docs.openedx.org/projects/edx-platform.
Die Installation und Ausführung einer Open edX-Instanz ist nicht einfach. Wir empfehlen Ihnen dringend, die Software von einem Dienstleister ausführen zu lassen. Es gibt kostenlose Testversionen, die den Einstieg erleichtern: https://openedx.org/get-started/
Wenn Sie jedoch über die Zeit und das Fachwissen verfügen, ist es möglich, eine Open edX-Produktionsinstanz selbst zu verwalten. Um Sie beim Erstellen, Anpassen, Aktualisieren und Skalieren Ihrer Instanz zu unterstützen, empfehlen wir die Verwendung von Tutor, der von der Community unterstützten, Docker-basierten Open edX-Distribution.
Weitere Informationen zur Inbetriebnahme einer Tutor-Bereitstellung finden Sie auf der Site Ops-Homepage unter docs.openedx.org.
Tutor verfügt außerdem über einen Entwicklungsmodus, der Ihnen auch beim Modifizieren, Testen und Erweitern der edx-Plattform hilft. Wir empfehlen diese Methode allen Open edX-Entwicklern.
Es ist auch möglich, eine Open edX-Plattform direkt auf einem Linux-Host einzurichten. Diese Methode ist weniger verbreitet und größtenteils nicht dokumentiert. Die Open edX-Community wird dafür nur begrenzten Support leisten können.
Der Einsatz von „Bare Metal“ ist nur für (a) Entwickler auf der Suche nach Abenteuern und (b) erfahrene Systemadministratoren, die bereit sind, die Komplexität der Open edX-Konfiguration und -Bereitstellung selbst in die Hand zu nehmen, empfehlenswert.
Betriebssystem: * Ubuntu 20.04
Interpreten/Tools:
Leistungen:
Sprachpakete:
Frontend:
npm clean-install
(Produktion)npm clean-install --dev
(Entwicklung)Backend-Build:
pip install -r requirements/edx/assets.txt
Backend-Anwendung:
pip install -r requirements/edx/base.txt
(Produktion)pip install -r requirements/edx/dev.txt
(Entwicklung) Einige Python-Pakete weisen Systemabhängigkeiten auf. Wenn Sie diese Pakete beispielsweise unter Debian oder Ubuntu installieren möchten, müssen Sie zuerst sudo apt install python3-dev default-libmysqlclient-dev build-essential pkg-config
ausführen, um die Anforderungen des mysqlclient
-Python-Pakets zu erfüllen.
Erstellen Sie zwei MySQL-Datenbanken und einen MySQL-Benutzer mit Schreibberechtigungen für beide und konfigurieren Sie Django für deren Verwendung, indem Sie die Einstellung DATABASES
aktualisieren.
Führen Sie dann Migrationen aus:
./manage.py lms migrieren ./manage.py lms migrate --database=student_module_history ./manage.py cms migrieren
Erstellen Sie statische Assets (weitere Informationen finden Sie unter Erstellen statischer Assets):
npm run build # oder „build-dev“
Laden Sie Gebietsschemata herunter und sammeln Sie statische Assets (kann für Entwicklungsseiten übersprungen werden):
mache pull_translations ./manage.py lms Collectstatic ./manage.py cms Collectstatic
CMS SSO einrichten (für die Entwicklung):
./manage.py lms manage_user studio_worker [email protected] --unusable-password # Tun Sie dies nicht in der Produktion. Dadurch wird Ihre Authentifizierung unsicher. ./manage.py lms create_dot_application studio-sso-id studio_worker --grant-type-Autorisierungscode --skip-authorization --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --scopes Benutzer-ID --client-id 'studio-sso-id' --client-secret 'studio-sso-secret'
CMS SSO (für die Produktion) einrichten:
Erstellen Sie den CMS-Benutzer und die OAuth-Anwendung:
./manage.py lms manage_user studio_worker--unusable-password ./manage.py lms create_dot_application studio-sso-id studio_worker --grant-type-Autorisierungscode --skip-authorization --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --scopes Benutzer-ID
Melden Sie sich beim Django-Administrator an (z. B. http://localhost:18000/admin/oauth2_provider/application/), klicken Sie auf die oben erstellte Anwendung ( studio-sso-id
) und kopieren Sie deren „Client-Geheimnis“.
In Ihrer privaten LMS_CFG-Yaml-Datei oder Ihrem privaten Django-Einstellungsmodul:
- Setzen Sie
SOCIAL_AUTH_EDX_OAUTH2_KEY
auf die Client-ID (studio-sso-id
).- Setzen Sie
SOCIAL_AUTH_EDX_OAUTH2_SECRET
auf den geheimen Clientschlüssel (den Sie kopiert haben).
Stellen Sie zunächst sicher, dass MySQL, Mongo und Memcached ausgeführt werden.
Starten Sie das LMS:
./manage.py lms runserver 18000
Starten Sie das CMS:
./manage.py cms runserver 18010
Dadurch erhalten Sie eine weitgehend kopflose Open edX-Plattform. Die meisten Frontends wurden auf „Micro-Frontends (MFEs)“ migriert, die separat installiert und ausgeführt werden müssen. Als absolutes Minimum müssen Sie Authentifizierungs-MFE, Learner Home MFE und Learning MFE ausführen, um sinnvoll in der Benutzeroberfläche navigieren zu können.
Sofern nicht anders angegeben, ist der Code in diesem Repository unter Version 3 der AGPL lizenziert. Weitere Informationen finden Sie in der LIZENZ-Datei.
Besuchen Sie die Open edX-Website, um mehr über die Open edX-Welt zu erfahren. Hier finden Sie Informationen zum Hosten, Erweitern und Mitwirken an der Open edX-Software. Darüber hinaus bietet die Open edX-Site Produktankündigungen, den Open edX-Blog und andere umfangreiche Community-Ressourcen.
Wenn Sie Probleme haben, haben wir Diskussionsforen unter https://discuss.openedx.org, in denen Sie mit anderen Mitgliedern der Community in Kontakt treten können.
Unsere Echtzeitgespräche finden auf Slack statt. Sie können eine Slack-Einladung anfordern und dann unserem Community-Slack-Team beitreten.
Weitere Informationen zu diesen Optionen finden Sie auf der Seite „Hilfe bekommen“.
Wir verwenden Github Issues für unseren Issue-Tracker. Sie können nach zuvor gemeldeten Problemen suchen. Wenn Sie einen Fehler melden müssen oder eine neue Funktion vor der Implementierung besprechen möchten, erstellen Sie bitte ein neues Problem.
Beiträge sind willkommen! Der erste Schritt besteht darin, eine unterzeichnete Einzelbeitragsvereinbarung einzureichen. Weitere Informationen finden Sie in unserer CONTRIBUTING-Datei. Sie enthält auch Richtlinien zur Aufrechterhaltung einer hohen Codequalität, die die Wahrscheinlichkeit erhöht, dass Ihr Beitrag angenommen wird.
Neue Funktionen werden akzeptiert. Wenn Sie Ihre neuen Ideen mit den Betreuern besprechen, bevor Sie Code schreiben, erhöhen sich auch die Chancen, dass Ihre Arbeit angenommen wird.
Bitte lesen Sie den Community-Verhaltenskodex für die Interaktion mit diesem Repository.
Bitte melden Sie Sicherheitsprobleme nicht öffentlich. Bitte senden Sie eine E-Mail an [email protected].
Die aktuellen Betreuer dieses Repositorys finden Sie auf Backstage.