# Mumble: self-hosted low-latency voice chat, from mumble-server to the OpenGL overlay

> Mumble is a Qt and Opus voice chat client and server, split into the mumble client and mumble-server. This review covers what it solves, how to install and run it, and where the documentation stops short.

**mumble-voip/mumble** — Mumble is an open-source, low-latency, high quality voice chat software.

- Repository: https://github.com/mumble-voip/mumble
- Website: https://www.mumble.info
- Stars: 8,308 · Forks: 1,398
- Language: C++
- License: NOASSERTION
- Published: 2026-09-22 · Updated: 2026-09-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/mumble-voip-mumble

## What Mumble solves, and who ends up running it

Mumble is an open source voice chat program written on top of Qt and Opus, and its stated goal is low latency with high quality. That combination matters for one specific audience: people who want the voice server to live on hardware they control, rather than on a vendor's infrastructure. The repository splits the product into two modules. The client is named mumble, and the server is named mumble-server, formerly known as murmur. The client runs on Windows, Linux, FreeBSD, OpenBSD and macOS. The server, according to the README, should work on anything Qt can be installed on, which is a broader claim than the client's list and worth reading as an intention rather than a tested matrix.

The practical consequence is that adoption is two decisions, not one. You pick a client for your users, and separately you pick a machine to run the server on. Nothing in the README suggests a hosted offering, so the operational burden lands on whoever installs it. For a gaming group, a guild, or an internal team that already runs a Linux box, that trade is reasonable. For a group that wants someone else to handle accounts and uptime, the model is a mismatch from the start.

## Client, server and the Opus pipeline in the repository layout

The two modules are visible in the top-level layout. The src directory holds the application code, auxiliary_files holds the server configuration template named mumble-server.ini, and the overlay, overlay_gl and overlay_winx64 directories hold the in-game overlay implementations. The samples directory contains the audio cues the client plays on events, with files such as ServerConnected.ogg, UserJoinedChannel.ogg, SelfMutedDeafened.ogg and TextMessage.ogg. Those filenames are the clearest available signal of what the client treats as a discrete event.

The overlay is the part with a documented mechanism rather than a description. The README states that the OpenGL overlay works by intercepting the call to switch buffers, and just before the buffer switch, it draws the GUI. That is an injection approach, and it explains why the overlay is loaded into the game process rather than running beside it. The server side is configured through an ini file, and the README points at auxiliary_files/mumble-server.ini as the up-to-date template. One flag in that file's surrounding documentation is worth noting early: the SuperUser account is hardcoded to bypass ACLs, and until a password is set, the SuperUser is disabled. That is a deliberate default, and it means a fresh server is not exposed through that account until an operator acts.

## Installing Mumble and running your first mumble-server

The README does not give a single install command. It gives per-platform paths. On Windows, installation puts a Mumble folder in the Start Menu, and mumble-server is started by double-clicking its icon, which places a small icon on the taskbar for viewing the log. On macOS, the client is installed by dragging the application from the downloaded disk image into /Applications, while mumble-server is distributed separately and is called Static OS X Server. On Linux, if you installed through your distribution's package repository, the README says no additional steps are necessary to find Mumble in your start menu.

For the server on Linux and other Unix-like systems, the README says to run it from the command line. The usage line it gives is:

```bash
mumble-server [--set-su-pw <password>] [--ini <inifile>] [--foreground] [--verbose]
```

The flags are documented in the README. --set-su-pw sets a new password for the user SuperUser, and the README notes that mumble-server will set the password in the database and then exit, so this is a one-shot command rather than a way to start a server. --ini selects an ini file other than mumble-server.ini, which the README describes as the way to run several instances from the same directory, with the warning that each instance must use a separate database. --foreground runs in the foreground and logs to standard output, and --verbose increases logging.

A first run therefore looks like setting the password, then starting the server in the foreground so you can watch the log:

```bash
mumble-server --set-su-pw 'change-me'
mumble-server --foreground --verbose
```

After the first command the process exits, which is expected. After the second, the server stays attached to your terminal and writes its log there. If you want a different configuration file, the README points to auxiliary_files/mumble-server.ini as the template to copy and edit, and the administration documentation lives on the project website rather than in the repository.

For a container deployment, the README directs readers to the official Docker image at https://github.com/mumble-voip/mumble-docker for the image and its instructions, and does not restate them here. On Linux, the OpenGL overlay can be enabled for a game either by preloading the library directly or by using the wrapper the README documents:

```bash
LD_PRELOAD=/path/to/libmumble.so.1.1 gamename
mumble-overlay gamename
```

The second form is what the README recommends when Mumble came from binary packages.

## Where the documentation leaves you on your own

The README is an entry point, not a manual, and the gaps are specific. There is no rollback procedure for a server upgrade, no backup guidance for the database that --ini warns you to keep separate per instance, and no description of what happens to existing accounts when you change the ini file. The README also does not state which ports the server listens on, so firewall planning has to come from the administration documentation on the website.

The versioning deserves attention before you build anything. The README says the master branch contains unstable code for a future release, and that if you want to build an already released stable version, you select the corresponding branch, giving 1.5.x as the branch for the 1.5.735 release. The recent release list shows v1.5.915 and v1.5.901 on the 1.5 line, plus v1.6.870 marked as a 1.6.x release candidate. A reader who clones the default branch and builds it is building the unstable line, and the README says so plainly. That is a documentation strength, but it also means the build instructions you find on master may not match the branch you actually want.

The macOS server situation is another practical constraint. mumble-server is distributed separately from the client there and is called Static OS X Server, downloadable from the main webpage rather than bundled. Anyone assuming a single macOS download covers both roles will be wrong.

## Mumble against a hosted voice service

The real alternative for most teams is a hosted voice service, where accounts, rooms and uptime are someone else's problem and the client is a browser tab or an app store install. Mumble's difference is architectural rather than cosmetic: the server is a process you run, configured through an ini file, with an administrative account whose password you set with a command-line flag. You get the database, the log and the upgrade timing. You also get the outages.

That difference cuts both ways. A hosted service cannot be self-hosted on an isolated network, which is exactly where a local mumble-server is useful. Conversely, Mumble has no managed control plane described in the README, so provisioning a second instance means repeating the command-line steps and keeping the databases apart yourself. The README's --ini note about separate databases is the closest thing to multi-tenancy guidance in the repository, and it is one sentence. If you need per-team isolation with a web console, this is the wrong tool, and no amount of configuration in mumble-server.ini will change that.

## Maintenance, licensing and what the repository does not say

The repository is not archived, and the last push was on 2026-09-19, so the project is being worked on. Recent releases run from v1.6.870, a 1.6.x release candidate, through v1.5.901 to v1.5.915, which shows parallel stable and candidate lines rather than a single track. The README asks contributors to follow COMMIT_GUIDELINES.md and points new developers at docs/dev/TheMumbleSourceCode.md, and translations are handled through Weblate, so the upgrade path for a deployment includes watching which branch your build came from.

The licence field reports NOASSERTION, which means the repository metadata does not declare a recognised SPDX identifier. The repository does contain a LICENSE file and a 3rdPartyLicenses directory, and both are the places to look before you redistribute a build. That is not legal advice, and it is not a substitute for reading the file: the point is that the metadata alone will not tell you the terms, so a redistribution decision needs the LICENSE file opened first.

The maintenance cost that the repository does document is small but real. Server configuration lives in an ini file with a template in auxiliary_files, so upgrades can require reconciling your file against the new template. The README does not describe a migration tool for that reconciliation, and it does not describe a rollback path if a new server version misbehaves.

## Conclusion

Adopt Mumble if you want a self-hosted voice server you control, with a client on Windows, Linux, FreeBSD, OpenBSD and macOS, and you are willing to run mumble-server from the command line. Do not adopt it if you need a managed service with a web dashboard, or if your users are on platforms the README does not list. Before deploying, verify the licence terms, since the repository reports NOASSERTION, and confirm which branch matches the release you intend to build, because the master branch holds unstable code for a future release.

## FAQ

### How do I install Mumble?

The README gives per-platform steps rather than one command: on Windows an installer places a Mumble folder in the Start Menu, on macOS you drag the application from the disk image into /Applications, and on Linux a distribution package puts Mumble in your start menu with no additional steps. The server is installed separately on macOS as Static OS X Server.

### How do I use a Mumble server?

Run mumble-server from the command line as documented in the README, using --set-su-pw to set the SuperUser password and --foreground to log to standard output. Configuration uses an ini file, with auxiliary_files/mumble-server.ini as the template, and running more than one instance from a directory requires a separate database per instance.

### How do I use Mumble voice chat?

Mumble is a client and server pair: the mumble client runs on Windows, Linux, FreeBSD, OpenBSD and macOS, and mumble-server hosts the voice sessions. The client is built on Qt and Opus, and the README describes the project as low-latency and high-quality voice chat.

### How do I use the Mumble app?

Install the mumble client for your platform, then connect it to a mumble-server instance. On Windows the installer creates a Mumble folder in the Start Menu, on macOS you drag the application into /Applications, and on Linux a distribution package adds it to your start menu.

### How do I use Mumble with friends?

Mumble separates the client from the server, so a group needs a mumble-server instance to connect to. The README documents running it from the command line with flags such as --set-su-pw, --ini, --foreground and --verbose, and points to the official Docker image for container deployment.

## Sources

- [Issues](https://github.com/mumble-voip/mumble/issues)
- [mumble-voip/mumble on GitHub](https://github.com/mumble-voip/mumble)
- [Project website](https://www.mumble.info)
- [README](https://github.com/mumble-voip/mumble/blob/master/README.md)
- [Releases](https://github.com/mumble-voip/mumble/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/mumble-voip-mumble
