Эти руководства сопоставляют понятия отрасли с объектами, которые в платформе есть сегодня (букеты, линии, пакеты, аккаунты реселлеров, ноды, API). Это концептуальные соответствия, а не отраслевые функции, и аккаунт реселлера — делегированный аккаунт, а не изолированный тенант.
Концептуальное соответствие
В панели ничто не называется курсом или студентом. Таблица показывает, какой объект какую роль играет; главы ниже настраивают их в этом порядке.
| В вашей отрасли | На платформе | Где в панели |
|---|---|---|
| Учебный центр или партнёр-дистрибьютор | Аккаунт реселлера: делегированная панель с кредитами, правами и собственными линиями | Users → добавить реселлера; Groups для его прав |
| Коллекция курсов | Букет: именованный набор каналов, фильмов или сериалов, который открывает пакет | Bouquets, из Streams и Movies / Series |
| Записанные уроки | VOD-каталог: фильмы и сериалы с сезонами и эпизодами, категориями и метаданными | Movies и Series либо задача загрузки VOD |
| Живое занятие | Прямой канал: стрим со своими источниками, EPG и форматами вывода | Streams → добавить прямой стрим (URL источника или RTMP-поток) |
| Доступ студента | Линия: один доступ со своим пакетом, букетами, сроком действия, лимитом подключений и выводами | Lines → добавить, либо коды активации, либо Reseller API |
| Период доступа к курсу | Срок действия линии, который продлевается пакетом, кредитом или через API | Срок действия линии и длительность пакета |
| Лимит одновременных сессий | Максимум подключений линии: сколько устройств могут смотреть одновременно | Максимум подключений линии |
| Интеграция с LMS или торговой системой | Reseller API и webhook: операции панели из вашей собственной системы | Ключи Reseller API и webhook в панели реселлера |
Требования
Что подготовить до установки.
- Linux-сервер (Ubuntu 22.04 или 24.04) в сети кампуса, на который установщик поставит Postgres, Redis и ffmpeg, и домен или внутренний адрес для панели и плеера.
- Записи, которые вы будете публиковать (файлы или система захвата, умеющая отправлять RTMP), и для живых занятий — энкодер в каждой аудитории, откуда пойдёт трансляция.
- Лицензионный ключ: тарифу Free он не нужен; подходящие учреждения запрашивают бесплатный ключ Professional по e-mail со своего академического домена.
Развёртывание инфраструктуры
Установите управляющий сервер, затем ноду на каждое здание.
- Запустите установщик на управляющем сервере; он установит панель, API, worker и origin как юниты systemd и создаст первого администратора.
- Задайте публичный URL API (API_PUBLIC_URL) и базу воспроизведения, чтобы ссылки плеера указывали на адрес кампуса.
- Подключите ноду через Servers → добавить ноду для каждого здания, аудитории которого будут смотреть; панель установит её по SSH из пакета ноды.
- Проверьте страницу Servers: нода сообщает heartbeat и трафик, а зрители этого здания направляются на неё.
Организация контента
Курсы как сериалы, программы как букеты и пакеты.
- Создайте по одной категории на факультет или предмет в разделе Movies / Series.
- Добавьте каждый курс как сериал: один сезон на модуль, один эпизод на урок, с записью в качестве источника (загрузка или задача загрузки VOD).
- Создайте по одному букету на коллекцию курсов (например, курсы программы на семестр) из добавленных сериалов.
- Создайте по одному пакету на программу: букеты, которые он открывает, период доступа как длительность и лимит одновременных сессий.
Настройка партнёров (реселлеров)
Учебный центр или факультет как делегированный аккаунт.
- Создайте в Groups группу с правами, нужными центру (собственные линии, без изменений каталога).
- Добавьте центр как реселлера в Users с этой группой, балансом кредитов и пакетами, которые он может выдавать.
- Дайте ему адрес панели; он управляет своими студентами оттуда, а панель ведёт журнал аудита.
Настройка доступа студентов
Одна линия на студента, создаётся при зачислении.
- Для небольших потоков добавляйте линии через Lines → добавить с пакетом программы; срок действия определяется длительностью пакета.
- На день зачисления сформируйте коды активации для пакета; студент вводит код в плеере и получает линию.
- Для студенческой системы или LMS создайте ключ Reseller API и позвольте системе создавать линии с action=create_line и идентификатором запроса на каждого студента.
- Задайте максимум подключений равным числу устройств, которыми студент может пользоваться одновременно; плеер отклонит следующее подключение сверх этого.
Настройка VOD
Записанные уроки по запросу.
- Загрузите каждую запись как источник эпизода либо укажите файл задаче загрузки VOD, и worker скачает и закодирует его в медиакорень.
- Заполните метаданные (название, описание, постер) вручную или из TMDB для публичных материалов; для уроков обычно достаточно названия и описания.
- Проверьте воспроизведение в веб-плеере с тестовой линией; ссылка подписана и истекает через заданное время.
Прямые трансляции занятий
Лекция как прямой канал.
- Добавьте прямой стрим в Streams, указав энкодер аудитории как источник (адрес RTMP-публикации или URL для получения).
- Поместите стрим в букет курса, чтобы его видели только зачисленные студенты; добавьте его в EPG, если ведёте расписание.
- Включите catch-up или timeshift на стриме, если студенты могут смотреть занятие позже; запись можно также загрузить как эпизод.
Подписка и срок действия доступа
Доступ, который заканчивается вместе с курсом.
- Задайте пакету период доступа как длительность; созданная из него линия истекает по окончании этого периода.
- Продлите линию на новый семестр из панели, за кредит центра, либо через API с action=renew_line.
- Подпишите свою систему на webhook: она узнает, что линия скоро истечёт, истекла или была отключена.
Интеграция с внешней LMS
LMS управляет доступом; плеер воспроизводит.
- Создайте ключ Reseller API для LMS; храните его в секретах LMS, а не на странице.
- При зачислении LMS вызывает action=create_line с пакетом программы и идентификатором запроса; при отчислении — action=disable_line.
- Ссылайтесь на веб-плеер со страницы курса в LMS или выдайте студенту учётные данные плеера; единого входа между ними нет.
Вопросы безопасности
Держите сервис внутри учреждения.
- Включите двухфакторный вход для каждого аккаунта панели и давайте сотрудникам минимально достаточную группу прав.
- Храните персональные данные студентов в студенческой системе; линии нужны только имя и срок действия.
- Держите максимум подключений низким и рассмотрите привязку воспроизведения к адресу зрителя, чтобы не делились доступом.
- Включите зашифрованное резервное копирование базы и, если есть S3-совместимое хранилище, внешнюю копию.
Устранение неполадок
Обычные первые проверки.
- Студент не может войти: проверьте срок действия линии и что она включена, затем пакет и букет курса.
- Запись не воспроизводится: проверьте результат задачи загрузки на странице Jobs, затем файл в медиакорне и срок действия подписанной ссылки.
- Зрители здания попадают на origin: проверьте heartbeat ноды и попадает ли адрес зрителя в маршрутизацию ноды.
- API отклоняет вызов: проверьте ключ, метод действия (записи выполняются через POST) и идентификатор запроса при повторных вызовах.