Files
mumble/compose.yml
Amras 069298a9f0 [feat] add options from mumble-server.ini
Most of the options from mumble-server.ini have been added to .env
No documentation for these settings, since they're described elsewhere.

The exceptions which were not included are:
- *ssl* : adding support for custom certs needs more work
- database, *db*, *sqlite* : as above, for databases
- *ice* : unclear how ZeroC Ice works, decided to skip for now
- logfile, pidfile, *log* : would need to expose these files outside the
  container
- port, host, uname : unneccessary in a container
- legacypasswordhash : unsecure, therefore requires custom compose file
- forceExternalAuth : undocumented

Reference:
on environment variables to set config options in the container: a0ab293b2a/README.md (configuration)
list of options: https://github.com/mumble-voip/mumble/blob/v1.6.870/auxiliary_files/mumble-server.ini
2026-04-23 21:00:47 +00:00

90 lines
3.8 KiB
YAML

---
version: "3.8"
services:
app:
image: mumblevoip/mumble-server:v1.6.870-0
networks:
- proxy
volumes:
- "mumble_data:/data"
secrets:
- source: superuser-pw
target: MUMBLE_SUPERUSER_PASSWORD
environment:
MUMBLE_CONFIG_WELCOMETEXT: ${WELCOME_TEXT}
MUMBLE_CONFIG_BANDWIDTH: ${BANDWIDTH}
MUMBLE_CONFIG_TIMEOUT: ${TIMEOUT}
MUMBLE_CONFIG_USERS: ${USERS}
MUMBLE_CONFIG_USERSPERCHANNEL: ${USERS_PER_CHANNEL}
MUMBLE_CONFIG_MESSAGEBURST: ${MESSAGE_BURST}
MUMBLE_CONFIG_MESSAGELIMIT: ${MESSAGE_LIMIT}
MUMBLE_CONFIG_PLUGINMESSAGELIMIT: ${PLUGIN_MESSAGE_LIMIT}
MUMBLE_CONFIG_PLUGINMESSAGEBURST: ${PLUGIN_MESSAGE_BURST}
MUMBLE_CONFIG_ALLOWPING: ${ALLOW_PING}
MUMBLE_CONFIG_OPUSTHRESHOLD: ${OPUS_THRESHOLD}
MUMBLE_CONFIG_CHANNELNESTINGLIMIT: ${CHANNEL_NESTING_LIMIT}
MUMBLE_CONFIG_CHANNELCOUNTLIMIT: ${CHANNEL_COUNT_LIMIT}
MUMBLE_CONFIG_CHANNELNAME: ${CHANNEL_NAME}
MUMBLE_CONFIG_USERNAME: ${USERNAME}
MUMBLE_CONFIG_DEFAULTCHANNEL: ${DEFAULT_CHANNEL}
MUMBLE_CONFIG_REMEMBERCHANNEL: ${REMEMBER_CHANNEL}
MUMBLE_CONFIG_REMEMBERCHANNELDURATION: ${REMEMBER_CHANNEL_DURATION}
MUMBLE_CONFIG_TEXTMESSAGELENGTH: ${TEXT_MESSAGE_LENGTH}
MUMBLE_CONFIG_IMAGEMESSAGELENGTH: ${IMAGE_MESSAGE_LENGTH}
MUMBLE_CONFIG_ALLOWHTML: ${ALLOW_HTML}
MUMBLE_CONFIG_LOGDAYS: ${LOG_DAYS}
MUMBLE_CONFIG_REGISTERNAME: ${REGISTER_NAME}
MUMBLE_CONFIG_REGISTERPASSWORD: ${REGISTER_PASSWORD}
MUMBLE_CONFIG_REGISTERURL: ${REGISTER_URL}
MUMBLE_CONFIG_REGISTERHOSTNAME: ${REGISTER_HOSTNAME}
MUMBLE_CONFIG_REGISTERLOCATION: ${REGISTER_LOCATION}
MUMBLE_CONFIG_BONJOUR: ${BONJOUR}
MUMBLE_CONFIG_SSLCERT: ${SSL_CERT}
MUMBLE_CONFIG_SSLKEY: ${SSL_KEY}
MUMBLE_CONFIG_SSLPASSPHRASE: ${SSL_PASSPHRASE}
MUMBLE_CONFIG_SSLCAPEM: ${SSL_CA_PEM}
MUMBLE_CONFIG_SSLDHPARAMS: ${SSL_DH_PARAMS}
MUMBLE_CONFIG_SSLCIPHERS: ${SSL_CIPHERS}
MUMBLE_CONFIG_OBFUSCATE: ${OBFUSCATE}
MUMBLE_CONFIG_CERTREQUIRED: ${CERT_REQUIRED}
MUMBLE_CONFIG_SENDVERSION: ${SEND_VERSION}
MUMBLE_CONFIG_SUGGESTVERSION: ${SUGGEST_VERSION}
MUMBLE_CONFIG_SUGGESTPOSITIONAL: ${SUGGEST_POSITIONAL}
MUMBLE_CONFIG_SUGGESTPUSHTOTALK: ${SUGGEST_PUSH_TO_TALK}
MUMBLE_CONFIG_KDFITERATIONS: ${KDF_ITERATIONS}
MUMBLE_CONFIG_AUTOBANATTEMPTS: ${AUTOBAN_ATTEMPTS}
MUMBLE_CONFIG_AUTOBANTIMEFRAME: ${AUTOBAN_TIMEFRAME}
MUMBLE_CONFIG_AUTOBANTIME: ${AUTOBAN_TIME}
MUMBLE_CONFIG_AUTOBANSUCCESSFULCONNECTIONS: ${AUTOBAN_SUCCESSFUL_CONNECTIONS}
MUMBLE_CONFIG_ALLOWRECORDING: ${ALLOW_RECORDING}
MUMBLE_CONFIG_ROLLINGSTATSWINDOW: ${ROLLING_STATS_WINDOW}
MUMBLE_CONFIG_LISTENERSPERCHANNEL: ${LISTENERS_PER_CHANNEL}
MUMBLE_CONFIG_LISTENERSPERUSER: ${LISTENERS_PER_USER}
deploy:
restart_policy:
condition: on-failure
labels:
- "traefik.enable=true"
- "traefik.tcp.routers.${STACK_NAME}.entrypoints=mumble"
- "traefik.tcp.routers.${STACK_NAME}.service=${STACK_NAME}-tcp-service"
- "traefik.tcp.routers.${STACK_NAME}.rule=HostSNI(`*`)"
- "traefik.tcp.routers.${STACK_NAME}.tls.passthrough=true"
- "traefik.tcp.services.${STACK_NAME}-tcp-service.loadbalancer.server.port=64738"
- "traefik.udp.routers.${STACK_NAME}.entrypoints=mumble-udp"
- "traefik.udp.routers.${STACK_NAME}.service=${STACK_NAME}-udp-service"
- "traefik.udp.services.${STACK_NAME}-udp-service.loadbalancer.server.port=64738"
- "coop-cloud.${STACK_NAME}.version=0.1.0+v1.6.870-0"
secrets:
superuser-pw:
external: true
name: ${STACK_NAME}_superuser-pw_${SECRET_SUPERUSER_PASSWORD_VERSION}
networks:
proxy:
external: true
volumes:
mumble_data: