Open the right ports
See Ports & networking for what is exposed and why.
A Fancy Mumble server can be configured three ways. Pick whichever fits your workflow.
MUMBLE_CONFIG_*). Best for Docker
compose, Kubernetes, and quick deployments.A typical project directory looks like this:
docker-compose.yml is the one file you always create, on your
host machine (anywhere you like, then cd into it to run
docker compose up)./data/mumble_server_config.ini on every
boot. Do not edit that file in place. It is regenerated from
the environment variables each restart.mumble-server.ini is only needed if you set plugin.* keys
(for example for the file server). Mount it into the container as
shown in section 2 below.Every server option can be set with an environment variable named
MUMBLE_CONFIG_<option>. The option name is case insensitive and
underscores are ignored, so all three of these set the database host:
MUMBLE_CONFIG_dbhostMUMBLE_CONFIG_DBHOSTMUMBLE_CONFIG_DB_HOSTExample, in docker-compose.yml:
environment:MUMBLE_CONFIG_USERS: 100MUMBLE_CONFIG_WELCOMETEXT: "Welcome to my server!"MUMBLE_CONFIG_SERVER_PASSWORD: "shared-password"MUMBLE_CONFIG_SENDVERSION: false# Values containing special characters must be quoted:MUMBLE_CONFIG_USERNAME: '"^[-_a-z0-9]{3,15}$"'Or directly with docker:
docker run -e "MUMBLE_CONFIG_USERS=200" \ -e "MUMBLE_CONFIG_SERVER_PASSWORD=secret" \ ...A full alphabetical list of every supported key is on the Server config keys page.
Mount your own mumble-server.ini when you prefer version-tracked
configuration files over environment variables:
environment:MUMBLE_CUSTOM_CONFIG_FILE: /data/mumble-server.inivolumes:- ./mumble-server.ini:/data/mumble-server.ini:ro- mumble-data:/dataA documented template ships in the repo at mumble-server.ini.example.
Copy it to mumble-server.ini and edit to taste.
For production, store passwords and credentials as secrets
instead of environment variables (which are visible in docker inspect):
echo -n "supersecret" | docker secret create MUMBLE_CONFIG_SERVER_PASSWORD -echo -n "adminpass" | docker secret create MUMBLE_SUPERUSER_PASSWORD -Then reference them in compose:
services:mumble-server: image: ghcr.io/fancy-mumble/mumble-server:latest secrets: - MUMBLE_CONFIG_SERVER_PASSWORD - MUMBLE_SUPERUSER_PASSWORD
secrets:MUMBLE_CONFIG_SERVER_PASSWORD: external: trueMUMBLE_SUPERUSER_PASSWORD: external: trueThe entrypoint reads /run/secrets/MUMBLE_CONFIG_* files at boot.
environment: MUMBLE_CONFIG_USERS: 100 MUMBLE_CONFIG_WELCOMETEXT: "Public Fancy Mumble server. Be nice." MUMBLE_CONFIG_REGISTERNAME: "My Public Server" MUMBLE_CONFIG_REGISTERURL: "https://my-server.example.com" MUMBLE_CONFIG_REGISTERHOSTNAME: "my-server.example.com" MUMBLE_CONFIG_BANDWIDTH: 558000 # Persistent chat MUMBLE_CONFIG_PCHATENABLED: true MUMBLE_CONFIG_PCHATDEFAULTMAXHISTORY: 5000 MUMBLE_CONFIG_PCHATDEFAULTRETENTIONDAYS: 90 # File server (emotes, avatars, attachments) MUMBLE_CONFIG_PLUGIN_FILE_SERVER_ENABLED: true MUMBLE_CONFIG_PLUGIN_FILE_SERVER_STORAGEPATH: /data/file-server-storage MUMBLE_CONFIG_PLUGIN_FILE_SERVER_BINDADDRESS: "0.0.0.0" MUMBLE_CONFIG_PLUGIN_FILE_SERVER_PORT: 64739 MUMBLE_CONFIG_PLUGIN_FILE_SERVER_TLSTERMINATEDBYPROXY: true # Screen-share relay - set the public IP of your server MUMBLE_CONFIG_WEBRTCSFUENABLED: true MUMBLE_CONFIG_WEBRTCSFUPORT: 10000 MUMBLE_CONFIG_WEBRTCSFUPUBLICIP: "1.2.3.4"environment: MUMBLE_CONFIG_USERS: 20 MUMBLE_CONFIG_SERVER_PASSWORD: "share-with-friends" MUMBLE_CONFIG_CERTREQUIRED: false MUMBLE_CONFIG_ALLOWPING: false # Persistent chat MUMBLE_CONFIG_PCHATENABLED: true MUMBLE_CONFIG_PCHATREQUIREREGISTRATION: false MUMBLE_CONFIG_PCHATDEFAULTMAXHISTORY: 2000 MUMBLE_CONFIG_PCHATDEFAULTRETENTIONDAYS: 365 # File server (emotes, avatars, attachments) MUMBLE_CONFIG_PLUGIN_FILE_SERVER_ENABLED: true MUMBLE_CONFIG_PLUGIN_FILE_SERVER_STORAGEPATH: /data/file-server-storage MUMBLE_CONFIG_PLUGIN_FILE_SERVER_BINDADDRESS: "0.0.0.0" MUMBLE_CONFIG_PLUGIN_FILE_SERVER_PORT: 64739 MUMBLE_CONFIG_PLUGIN_FILE_SERVER_TLSTERMINATEDBYPROXY: true # Screen-share relay - set the public IP of your server MUMBLE_CONFIG_WEBRTCSFUENABLED: true MUMBLE_CONFIG_WEBRTCSFUPORT: 10000 MUMBLE_CONFIG_WEBRTCSFUPUBLICIP: "1.2.3.4"environment: MUMBLE_CONFIG_USERS: 50 MUMBLE_CONFIG_CERTREQUIRED: true MUMBLE_CONFIG_AUTOBANATTEMPTS: 5 MUMBLE_CONFIG_AUTOBANTIMEFRAME: 60 MUMBLE_CONFIG_AUTOBANTIME: 3600 MUMBLE_CONFIG_SENDVERSION: false MUMBLE_CONFIG_OBFUSCATE: true # Persistent chat - require registration to use it MUMBLE_CONFIG_PCHATENABLED: true MUMBLE_CONFIG_PCHATREQUIREREGISTRATION: true # File server - disabled; no binary uploads on a hardened server MUMBLE_CONFIG_PLUGIN_FILE_SERVER_ENABLED: false # Screen-share relay - disabled; direct P2P only MUMBLE_CONFIG_WEBRTCSFUENABLED: false # Push notifications - disabled MUMBLE_CONFIG_PUSHENABLED: falseMUMBLE_CONFIG_* variable does not match a known option. Set
MUMBLE_ACCEPT_UNKNOWN_SETTINGS=true to pass-through unknown
values (useful for testing new options).true/false. Not True, not yes..env.plugin.* env var names: dots and hyphens are stripped when
matching, so plugin.file-server.storagePath maps to
MUMBLE_CONFIG_PLUGIN_FILE_SERVER_STORAGEPATH. See the
config keys reference for the full table.These are not server settings, they are container-level:
| Variable | Description |
|---|---|
MUMBLE_SUPERUSER_PASSWORD | SuperUser password. A random one is logged on the first start if unset. |
MUMBLE_CUSTOM_CONFIG_FILE | Path to your own INI. Disables MUMBLE_CONFIG_*. |
MUMBLE_CHOWN_DATA | Set to false to skip taking ownership of /data on boot. |
MUMBLE_ACCEPT_UNKNOWN_SETTINGS | Pass through unknown options without failing. |
MUMBLE_VERBOSE | Verbose server logging. |
PUID / PGID | The UID and GID the server process runs as. |
Most settings only take effect on server restart. A few (welcome text, server password) reload when you save the config from the admin UI. To restart the container:
docker compose restart mumble-serverOpen the right ports
See Ports & networking for what is exposed and why.
Disable features you do not need
See Customize & disable features to slim the server down.
Full key reference
Browse every supported MUMBLE_CONFIG_* key on the
Server config keys page.