Te przewodniki odwzorowują pojęcia branży na obiekty, które platforma ma dziś (bukiety, linie, pakiety, konta partnerów, węzły, API). To odwzorowania koncepcyjne, a nie funkcje specyficzne dla branż, a konto partnera jest kontem delegowanym, a nie odizolowanym najemcą.
Odwzorowanie koncepcyjne
Nic w panelu nie nazywa się kursem ani studentem. Tabela mówi, który obiekt pełni jaką rolę; poniższe rozdziały ustawiają je w tej kolejności.
| W Twojej branży | Na platformie | Gdzie w panelu |
|---|---|---|
| Ośrodek szkoleniowy lub partner dystrybucyjny | Konto partnera (reseller): delegowany panel z kredytami, uprawnieniami i własnymi liniami | Users → dodaj resellera; Groups dla jego uprawnień |
| Zbiór kursów | Bukiet: nazwany zestaw kanałów, filmów lub seriali przyznawany przez pakiet | Bouquets, ze Streams oraz Movies / Series |
| Nagrane lekcje | Katalog VOD: filmy i seriale z sezonami i odcinkami, kategorie i metadane | Movies i Series lub zadanie pobierania VOD |
| Zajęcia na żywo | Kanał na żywo: strumień ze źródłami, EPG i formatami wyjściowymi | Streams → dodaj strumień na żywo (adres źródła lub wysyłka RTMP) |
| Dostęp studenta | Linia: jeden dostęp z pakietem, bukietami, datą wygaśnięcia, limitem połączeń i wyjściami | Lines → dodaj, albo kody aktywacyjne, albo Reseller API |
| Okres dostępu do kursu | Data wygaśnięcia linii, odnawiana przez pakiet, kredyt lub API | Data wygaśnięcia linii i czas trwania pakietu |
| Limit równoczesnych sesji | Maks. liczba połączeń linii: ile urządzeń może oglądać jednocześnie | Maks. liczba połączeń linii |
| Integracja z LMS lub systemem sprzedaży | Reseller API i webhooki: operacje panelu z Twojego własnego systemu | Klucze Reseller API i webhooki w panelu resellera |
Wymagania wstępne
Co mieć przed instalacją.
- Serwer z Linuksem (Ubuntu 22.04 lub 24.04) w sieci kampusu z Postgresem, Redisem i ffmpeg zainstalowanymi przez instalator oraz domena lub adres wewnętrzny dla panelu i odtwarzacza.
- Nagrania, które opublikujesz (pliki lub system zapisu potrafiący wysyłać RTMP) oraz, dla zajęć na żywo, enkoder w każdej sali, która będzie transmitować.
- Klucz licencyjny: plan Free go nie wymaga; instytucje spełniające warunki zamawiają bezpłatny klucz Professional e-mailem ze swojej domeny akademickiej.
Wdrożenie infrastruktury
Zainstaluj serwer zarządzający, a potem węzeł na budynek.
- Uruchom instalator na serwerze zarządzającym; instaluje panel, API, workera i serwer źródłowy jako jednostki systemd i tworzy pierwszego administratora.
- Ustaw publiczny adres API (API_PUBLIC_URL) i bazę odtwarzania, aby linki odtwarzacza wskazywały adres kampusu.
- Zarejestruj węzeł z Servers → dodaj węzeł dla każdego budynku, którego sale będą oglądać; panel instaluje go przez SSH z pakietu węzła.
- Sprawdź stronę Servers: węzeł zgłasza heartbeat i ruch, a widzowie z tego budynku są do niego kierowani.
Organizacja treści
Kursy jako seriale, programy jako bukiety i pakiety.
- Utwórz jedną kategorię na wydział lub przedmiot w Movies / Series.
- Dodaj każdy kurs jako serial: jeden sezon na moduł, jeden odcinek na lekcję, z nagraniem jako źródłem (przesłanie lub zadanie pobierania VOD).
- Utwórz jeden bukiet na zbiór kursów (na przykład kursy programu na semestr) z dodanych seriali.
- Utwórz jeden pakiet na program: bukiety, które przyznaje, okres dostępu jako czas trwania i limit równoczesnych sesji.
Konfiguracja partnerów (resellerów)
Ośrodek szkoleniowy lub wydział jako konto delegowane.
- Utwórz w Groups grupę z uprawnieniami, których ośrodek potrzebuje (własne linie, bez zmian w katalogu).
- Dodaj ośrodek jako resellera w Users z tą grupą, saldem kredytów i pakietami, które może wydawać.
- Podaj mu adres panelu; stamtąd zarządza własnymi studentami, a panel prowadzi dziennik audytu.
Konfiguracja dostępu studentów
Jedna linia na studenta, tworzona przy zapisie.
- Dla małych grup dodawaj linie z Lines → dodaj z pakietem programu; data wygaśnięcia wynika z czasu trwania pakietu.
- Na dzień zapisów wygeneruj kody aktywacyjne dla pakietu; student realizuje kod w odtwarzaczu i dostaje linię.
- Dla systemu studenckiego lub LMS utwórz klucz Reseller API i pozwól systemowi tworzyć linie przez action=create_line z identyfikatorem żądania na studenta.
- Ustaw maks. liczbę połączeń na liczbę urządzeń, z których student może korzystać jednocześnie; odtwarzacz odrzuca kolejne połączenie ponad limit.
Konfiguracja VOD
Nagrane lekcje na żądanie.
- Prześlij każde nagranie jako źródło odcinka albo wskaż plik zadaniu pobierania VOD i pozwól workerowi pobrać go i zakodować do katalogu mediów.
- Uzupełnij metadane (tytuł, opis, plakat) ręcznie lub z TMDB dla materiałów publicznych; lekcje zwykle wymagają tylko tytułu i opisu.
- Sprawdź odtwarzanie w odtwarzaczu webowym z linią testową; link jest podpisany i wygasa po skonfigurowanym czasie.
Streaming zajęć na żywo
Wykład jako kanał na żywo.
- Dodaj strumień na żywo w Streams z enkoderem sali jako źródłem (adres wysyłki RTMP lub adres do pobierania).
- Umieść strumień w bukiecie kursu, aby widzieli go tylko zapisani studenci; dodaj go do EPG, jeśli prowadzisz plan zajęć.
- Włącz catch-up lub timeshift na strumieniu, gdy studenci mogą obejrzeć zajęcia później; nagranie można też przesłać jako odcinek.
Subskrypcja i wygasanie dostępu
Dostęp, który kończy się wraz z kursem.
- Nadaj pakietowi okres dostępu jako czas trwania; linia utworzona z niego wygasa po upływie tego okresu.
- Odnów linię na nowy semestr z panelu, kredytem ośrodka, lub przez API z action=renew_line.
- Zasubskrybuj webhooki w swoim systemie: dowie się, gdy linia zaraz wygaśnie, wygasła lub została wyłączona.
Integracja z zewnętrznym LMS
LMS steruje dostępem; odtwarzacz odtwarza.
- Utwórz klucz Reseller API dla LMS; trzymaj go w sekretach LMS, nigdy na stronie.
- Przy zapisie LMS wywołuje action=create_line z pakietem programu i identyfikatorem żądania; przy rezygnacji action=disable_line.
- Linkuj ze strony kursu w LMS do odtwarzacza webowego lub przekaż studentowi dane dostępowe odtwarzacza; między nimi nie ma jednokrotnego logowania (SSO).
Kwestie bezpieczeństwa
Utrzymaj usługę wewnątrz instytucji.
- Włącz logowanie dwuskładnikowe dla każdego konta panelu i nadaj pracownikom najmniejszą działającą grupę uprawnień.
- Dane osobowe studentów trzymaj w systemie studenckim; linia potrzebuje tylko nazwy i daty wygaśnięcia.
- Utrzymuj niski limit maks. połączeń i rozważ powiązanie odtwarzania z adresem widza, aby zapobiec udostępnianiu.
- Włącz szyfrowaną kopię zapasową bazy danych i, jeśli masz magazyn zgodny z S3, kopię zewnętrzną.
Rozwiązywanie problemów
Typowe pierwsze kontrole.
- Student nie może się zalogować: sprawdź datę wygaśnięcia linii i czy jest włączona, potem pakiet i bukiet kursu.
- Nagranie się nie odtwarza: sprawdź wynik zadania pobierania na stronie Jobs, potem plik w katalogu mediów i termin ważności podpisanego linku.
- Widzowie budynku trafiają na serwer źródłowy: sprawdź heartbeat węzła i czy adres widza wpada w routing węzła.
- API odrzuca wywołanie: sprawdź klucz, metodę akcji (zapisy to POST) i identyfikator żądania ponowionego wywołania.