Mumble is a VOIP application which allows users to talk to each other via the same server. It uses a client-server architecture, and encrypts all communication to ensure user privacy. Learn More.
This repository hosts the source code for the public image
sudoforge/mumble-server, enabling you to easily run and
maintain multiple instances of the server.
This guide assumes that you already have Docker installed.
An image is available from the Docker Hub registry, built automatically from this repository. It's easy to get started:
docker pull sudoforge/mumble-server[:tag]
You don't need to specify a tag, but it's a good idea to so that you don't
pull latest and risk getting different versions on different hosts. See the
tagging policy for more information.
The examples throughout this document assume we are not using a tag for the sake
of brevity. If you pull the image with a tag other than latest, you will need
to use that tag number when running the image via docker run.
Now that you have the image pulled, it's time to get a container up and running.
docker run -d \
-p 64738:64738/tcp \
-p 64738:64738/udp \
--name mumble-server-001 \
sudoforge/mumble-server[:tag]
You should now be able to open up the Mumble client, and connect to the server
running at 127.0.0.1:64738.
The following variables can be passed into the container (when you execute
docker run) to change various configuration options.
For example:
docker run -d \
-p 64738:64738/tcp \
-p 64738:64738/udp
-e MUMBLE_SERVERPASSWORD='superSecretPasswordHere' \
--name mumble-server-001 \
sudoforge/mumble-server[:tag]
Here is a list of all options supported through environment variables:
Custom welcome text (Murmur.ini::welcometext)
To customize the welcome text, add the contents to welcometext and mount that
into the container at /data/welcometext. Double quote characters (") are
escaped automatically, but you may want to confirm that your message was parsed
correctly.
SSL Certificates (Murmur.ini::SSL)
The server will generate its own SSL certificates when the daemon is started. If you wish to provide your own certificates and ciphers instead, you can do so by following the instructions below.
If MUMBLE_ENABLESSL is set to 1, custom SSL is enabled, as long as you have
mounted a certificate and key at the following locations:
-
SSL certificate should be mounted at
/data/cert.pem- If your certificate is signed by an authority that uses a sub-signed or
"intermediate" certificate, you should either bundle that with your
certificate, or mount it in separately at
/data/intermediate.pem- this will be automatically detected.
- If your certificate is signed by an authority that uses a sub-signed or
"intermediate" certificate, you should either bundle that with your
certificate, or mount it in separately at
-
SSL key should be mounted at
/data/key.pem- If the key has a passphrase, you should define the environment variable
MUMBLE_SSLPASSPHRASEwith the passphrase. This variable does not have any effect if you have not mounted a key and enabled SSL.
- If the key has a passphrase, you should define the environment variable
-
Set your preferred cipher suite using
MUMBLE_SSLCIPHERS- This option chooses the cipher suites to make available for use in SSL/TLS. See the official documentation for more information.
If the environment variable SUPERUSER_PASSWORD is not defined when creating
the container, a password will be automatically generated. To view the password
for any container at any time, look at the container's logs. As an example, to
view the SuperUser password is for an instance running in a container named
mumble-server-001:
$ docker logs mumble-server-001 2>&1 | grep SUPERUSER_PASSWORD
> SUPERUSER_PASSWORD: <value>
This project does not overwrite tags; they can be treated as immutable references, although it is still recommended to use image digests when deploying or extending this image.
The latest tag follows the master branch of this repository and has
equivalent layers to the latest numbered tag.
For a full list of tags, please see the tags page on Docker Hub.
Numbered tags follow the pattern:
<MUMBLE_VERSION>-<RELEASE>
│ └─ the release number specific to this repository
│
└──── the version of mumble for this release
MUMBLE_VERSION values are kept in line with the releases from
mumble-voip/mumble. RELEASE values start at (and are reset
to) 1 for each new MUMBLE_VERSION.