แพลตฟอร์ม Open edX เป็นแพลตฟอร์มที่มุ่งเน้นการบริการสำหรับการเขียนและนำเสนอการเรียนรู้ออนไลน์ในทุกขนาด แพลตฟอร์มนี้เขียนด้วย Python และ JavaScript และใช้งานเฟรมเวิร์ก Django อย่างกว้างขวาง ในระดับสูงสุด แพลตฟอร์มประกอบด้วยโมโนลิธ แอปพลิเคชันที่สามารถปรับใช้ได้อย่างอิสระ (IDA) และไมโครฟรอนต์เอนด์ (MFE) ที่ใช้ ReactJS
พื้นที่เก็บข้อมูลนี้โฮสต์เสาหินที่ศูนย์กลางของแพลตฟอร์ม Open edX ในด้านการใช้งาน พื้นที่เก็บข้อมูลแพลตฟอร์ม edx มีสองบริการ:
สามารถดูเอกสารได้ที่https://docs.openedx.org/projects/edx-platform
การติดตั้งและใช้งานอินสแตนซ์ Open edX ไม่ใช่เรื่องง่าย เราขอแนะนำอย่างยิ่งให้คุณใช้ผู้ให้บริการเพื่อเรียกใช้ซอฟต์แวร์สำหรับคุณ มีการทดลองใช้ฟรีที่ทำให้ง่ายต่อการเริ่มต้น: https://openedx.org/get-started/
อย่างไรก็ตาม หากคุณมีเวลาและความเชี่ยวชาญ คุณสามารถจัดการอินสแตนซ์ Open edX ที่ใช้งานจริงได้ด้วยตนเอง เพื่อช่วยคุณสร้าง ปรับแต่ง อัปเกรด และปรับขนาดอินสแตนซ์ของคุณ เราขอแนะนำให้ใช้ Tutor ซึ่งเป็นการแจกจ่าย Open edX บน Docker ที่สนับสนุนโดยชุมชน
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับการเริ่มต้นและใช้งาน Tutor ได้ที่หน้าแรกของ Site Ops บน docs.openedx.org
Tutor ยังมีโหมดการพัฒนาซึ่งจะช่วยคุณแก้ไข ทดสอบ และขยายแพลตฟอร์ม edx อีกด้วย เราขอแนะนำวิธีนี้สำหรับนักพัฒนา Open edX ทุกคน
คุณยังสามารถสร้างแพลตฟอร์ม Open edX ได้โดยตรงบนโฮสต์ Linux วิธีนี้พบได้น้อยและส่วนใหญ่ไม่มีเอกสารประกอบ ชุมชน Open edX จะสามารถให้การสนับสนุนได้อย่างจำกัดเท่านั้น
การใช้งาน "bare metal" แนะนำให้ใช้เฉพาะสำหรับ (ก) นักพัฒนาที่กำลังมองหาการผจญภัยและ (ข) ผู้ดูแลระบบที่มีประสบการณ์ซึ่งยินดีรับความซับซ้อนของการกำหนดค่า 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 หนึ่งรายที่มีสิทธิ์เขียนทั้งสองฐานข้อมูล และกำหนดค่า Django ให้ใช้งานได้โดยอัปเดตการตั้งค่า DATABASES
จากนั้น เรียกใช้การย้ายข้อมูล:
./manage.py lms โยกย้าย ./manage.py lms โยกย้าย --database=student_module_history ./manage.py cms โยกย้าย
สร้างสินทรัพย์คงที่ (สำหรับรายละเอียดเพิ่มเติม ดูการสร้างสินทรัพย์คงที่):
เรียกใช้ npm build # หรือ 'build-dev'
ดาวน์โหลดภาษาและรวบรวมสินทรัพย์คงที่ (สามารถข้ามไปยังไซต์การพัฒนาได้):
ทำ pull_translations ./manage.py lms รวบรวมแบบคงที่ ./manage.py cms รวบรวมแบบคงที่
ตั้งค่า CMS SSO (สำหรับการพัฒนา):
./manage.py lms Manage_user studio_worker [email protected] --unusable-รหัสผ่าน # อย่าทำเช่นนี้ในการผลิต มันจะทำให้การรับรองความถูกต้องของคุณไม่ปลอดภัย ./manage.py lms create_dot_application studio-sso-id studio_worker --รหัสอนุญาตประเภทการให้สิทธิ์ --ข้ามการอนุญาต --redirect-uris 'http://localhost:18010/complete/edx-oauth2/' --ขอบเขต user_id --client-id 'studio-sso-id' --client-secret 'สตูดิโอ sso-secret'
ตั้งค่า CMS SSO (สำหรับการผลิต):
สร้างผู้ใช้ CMS และแอปพลิเคชัน OAuth:
./manage.py lms Manage_user studio_worker--unusable-รหัสผ่าน ./manage.py lms create_dot_application studio-sso-id studio_worker --รหัสอนุญาตประเภทการให้สิทธิ์ --ข้ามการอนุญาต --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
เป็นรหัสไคลเอ็นต์ (studio-sso-id
)- ตั้งค่า
SOCIAL_AUTH_EDX_OAUTH2_SECRET
เป็นความลับไคลเอ็นต์ (ซึ่งคุณคัดลอกไว้)
ขั้นแรก ตรวจสอบให้แน่ใจว่า MySQL, Mongo และ Memcached กำลังทำงานอยู่
เริ่ม LMS:
./manage.py lms รันเซิร์ฟเวอร์ 18000
เริ่ม CMS:
./manage.py cms รันเซิร์ฟเวอร์ 18010
สิ่งนี้จะทำให้คุณมีแพลตฟอร์ม Open edX ที่ไม่มีหัวเป็นส่วนใหญ่ ส่วนหน้าส่วนใหญ่ได้รับการย้ายไปยัง "Micro-Frontends (MFE)" ซึ่งจำเป็นต้องติดตั้งและทำงานแยกกัน อย่างน้อยที่สุด คุณจะต้องเรียกใช้ Authentication MFE, Learner Home MFE และ Learning MFE เพื่อใช้งาน UI อย่างมีความหมาย
รหัสในพื้นที่เก็บข้อมูลนี้ได้รับอนุญาตภายใต้ AGPL เวอร์ชัน 3 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูไฟล์ใบอนุญาตสำหรับรายละเอียด
ดูไซต์ Open edX เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับโลก Open edX คุณสามารถค้นหาข้อมูลเกี่ยวกับการโฮสต์ การขยาย และการมีส่วนร่วมในซอฟต์แวร์ Open edX นอกจากนี้ ไซต์ Open edX ยังมีประกาศเกี่ยวกับผลิตภัณฑ์ บล็อก Open edX และแหล่งข้อมูลชุมชนอื่นๆ อีกมากมาย
หากคุณประสบปัญหา เรามีฟอรัมสนทนาที่ https://discuss.openedx.org ซึ่งคุณสามารถเชื่อมต่อกับคนอื่นๆ ในชุมชนได้
การสนทนาแบบเรียลไทม์ของเราอยู่บน Slack คุณสามารถขอคำเชิญ Slack จากนั้นเข้าร่วมทีม Slack ชุมชนของเรา
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้ โปรดดูหน้าการขอความช่วยเหลือ
เราใช้ปัญหา Github สำหรับการติดตามปัญหาของเรา คุณสามารถค้นหาปัญหาที่รายงานก่อนหน้านี้ได้ หากคุณต้องการรายงานจุดบกพร่อง หรือต้องการหารือเกี่ยวกับคุณสมบัติใหม่ก่อนที่จะใช้งาน โปรดสร้างปัญหาใหม่
ยินดีบริจาค! ขั้นตอนแรกคือการส่งข้อตกลงผู้ร่วมให้ข้อมูลรายบุคคลที่ลงนาม ดูไฟล์การมีส่วนร่วมของเราสำหรับข้อมูลเพิ่มเติม นอกจากนี้ยังมีแนวทางในการรักษาคุณภาพของโค้ดให้อยู่ในระดับสูง ซึ่งจะทำให้การสนับสนุนของคุณมีแนวโน้มที่จะได้รับการยอมรับมากขึ้น
ยอมรับคุณสมบัติใหม่แล้ว การพูดคุยถึงแนวคิดใหม่ๆ ของคุณกับผู้ดูแลก่อนที่คุณจะเขียนโค้ดจะช่วยเพิ่มโอกาสที่งานของคุณจะได้รับการยอมรับอีกด้วย
โปรดอ่านหลักจรรยาบรรณของชุมชนสำหรับการโต้ตอบกับพื้นที่เก็บข้อมูลนี้
กรุณาอย่ารายงานปัญหาด้านความปลอดภัยในที่สาธารณะ กรุณาส่งอีเมลไปที่ [email protected]
ผู้ดูแลปัจจุบันของพื้นที่เก็บข้อมูลนี้สามารถพบได้ที่ Backstage