Estes guias fazem corresponder os conceitos de um setor aos objetos que a plataforma tem hoje (bouquets, linhas, pacotes, contas de parceiro, nós, a API). São correspondências conceptuais, não funcionalidades específicas de um setor, e uma conta de parceiro é uma conta delegada, não um inquilino isolado.
Correspondência conceptual
Nada no painel se chama curso ou aluno. A tabela indica que objeto desempenha que papel; os capítulos seguintes configuram-nos por essa ordem.
| No seu setor | Na plataforma | Onde no painel |
|---|---|---|
| Centro de formação ou parceiro de distribuição | Conta de revendedor (reseller): um painel delegado com créditos, permissões e as suas próprias linhas | Users → adicionar um revendedor; Groups para as suas permissões |
| Coleção de cursos | Bouquet: um conjunto nomeado de canais, filmes ou séries que um pacote concede | Bouquets, a partir de Streams e Movies / Series |
| Aulas gravadas | Catálogo VOD: filmes e séries com temporadas e episódios, categorias e metadados | Movies e Series, ou a tarefa de ingestão VOD |
| Aula em direto | Canal em direto: um stream com as suas fontes, EPG e formatos de saída | Streams → adicionar um stream em direto (URL de origem ou envio RTMP) |
| Acesso do aluno | Linha: um acesso com o seu pacote, bouquets, validade, limite de ligações e saídas | Lines → adicionar, ou códigos de ativação, ou a Reseller API |
| Período de acesso ao curso | Data de validade da linha, renovada por um pacote, um crédito ou pela API | A data de validade da linha e a duração do pacote |
| Limite de sessões simultâneas | Máximo de ligações da linha: quantos dispositivos podem ver em simultâneo | O máximo de ligações da linha |
| Integração com LMS ou comércio | Reseller API e webhooks: as operações do painel a partir do seu próprio sistema | Chaves da Reseller API e webhooks no painel do revendedor |
Pré-requisitos
O que ter antes de instalar.
- Um servidor Linux (Ubuntu 22.04 ou 24.04) na rede do campus, com Postgres, Redis e ffmpeg instalados pelo instalador, e um domínio ou um endereço interno para o painel e o leitor.
- As gravações que vai publicar (ficheiros ou um sistema de captura que envie RTMP) e, para aulas em direto, um codificador em cada sala que vá transmitir.
- Uma chave de licença: o plano Free não precisa de nenhuma; as instituições elegíveis pedem por e-mail, a partir do seu domínio académico, a chave Professional gratuita.
Implementação da infraestrutura
Instale o servidor de gestão e depois um nó por edifício.
- Execute o instalador no servidor de gestão; instala o painel, a API, o worker e a origem como unidades systemd e cria o primeiro administrador.
- Defina o URL público da API (API_PUBLIC_URL) e da base de reprodução para que as ligações do leitor apontem para o endereço do campus.
- Registe um nó em Servers → adicionar um nó para cada edifício cujas salas vão ver; o painel instala-o por SSH a partir do pacote do nó.
- Verifique a página Servers: o nó comunica o seu heartbeat e tráfego, e os espectadores desse edifício são encaminhados para ele.
Organização do conteúdo
Cursos como séries, programas como bouquets e pacotes.
- Crie uma categoria por faculdade ou disciplina em Movies / Series.
- Adicione cada curso como uma série: uma temporada por módulo, um episódio por aula, com a gravação como fonte (carregamento ou tarefa de ingestão VOD).
- Crie um bouquet por coleção de cursos (por exemplo, os cursos de um programa num período letivo) a partir das séries que adicionou.
- Crie um pacote por programa: os bouquets que concede, o período de acesso como duração e o limite de sessões simultâneas.
Configuração de parceiros (revendedores)
Um centro de formação ou uma faculdade como conta delegada.
- Crie em Groups um grupo com as permissões de que o centro precisa (linhas próprias, sem alterações ao catálogo).
- Adicione o centro como revendedor em Users com esse grupo, um saldo de créditos e os pacotes que pode atribuir.
- Dê-lhe o endereço do painel; gere aí os seus próprios alunos e o painel mantém o registo de auditoria.
Configuração do acesso dos alunos
Uma linha por aluno, criada na matrícula.
- Para turmas pequenas, adicione linhas em Lines → adicionar com o pacote do programa; a validade segue a duração do pacote.
- Para o dia da matrícula, gere códigos de ativação para o pacote; o aluno resgata um código no leitor e recebe uma linha.
- Para um sistema de alunos ou um LMS, crie uma chave da Reseller API e deixe o sistema criar linhas com action=create_line e um identificador de pedido por aluno.
- Defina o máximo de ligações para o número de dispositivos que um aluno pode usar em simultâneo; o leitor recusa a ligação seguinte além desse número.
Configuração de VOD
Aulas gravadas a pedido.
- Carregue cada gravação como fonte de um episódio, ou aponte a tarefa de ingestão VOD para o ficheiro e deixe o worker transferi-lo e codificá-lo para a raiz de media.
- Preencha os metadados (título, descrição, cartaz) à mão ou a partir do TMDB para material público; as aulas costumam precisar apenas de título e descrição.
- Verifique a reprodução no leitor web com uma linha de teste; a ligação é assinada e expira após o tempo configurado.
Streaming em direto de aulas
Uma aula como canal em direto.
- Adicione um stream em direto em Streams com o codificador da sala como fonte (um endereço de envio RTMP ou um URL de obtenção).
- Coloque o stream no bouquet do curso para que só os alunos matriculados o vejam; adicione-o ao EPG se mantiver um horário.
- Ative o catch-up ou o timeshift no stream quando os alunos puderem ver uma aula mais tarde; a gravação também pode ser carregada como episódio.
Subscrição e expiração do acesso
Acesso que termina com o curso.
- Dê ao pacote o período de acesso como duração; uma linha criada a partir dele expira no fim desse período.
- Renove uma linha para um novo período letivo a partir do painel, com um crédito do centro, ou através da API com action=renew_line.
- Subscreva os webhooks no seu sistema: é avisado quando uma linha está prestes a expirar, expirou ou foi desativada.
Integração com um LMS externo
O LMS gere o acesso; o leitor reproduz.
- Crie uma chave da Reseller API para o LMS; guarde-a nos segredos do LMS, nunca numa página.
- Na matrícula, o LMS chama action=create_line com o pacote do programa e um identificador de pedido; na desistência, action=disable_line.
- Ligue a partir da página do curso no LMS ao leitor web ou entregue ao aluno as credenciais do leitor; não há início de sessão único entre os dois.
Considerações de segurança
Mantenha o serviço dentro da instituição.
- Ative o início de sessão com dois fatores em todas as contas do painel e dê ao pessoal o menor grupo de permissões que funcione.
- Mantenha os dados pessoais dos alunos no sistema de alunos; a linha precisa apenas de um nome e de uma validade.
- Mantenha o máximo de ligações baixo e considere associar a reprodução ao endereço do espectador para evitar partilhas.
- Ative a cópia de segurança cifrada da base de dados e, se tiver armazenamento compatível com S3, a cópia externa.
Resolução de problemas
As primeiras verificações habituais.
- Um aluno não consegue iniciar sessão: verifique a validade da linha e se está ativada, depois o pacote e o bouquet do curso.
- Uma gravação não reproduz: verifique o resultado da tarefa de ingestão na página Tarefas, depois o ficheiro na raiz de media e a validade da ligação assinada.
- Os espectadores de um edifício chegam à origem: verifique o heartbeat do nó e se o endereço do espectador cai no encaminhamento do nó.
- A API recusa uma chamada: verifique a chave, o método da ação (as escritas são POST) e o identificador de pedido de uma chamada repetida.