Des bots pour Mumble

Mumbot

Mumbot se connecte comme une personne, avec son propre certificat. Il tourne donc sur n’importe quel serveur Mumble standard, sans plugin ni modification de la config du serveur. De la famille Mumcord, open source sous AGPL-3.0.

v0.1.1

Deux bots, un seul programme

Les deux vivent dans le même programme, mumbot, pour Linux, Windows, macOS et en image Docker.

Bot webhook

Ton monitoring, ta CI ou ton propre script envoie une requête HTTP avec une clé API, et le bot publie le texte dans un salon Mumble.

  • Choisis pour chaque clé les salons où elle peut écrire
  • Gras, italique, code, listes et liens en Markdown
  • Mots de passe de salon, reconnexion après une coupure et identité fixe grâce à son certificat
  • Limite de débit et réponse claire indiquant si le message est arrivé
Terminal
curl -X POST http://127.0.0.1:8080/message \
  -H 'X-API-Key: <your key>' \
  -d '{"channel": 1, "message": "**deploy** finished"}'
Docs →

Bot de test

Un second participant scripté pour les tests automatisés de clients Mumble. Les tests de Mumcord tournent dessus.

  • Piloter chat, état, permissions et modération, et attendre des conditions
  • Lire, enregistrer et vérifier le niveau de la voix, avec du vrai Opus
  • Un test de charge remplit un serveur local avec jusqu’à 1000 utilisateurs
  • Code de sortie 0 signifie réussi : s’intègre à n’importe quelle CI
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Docs →

Télécharger

L’archive contient le programme mumbot, le README et une config d’exemple, bot.example.toml.

Ou en image Docker pour amd64 et arm64 :

Docker
docker run -d --name mumbot \
  -v "$PWD/bot.toml:/config/bot.toml:ro" \
  -v mumbot-data:/data -p 127.0.0.1:8080:8080 \
  ghcr.io/mumcord/mumbot:0.1.1

Exemples Docker Compose prêts à l’emploi : bot webhook, bot webhook avec son propre serveur Mumble pour l’essayer, et bot de test en CI →

Sommes de contrôle (SHA256SUMS) →

Feuille de route

Comme Mumcord, Mumbot se construit par epics. L’Epic 2 est une proposition tirée des issues ouvertes et sera encore planifiée en détail.

  1. Epic 0

    terminé v0.1.0

    Bot de test

    Le bot scripté des tests de Mumcord, devenu un programme à part entière.

    • Chat, état, permissions et modération, attente de conditions et mode script
    • Lire, enregistrer et vérifier le niveau de la voix, avec Opus comme dans Mumcord
    • Test de charge avec jusqu’à 1000 utilisateurs sur un serveur de test local
  2. Epic 1

    terminé v0.1.0

    Bot webhook

    Des messages de l’extérieur dans un salon Mumble.

    • API HTTP avec clés API et salons autorisés par clé
    • Markdown, mots de passe de salon, reconnexion et limite de débit
    • Programmes pour Linux, Windows et macOS et une image Docker
    • Depuis la 0.1.1 : exemples Docker Compose et docs pour la config, la ligne de commande, l’API HTTP et la sécurité
  3. Epic 2

    ensuite

    Modules, musique et historique

    Un bot devient une boîte à outils.

    • Modules : choisis quels bots tournent, dans la config ou en ligne de commande, dans un seul programme et une seule image
    • Bot musique : envoie des MP3 ou des liens via HTTP, et le bot les joue dans le salon vocal avec une file d’attente
    • Bot historique : garde le chat des salons qu’il peut voir et le transmet aux utilisateurs de Mumcord qui étaient hors ligne. Jamais les messages privés
    • Cartes de message : le webhook envoie des alertes avec titre, couleur d’état, graphique et lien, que Mumcord affiche sous forme de carte
    • Débit réglable pour la parole et la musique, jamais au-dessus de la limite du serveur
    • Module peer : enregistre les utilisateurs du serveur auprès d’un relais mumpeer et indique à Mumcord que le relais existe
  4. Au-delà

    plus tard

    Idées

    Pas encore planifié, mais noté.

    • Un bot qui lit le chat et répond à des commandes
    • Synthèse vocale ou sons d’alerte dans un salon
    • Un bot pour plusieurs serveurs ou avec plusieurs identités
    • Chuchotements et messages privés, changement de clés sans redémarrage, TLS intégré
    • Mémoriser le certificat du serveur au premier contact et refuser un certificat modifié

Une idée de bot ?

Les souhaits vont dans les issues de Mumbot sur GitHub.

Proposer une idée Code source sur GitHub →