الرئيسية
XtreamUIPro

دليل الإعداد

دليل إعداد التعليم والتدريب

اظبط المنصة كخدمة فيديو دورات لمدرسة أو مزوّد تدريب أو جامعة: مكتبة الدورات ووصول الطلاب والحصص المباشرة وتكامل الـ LMS.

الأدلة دي بتطابق مفاهيم المجال مع العناصر الموجودة في المنصة دلوقتي (bouquets وخطوط وحزم وحسابات موزّعين وعقد والـ API). دي مطابقات مفاهيمية، مش ميزات خاصة بمجال، وحساب الموزّع حساب مفوَّض، مش tenant معزول.

المطابقة المفاهيمية

مفيش حاجة في اللوحة اسمها دورة أو طالب. الجدول بيقول أنهي عنصر بيلعب أنهي دور؛ والفصول تحت بتجهّزهم بالترتيب ده.

في مجالكعلى المنصةفين في اللوحة
مركز تدريب أو موزّع شريكحساب موزّع (reseller): لوحة مفوَّضة بكريديت وصلاحيات وخطوطه الخاصةUsers → ضيف موزّع؛ Groups لصلاحياته
مجموعة دوراتBouquet: مجموعة مسمّاة من القنوات أو الأفلام أو المسلسلات اللي الحزمة بتديهاBouquets، من Streams وMovies / Series
دروس مسجّلةكتالوج VOD: أفلام ومسلسلات بمواسم وحلقات وتصنيفات وبيانات وصفيةMovies وSeries، أو مهمة استيراد VOD
حصة مباشرةقناة مباشرة: بث بمصادره وEPG وصيغ الإخراجStreams → ضيف بث مباشر (رابط المصدر أو RTMP push)
وصول الطالبالخط: وصول واحد بحزمته وbouquets وانتهائه وحد اتصالاته ومخرجاتهLines → إضافة، أو أكواد التفعيل، أو الـ Reseller API
فترة وصول الدورةتاريخ انتهاء الخط، بيتجدّد بحزمة أو كريديت أو الـ APIتاريخ انتهاء الخط ومدة الحزمة
حد الجلسات المتزامنةأقصى اتصالات للخط: كام جهاز يقدر يشوف في نفس الوقتأقصى اتصالات للخط
تكامل مع LMS أو منصة تجارةReseller API وwebhooks: عمليات اللوحة من نظامك إنتمفاتيح Reseller API وwebhooks في لوحة الموزّع

المتطلبات

اللي لازم يكون عندك قبل التثبيت.

  1. سيرفر Linux (Ubuntu 22.04 أو 24.04) على شبكة الحرم الجامعي، والمثبّت بيثبّت Postgres وRedis وffmpeg، ودومين أو عنوان داخلي للوحة والمشغّل.
  2. التسجيلات اللي هتنشرها (ملفات أو نظام تسجيل يقدر يبعت RTMP) وللحصص المباشرة، encoder في كل قاعة هتبث.
  3. مفتاح رخصة: خطة Free مش محتاجة واحد؛ المؤسسات المؤهّلة بتطلب مفتاح Professional المجاني بالإيميل من دومينها الأكاديمي.

نشر البنية

ثبّت سيرفر الإدارة، وبعدين Node لكل مبنى.

  1. شغّل المثبّت على سيرفر الإدارة؛ هو بيثبّت اللوحة والـ API والـ worker والـ origin كوحدات systemd وبيعمل أول مسؤول.
  2. اضبط الرابط العام للـ API (API_PUBLIC_URL) ولأساس التشغيل عشان روابط المشغّل تشاور على عنوان الحرم الجامعي.
  3. سجّل Node من Servers → add a node لكل مبنى قاعاته هتشاهد؛ اللوحة بتثبّتها عن طريق SSH من حزمة الـ Node.
  4. افحص صفحة Servers: الـ Node بتبلّغ بالـ heartbeat والترافيك، ومشاهدين المبنى ده بيتوجّهوا ليها.

تنظيم المحتوى

الدورات كمسلسلات، والبرامج كـ bouquets وحزم.

  1. اعمل تصنيف لكل كلية أو مادة تحت Movies / Series.
  2. ضيف كل دورة كمسلسل: موسم لكل وحدة، وحلقة لكل درس، والتسجيل كمصدر (رفع أو مهمة استيراد VOD).
  3. اعمل bouquet لكل مجموعة دورات (مثلًا دورات برنامج لترم) من المسلسلات اللي ضفتها.
  4. اعمل حزمة لكل برنامج: الـ bouquets اللي بتديها، وفترة الوصول كمدة، وحد الجلسات المتزامنة.

إعداد الشركاء (الموزّعين)

مركز تدريب أو كلية كحساب مفوَّض.

  1. اعمل مجموعة بالصلاحيات اللي المركز محتاجها (خطوطه الخاصة، من غير تغيير الكتالوج) تحت Groups.
  2. ضيف المركز كموزّع تحت Users بالمجموعة دي ورصيد كريديت والحزم اللي يقدر يوزّعها.
  3. اديله عنوان اللوحة؛ هيدير طلابه من هناك، واللوحة بتحتفظ بسجل التدقيق.

إعداد وصول الطلاب

خط لكل طالب، بيتعمل عند القيد.

  1. للدفعات الصغيرة، ضيف الخطوط من Lines → add بحزمة البرنامج؛ والانتهاء بيتبع مدة الحزمة.
  2. ليوم القيد، ولّد أكواد تفعيل للحزمة؛ الطالب بيستخدم الكود في المشغّل ويحصل على خط.
  3. لنظام الطلاب أو الـ LMS، اعمل مفتاح Reseller API وخلّي النظام يعمل الخطوط بـ action=create_line ومعرّف طلب لكل طالب.
  4. اضبط max connections على عدد الأجهزة اللي الطالب يقدر يستخدمها مرة واحدة؛ والمشغّل بيرفض الاتصال اللي بعدها.

إعداد VOD

دروس مسجّلة عند الطلب.

  1. ارفع كل تسجيل كمصدر حلقة، أو وجّه مهمة استيراد VOD للملف وخلّي الـ worker يحمّله ويشفّره في جذر الميديا.
  2. املا البيانات الوصفية (العنوان والوصف والبوستر) يدوي أو من TMDB للمواد العامة؛ الدروس غالبًا محتاجة عنوان ووصف بس.
  3. افحص التشغيل في مشغّل الويب بخط تجريبي؛ الرابط موقّع وبينتهي بعد الوقت المضبوط.

بث الحصص المباشرة

المحاضرة كقناة مباشرة.

  1. ضيف بث مباشر تحت Streams وencoder القاعة كمصدر (عنوان RTMP push أو رابط pull).
  2. حط البث في bouquet الدورة عشان الطلاب المسجّلين بس هم اللي يشوفوه؛ وضيفه للـ EPG لو عندك جدول.
  3. فعّل Catch-up أو Timeshift على البث لما الطلاب يقدروا يشاهدوا الحصة بعدين؛ والتسجيل ممكن كمان يترفع كحلقة.

الاشتراك وانتهاء الوصول

وصول بينتهي مع الدورة.

  1. اديّ الحزمة فترة الوصول كمدة؛ والخط المعمول منها بينتهي في نهاية الفترة دي.
  2. جدّد الخط لترم جديد من اللوحة، بكريديت المركز، أو عن طريق الـ API بـ action=renew_line.
  3. اشترك بنظامك في webhooks: هيتقاله لما الخط يقرّب ينتهي أو ينتهي أو يتعطّل.

التكامل مع LMS خارجي

الـ LMS بيتحكم في الوصول؛ والمشغّل بيشغّل.

  1. اعمل مفتاح Reseller API للـ LMS؛ وخلّيه في أسرار الـ LMS، مش في صفحة أبدًا.
  2. عند القيد الـ LMS بينادي action=create_line بحزمة البرنامج ومعرّف طلب؛ وعند الانسحاب action=disable_line.
  3. اربط من صفحة الدورة في الـ LMS بمشغّل الويب أو اديّ الطالب بيانات المشغّل؛ مفيش SSO بين الاتنين.

اعتبارات الأمان

خلّي الخدمة جوه المؤسسة.

  1. فعّل تسجيل الدخول بخطوتين لكل حساب في اللوحة واديّ الموظفين أصغر مجموعة صلاحيات تكفي.
  2. خلّي بيانات الطلاب الشخصية في نظام الطلاب؛ الخط محتاج اسم وتاريخ انتهاء بس.
  3. خلّي max connections قليل وفكّر في ربط التشغيل بعنوان المشاهد لمنع المشاركة.
  4. شغّل النسخ الاحتياطي المشفّر لقاعدة البيانات، ولو عندك تخزين متوافق مع S3 شغّل النسخة خارج الموقع.

حل المشاكل

الفحوص الأولى المعتادة.

  1. طالب مش قادر يسجّل دخول: افحص انتهاء الخط وإنه مفعّل، وبعدين الحزمة وbouquet الدورة.
  2. تسجيل مش بيشتغل: افحص نتيجة مهمة الاستيراد في صفحة Jobs، وبعدين الملف في جذر الميديا وانتهاء الرابط الموقّع.
  3. مشاهدين مبنى بيروحوا للـ origin: افحص الـ heartbeat بتاع الـ Node وإن عنوان المشاهد داخل في توجيه الـ Node.
  4. الـ API بيرفض استدعاء: افحص المفتاح، وطريقة الـ action (الكتابة POST) ومعرّف الطلب في الاستدعاء المعاد.