Bots voor Mumble

Mumbot

Mumbot logt in zoals een mens, met een eigen certificaat. Daarom draait hij op elke standaard Mumble-server, zonder plug-in en zonder iets aan de serverconfiguratie te veranderen. Uit de Mumcord-familie, open source onder AGPL-3.0.

v0.1.1

Twee bots, één programma

Beide zitten in hetzelfde programma, mumbot, voor Linux, Windows, macOS en als Docker-image.

Webhookbot

Monitoring, CI of je eigen script stuurt één HTTP-verzoek met een API-sleutel, en de bot zet de tekst in een Mumble-kanaal.

  • Stel per sleutel in naar welke kanalen hij mag schrijven
  • Vet, cursief, code, lijsten en links in Markdown
  • Kanaalwachtwoorden, opnieuw verbinden na een onderbreking en een vaste identiteit via zijn certificaat
  • Rate limit en een duidelijk antwoord of het bericht is aangekomen
Terminal
curl -X POST http://127.0.0.1:8080/message \
  -H 'X-API-Key: <your key>' \
  -d '{"channel": 1, "message": "**deploy** finished"}'
Documentatie →

Testbot

Een gescripte tweede deelnemer voor automatische tests van Mumble-clients. De eigen tests van Mumcord draaien ermee.

  • Chat, status, rechten en moderatie aansturen en op voorwaarden wachten
  • Spraak afspelen, opnemen en het niveau controleren, met echte Opus
  • Een loadtest vult een lokale server met tot 1000 gebruikers
  • Exitcode 0 betekent geslaagd: past in elke CI
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Documentatie →

Downloaden

Het archief bevat het programma mumbot, de README en een voorbeeldconfiguratie, bot.example.toml.

Of als Docker-image voor amd64 en 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

Kant-en-klare Docker Compose-voorbeelden: webhookbot, webhookbot met een eigen Mumble-server om uit te proberen, en testbot in CI →

Checksums (SHA256SUMS) →

Roadmap

Net als Mumcord wordt Mumbot in epics gebouwd. Epic 2 is een voorstel op basis van de open issues en wordt nog in detail gepland.

  1. Epic 0

    klaar v0.1.0

    Testbot

    De gescripte bot uit de tests van Mumcord, nu een eigen programma.

    • Chat, status, rechten en moderatie, wachten op voorwaarden en een scriptmodus
    • Spraak afspelen, opnemen en het niveau controleren, met Opus zoals in Mumcord
    • Loadtest met tot 1000 gebruikers op een lokale testserver
  2. Epic 1

    klaar v0.1.0

    Webhookbot

    Berichten van buitenaf in een Mumble-kanaal.

    • HTTP API met API-sleutels en toegestane kanalen per sleutel
    • Markdown, kanaalwachtwoorden, opnieuw verbinden en een rate limit
    • Programma's voor Linux, Windows en macOS en een Docker-image
    • Sinds 0.1.1: Docker Compose-voorbeelden en documentatie over configuratie, commandoregel, HTTP API en beveiliging
  3. Epic 2

    hierna

    Modules, muziek en geschiedenis

    Eén bot wordt een gereedschapskist.

    • Modules: kies in de configuratie of op de commandoregel welke bots draaien, in één programma en één image
    • Muziekbot: stuur mp3's of links via HTTP, en de bot speelt ze af in het spraakkanaal, met een wachtrij
    • Geschiedenisbot: bewaart de chat van de kanalen die hij mag zien en geeft die door aan Mumcord-gebruikers die offline waren. Nooit privéberichten
    • Berichtkaarten: de webhook stuurt meldingen met een titel, statuskleur, grafiek en link, die Mumcord als kaart toont
    • Instelbare bitrate voor spraak en muziek, nooit boven de limiet van de server
    • Peermodule: meldt de gebruikers van de server aan bij een mumpeer-relay en laat Mumcord weten dat de relay er is
  4. Daarna

    later

    Ideeën

    Nog niet gepland, maar genoteerd.

    • Een bot die de chat leest en op commando's reageert
    • Tekst-naar-spraak of waarschuwingsgeluiden in een kanaal
    • Eén bot voor meerdere servers of met meerdere identiteiten
    • Fluisteren en privéberichten, sleutels wisselen zonder herstart, ingebouwde TLS
    • Het certificaat van de server bij het eerste contact onthouden en een gewijzigd certificaat weigeren

Een idee voor een bot?

Wensen komen terecht in de issues van Mumbot op GitHub.

Idee voorstellen Broncode op GitHub →