این راهنماها مفاهیم یک صنعت را روی اشیایی که پلتفرم امروز دارد (بوکهها، لاینها، بستهها، حسابهای پارتنر، نودها، API) نگاشت میکنند. اینها نگاشتهای مفهومیاند، نه قابلیتهای مخصوص صنعت، و حساب پارتنر یک حساب تفویضی است، نه tenant ایزوله.
نگاشت مفهومی
در پنل چیزی به نام تیم یا عضو نیست. جدول میگوید کدام شیء چه نقشی دارد؛ بخشهای زیر آنها را به همین ترتیب راه میاندازند.
| در صنعت شما | روی پلتفرم | کجا در پنل |
|---|---|---|
| فید مسابقه یا تمرین | کانال زنده: یک استریم با منابع، EPG و فرمتهای خروجیاش | Streams ← افزودن استریم زنده (URL منبع یا RTMP push) |
| کتابخانه تحلیل و بازپخش | کاتالوگ VOD: فیلم و سریال با فصل و قسمت، دستهبندیها و اطلاعات متادیتا | Movies و Series، یا کار ingest VOD |
| بسته تیم یا مسابقات | بوکه: مجموعهای نامدار از کانالها، فیلمها یا سریالها که یک بسته میدهد | Bouquets، از Streams و Movies / Series |
| دسترسی عضو یا خانواده | لاین: یک دسترسی با بسته، بوکهها، انقضا، محدودیت اتصال و خروجیهایش | Lines ← افزودن، یا کدهای فعالسازی، یا Reseller API |
| فصل یا دوره عضویت | تاریخ انقضای لاین، که با بسته، کردیت یا API تمدید میشود | تاریخ انقضای لاین و مدت بسته |
| حساب کارکنان تیم یا آکادمی | حساب پارتنر (ریسلر): داشبورد تفویضی با کردیت، مجوزها و لاینهای خودش | Users ← افزودن ریسلر؛ Groups برای مجوزهای آن |
| یکپارچگی با فروشگاه یا مدیریت باشگاه | Reseller API و وبهوکها: عملیات پنل از سیستم خودتان | کلیدهای Reseller API و وبهوکها در داشبورد ریسلر |
پیشنیازها
آنچه پیش از نصب باید داشته باشید.
- یک سرور (Ubuntu 22.04 یا 24.04) با آدرس عمومی یا دامنه و پهنایباند بالادستی کافی برای مسابقاتی که قصد پخش دارید.
- دوربین و انکودر ورزشگاه که بتواند RTMP پوش کند، و فایلهای ضبطشده تمرین و تحلیل که مربیان از قبل دارند.
- تصمیم درباره اینکه چه کسی چه میبیند: کدام تیمها مواد را به اشتراک میگذارند، کدام مسابقهها فقط برای اعضاست و کدام کارکنان حساب پنل میگیرند.
استقرار زیرساخت
اول آکادمی، نود وقتی روزهای مسابقه لازم دارد.
- نصبکننده را روی سرور آکادمی اجرا کنید و پنل را پشت ریورسپراکسی با TLS بگذارید؛ پراکسیهای مورد اعتماد را تنظیم کنید تا لاگها و قواعد IP آدرس واقعی بیننده را ببینند.
- URL پایه پخش را روی آدرس عمومی که بینندگان به آن میرسند بگذارید تا لینکهایی که پنل صادر میکند از خانه کار کنند.
- اگر خانوادههای زیادی همان مسابقه را میبینند، از Servers یک نود ثبت کنید؛ پنل آن را با SSH نصب میکند و کانال زنده را از آن پخش میکند.
- برای کادر مربیگری حساب پارتنر (ریسلر) با مجوز کاتالوگ و بدون مجوز لاینهای اعضا بسازید.
سازماندهی محتوا
تیمها و فصلها بهصورت دستهبندی، دسترسی بهصورت بوکه.
- برای هر رده سنی و فصل دستهبندی بسازید، و برای مسابقات سریال با یک قسمت برای هر مسابقه.
- برای مواد تحلیل هر تیم یک بوکه، یکی برای کانالهای مسابقه زنده و یکی برای کل آکادمی بسازید.
- برای هر نوع عضویت یک بسته بسازید: بوکههایی که میدهد، با فصل بهعنوان مدت و در صورت فروش توسط کارکنان قیمتی به کردیت.
- بوکهها را به نام تیم یا مسابقاتی که به آن تعلق دارند بنامید تا کارکنان بدانند چه بستهای به خانواده بدهند.
پیکربندی پارتنر (ریسلر)
کارکنانی که اعضای خودشان را مدیریت میکنند، اگر باشگاه بخواهد.
- گروهی با مجوز کاتالوگ برای مربیان و گروهی با مجوز لاین برای مسئول عضویت بسازید.
- هر کدام را با گروه مربوطش بهعنوان ریسلر اضافه کنید؛ فقط اگر عضویتها از پنل فروخته میشوند به مسئول کردیت بدهید.
- آکادمی شعبه یا باشگاه هواداران با اعضای خودش حساب پارتنر و بستههای خودش را میگیرد.
پیکربندی دسترسی اعضا و خانوادهها
یک لاین برای هر عضو یا هر خانواده.
- برای فروشگاه یا سامانه مدیریت باشگاه یک کلید Reseller API بسازید و در اسرار همان سامانه نگه دارید.
- هنگام ثبتنام سامانه action=create_line را با بسته عضویت و شناسه درخواست صدا میزند؛ فصل مدت بسته است.
- حداکثر اتصال را روی دستگاههایی که یک خانواده نیاز دارد (معمولاً سه یا چهار) بگذارید تا یک عضویت بیرون از خانوار به اشتراک گذاشته نشود.
- برای روز مسابقه آزمایشی از Lines → افزودن لاینی با بسته آزمایشی اضافه کنید، یا برای هواداران روی سکو کد فعالسازی چاپ کنید.
کتابخانه تحلیل و بازپخش
مسابقهها و جلسهها بهصورت درخواستی.
- هر مسابقه یا جلسه را بهعنوان منبع یک قسمت آپلود کنید، یا با کار ingest مربوط به VOD وارد کنید؛ تاریخ، حریف و تیم را در عنوان نگه دارید.
- ضبط را از طریق سریالش به بوکه تیم وصل کنید تا فقط لاینهای همان تیم آن را ببینند.
- پخش را با لاین آزمایشی هر عضویت بررسی کنید تا مطمئن شوید چه کسی چه میبیند.
فید مسابقه و تمرین
دوربین زمین بهصورت کانال زنده.
- برای هر انکودر ورزشگاه (RTMP پوش) یک استریم زنده اضافه کنید و در بوکه روز مسابقه بگذارید.
- catch-up را فعال کنید تا خانوادهای که دیر وصل میشود بتواند به عقب برگردد، و پس از سوت پایان ضبط را به کتابخانه اضافه کنید.
- در روز شلوغ مسابقه بررسی کنید نود کانال را یک بار از اوریجین میگیرد و به بینندگان هدایتشده به آن سرویس میدهد.
انقضای عضویت
دسترسی دنبال فصل است.
- لاین در پایان دوره بستهاش منقضی میشود؛ وقتی حقعضویت فصل بعد پرداخت شد فروشگاه آن را با action=renew_line تمدید میکند.
- فروشگاه را به وبهوکها مشترک کنید تا در line.expiring یادآوری بفرستد و در line.expired عضویت را ببندد.
- بازیکنی که وسط فصل میرود توسط فروشگاه با action=disable_line غیرفعال میشود؛ لاین برای سوابق نگه داشته میشود.
یکپارچگی با فروشگاه یا نرمافزار باشگاه
سامانهها دسترسی را میرانند؛ پخشکننده پخش میکند.
- کانکتور پلتفرم تجارت خود (WooCommerce، Shopify و دیگران) را سمت فروشگاه نصب کنید تا خرید لاین بسازد و پرداخت آن را تمدید کند.
- سامانه مدیریت باشگاه یا بلیتفروشی از طریق Reseller API و وبهوک وصل میشود؛ برای آن کانکتور بومی وجود ندارد.
- ورود یکپارچه برای بینندگان نیست: اعضا با اطلاعات لاین خود، که فروشگاه برایشان میفرستد، وارد پخشکننده میشوند.
ملاحظات امنیتی
مواد تیم نزد تیم میماند.
- پنل و URL پایه پخش را روی TLS ارائه دهید و TRUSTED_PROXIES را روی ریورسپراکسی خود تنظیم کنید.
- ورود دومرحلهای برای هر حساب پنل، و گروههای مجوز تا مسئول عضویت نتواند کاتالوگ را تغییر دهد و مربیان نتوانند لاینها را ببینند.
- لینکهای پخش امضاشده و منقضیشونده، سقف اتصال برای هر لاین، و بستن به IP یا کشور برای لاین کارکنان.
- پشتیبانهای رمزگذاریشده پایگاه داده با نسخه بیرونی و گزارش ممیزی برای هر تغییر لاینها و کاتالوگ.
عیبیابی
بررسیهای اولیه معمول.
- والدی تحلیل تیم اصلی را میبیند: بسته لاین و بوکههایی که میدهد را بررسی کنید.
- عضو تازه بعد از پرداخت دسترسی ندارد: لاگ فراخوانی Reseller API برای درخواست فروشگاه و تاریخ انقضای لاین را بررسی کنید.
- فید مسابقه هنگام شروع میپرد: آپلود انکودر در ورزشگاه، و اگر نودی به بینندگان سرویس میدهد heartbeat آن را بررسی کنید.
- گزارش ممیزی آدرس پراکسی را نشان میدهد: TRUSTED_PROXIES را روی پراکسی بگذارید و پنل را راهاندازی مجدد کنید.