Mumble is a free, open-source voice chat application with very low latency, high audio quality (Opus codec), positional audio for games, and strong encryption. Its server component, Murmur (packaged as mumble-server), is tiny: it handles dozens of users on the smallest VPS. It’s a popular choice for gaming groups, communities, amateur radio and anyone who wants voice chat without accounts at a third party.
Compare: TeamSpeak (proprietary, free up to 32 slots).
Requirements
- Any small VPS: 1 vCPU and 512 MB RAM. Bandwidth is about 40–100 kbit/s per talking user.
- A location close to your users for the lowest latency. See choosing a VPS location.
Install (Debian/Ubuntu)
sudo apt update
sudo apt install mumble-server
sudo dpkg-reconfigure mumble-server # autostart, priority, and set the SuperUser password
Or set the SuperUser password directly:
sudo murmurd -ini /etc/mumble-server.ini -supw 'a-strong-password'
# newer packages: sudo mumble-server -ini /etc/mumble-server.ini -supw '…'
sudo systemctl restart mumble-server
Docker alternative
services:
mumble:
image: mumblevoip/mumble-server:latest
restart: unless-stopped
ports:
- "64738:64738/tcp"
- "64738:64738/udp"
environment:
MUMBLE_SUPERUSER_PASSWORD: change-me
MUMBLE_CONFIG_SERVER_PASSWORD: optional-join-password
MUMBLE_CONFIG_USERS: 50
volumes:
- ./data:/data
Configure /etc/mumble-server.ini
Key settings:
welcometext="Welcome to our Mumble server!"
port=64738
serverpassword= ; set to require a password to join
users=50 ; max concurrent users
bandwidth=72000 ; max bits/s per user
registerName=Our Community
sslCert=/etc/mumble-server/certs/fullchain.pem
sslKey=/etc/mumble-server/certs/privkey.pem
allowhtml=true
opusthreshold=0 ; always use Opus
Restart after changes: sudo systemctl restart mumble-server.
Certificates: Murmur generates a self-signed certificate automatically. For a trusted certificate (no warning in clients), use Let’s Encrypt for your domain, copied via a Certbot deploy hook with ownership for the mumble-server user. See Let’s Encrypt.
Firewall
sudo ufw allow 64738/tcp
sudo ufw allow 64738/udp
UDP carries voice. TCP handles control (and voice as a fallback). See UFW.
Connect and administer
- Install the Mumble client, and run the audio wizard. Push-to-talk or voice activation, plus echo cancellation, make a big difference.
- Add the server (address and port 64738). Users identify by client certificates. There are no passwords for registered users, so back up your client certificate.
- To administer, connect with username SuperUser and the SuperUser password.
- As SuperUser: create channels, register trusted users, and edit ACLs (right-click on the root channel → Edit → ACL) to grant an
admingroup to your own registered account. Then use your normal account for day-to-day admin.
ACLs and groups
Mumble’s permissions are channel-based ACLs with groups (admin, auth = registered users, all). Common setups:
- only registered users can speak in some channels (deny “Speak” for
all, allow forauth); - moderators can move and mute users;
- passworded channels via access tokens.
Audio quality tips
- Raise
bandwidth=(for example to 128000) for music or high-quality voice, and lower it for many users on a small uplink. - Ask users to run the audio wizard, and to use push-to-talk in noisy rooms. Most “bad server” complaints are really microphone settings.
- Pick a server location central to your group. Mumble’s own latency is very low, so network distance dominates.
Bots and integrations
Music bots (botamusique, mumble-music-bot), Discord bridges and ICE/gRPC-based admin interfaces extend Mumble. Keep admin interfaces bound to localhost.
Backups
The server state (channels, registered users, ACLs) is in an SQLite database:
sudo systemctl stop mumble-server
sudo cp /var/lib/mumble-server/mumble-server.sqlite /backups/mumble-$(date +%F).sqlite
sudo systemctl start mumble-server
(Paths vary by package version, so check database= in the ini file.) Back up /etc/mumble-server.ini too. See backup strategy.
Updates
Package installs update with apt upgrade, and Docker with docker compose pull && docker compose up -d. See updating self-hosted apps.
Quick reference
| Item | Value |
|---|---|
| Port | 64738 tcp + udp |
| Config | /etc/mumble-server.ini |
| SuperUser password | -supw option, or dpkg-reconfigure mumble-server |
| Service | systemctl status mumble-server |
| Data | mumble-server.sqlite |
Related: game servers on a VPS and Linux server hardening.