Bot per Mumble

Mumbot

Mumbot entra come una persona, con il proprio certificato. Per questo funziona su qualsiasi server Mumble standard, senza plugin e senza modificare la configurazione del server. Dalla famiglia Mumcord, open source con licenza AGPL-3.0.

v0.1.1

Due bot, un solo programma

Entrambi vivono nello stesso programma, mumbot, per Linux, Windows, macOS e come immagine Docker.

Bot webhook

Il monitoraggio, la CI o un tuo script invia una richiesta HTTP con una chiave API, e il bot pubblica il testo in un canale Mumble.

  • Per ogni chiave decidi in quali canali può scrivere
  • Grassetto, corsivo, codice, elenchi e link in Markdown
  • Password dei canali, riconnessione dopo le interruzioni e un'identità fissa grazie al suo certificato
  • Limite di frequenza e una risposta chiara sull'arrivo del messaggio
Terminal
curl -X POST http://127.0.0.1:8080/message \
  -H 'X-API-Key: <your key>' \
  -d '{"channel": 1, "message": "**deploy** finished"}'
Documentazione →

Bot di test

Un secondo partecipante programmabile per i test automatici dei client Mumble. Ci girano sopra i test di Mumcord stesso.

  • Gestisci chat, stato, permessi e moderazione, e attendi condizioni
  • Riproduci, registra e controlla il livello della voce, con vero Opus
  • Un test di carico riempie un server locale con fino a 1000 utenti
  • Exit code 0 significa superato: si integra in qualsiasi CI
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Documentazione →

Download

L'archivio contiene il programma mumbot, il README e una configurazione di esempio, bot.example.toml.

Oppure come immagine Docker per amd64 e 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

Esempi Docker Compose pronti all'uso: bot webhook, bot webhook con un proprio server Mumble per provarlo e bot di test in CI →

Checksum (SHA256SUMS) →

Roadmap

Come Mumcord, Mumbot si sviluppa per epic. L'Epic 2 è una proposta nata dalle issue aperte e va ancora pianificato nel dettaglio.

  1. Epic 0

    fatto v0.1.0

    Bot di test

    Il bot programmabile dei test di Mumcord, ora un programma a sé.

    • Chat, stato, permessi e moderazione, attesa di condizioni e modalità script
    • Riprodurre, registrare e controllare il livello della voce, con Opus come in Mumcord
    • Test di carico con fino a 1000 utenti su un server di test locale
  2. Epic 1

    fatto v0.1.0

    Bot webhook

    Messaggi dall'esterno in un canale Mumble.

    • API HTTP con chiavi API e canali consentiti per chiave
    • Markdown, password dei canali, riconnessione e limite di frequenza
    • Programmi per Linux, Windows e macOS e un'immagine Docker
    • Dalla 0.1.1: esempi Docker Compose e documentazione su configurazione, riga di comando, API HTTP e sicurezza
  3. Epic 2

    il prossimo

    Moduli, musica e cronologia

    Un bot diventa una cassetta degli attrezzi.

    • Moduli: scegli quali bot girano, nella configurazione o da riga di comando, in un solo programma e una sola immagine
    • Bot musicale: invia MP3 o link via HTTP e il bot li riproduce nel canale vocale, con una coda
    • Bot cronologia: conserva la chat dei canali che può vedere e la passa agli utenti Mumcord che erano offline. Mai i messaggi privati
    • Schede messaggio: il webhook invia avvisi con titolo, colore di stato, grafico e link che Mumcord mostra come scheda
    • Bitrate regolabile per voce e musica, mai sopra il limite del server
    • Modulo peer: registra gli utenti del server presso un relay mumpeer e comunica a Mumcord che il relay esiste
  4. Oltre

    più avanti

    Idee

    Non ancora pianificato, ma annotato.

    • Un bot che legge la chat e risponde ai comandi
    • Sintesi vocale o suoni di avviso in un canale
    • Un bot per più server o con più identità
    • Sussurri e messaggi privati, cambio delle chiavi senza riavvio, TLS integrato
    • Ricordare il certificato del server al primo contatto e rifiutarne uno cambiato

Un'idea per un bot?

I desideri vanno nelle issue di Mumbot su GitHub.

Proponi un'idea Codice su GitHub →