Skip to content

Setup wizard

If you prefer “click Next a few times” over “edit YAML”, the setup wizard walks you through every value in your .env file. It comes in two flavours:

  • Terminal: pure Python standard library, no extra installs.
  • Graphical: a multi-step window with form validation.
Setup wizard GUI on the third step
  • Python 3.8 or newer on the machine running the wizard.

  • The Fancy Mumble Docker repository checked out locally:

    Terminal window
    git clone https://github.com/Fancy-Mumble/mumble-docker
    cd mumble-docker
Terminal window
python -m setup_wizard

You can also invoke through the tools entry point:

Terminal window
python -m tools setup # terminal
python -m tools setup --gui # graphical

The wizard is a multi-step form. Each step is validated before you can move on.

  1. Source tree. Point the wizard at your local server source checkout, or click Clone to let the wizard download it for you.

  2. Image and container names. Pick the Docker image tag and the container name. Defaults are fine for most.

  3. Ports. Confirm the ports for voice (64738), the file server (64739), and the screen-share relay (10000). Change them if you need to run two servers on the same machine.

  4. Runtime user. The UID and GID the server runs as inside the container. Default is 10000:10000. Change to match the owner of your data volume if you bind-mount a host folder.

  5. SuperUser password. Either type one, click Generate for a strong random one, or leave blank. If you leave it blank, the server will print a random password to the log on the first start.

  6. Optional file mounts. Bind-mount a custom config file, a Firebase credentials JSON, or extra plugin libraries.

  7. Firebase push credentials. If you want push notifications, point the wizard at your service-account JSON. It will base64 encode the file into the .env so credentials never live on a bind-mounted host path.

When you click Save .env on the last step, the wizard writes .env next to your docker-compose.yml. You can review the file by hand if you want.

You can re-run the wizard later to change one value without redoing all the others. The wizard reads the existing .env and pre-fills every prompt with the current value.

Terminal window
python -m setup_wizard

With the .env written, start the container:

Terminal window
docker compose up -d

Or, if you want to rebuild the image locally first (for example because you changed the source tree):

Terminal window
python -m tools dev-build

If you left the password blank, find the auto-generated one with:

Terminal window
docker logs mumble-server 2>&1 | grep -i superuser

Or set a new one at any time:

Terminal window
docker exec mumble-server mumble-server \
--ini /data/mumble_server_config.ini \
--set-su-pw "your-strong-password"

A typical .env looks like this:

# Image
MUMBLE_IMAGE=ghcr.io/fancy-mumble/mumble-server:latest
CONTAINER_NAME=mumble-server
# Ports
MUMBLE_PORT=64738
MUMBLE_FILE_PORT=64739
MUMBLE_SFU_PORT=10000
# Runtime
PUID=10000
PGID=10000
# Server identity
MUMBLE_SUPERUSER_PASSWORD=...
# Push (optional, set to enable)
MUMBLE_FCM_CREDENTIALS_BASE64=...

Every other server option can be added as a MUMBLE_CONFIG_* entry, see the Configuration reference.

Enable features

Walk through the Feature deep-dives to turn on push, the screen-share relay, and link previews.