Estes guias mapeiam os conceitos de um setor para os objetos que a plataforma tem hoje (bouquets, lines, pacotes, contas de parceiro, nodes, a API). São mapeamentos conceituais, não recursos específicos de um setor, e uma conta de parceiro é uma conta delegada, não um tenant isolado.
Mapeamento conceitual
Nada no painel se chama assinatura ou ponto de presença. A tabela diz qual objeto faz qual papel; os capítulos abaixo os configuram nessa ordem.
| No seu setor | Na plataforma | Onde no painel |
|---|---|---|
| Conta de distribuidor ou parceiro regional | Conta de parceiro (revendedor): um painel delegado com créditos, permissões e suas próprias lines | Users → adicionar um revendedor; Groups para suas permissões |
| Nível de canais ou pacote adicional | Bouquet: um conjunto nomeado de canais, filmes ou séries que um pacote concede | Bouquets, a partir de Streams e Movies / Series |
| Canal de televisão | Canal ao vivo: um stream com suas fontes, EPG e formatos de saída | Streams → adicionar um stream ao vivo (URL de origem ou envio por RTMP) |
| Biblioteca VOD | Catálogo de VOD: filmes e séries com temporadas e episódios, categorias e metadados | Movies e Series, ou a tarefa de ingestão de VOD |
| Acesso de televisão do assinante | Line: um acesso com seu pacote, bouquets, expiração, limite de conexões e saídas | Lines → adicionar, ou códigos de ativação, ou a Reseller API |
| Fim do período de cobrança | Data de expiração da line, renovada por um pacote, um crédito ou a API | A data de expiração da line e a duração do pacote |
| Telas por assinatura | Máximo de conexões da line: quantos dispositivos podem assistir ao mesmo tempo | O máximo de conexões da line |
| Integração de cobrança e provisionamento | 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 |
| Node do ponto de presença | Nodes de streaming: servidores de borda registrados pelo painel, um por local ou prédio | Servers → adicionar um node, instalado por SSH |
Pré-requisitos
O que ter antes de instalar.
- Um servidor no site central (Ubuntu 22.04 ou 24.04), o instalador, um domínio ou endereço que os assinantes consigam acessar e um servidor em cada ponto de presença para os nodes.
- Os sinais de canais licenciados, a biblioteca VOD e o sistema de cobrança em que as assinaturas ficam.
- Uma decisão sobre os níveis, quanto dura um período de cobrança e quais distribuidores recebem uma conta de parceiro.
Implantação da infraestrutura
O site central, depois os pontos de presença.
- Execute o instalador no servidor central; coloque o painel atrás do seu proxy reverso e defina TRUSTED_PROXIES para que os logs e as regras de IP vejam o endereço real do assinante.
- Defina a base de reprodução como o endereço público que os assinantes acessam e a chave de licença no servidor.
- Registre um node por ponto de presença em Servidores; o painel o instala por SSH, ou o node se registra com um código de uso único, e direciona a ele os assinantes próximos.
- Crie uma conta de parceiro (revendedor) para o suporte ou para a equipe de cobrança com permissões apenas para linhas.
Organização do conteúdo
Níveis e pacotes como bouquets.
- Adicione os canais em Streams e a biblioteca VOD em Filmes e Séries, com categorias e uma fonte EPG.
- Crie bouquets para a grade básica, os canais premium e a biblioteca VOD.
- Crie um pacote por nível de assinatura com os bouquets que ele concede, o período de cobrança como duração e um preço em créditos.
- Crie um pacote de teste curto para uma promoção ou um novo cliente.
Configuração de parceiros (revendedores)
Distribuidores com créditos.
- Crie um grupo para distribuidores com permissões para as próprias linhas e sem acesso ao catálogo nem às configurações.
- Adicione cada distribuidor regional como conta de parceiro com esse grupo, os pacotes que pode vender e um saldo de créditos; um distribuidor pode ter subrevendedores em até cinco níveis.
- O webhook credits.low e o aviso de poucos créditos dizem a um distribuidor para recarregar antes que as vendas parem.
Configuração das linhas de assinantes
Uma linha por assinatura.
- A cobrança cria uma linha quando uma assinatura começa, por um conector ou por action=create_line da Reseller API com o pacote do nível e um id de requisição.
- Defina o máximo de conexões por nível, o número de telas que uma residência pode usar ao mesmo tempo.
- Vincule uma linha ao endereço, país ou ISP do assinante quando a oferta for apenas para a sua rede.
- Para um piloto ou um caso de suporte, adicione linhas em Linhas → adicionar e entregue as credenciais.
Biblioteca VOD
O catálogo sob demanda.
- Adicione filmes e séries com temporadas e episódios, ingeridos com o job de ingestão de VOD ou enviados, com metadados do TMDB para pôsteres e descrições.
- Agrupe os títulos em bouquets por nível ou complemento, para que um pacote conceda exatamente o que a assinatura inclui.
- Os nodes fazem cache dos arquivos VOD, de modo que os títulos populares são servidos do ponto de presença perto do assinante.
Canais ao vivo
A grade.
- Adicione cada canal licenciado em Streams com o seu sinal e ative catch-up ou timeshift apenas onde os direitos permitirem.
- Adicione uma fonte EPG para que apps e aparelhos mostrem o guia de programação.
- Cada node pega um canal ao vivo uma única vez da origem e o distribui a seus assinantes.
Vencimento, renovação e cancelamento
O período de cobrança como validade da linha.
- Uma linha dura o período do seu pacote; a cobrança a renova a cada período com action=renew_line ou pelo conector.
- Quando uma assinatura vence ou é cancelada, a cobrança chama action=disable_line e ativa a linha novamente na reativação.
- Inscreva a cobrança nos webhooks para conciliar as linhas prestes a expirar e expiradas com os seus registros.
Integração com a cobrança
A cobrança controla o acesso; o player reproduz.
- Instale o conector do seu sistema de cobrança do lado dele (WHMCS, Blesta, Odoo e outros) ou chame a Reseller API com uma chave e um id de requisição a partir do seu próprio sistema.
- Não há login único para espectadores: um assinante entra em um app ou aparelho com as credenciais da linha, que a cobrança pode exibir na área do cliente.
- Use chaves da Admin API com a opção somente leitura, lista de IPs permitidos e data de expiração para ferramentas de relatório.
Considerações de segurança
Mantenha o serviço para os assinantes.
- Coloque o painel atrás do proxy reverso com TLS e defina TRUSTED_PROXIES; mantenha o tráfego de gerenciamento dos nodes em uma rede privada.
- Login em duas etapas para toda conta do painel e grupos de permissões para suporte e distribuidores; reCAPTCHA ou Turnstile no login.
- Links de reprodução assinados e com expiração, um limite de conexões por assinatura e vínculo a um endereço, país ou ISP quando fizer sentido.
- Backups criptografados do banco de dados com cópia externa e o log de auditoria para cada alteração de linhas e créditos.
Solução de problemas
As primeiras verificações habituais.
- Um assinante está sem televisão: verifique se a linha está ativada e não expirada e depois a chamada da cobrança no log de chamadas da Reseller API.
- Falta um canal para um nível: verifique os bouquets do pacote desse nível.
- Um ponto de presença trava: verifique o heartbeat do node dele e se os assinantes estão direcionados a ele.
- Um distribuidor não consegue criar uma linha: verifique os créditos dele e se o pacote é um que ele pode vender.