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

  1. Install the Mumble client, and run the audio wizard. Push-to-talk or voice activation, plus echo cancellation, make a big difference.
  2. 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.
  3. To administer, connect with username SuperUser and the SuperUser password.
  4. As SuperUser: create channels, register trusted users, and edit ACLs (right-click on the root channel → Edit → ACL) to grant an admin group 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 for auth);
  • 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.

  • Game Server
  • Voice Chat
  • Self-Hosting