Bxio 90dcbf895c
All checks were successful
Testar e publicar imagem Docker / publish (push) Successful in 26s
Support subtracting Query clients in flow text templates
2026-10-10 19:40:53 +01:00

TS6 Botflow

Painel local XanaX para gerir bots TeamSpeak, com login Discord e editor visual de flows. Mantém os logótipos originais e o tema flat roxo. As pastas dos projetos de origem permanecem intactas.

Funcionalidades

  • Dashboard com bots, flows e execuções guardados na base de dados.
  • Editor com blocos arrastáveis, ligações, condições, propriedades, zoom e gravação.
  • Blocos: temporizador, início manual, informações do servidor, clientes, ordenação, limite, preparação de texto, edição da descrição de canal, mensagem, espera e registo.
  • Simulação identificada com dados de exemplo, sem enviar pedidos ao TeamSpeak.
  • Execução manual ou por temporizador, com histórico e resultado de cada passo. Um bot não executa duas vezes em simultâneo.
  • Ligações WebQuery, teste de ligação e API keys cifradas em repouso.
  • Variáveis por bot: {{variables.nome}}. Outros valores: {{server.virtualserver_clientsonline}}, {{count}}, {{top}}, {{text}} e {{time}}.
  • Subtração de duas variáveis numéricas no texto: {{server.virtualserver_clientsonline - server.virtualserver_queryclientsonline}} mostra o total online sem os clientes Query. O bloco Informações do servidor deve executar antes. Valores em falta ou não numéricos são assinalados no histórico como erro.

O primeiro arranque cria um rascunho Estatísticas, desativado, para atualizar a descrição do canal 21 a cada 30 segundos. O top inicial ordena as pessoas atualmente online pela data de entrada; não é um ranking histórico de tempo acumulado.

Esta versão não inclui reprodução de música, eventos SSH, webhooks, edição de permissões nem gestão de perfis pelo painel. Cada bot tem um flow. O editor disponibiliza os blocos implementados acima.

Docker / Portainer

Para Web editor com imagem construída no Gitea, consultar deploy/README.md e usar deploy/bot-stack.yaml. Cada push em main executa os testes e publica a imagem. Depois do workflow verde, atualizar a stack no Portainer com download da imagem e recriação do container. Restart sozinho não descarrega a nova imagem.

Para construir localmente com Docker Compose, usar compose.yaml. A aplicação escuta na porta 3080 e preserva os dados num volume montado em /app/data.

Variáveis de ambiente:

  • APP_URL: endereço do navegador, por exemplo http://192.168.88.99:3080.
  • DISCORD_CLIENT_ID: ID da aplicação Discord.
  • DISCORD_CLIENT_SECRET: segredo OAuth da aplicação.
  • OWNER_DISCORD_ID: IDs numéricos dos donos, separados por vírgulas. A stack inclui 376768118535749633,723613831196311603. Um único ID continua a ser aceite.
  • ALLOWED_DISCORD_IDS: IDs de leitores separados por vírgulas. Por defeito, não há leitores. Um ID presente nas duas listas recebe o perfil Dono.

No Discord Developer Portal, adicionar o redirect exato http://192.168.88.99:3080/auth/discord/callback, ajustando ao APP_URL. O navegador e o container precisam de Internet para o OAuth; o site pode continuar apenas na rede local.

O Dono pode configurar, guardar, simular e executar. O Leitor pode consultar. Outras contas são recusadas; as permissões são também verificadas no servidor.

Ligar ao TeamSpeak

Entrar com a conta do dono. Em Ligações, configurar o endereço WebQuery HTTP/HTTPS, o ID do servidor virtual e a API key TeamSpeak. Por exemplo, http://teamspeak6:10080 funciona quando ambos os containers partilham uma rede Docker com esse nome resolvível. Testar a ligação, escolher esse servidor na configuração do bot, simular e só depois ativar.

O temporizador aceita intervalos a partir de um segundo. A execução seguinte aguarda a conclusão da anterior; pedidos de rede e blocos de espera podem prolongar o intervalo efetivo. A configuração de permissões e proteção contra flood do TeamSpeak deve permitir os pedidos do bot.

Sessões e flows usam SQLite no volume. A chave de cifra das API keys fica em /app/data/credentials.key; preservar o volume completo nas cópias de segurança. O histórico retém as últimas 500 execuções. Não adicionar .env nem dados ao Git.

Desenvolvimento e validação

Node 22.15+, mesmas variáveis de ambiente e npm start. Executar npm test para verificar autenticação, restrições de acesso, persistência, simulação e execução WebQuery com transporte de teste. O build Docker executa os testes antes da publicação.

O editor foi verificado em navegador desktop e móvel. A execução no TeamSpeak real depende da ligação e API key configuradas na instalação; os testes locais não alteram o servidor real.

A fonte Public Sans é distribuída em public/fonts com a licença OFL. Os logótipos foram copiados sem alterações do projeto existente.

Description
No description provided
Readme 292 KiB
Languages
JavaScript 87.8%
CSS 11.8%
Dockerfile 0.2%
HTML 0.2%