Queste guide mettono in corrispondenza i concetti di un settore con gli oggetti che la piattaforma ha oggi (bouquet, linee, pacchetti, account partner, nodi, l'API). Sono corrispondenze concettuali, non funzioni specifiche per settore, e un account partner è un account delegato, non un tenant isolato.
Corrispondenza concettuale
Nel pannello nulla si chiama corso o studente. La tabella dice quale oggetto svolge quale ruolo; i capitoli qui sotto li configurano in quest'ordine.
| Nel tuo settore | Sulla piattaforma | Dove nel pannello |
|---|---|---|
| Centro di formazione o partner di distribuzione | Account partner (reseller): una dashboard delegata con crediti, permessi e linee proprie | Users → aggiungi un reseller; Groups per i suoi permessi |
| Raccolta di corsi | Bouquet: un insieme con nome di canali, film o serie che un pacchetto concede | Bouquets, a partire da Streams e Movies / Series |
| Lezioni registrate | Catalogo VOD: film e serie con stagioni ed episodi, categorie e metadati | Movies e Series, oppure il job di ingest VOD |
| Lezione in diretta | Canale in diretta: uno stream con le sue fonti, l'EPG e i formati di uscita | Streams → aggiungi uno stream in diretta (URL della fonte o push RTMP) |
| Accesso dello studente | Linea: un accesso con il suo pacchetto, i bouquet, la scadenza, il limite di connessioni e le uscite | Lines → aggiungi, oppure codici di attivazione, oppure la Reseller API |
| Periodo di accesso al corso | Data di scadenza della linea, rinnovata da un pacchetto, da un credito o dall'API | La data di scadenza della linea e la durata del pacchetto |
| Limite di sessioni simultanee | Connessioni massime della linea: quanti dispositivi possono guardare insieme | Le connessioni massime della linea |
| Integrazione con LMS o e-commerce | Reseller API e webhook: le operazioni del pannello dal tuo sistema | Chiavi Reseller API e webhook nella dashboard del reseller |
Prerequisiti
Cosa avere prima di installare.
- Un server Linux (Ubuntu 22.04 o 24.04) sulla rete del campus con Postgres, Redis e ffmpeg installati dall'installer, e un dominio o un indirizzo interno per il pannello e il player.
- Le registrazioni che pubblicherai (file o un sistema di cattura che possa inviare RTMP) e, per le lezioni in diretta, un encoder in ogni aula che trasmetterà.
- Una chiave di licenza: il piano Free non ne richiede; gli istituti idonei richiedono la chiave Professional gratuita via e-mail dal loro dominio accademico.
Installazione dell'infrastruttura
Installa il server di gestione, poi un nodo per edificio.
- Esegui l'installer sul server di gestione; installa il pannello, l'API, il worker e l'origin come unit systemd e crea il primo amministratore.
- Imposta l'URL pubblico dell'API (API_PUBLIC_URL) e la base di riproduzione perché i link del player puntino all'indirizzo del campus.
- Registra un nodo da Servers → aggiungi un nodo per ogni edificio le cui aule guarderanno; il pannello lo installa via SSH dal pacchetto del nodo.
- Controlla la pagina Servers: il nodo segnala il suo heartbeat e il traffico, e gli spettatori di quell'edificio sono instradati a lui.
Organizzazione dei contenuti
Corsi come serie, programmi come bouquet e pacchetti.
- Crea una categoria per facoltà o materia in Movies / Series.
- Aggiungi ogni corso come serie: una stagione per modulo, un episodio per lezione, con la registrazione come fonte (caricamento o job di ingest VOD).
- Crea un bouquet per raccolta di corsi (per esempio i corsi di un programma per un periodo) a partire dalle serie che hai aggiunto.
- Crea un pacchetto per programma: i bouquet che concede, il periodo di accesso come durata e il limite di sessioni simultanee.
Configurazione dei partner (reseller)
Un centro di formazione o una facoltà come account delegato.
- Crea un gruppo con i permessi di cui il centro ha bisogno (linee proprie, nessuna modifica al catalogo) in Groups.
- Aggiungi il centro come reseller in Users con quel gruppo, un saldo di crediti e i pacchetti che può distribuire.
- Dagli l'indirizzo della dashboard; da lì gestisce i propri studenti e il pannello conserva il log di audit.
Configurazione dell'accesso degli studenti
Una linea per studente, creata all'iscrizione.
- Per piccole coorti, aggiungi le linee da Lines → aggiungi con il pacchetto del programma; la scadenza segue la durata del pacchetto.
- Per il giorno dell'iscrizione, genera i codici di attivazione per il pacchetto; lo studente riscatta un codice nel player e ottiene una linea.
- Per un sistema studenti o un LMS, crea una chiave Reseller API e lascia che il sistema crei le linee con action=create_line e un id di richiesta per studente.
- Imposta le connessioni massime sul numero di dispositivi che uno studente può usare insieme; il player rifiuta la connessione successiva oltre quel limite.
Configurazione VOD
Lezioni registrate on demand.
- Carica ogni registrazione come fonte di un episodio, oppure punta il job di ingest VOD al file e lascia che il worker lo scarichi e lo codifichi nella root dei media.
- Compila i metadati (titolo, descrizione, locandina) a mano o da TMDB per il materiale pubblico; le lezioni di solito richiedono solo un titolo e una descrizione.
- Verifica la riproduzione nel web player con una linea di prova; il link è firmato e scade dopo il tempo configurato.
Streaming in diretta delle lezioni
Una lezione come canale in diretta.
- Aggiungi uno stream in diretta in Streams con l'encoder dell'aula come fonte (un indirizzo di push RTMP o un URL di pull).
- Metti lo stream nel bouquet del corso così lo vedono solo gli studenti iscritti; aggiungilo all'EPG se tieni un orario.
- Abilita catch-up o timeshift sullo stream quando gli studenti possono guardare una lezione più tardi; la registrazione può anche essere caricata come episodio.
Abbonamento e scadenza dell'accesso
Un accesso che termina con il corso.
- Dai al pacchetto il periodo di accesso come durata; una linea creata da esso scade alla fine di quel periodo.
- Rinnova una linea per un nuovo periodo dal pannello, con un credito del centro, oppure tramite l'API con action=renew_line.
- Iscrivi il tuo sistema ai webhook: viene avvisato quando una linea sta per scadere, è scaduta o è stata disattivata.
Integrazione con un LMS esterno
L'LMS governa l'accesso; il player riproduce.
- Crea una chiave Reseller API per l'LMS; tienila nei segreti dell'LMS, mai in una pagina.
- All'iscrizione l'LMS chiama action=create_line con il pacchetto del programma e un id di richiesta; al ritiro action=disable_line.
- Collega la pagina del corso dell'LMS al web player oppure dai allo studente le credenziali del player; non c'è single sign-on tra i due.
Considerazioni sulla sicurezza
Tieni il servizio dentro l'istituto.
- Abilita l'accesso a due fattori per ogni account del pannello e dai al personale il gruppo di permessi più piccolo che funzioni.
- Tieni i dati personali degli studenti nel sistema studenti; alla linea servono solo un nome e una scadenza.
- Mantieni basse le connessioni massime e valuta di legare la riproduzione all'indirizzo dello spettatore per evitare la condivisione.
- Attiva il backup cifrato del database e, se hai uno storage compatibile con S3, la copia off-site.
Risoluzione dei problemi
I primi controlli abituali.
- Uno studente non riesce ad accedere: controlla la scadenza della linea e che sia attiva, poi il pacchetto e il bouquet del corso.
- Una registrazione non si riproduce: controlla l'esito del job di ingest nella pagina Jobs, poi il file nella root dei media e la scadenza del link firmato.
- Gli spettatori di un edificio arrivano all'origin: controlla l'heartbeat del nodo e che l'indirizzo dello spettatore rientri nell'instradamento del nodo.
- L'API rifiuta una chiamata: controlla la chiave, il metodo dell'azione (le scritture sono POST) e l'id di richiesta di una chiamata ripetuta.