×

📺 IPTV

B2C · Xtream · Reseller

IPTV נהל משתמשים

שכבות אחסון ארכיון

מערכת ארכיון משולשת עבור 500+ לקוחות במקביל.

קוֹדַאִי

כתוב Buffer

חלון חם של שעתיים (NVMe או tmpfs)

← מראה (רציף)

HDD RAID 5

50 TB, שמירה של 14 ימים

→ אחזור מראש לפי דרישה

מטמון השמעה

מטמון חם של 1 TB, 500+ לקוחות

לקוחות

מראה, לא לזוז

פלחים ישנים יותר מ-mirror_min_age_minutes מועתקים ל-RAID ברציפות.

נִדבָּך

מַטָרָה

הגדרות

כתוב Buffer

מקבל קטעים 24/7, מחזיק חלון חם של 2 שעות להפעלה מהירה לאחור, מגן על RAID מ-IO אקראי.

device_path (חסום מכשיר או 'tmpfs'), tmpfs_size_pct (10-50% MemAvailable כאשר tmpfs), mirror_min_age_minutes, evict_age_minutes, flush_threshold_percent (הדק של שטיפה בכוח)

ארכיון HDD RAID

אחסון זנב ארוך לשמירה מלאה (ברירת מחדל 14 ימים).

retention_days, raid_device, nginx_location, min_free_percent

מטמון השמעה (אופציונלי)

מטמון צד קריאה עבור קבצים פופולריים מעל 2 שעות (למשל, EPG-catch-up).

prefetch_hours, max_sessions, eviction_policy (session/lru/fifo)

קיבולת מחושבת

כתיבה חיה × 2h = גודל חלון חם write_buffer.

קריאות (חיפוש מודע לשכבות)

Stream.dvr_file_path/2 probes write_buffer → playback_cache → ארכיון לפי הסדר.

tmpfs דיסק וירטואלי (dev/test)

כל שכבה יכולה להשתמש בדיסק וירטואלי tmpfs עם גיבוי RAM במקום התקן חסימה פיזי.

גודל ב-% זיכרון RAM פנוי

ההקצאה מצוינת כאחוז מ-MemAvailable (מאת /proc/meminfo) — שלב 10, ערכים חוקיים 10/20/30/40/50.

מגן בטיחות OOM

אם היעד המחושב יעלה על 60% מה-MemAvailable הנוכחי, ההר נדחה והשכבה נשארת במצב לא מקוון (Stream.archive_path עובר לשכבה הבריא הבאה).

אתחול התמדה

tmpfs חי ב-RAM - כל תוכן מאגר בטיסה הולך לאיבוד כאשר המארח מאתחל מחדש.

מתי להשתמש ב-tmpfs

השתמש ב-tmpfs עבור write_buffer כאשר: (א) ל-dev/test box אין NVMe פנוי אבל אתה עדיין רוצה שצינור ה-DVR המלא יפעל לבדיקת אינטגרציה, (ב) המפעיל רוצה לאמת התנהגות מראה + ארכיון מבלי לקנות NVMe מראש, (ג) בדיקות ארעיות שבהן הפסד בעת אתחול מקובל.

שטיפה מהירה יותר עבור tmpfs

כאשר שכבת הכתיבה היא tmpfs, StorageTierFlush משתמש בברירות מחדל הדוקות יותר - mirror_min_age 2 דקות, evict_age 15 דקות (לעומת 5 דקות / 120 דקות עבור NVMe פיזי).

רמה אוטומטית של אספקה ​​ובטיחות

שכבות מוגדרות פעם אחת דרך Config > Storage > Storage Triers ומוענקות אוטומטית - ללא עריכת mkfs/mount/fstab ידנית במארח.

ברירת מחדל אתחול seed

באתחול הראשון (ללא שכבת כתיבה ב-DB), המערכת יוצרת אוטומטית שכבת כתיבה מגובה tmpfs עם הקצאת MemAvailable של 30%, נקודת הרכבה /mnt/nvme_write.

בריאות וכשל

Stream.archive_path/1 מחזיר את השכבה 'הבריאה' הראשונה - write_buffer אם הוא מותקן+כתיבה+free_pct מעל רצפת הבטיחות, אחרת נופל חזרה לארכיון (מצב מושפל).

שינוי גודל חי

שינוי tmpfs_size_pct בממשק המשתמש מפעיל umount + remount עם הגודל החדש ב-Save.

כתובת אתר בסיס - נגן OSTV

שדות חבילה

API של חבילות

מדיניות סיסמאות

ממשק API של מפיץ

הגדרות

שדות משתמש

ניהול משתמשים

IPTV נהל משתמשים

כתובת אתר בסיס - נגן OSTV

אפליקציית OSTV Player מאפשרת למשתמשים לשנות את כתובת ה-URL הבסיסית של השרת (כתובת API).

סיבה: שינוי כתובת ה-URL הבסיסית מיועד רק למנהלי מערכת/משתמשי שורש כדי שיוכלו לעבור בין שרתים (למשל ייצור לעומת בדיקות).

שדות משתמש

API של חבילות

מחזירה רשימה של כל החבילות הפעילות עם מחירים ותקופות חיוב.

רשימת משתמשי ניהול (משווקים/ספקים).

מחזיר יתרת אשראי עבור משתמש ניהול ספציפי.

שדות חבילה

ממשק API של מפיץ

API עבור משווקים/ספקים.

מדיניות סיסמאות

סיסמה נדרשת בעת יצירת מנוי.

מינימום 8 תווים

לפחות אות אחת גדולה (A-Z)

לפחות תו מיוחד אחד (!@#$%^&* וכו')

חל על ממשק משתמש ו-API.

הגדרות

רמה אוטומטית של אספקה ​​ובטיחות

זיהוי אוטומטי של קיבולת + מערכת קבצים: כאשר נבחר NVMe פנוי מהתפריט הנפתח, הקיבולת (GB) נקראת מ- lsblk -bn -o SIZE ו-FS נוכחי מ-blkid (עם דיסק שלם).

מנגנון שטיפה שכבה - מראה רציפה

StorageTierFlush GenServer פועל כל שנות ה-60.

מדוע מראה רציף מפעמת "חכה 60 דקות, תנועה אצווה": (1) עומס ה-RAID אחיד - אין פרצי 5GB בגבולות השעה, רק זרזיף של מקטעים של 7MB;

בטיחות פלחים בתהליך: המראה בוחרת רק קבצים ישנים מ-MIRROR_MIN_AGE_MINUTES באמצעות find -mmin +5.

כוונון לפי פריסה (.env)

500–1000

כלל גודל:

לוח שנה תצוגה מקדימה של DVR

הכרטיסייה תצוגה מקדימה של DVR מציגה לוח שנה שעבר עיבוד שמדגיש רק את הימים שבהם קיימות הקלטות בדיסק.

ימים עם הקלטות ניתנים ללחיצה (כחול) - לחיצה ממלאת מראש את קלט התאריך והשעה באותו היום בשעה 00:00;

מיושם ב-Stream.available_dvr_days/1 דרך find -mindepth 4 -maxdepth 4 -סוג d על כל הרכבה שכבה;

B2C Player API

סקירה כללית

ה-API של B2C (Business-to-Consumer) מספק אימות וגישה לזרימה עבור יישומי נגן של משתמש קצה.

אימות

אימות משתמש והשג auth_token עבור קריאות API עוקבות.

שִׁיטָה

נקודת קצה

גוף הבקשה

פָּרָמֶטֶר

סוּג

דָרוּשׁ

תֵאוּר

כֵּן

שם התחברות של המשתמש

סיסמת משתמש

בקשה לדוגמה

שדות תגובה

תגובת הצלחה (200)

אסימון אימות מוצפן עבור קריאות API עוקבות

תאריך/שעה תפוגה של אסימון בפורמט ISO 8601

דוגמה לתגובת הצלחה

תגובת שגיאה (403)

הודעת תיאור שגיאה

קוד מצב HTTP

דוגמה לתגובת שגיאה

פרטי משתמש

אחזר מידע על המשתמש המאומת באמצעות אסימון האימות.

שדות תגובה

שם המשתמש של המשתמש המאומת

הודעת שרת (ריקה אם אין)

סטטוס אימות (1 = מאומת)

מצב חשבון: פעיל, חסום, מושבת, ניסיון

תאריך תפוגה של החשבון (ריק אם בלתי מוגבל)

מספר החיבורים הפעילים הנוכחיים

תאריך יצירת החשבון בפורמט ISO 8601

מקסימום חיבורים בו-זמניים

רשימה של פורמטים מותרים של זרם פלט

שם הספק של הבעלים/המפיץ של המשתמש (0 אם אין)

כתובת האתר של תמונת הלוגו של הספק (0 אם אין)

כתובת האתר של הספק כיווץ תמונת הלוגו 208x208 (0 אם אין)

זמן שרת נוכחי בפורמט ISO 8601

בקשה לדוגמה

קטגוריות

אחזר קטגוריות שסוננו לפי סוג.

סוג קטגוריה: חי, vod או סדרה

מזהה קטגוריה כמחרוזת

שם תצוגה בקטגוריה

מזהה קטגוריית אב (0 אם שורש)

Hash MD5 של תוכן לאי תוקף של מטמון

בקשה לדוגמה

פרטי VOD

אחזר מידע מפורט עבור פריט VOD ספציפי, כולל מטא נתונים וקישורי זרם.

מזהה זרם VOD (UUID)

שדות אובייקט מידע

כתובת האתר של תמונת השער

מזהה TMDB

כתובת אתר של תמונת רקע

מחרוזת ז'אנר

עלילה/תיאור

חברי שחקנים

ערך דירוג (0-10)

שם הבמאי

תאריך יציאה

משך בשניות

משך כמחרוזת מעוצבת

מערך מזהי קטגוריות

1 אם תוכן למבוגרים, 0 אחרת

שדות אובייקט VOD

מזהה זרם VOD

כותרת VOD

תאריך הוספה (ISO 8601)

הזרם של כתובות אתרים של קישורים

מטא נתונים של codec וידאו/שמע

פירוט הסדרה

אחזר מידע על סדרות עם רשימות עונה ופרקים מלאים, מקובצים לפי מספר עונה.

מזהה סדרה (UUID)

שדות מערך עונות

מספר עונה

שם תצוגת העונה

מספר פרקים בעונה

תאריך שידור העונה

סקירת עונה / תיאור

כתובת האתר של תמונת שער העונה

אובייקט פרקים

מפה מסומנת לפי מחרוזת מספר העונה.

שדות אובייקט של פרק

מזהה פרק

מזהה פרק TMDB

מספר פרק בתוך העונה

שם הפרק

תאריך הוספה (ISO 8601)

מספר עונה

אובייקט מידע על פרק (אותו מבנה כמו מידע VOD)

הזרם של כתובות אתרים של קישורים

מטא נתונים של codec וידאו/שמע

הערות

תפוגת האסימון תלויה בתפקיד המשתמש: אדמין = 365 ימים, אחר = 30 ימים|חשבונות מושבתים אינם יכולים לאמת (מחזיר 403)|כל כניסה מוצלחת מעדכנת את חותמת הזמן של המשתמש האחרון לכניסה|האסימונים מוצפנים ומכילים user_id, שם משתמש, תפקיד ותפוגה

תגובת הצלחה (200)

אסימון אישור שהושג מנקודת הקצה /auth