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 logXMPP_RECIPIENTS: recipient JID for notificationsMONITORED_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
- Correct permissions
- 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
Contributions are welcome
This repo is on SourceHut (repo) and Radicle (web,
rad:z37gVhKaFLFso2zkBHNdB6pK3HipW, what is Radicle?).