Clone

git clone git@git.secluded.site:mumblingherald.git

README

The Mumbling Herald

scratchanitch.dev badge

A grumpy old herald who watches your Mumble server and announces comings and goings via XMPP.

Examples

Joining a channel:

  • ➡️ {USERNAME} stumbles into {CHANNEL}
  • ➡️ grumbles Oh, look who's decided to grace {CHANNEL} with their presence... {USERNAME}
  • ➡️ adjusts spectacles Hmph! {USERNAME} wanders into {CHANNEL} with purpose unknown
  • ➡️ sighs heavily Another soul wanders into {CHANNEL}... {USERNAME}, was it?

Leaving a channel:

  • ⬅️ Oh, what? ahem {USERNAME} fled... somewhere waves hand
  • ⬅️ {USERNAME} vanishes into the void...
  • ⬅️ grumbles Well, that was brief... {USERNAME} has wandered off to other adventures
  • ⬅️ mutters {USERNAME} has departed from us. Just when things were getting interesting...

Full setup

  • Create a herald user with minimal permissions
    sudo useradd -r -s /bin/false -d /var/lib/mumblingherald -m mumblingherald
    sudo usermod -a -G mumble-server mumblingherald  # if mumble-server group exists for log access
    
  • Copy script to user's directory, make it executable, and set ownership
    sudo cp mumblingherald /var/lib/mumblingherald
    sudo chown mumblingherald:mumblingherald /var/lib/mumblingherald/mumblingherald
    sudo chmod 700 /var/lib/mumblingherald/mumblingherald
    
  • Edit the script to configure details
    • MUMBLE_LOG_FILE: path to your Mumble server log
    • XMPP_RECIPIENTS: recipient JID for notifications
    • MONITORED_CHANNELS: display name of channels to watch
  • Install go-sendxmpp
    • Download the latest binary from the go-sendxmpp releases page
    • Extract and copy to system location
      sudo cp go-sendxmpp /usr/local/bin/
      sudo chmod 755 /usr/local/bin/go-sendxmpp
      
  • Create config directory
    sudo -u mumblingherald mkdir -p /var/lib/mumblingherald/.config/go-sendxmpp
    
  • Create XMPP config in /var/lib/mumblingherald/.config/go-sendxmpp/config (edit values!)
    username: herald@your-xmpp-server.com
    password: your-password
    
    • Correct permissions
      chmod 600 /var/lib/mumblingherald/.config/go-sendxmpp/config
      
  • Create systemd service in /etc/systemd/system/mumblingherald.service
    [Unit]
    Description=The Mumbling Herald - Mumble event notifier over XMPP
    After=network.target
    [Service]
    Type=simple
    User=mumblingherald
    Group=mumble-server
    WorkingDirectory=/var/lib/mumblingherald
    Environment=HOME=/var/lib/mumblingherald
    ExecStart=/var/lib/mumblingherald/mumblingherald
    Restart=always
    RestartSec=5
    [Install]
    WantedBy=multi-user.target
    
  • Start the herald
    sudo systemctl daemon-reload
    sudo systemctl enable --now mumblingherald
    
  • Check status
    sudo systemctl status mumblingherald
    
  • Check logs
    sudo journalctl -feu mumblingherald
    

Contributions are welcome

This repo is on SourceHut (repo) and Radicle (web, rad:z37gVhKaFLFso2zkBHNdB6pK3HipW, what is Radicle?).