Skip to content

mollohq/docker-mumble-server

 
 

Repository files navigation

docker-mumble-server Build Status

badge/mumble-version badge/pulls/mumble-server badge/stars/mumble-server

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.

Getting started

This guide assumes that you already have Docker installed.

Pull the official image

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.

Create a container

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.

Configuration options

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:

Environment Variable Default Value
MUMBLE_ALLOWHTML true
MUMBLE_ALLOWPING true
MUMBLE_AUTOBANATTEMPTS 10
MUMBLE_AUTOBANTIMEFRAME 120
MUMBLE_AUTOBANTIME 300
MUMBLE_BANDWIDTH 7200
MUMBLE_CHANNELNAME [ \\-=\\w\\#\\[\\]\\{\\}\\(\\)\\@\|]+
MUMBLE_DEFAULTCHANNEL ---
MUMBLE_ENABLESSL 0
MUMBLE_ICE tcp -h 127.0.0.1 -p 6502
MUMBLE_ICESECRETREAD ---
MUMBLE_ICESECRETWRITE ---
MUMBLE_IMAGEMESSAGELENGTH 131072
MUMBLE_KDFITERATIONS -1
MUMBLE_LEGACYPASSWORDHASH false
MUMBLE_MESSAGEBURST 5
MUMBLE_MESSAGELIMIT 1
MUMBLE_OBFUSCATE false
MUMBLE_OPUSTHRESHOLD 100
MUMBLE_REGISTERHOSTNAME ---
MUMBLE_REGISTERNAME ---
MUMBLE_REGISTERPASSWORD ---
MUMBLE_REGISTERURL ---
MUMBLE_REMEMBERCHANNEL true
MUMBLE_SENDVERSION false
MUMBLE_SERVERPASSWORD ---
MUMBLE_SSLCIPHERS ---
MUMBLE_SSLPASSPHRASE ---
MUMBLE_SUGGESTPOSITIONAL ---
MUMBLE_SUGGESTPUSHTOTALK ---
MUMBLE_SUGGESTVERSION false
MUMBLE_TEXTMESSAGELENGTH 5000
MUMBLE_TIMEOUT 30
MUMBLE_USERNAME [-=\\w\\[\\]\\{\\}\\(\\)\\@\|\\.]+
MUMBLE_USERS 100
MUMBLE_USERSPERCHANNEL 0
SUPERUSER_PASSWORD If not defined, a password will be auto-generated.

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.
  • SSL key should be mounted at /data/key.pem

    • If the key has a passphrase, you should define the environment variable MUMBLE_SSLPASSPHRASE with the passphrase. This variable does not have any effect if you have not mounted a key and enabled SSL.
  • 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.

Logging in as SuperUser

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>

Tagging policy

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.

Numbered tags

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.


About

A flexible, easy-to-use image for running a Mumble server. Built to scale.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 80.3%
  • Dockerfile 19.7%