المتطلبات
ما تحتاج إلى تثبيته قبل تشغيل حزمتك، باستخدام Docker أو من دونه.
لحزمة الحزمة الكاملة
ما تحتويه حزمتك
| الحزمة | التطبيقات في التنزيل | يعمل بمفرده |
|---|---|---|
| الحزمة الكاملة | API، موقع الطلاب، لوحة الإدارة | نعم، الثلاثة معًا |
| موقع الطلاب | موقع الطلاب | نعم، على البيانات النموذجية المرفقة إلى أن تربطه بواجهة API من Learnio |
| لوحة الإدارة | لوحة الإدارة | نعم، على محاكاة داخل المتصفح إلى أن تربطها بواجهة API من Learnio |
| API | API | نعم، يقدّم واجهة API فقط |
لا تتضمن حزمة التطبيق الواحد التطبيقات الأخرى. يمكن للواجهتين الأماميتين استخدام واجهة API تشغّلها بالفعل، لكن شيفرة واجهة API لا تأتي إلا في الحزمة الكاملة وحزمة API.
باستخدام Docker
- Docker Desktop على macOS أو Windows، أو Docker Engine مع إضافة Compose على Linux. تبدأ الحزمة الكاملة بأمر
docker composeواحد. - اتصال بالإنترنت للبناء الأول، الذي ينزّل الصور الأساسية والاعتماديات.
- لا شيء آخر: يجلب Docker معه Node.js، وقاعدة البيانات ملف SQLite داخل وحدة تخزين Docker.
باستخدام Docker
- Docker Desktop على macOS أو Windows، أو Docker Engine على Linux. لتطبيقك ملف
Dockerfileخاص به؛ ولا حاجة إلى Compose. - اتصال بالإنترنت للبناء الأول، الذي ينزّل الصورة الأساسية والاعتماديات.
من دون Docker
- Node.js 22 أو 24، وهما إصدارا LTS اللذان يُختبر Learnio عليهما. يعمل Node 26 أيضًا، لكنه لم يعد يتضمن Corepack: شغّل
npm install -g corepackأولًا. - Yarn 4، عبر Corepack. شغّل
corepack enableمرة واحدة؛ يثبّت كل تطبيق إصدار Yarn الخاص به، فيختارyarnالإصدار الصحيح.
قاعدة البيانات
لا حاجة إلى خادم قاعدة بيانات ولا إلى مترجم C++. تستخدم واجهة API قاعدة SQLite افتراضيًا وتنشئ الملف بنفسها؛ ويستخدم Docker قاعدة SQLite أيضًا. MySQL مدعومة بتغيير في الإعدادات، لا بتغيير في الشيفرة.
المنافذ
يستمع كل تطبيق على منفذ محلي ثابت. تأكد من أن لا شيء آخر يستخدم هذه المنافذ، أو انقل أحدها مع Docker بـ SITE_PORT أو ADMIN_PORT أو API_PORT في ملف .env بجوار docker-compose.yml.
| التطبيق | المنفذ |
|---|---|
| API | 8000 |
| موقع الطلاب | 3030 |
| لوحة الإدارة | 3031 |
المنفذ
يستمع موقع الطلاب على المنفذ 3030. تأكد من أن لا شيء آخر يستخدمه.
المنفذ
تستمع لوحة الإدارة على المنفذ 3031. تأكد من أن لا شيء آخر يستخدمه.
المنفذ
تستمع واجهة API على المنفذ 8000. تأكد من أن لا شيء آخر يستخدمه.
واجهة API للربط
لا تحتاج إلى شيء لتجربة تطبيقك: فهو يعمل على بياناته النموذجية الخاصة. ولاستخدام بيانات حقيقية، يحتاج إلى واجهة API من Learnio قيد التشغيل، تضبط عنوانها في ملف .env الخاص به. تُباع واجهة API كحزمة مستقلة.
الخدمات الاختيارية
لا تحتاج إلى أي منها لتشغيل Learnio محليًا. تُفعَّل كل خدمة بمفاتيحها في back-end/.env.
| الخدمة | من دونها |
|---|---|
| Cloudflare R2 أو مخزن آخر متوافق مع S3 | تُقدَّم الوسائط من الملفات النموذجية المرفقة بالتطبيقات؛ يتوقف رفع الوسائط الجديدة فقط. |
| Resend، للبريد الإلكتروني | تُكتب كل رسالة في سجل واجهة API بدلًا من إرسالها. |
| Stripe و PayPal | يعمل الدفع على محاكٍ مدمج يُتم الطلبات دون أن يحصّل مالًا من أحد. ولا تحتاج الدورات المجانية إلى معالج دفع أبدًا. |
| مفاتيح Google أو OpenAI أو DeepSeek | يطلب المساعد الذكي من المسؤول مفتاحه الخاص في المتصفح. |
| خادم Jitsi Meet | يعرض التقويم الحصص المباشرة على أنها غير متاحة. |