O Revenda IPTV BR é um bot como serviço: o Admin fornece o cérebro (LLM da OpenRouter) e os Fornecedores plugam o bot no próprio painel IPTV (Xtream) via API. O bot entende comandos em português e executa ações no painel de quem chamou.
Também existe a camada de Revendedor: o fornecedor cria revendedores que consomem um auxiliar de dúvidas (IA + base de conhecimento) e recebem avisos ao vivo (sinal/VOD) — tudo sem acessar o painel do fornecedor.
/login com usuário admin e a senha forte (definida no deploy, em admin_pass.txt na VPS)./admin/keys → "Adicionar chave".
sk-or-.... Ela é criptografada em repouso no banco (não fica em texto puro).openai/gpt-4o-mini, anthropic/claude-3.5-sonnet, google/gemini-flash-1.5). Um modelo único vale para todas as chaves e clientes.openai/gpt-4o-mini). Deixe em branco para usar o modelo acima. Respostas repetidas são cacheadas (0 créditos)./admin veja CPU, RAM, Disco e Tráfego (atualiza sozinho a cada 3s)./admin/customers o admin cria manualmente as contas de fornecedor (usuário + senha + API key), além de bloquear (trava a API) ou gerar nova API key./dashboard → "Seu painel IPTV", cadastre URL / usuário / senha do seu painel Xtream. É nele que o bot cria, renova e suspende linhas. Senha criptografada no banco./agent para conversar com o bot (ele opera o seu painel).No /dashboard → "Base de conhecimento & Avisos":
No mesmo /dashboard → "Revendedores", crie contas de revendedor (subordinadas a você). Eles só consomem a base de conhecimento e os avisos — não acessam seu painel Xtream.
/dashboard → Revendedores. Você recebe usuário + senha + API key./login → vai para /reseller./agent (ou pela API) tire dúvidas de IPTV. A IA responde de forma humana e variada usando a base de conhecimento — não acessa o painel do fornecedor.POST /api/agent (ver aba API). Assim você embute o auxiliar dentro do seu painel de revendedor.POST /api/agentAutentique com sua API key (header X-API-Key ou Authorization: Bearer). Envie prompt (texto livre, PT-BR).
Sem API key → 401. Sem chave OpenRouter cadastrada → mensagem de erro controlada (não quebra).
Ao mudar o status de SINAL/VOD, o bot faz POST JSON para a Webhook URL que o fornecedor cadastrou:
Você recebe o evento e formata a mensagem (ex: "Olá {name}, o sinal está {status}...") e envia pelo seu próprio WhatsApp. Sem provedor de WhatsApp terceiro.
Banco: tudo vive em um SQLite na VPS do bot (/opt/revendaiptv/revenda.db). Backups = copiar esse arquivo.
user_id de quem chamou.Perdi a senha de admin: o implementador regera via admin_pass.txt na VPS.
Como cadastro um fornecedor? O admin cria manualmente em /admin/customers (sem cadastro público).
Como o revendedor pergunta? Ele entra em /reseller → /agent, ou chama a API com a API key dele. A resposta vem da base de conhecimento.
Quero gastar pouco com IA: deixe a base estática no servidor + use modelo barato na KB + aproveite o cache de respostas repetidas.
Como chega o aviso de sinal fora no WhatsApp? O fornecedor cadastra a Webhook URL; o bot dispara o evento; você formata e manda pelo seu método (sem terceiro).
A chave OpenRouter caiu (limite): o bot testa os fallbacks em ordem de prioridade automaticamente.
Como faço backup: copie /opt/revendaiptv/revenda.db da VPS.