×

📺 IPTV

B2C · Xtream · Reseller

IPTV Налаштування

Рівні сховища

Вступ до рівнів сховища IPTV

Кодувач

Буфер запису

Буфер запису: простір для тимчасової роботи.

- mirror (continuous)

HDD RAID 5

Записані DVT архіви зберігаються на HDD для відтворення по запиту.

- prefetch on demand

Кеш

Рядки DVB, що записуються в кеш на SSD для швидкого відтворення по запиту.

Клієнти

Примітка дзеркала

Segments older than mirror_min_age_minutes are COPIED to RAID continuously. The write_buffer holds a rolling 2h hot window. Only after evict_age_minutes (and only when verified-mirrored) are segments deleted from write_buffer. RAID always has the long-tail copy.

Рівень

Призначення

Налаштування

Запис

Призначення запису.

Налаштування запису.

Архів

Призначення архіву.

Налаштування архіву.

Кеш

Призначення кешу.

Налаштування кешу.

Розрахунок ємності

live writes x 2h = write_buffer hot window. Пример: 50 streams x 8 Mbps x 2h ~ 36 GB. ~30%% headroom for mirror ~ ~50 GB write_buffer enough. RAID: 50 x 8 Mbps x 14 days ~ 6 TB.

Примітка зчитування

Stream.dvr_file_path/2 probes write_buffer -> playback_cache -> archive in order. A segment in the 2h hot window is served from write_buffer at native speeds even though it also exists on RAID. Nginx X-Accel-Redirect serves files directly.

tmpfs

tmpfs вхід.

Обчислення розміру

tmpfs обчислення розміру.

OOM захист

OOM захист tmpfs.

Перезавантаження

tmpfs перезавантаження.

Випадки використання

tmpfs випадки використання.

Вік злиття

Вік злиття tmpfs.

За provisioning

Tiers are configured once via Config > Storage > Storage Tiers and provisioned automatically - no manual mkfs/mount/fstab editing on the host. StorageTier.ensure_all_provisioned/0 runs at every boot from SystemInitializer and is idempotent.

Типове насичення

On first boot the system auto-creates a tmpfs-backed write tier with 30%% MemAvailable allocation, mount point /mnt/nvme_write. This gives a working DVR pipeline out-of-the-box. Operator can later switch to physical NVMe.

Здоров'я

Stream.archive_path/1 returns the first healthy tier - write_buffer if mounted+writable+free_pct above safety floor, otherwise falls back to archive (degraded mode). Safety floor 20%% for tmpfs, 2%% for block devices.

Зміна розміру

Changing tmpfs_size_pct in UI triggers umount + remount with the new size on Save. Active DVR writes are briefly paused (mount transition < 1 s). Recommendation: change tmpfs size only when DVR write rate is low.

Базова URL-адреса — OSTV Player

Поля пакетів

Packages API

Password Policy

Reseller API

Налаштування

Поля користувача

Керування користувачами

Управління користувачами IPTV

Базовий URL — OSTV Player

OSTV Player дозволяє користувачам з роллю root змінювати базовий URL сервера (адресу API).

Причина: зміна базового URL лише для адміністраторів/root для перемикання між серверами. Звичайні користувачі мають фіксований URL.

Поля користувача

Packages API

Повертає список усіх активних пакетів з цінами та розрахунковими періодами.

Список управлінських користувачів (реселерів / провайдерів).

Повертає кредитний баланс конкретного управлінського користувача.

Поля пакету

Reseller API

API для реселерів/провайдерів. Authorization: Bearer mtk_... (токен з Manage Users). Реселер бачить лише своїх клієнтів (owner_id).

Політика паролів

Пароль обов'язковий при створенні підписника. Правила:

Мінімум 8 символів

Щонайменше 1 велика літера (A-Z)

Щонайменше 1 спеціальний символ (!@#$%^&* тощо)

Застосовується до UI та API. При оновленні пароль необов'язковий, але якщо вказано — повинен відповідати правилам.

Налаштування

Автопровізіонування рівнів та безпека

Автовизначення ємності та ФС: при виборі NVMe ємність зчитується з lsblk, ФС з blkid. Форма лише для читання — без ручного вводу.

Механізм flush рівня — безперервне дзеркало

StorageTierFlush GenServer запускається кожні 60 с, безперервно надсилає сегменти на RAID, зберігаючи 2-годинне гаряче вікно на NVMe.

Безперервне дзеркало краще пакетного переміщення: рівномірне навантаження RAID, мінімальна втрата при відмові, перевірка на файл.

Безпека сегментів: дзеркало вибирає файли старші MIRROR_MIN_AGE_MINUTES (find -mmin +5) — неможливе перенесення частково записаного файлу.

Налаштування для розгортання (.env)

500–1000

Правило визначення розміру:

Календар DVR Preview

Вкладка DVR Preview показує календар з підсвіченими днями записів. Сканування по всіх рівнях (write_buffer + read_cache + archive + legacy).

Дні з записами — клікабельні (сині), попередньо заповнюють поле дати о 00:00. Дні без записів затемнені та неактивні.

Реалізовано в Stream.available_dvr_days/1 через find на кожній точці монтування; дедупліковано між рівнями.

Назва

Огляд

Загальний огляд API B2C.

Автентифікація

Опис автентифікації

Метод

Точка доступу

Тіло запиту

Параметр

Тип

Обов'язковий

Опис

Так

Опис імені користувача

Опис пароля

Приклад запиту

Поля відповіді

Успішна відповідь

Опис токена автентифікації

Опис терміну дії

Приклад успіху

Відповідь помилки

Опис повідомлення про помилку

Опис коду помилки

Приклад помилки

Інформація користувача

Опис інформації про користувача

Поля інформації користувача

Опис імені користувача

Опис повідомлення

Опис автентифікації

Опис статусу

Опис закінчення терміну

Опис активних з'єднань

Опис створення

Опис макс. з'єднань

Опис форматів

Опис назви провайдера

Опис логотипу провайдера

Опис логотипу згортання провайдера

Опис поточного часу

Приклад інформації користувача

Категорії

Опис категорій

Опис типу категорії

Опис ідентифікатора категорії

Опис назви категорії

Опис батьківської категорії

Опис кешу категорій

Приклад категорій

Деталі VOD

Опис деталей VOD

Опис ID деталей VOD

Назва VOD

Зображення VOD

TMDB ID VOD

Інформація про задній фон

Жанр VOD

Сюжет VOD

Інформація про акторів

Рейтинг VOD

Інформація про режисера

Дата випуску VOD

Довгота VOD (секунди)

Довгота VOD (хвилини)

Категорії VOD

В дорослому контенті

Назва потоку VOD

ID потоку VOD

Назва VOD

Додано VOD

Посилання VOD

Метадані VOD

Деталі серії

Опис деталей серії

Опис ідентифікатора деталей серії

Сезони

Номер сезону

Назва сезону

Кількість епізодів сезону

Дата показу сезону

Огляд сезону

Обкладинка сезону

Епізоди

Опис епізодів

Поля епізоду

ID епізоду

TMDB ID епізоду

Номер епізоду

Назва епізоду

Додано епізод

Сезон епізоду

Інформація про епізод

Посилання на епізод

Метадані епізоду

Примітки

Примітки

Відповідь інформації користувача

Опис токена інформації користувача