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 인스턴스를 자체 관리하는 것이 가능합니다. 인스턴스를 구축, 사용자 정의, 업그레이드 및 확장하는 데 도움이 되도록 커뮤니티에서 지원하는 Docker 기반 Open edX 배포판인 Tutor를 사용하는 것이 좋습니다.
docs.openedx.org의 Site Ops 홈에서 Tutor 배포 시작 및 실행에 대한 자세한 내용을 읽을 수 있습니다.
Tutor에는 edx 플랫폼을 수정, 테스트 및 확장하는 데 도움이 되는 개발 모드도 있습니다. 모든 Open edX 개발자에게 이 방법을 권장합니다.
Linux 호스트에서 직접 Open edX 플랫폼을 가동하는 것도 가능합니다. 이 방법은 덜 일반적이며 대부분 문서화되지 않았습니다. Open edX 커뮤니티는 이에 대해 제한된 지원만 제공할 수 있습니다.
"베어 메탈" 실행은 (a) 모험을 추구하는 개발자와 (b) Open edX 구성 및 배포의 복잡성을 직접 처리하려는 숙련된 시스템 관리자에게만 권장됩니다.
OS: * 우분투 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 마이그레이션 --database=student_module_history ./manage.py cms 마이그레이션
정적 자산 구축(자세한 내용은 정적 자산 구축 참조):
npm 실행 빌드 # 또는 'build-dev'
로케일을 다운로드하고 정적 자산을 수집합니다(개발 사이트에서는 건너뛸 수 있음):
pull_translation을 만드세요 ./manage.py lms 수집정적 ./manage.py cms 수집 정적
CMS SSO 설정(개발용):
./manage.py lms prepare_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 --클라이언트-id 'studio-sso-id' --client-secret 'studio-sso-secret'
CMS SSO 설정(프로덕션용):
CMS 사용자 및 OAuth 애플리케이션을 생성합니다.
./manage.py lms prepare_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 관리자(예: 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가 실행 중인지 확인하세요.
LMS를 시작합니다:
./manage.py lms runserver 18000
CMS를 시작합니다:
./manage.py cms runserver 18010
이는 대부분 헤드리스 Open edX 플랫폼을 제공합니다. 대부분의 프런트엔드는 별도로 설치하고 실행해야 하는 "Micro-Frontends(MFE)"로 마이그레이션되었습니다. UI를 의미 있게 탐색하려면 최소한 인증 MFE, 학습자 홈 MFE 및 학습 MFE를 실행해야 합니다.
이 저장소의 코드는 달리 명시되지 않는 한 AGPL 버전 3에 따라 라이센스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
Open edX 세계에 대해 자세히 알아보려면 Open edX 사이트를 참조하세요. Open edX 소프트웨어 호스팅, 확장 및 기여에 대한 정보를 찾을 수 있습니다. 또한 Open edX 사이트에서는 제품 발표, Open edX 블로그 및 기타 풍부한 커뮤니티 리소스를 제공합니다.
문제가 있는 경우 https://discuss.openedx.org에 토론 포럼이 있어 커뮤니티의 다른 사람들과 소통할 수 있습니다.
실시간 대화는 Slack에서 진행됩니다. Slack 초대를 요청한 후 커뮤니티 Slack 팀에 합류할 수 있습니다.
이러한 옵션에 대한 자세한 내용은 도움말 얻기 페이지를 참조하세요.
우리는 이슈 트래커로 Github Issues를 사용합니다. 이전에 제보된 이슈를 검색할 수 있습니다. 버그를 보고해야 하거나 새로운 기능을 구현하기 전에 논의하고 싶다면 새 이슈를 생성하세요.
기여를 환영합니다! 첫 번째 단계는 서명된 개별 기여자 계약서를 제출하는 것입니다. 자세한 내용은 CONTRIBUTING 파일을 참조하세요. 여기에는 높은 코드 품질을 유지하는 방법에 대한 지침도 포함되어 있어 여러분의 기여가 승인될 가능성이 높아집니다.
새로운 기능이 허용됩니다. 코드를 작성하기 전에 관리자와 새로운 아이디어를 논의하면 작업이 승인될 가능성도 높아집니다.
이 저장소와 상호 작용하려면 커뮤니티 행동 강령을 읽어 보십시오.
공개적으로 보안 문제를 보고하지 마십시오. [email protected]로 이메일을 보내주세요.
이 저장소의 현재 관리자는 Backstage에서 찾을 수 있습니다.