From 069298a9f05d1c1c57c032623a40f2569d30494e Mon Sep 17 00:00:00 2001 From: Amras Date: Thu, 23 Apr 2026 17:16:54 +0000 Subject: [PATCH] [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: https://github.com/mumble-voip/mumble-docker/blob/a0ab293b2a286032b21ec12d84ad24bc10f20dbd/README.md#configuration list of options: https://github.com/mumble-voip/mumble/blob/v1.6.870/auxiliary_files/mumble-server.ini --- .env.sample | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++ compose.yml | 50 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) diff --git a/.env.sample b/.env.sample index d3d4040..a8c5c95 100644 --- a/.env.sample +++ b/.env.sample @@ -21,3 +21,59 @@ COMPOSE_FILE="compose.yml" ## SuperUser Password SECRET_SUPERUSER_PASSWORD_VERSION=v1 + +################# +# MUMBLE CONFIG # +################# +# Documentation for the following options is here: +# https://github.com/mumble-voip/mumble/blob/v1.6.870/auxiliary_files/mumble-server.ini +# Note: these options may be untested +#WELCOME_TEXT= +#BANDWIDTH= +#TIMEOUT= +#USERS= +#USERS_PER_CHANNEL= +#MESSAGE_BURST= +#MESSAGE_LIMIT= +#PLUGIN_MESSAGE_LIMIT= +#PLUGIN_MESSAGE_BURST= +#ALLOW_PING= +#OPUS_THRESHOLD= +#CHANNEL_NESTING_LIMIT= +#CHANNEL_COUNT_LIMIT= +#CHANNEL_NAME= +#USERNAME= +#DEFAULT_CHANNEL= +#REMEMBER_CHANNEL= +#REMEMBER_CHANNEL_DURATION= +#TEXT_MESSAGE_LENGTH= +#IMAGE_MESSAGE_LENGTH= +#ALLOW_HTML= +#LOG_DAYS= +#REGISTER_NAME= +#REGISTER_PASSWORD= +#REGISTER_URL= +#REGISTER_HOSTNAME= +#REGISTER_LOCATION= +#BONJOUR= +#SSL_CERT= +#SSL_KEY= +#SSL_PASSPHRASE= +#SSL_CA_PEM= +#SSL_DH_PARAMS= +#SSL_CIPHERS= +#OBFUSCATE= +#CERT_REQUIRED= +#SEND_VERSION= +#SUGGEST_VERSION= +#SUGGEST_POSITIONAL= +#SUGGEST_PUSH_TO_TALK= +#KDF_ITERATIONS= +#AUTOBAN_ATTEMPTS= +#AUTOBAN_TIMEFRAME= +#AUTOBAN_TIME= +#AUTOBAN_SUCCESSFUL_CONNECTIONS= +#ALLOW_RECORDING= +#ROLLING_STATS_WINDOW= +#LISTENERS_PER_CHANNEL= +#LISTENERS_PER_USER= diff --git a/compose.yml b/compose.yml index ba77208..90eccf9 100644 --- a/compose.yml +++ b/compose.yml @@ -11,6 +11,56 @@ services: 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