La plateforme Open edX est une plateforme orientée services pour la création et la diffusion d'apprentissages en ligne à toute échelle. La plateforme est écrite en Python et JavaScript et utilise largement le framework Django. Au plus haut niveau, la plateforme est composée d'un monolithe, de quelques applications déployables indépendamment (IDA) et de micro-frontends (MFE) basés sur ReactJS.
Ce référentiel héberge le monolithe au centre de la plateforme Open edX. Fonctionnellement, le référentiel edx-platform fournit deux services :
La documentation peut être trouvée sur https://docs.openedx.org/projects/edx-platform.
Installer et exécuter une instance Open edX n’est pas simple. Nous vous recommandons fortement de faire appel à un fournisseur de services pour exécuter le logiciel à votre place. Ils proposent des essais gratuits qui facilitent la mise en route : https://openedx.org/get-started/
Cependant, si vous avez le temps et l’expertise, il est alors possible de gérer vous-même une instance Open edX de production. Pour vous aider à créer, personnaliser, mettre à niveau et faire évoluer votre instance, nous vous recommandons d'utiliser Tutor, la distribution Open edX basée sur Docker et prise en charge par la communauté.
Vous pouvez en savoir plus sur la mise en route avec un déploiement Tutor sur la page d'accueil Site Ops sur docs.openedx.org.
Tutor propose également un mode de développement qui vous aidera également à modifier, tester et étendre la plateforme edx. Nous recommandons cette méthode à tous les développeurs Open edX.
Il est également possible de faire tourner une plateforme Open edX directement sur un hôte Linux. Cette méthode est moins courante et pour la plupart non documentée. La communauté Open edX ne pourra lui fournir qu’un support limité.
L'exécution "bare metal" n'est recommandée que pour (a) les développeurs en quête d'aventure et (b) les administrateurs système expérimentés qui sont prêts à prendre en main la complexité de la configuration et du déploiement d'Open edX.
Système d'exploitation : * Ubuntu 20.04
Interprètes/Outils :
Services:
Forfaits linguistiques :
L'extrémité avant:
npm clean-install
(production)npm clean-install --dev
(développement)Construction back-end :
pip install -r requirements/edx/assets.txt
Application back-end :
pip install -r requirements/edx/base.txt
(production)pip install -r requirements/edx/dev.txt
(développement) Certains packages Python ont des dépendances système. Par exemple, l'installation de ces packages sur Debian ou Ubuntu nécessitera d'abord d'exécuter sudo apt install python3-dev default-libmysqlclient-dev build-essential pkg-config
pour satisfaire aux exigences du package Python mysqlclient
.
Créez deux bases de données MySQL et un utilisateur MySQL avec des autorisations d'écriture sur les deux, et configurez Django pour les utiliser en mettant à jour le paramètre DATABASES
.
Ensuite, exécutez les migrations :
./manage.py lms migre ./manage.py lms migrate --database=student_module_history ./manage.py cms migrer
Créez des actifs statiques (pour plus de détails, consultez Création d'actifs statiques) :
npm run build # ou 'build-dev'
Téléchargez les paramètres régionaux et collectez les ressources statiques (peut être ignoré pour les sites de développement) :
faire pull_translations ./manage.py lms collectstatic ./manage.py cms collectstatic
Configurer le CMS SSO (pour le développement) :
./manage.py lms manage_user studio_worker [email protected] --unusable-password # NE FAITES PAS CELA EN PRODUCTION. Cela rendra votre authentification non sécurisée. ./manage.py lms create_dot_application studio-sso-id studio_worker --grant-type code-autorisation --skip-autorisation --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --scopes id_utilisateur --client-id 'studio-sso-id' --client-secret 'studio-sso-secret'
Configurer le CMS SSO (pour la production) :
Créez l'utilisateur CMS et l'application OAuth :
./manage.py lms manage_user studio_worker--unusable-password ./manage.py lms create_dot_application studio-sso-id studio_worker --grant-type code-autorisation --skip-autorisation --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --scopes identifiant_utilisateur
Connectez-vous à l'administrateur Django (par exemple http://localhost:18000/admin/oauth2_provider/application/), cliquez sur l'application que vous avez créée ci-dessus ( studio-sso-id
) et copiez son "Secret client".
Dans votre fichier yaml privé LMS_CFG ou votre module de paramètres privé Django :
- Définissez
SOCIAL_AUTH_EDX_OAUTH2_KEY
sur l'ID client (studio-sso-id
).- Définissez
SOCIAL_AUTH_EDX_OAUTH2_SECRET
sur le secret client (que vous avez copié).
Tout d’abord, assurez-vous que MySQL, Mongo et Memcached sont en cours d’exécution.
Démarrez le LMS :
./manage.py lms serveur d'exécution 18000
Démarrez le CMS :
./manage.py cms serveur d'exécution 18010
Cela vous donnera une plate-forme Open edX principalement sans tête. La plupart des frontends ont été migrés vers des « Micro-Frontends (MFE) » qui doivent être installés et exécutés séparément. Au strict minimum, vous devrez exécuter Authentication MFE, Learner Home MFE et Learning MFE afin de naviguer de manière significative dans l’interface utilisateur.
Le code de ce référentiel est sous licence sous la version 3 de l'AGPL, sauf indication contraire. Veuillez consulter le fichier LICENCE pour plus de détails.
Consultez le site Open edX pour en savoir plus sur le monde Open edX. Vous pouvez trouver des informations sur l'hébergement, l'extension et la contribution au logiciel Open edX. De plus, le site Open edX propose des annonces de produits, le blog Open edX et d'autres ressources communautaires riches.
Si vous rencontrez des problèmes, nous disposons de forums de discussion sur https://discuss.openedx.org où vous pouvez vous connecter avec d'autres membres de la communauté.
Nos conversations en temps réel se déroulent sur Slack. Vous pouvez demander une invitation Slack, puis rejoindre notre équipe communautaire Slack.
Pour plus d'informations sur ces options, consultez la page Obtenir de l'aide.
Nous utilisons Github Issues pour notre outil de suivi des problèmes. Vous pouvez rechercher des problèmes signalés précédemment. Si vous devez signaler un bug ou si vous souhaitez discuter d'une nouvelle fonctionnalité avant de la mettre en œuvre, veuillez créer un nouveau problème.
Les contributions sont les bienvenues ! La première étape consiste à soumettre un accord de contributeur individuel signé. Consultez notre fichier CONTRIBUTION pour plus d’informations – il contient également des lignes directrices sur la façon de maintenir une qualité de code élevée, ce qui rendra votre contribution plus susceptible d’être acceptée.
De nouvelles fonctionnalités sont acceptées. Discuter de vos nouvelles idées avec les responsables avant d'écrire du code augmentera également les chances que votre travail soit accepté.
Veuillez lire le code de conduite de la communauté pour interagir avec ce référentiel.
Veuillez ne pas signaler les problèmes de sécurité en public. Veuillez envoyer un e-mail à [email protected].
Les responsables actuels de ce référentiel peuvent être trouvés sur Backstage.