Bots para Mumble

Mumbot

Mumbot se conecta como una persona, con su propio certificado. Por eso funciona en cualquier servidor Mumble estándar, sin plugin y sin cambiar la configuración del servidor. De la familia Mumcord, código abierto bajo AGPL-3.0.

v0.1.1

Dos bots, un programa

Los dos viven en el mismo programa, mumbot, para Linux, Windows, macOS y como imagen de Docker.

Bot de webhook

Tu monitorización, tu CI o tu propio script envía una petición HTTP con una clave de API, y el bot publica el texto en un canal de Mumble.

  • Define por clave en qué canales puede escribir
  • Negrita, cursiva, código, listas y enlaces en Markdown
  • Contraseñas de canal, reconexión tras cortes e identidad fija gracias a su certificado
  • Límite de frecuencia y una respuesta clara sobre si el mensaje llegó
Terminal
curl -X POST http://127.0.0.1:8080/message \
  -H 'X-API-Key: <your key>' \
  -d '{"channel": 1, "message": "**deploy** finished"}'
Documentación →

Bot de pruebas

Un segundo participante con guion para pruebas automáticas de clientes de Mumble. Las pruebas del propio Mumcord se ejecutan con él.

  • Controla chat, estado, permisos y moderación, y espera a que se cumplan condiciones
  • Reproduce, graba y comprueba el nivel de la voz, con Opus de verdad
  • Una prueba de carga llena un servidor local con hasta 1000 usuarios
  • Código de salida 0 significa superado: encaja en cualquier CI
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Documentación →

Descargar

El archivo contiene el programa mumbot, el README y una configuración de ejemplo, bot.example.toml.

O como imagen de Docker para amd64 y 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

Ejemplos de Docker Compose listos para usar: bot de webhook, bot de webhook con su propio servidor Mumble para probarlo y bot de pruebas en CI →

Sumas de verificación (SHA256SUMS) →

Hoja de ruta

Como Mumcord, Mumbot se construye por épicas. La Épica 2 es una propuesta a partir de las issues abiertas y aún se planificará en detalle.

  1. Epic 0

    hecho v0.1.0

    Bot de pruebas

    El bot con guion de las pruebas de Mumcord, ahora un programa propio.

    • Chat, estado, permisos y moderación, espera de condiciones y modo script
    • Reproducir, grabar y comprobar el nivel de la voz, con Opus como en Mumcord
    • Prueba de carga con hasta 1000 usuarios en un servidor de pruebas local
  2. Epic 1

    hecho v0.1.0

    Bot de webhook

    Mensajes de fuera en un canal de Mumble.

    • API HTTP con claves de API y canales permitidos por clave
    • Markdown, contraseñas de canal, reconexión y límite de frecuencia
    • Programas para Linux, Windows y macOS y una imagen de Docker
    • Desde la 0.1.1: ejemplos de Docker Compose y documentación de la configuración, la línea de comandos, la API HTTP y la seguridad
  3. Epic 2

    lo siguiente

    Módulos, música e historial

    Un bot se convierte en una caja de herramientas.

    • Módulos: elige qué bots se ejecutan en la configuración o en la línea de comandos, en un solo programa y una sola imagen
    • Bot de música: envía MP3 o enlaces por HTTP y el bot los reproduce en el canal de voz con una cola
    • Bot de historial: guarda el chat de los canales que puede ver y se lo pasa a los usuarios de Mumcord que estaban desconectados. Nunca los mensajes privados
    • Tarjetas de mensaje: el webhook envía alertas con título, color de estado, gráfica y enlace que Mumcord muestra como tarjeta
    • Tasa de bits ajustable para voz y música, nunca por encima del límite del servidor
    • Módulo peer: registra a los usuarios del servidor en un relay mumpeer y le dice a Mumcord que el relay existe
  4. Más allá

    más adelante

    Ideas

    Aún sin planificar, pero apuntado.

    • Un bot que lee el chat y responde a comandos
    • Texto a voz o sonidos de alerta en un canal
    • Un bot para varios servidores o con varias identidades
    • Susurros y mensajes privados, cambiar claves sin reiniciar, TLS integrado
    • Recordar el certificado del servidor en el primer contacto y rechazar uno que haya cambiado

¿Tienes una idea para un bot?

Los deseos van a las issues de Mumbot en GitHub.

Proponer una idea Código en GitHub →