README.md

The Mumbling Herald

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

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
    

Logs

sudo journalctl -u mumblingherald -f