diff --git a/.env.sample b/.env.sample
index eae52d2..3df55c3 100644
--- a/.env.sample
+++ b/.env.sample
@@ -25,42 +25,42 @@ SECRET_SUPERUSER_PASSWORD_VERSION=v1
#################
# MUMBLE CONFIG #
#################
-# Documentation for the following options is here:
+# Documentation for the following options can be found here:
# https://github.com/mumble-voip/mumble/blob/v1.6.870/auxiliary_files/mumble-server.ini
-WELCOME_TEXT="
Welcome to this server running Mumble.
Enjoy your stay!
"
-BANDWIDTH=558000
-TIMEOUT=30
-USERS=100
-USERS_PER_CHANNEL=0
-MESSAGE_BURST=5
-MESSAGE_LIMIT=1
-PLUGIN_MESSAGE_LIMIT=1
-PLUGIN_MESSAGE_BURST=5
-ALLOW_PING=true
-OPUS_THRESHOLD=0
-CHANNEL_NESTING_LIMIT=10
-CHANNEL_COUNT_LIMIT=1000
-CHANNEL_NAME=[ \\-=\\w#\\[\\]\\{\\}\\(\\)\\@\\|]+
-USERNAME=[-=\\w\\[\\]\\{\\}\\(\\)\\@\\|\\.]+
-DEFAULT_CHANNEL=0
-REMEMBER_CHANNEL=true
-REMEMBER_CHANNEL_DURATION=0
-TEXT_MESSAGE_LENGTH=5000
-IMAGE_MESSAGE_LENGTH=1048576
-ALLOW_HTML=true
-BONJOUR=true
-OBFUSCATE=false
-CERT_REQUIRED=false
-SEND_VERSION=true
-SUGGEST_VERSION=
-SUGGEST_POSITIONAL=
-SUGGEST_PUSH_TO_TALK=
-KDF_ITERATIONS=-1
-AUTO_BAN_ATTEMPTS=10
-AUTO_BAN_TIMEFRAME=120
-AUTO_BAN_TIME=300
-AUTO_BAN_SUCCESSFUL_CONNECTIONS=true
-ALLOW_RECORDING=true
-ROLLING_STATS_WINDOW=300
-LISTENERS_PER_CHANNEL=5
-LISTENERS_PER_USER=2
+#WELCOME_TEXT="
Welcome to this server running Mumble.
Enjoy your stay!
"
+#BANDWIDTH=558000
+#TIMEOUT=30
+#USERS=100
+#USERS_PER_CHANNEL=0
+#MESSAGE_BURST=5
+#MESSAGE_LIMIT=1
+#PLUGIN_MESSAGE_LIMIT=1
+#PLUGIN_MESSAGE_BURST=5
+#ALLOW_PING=true
+#OPUS_THRESHOLD=0
+#CHANNEL_NESTING_LIMIT=10
+#CHANNEL_COUNT_LIMIT=1000
+#CHANNEL_NAME=[ \\-=\\w#\\[\\]\\{\\}\\(\\)\\@\\|]+
+#USERNAME=[-=\\w\\[\\]\\{\\}\\(\\)\\@\\|\\.]+
+#DEFAULT_CHANNEL=0
+#REMEMBER_CHANNEL=true
+#REMEMBER_CHANNEL_DURATION=0
+#TEXT_MESSAGE_LENGTH=5000
+#IMAGE_MESSAGE_LENGTH=1048576
+#ALLOW_HTML=true
+#BONJOUR=true
+#OBFUSCATE=false
+#CERT_REQUIRED=false
+#SEND_VERSION=true
+#SUGGEST_VERSION=
+#SUGGEST_POSITIONAL=
+#SUGGEST_PUSH_TO_TALK=
+#KDF_ITERATIONS=-1
+#AUTO_BAN_ATTEMPTS=10
+#AUTO_BAN_TIMEFRAME=120
+#AUTO_BAN_TIME=300
+#AUTO_BAN_SUCCESSFUL_CONNECTIONS=true
+#ALLOW_RECORDING=true
+#ROLLING_STATS_WINDOW=300
+#LISTENERS_PER_CHANNEL=5
+#LISTENERS_PER_USER=2
diff --git a/compose.yml b/compose.yml
index 93707aa..e9f373b 100644
--- a/compose.yml
+++ b/compose.yml
@@ -12,43 +12,45 @@ services:
- 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_WELCOMETEXT: ${WELCOME_TEXT:-"
Welcome to this server running Mumble.
Enjoy your stay!
"}
+ MUMBLE_CONFIG_BANDWIDTH: ${BANDWIDTH:-558000}
+ MUMBLE_CONFIG_TIMEOUT: ${TIMEOUT:-30}
+ MUMBLE_CONFIG_USERS: ${USERS:-100}
+ MUMBLE_CONFIG_USERSPERCHANNEL: ${USERS_PER_CHANNEL:-0}
+ MUMBLE_CONFIG_MESSAGEBURST: ${MESSAGE_BURST:-5}
+ MUMBLE_CONFIG_MESSAGELIMIT: ${MESSAGE_LIMIT:-1}
+ MUMBLE_CONFIG_PLUGINMESSAGELIMIT: ${PLUGIN_MESSAGE_LIMIT:-1}
+ MUMBLE_CONFIG_PLUGINMESSAGEBURST: ${PLUGIN_MESSAGE_BURST:-5}
+ MUMBLE_CONFIG_ALLOWPING: ${ALLOW_PING:-true}
+ MUMBLE_CONFIG_OPUSTHRESHOLD: ${OPUS_THRESHOLD:-0}
+ MUMBLE_CONFIG_CHANNELNESTINGLIMIT: ${CHANNEL_NESTING_LIMIT:-10}
+ MUMBLE_CONFIG_CHANNELCOUNTLIMIT: ${CHANNEL_COUNT_LIMIT:-1000}
+ # 2026-04-28 @amras - the missing } in the following lines is intentional
+ # otherwise compose will pass that character to the env.
+ MUMBLE_CONFIG_CHANNELNAME: ${CHANNEL_NAME:-[ \\-=\\w\\#\\[\\]\\{\\}\\(\\)\\@\\|]+
+ MUMBLE_CONFIG_USERNAME: ${USER_NAME:-[-=\\w\\[\\]\\{\\}\\(\\)\\@\\|\\.]+
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_BONJOUR: ${BONJOUR}
- MUMBLE_CONFIG_OBFUSCATE: ${OBFUSCATE}
- MUMBLE_CONFIG_CERTREQUIRED: ${CERT_REQUIRED}
- MUMBLE_CONFIG_SENDVERSION: ${SEND_VERSION}
+ MUMBLE_CONFIG_REMEMBERCHANNEL: ${REMEMBER_CHANNEL:-true}
+ MUMBLE_CONFIG_REMEMBERCHANNELDURATION: ${REMEMBER_CHANNEL_DURATION:-0}
+ MUMBLE_CONFIG_TEXTMESSAGELENGTH: ${TEXT_MESSAGE_LENGTH:-5000}
+ MUMBLE_CONFIG_IMAGEMESSAGELENGTH: ${IMAGE_MESSAGE_LENGTH:-1048576}
+ MUMBLE_CONFIG_ALLOWHTML: ${ALLOW_HTML:-true}
+ MUMBLE_CONFIG_BONJOUR: ${BONJOUR:-true}
+ MUMBLE_CONFIG_OBFUSCATE: ${OBFUSCATE:-false}
+ MUMBLE_CONFIG_CERTREQUIRED: ${CERT_REQUIRED:-false}
+ MUMBLE_CONFIG_SENDVERSION: ${SEND_VERSION:-true}
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}
+ MUMBLE_CONFIG_KDFITERATIONS: ${KDF_ITERATIONS:--1}
+ MUMBLE_CONFIG_AUTOBANATTEMPTS: ${AUTOBAN_ATTEMPTS:-10}
+ MUMBLE_CONFIG_AUTOBANTIMEFRAME: ${AUTOBAN_TIMEFRAME:-120}
+ MUMBLE_CONFIG_AUTOBANTIME: ${AUTOBAN_TIME:-300}
+ MUMBLE_CONFIG_AUTOBANSUCCESSFULCONNECTIONS: ${AUTOBAN_SUCCESSFUL_CONNECTIONS:-true}
+ MUMBLE_CONFIG_ALLOWRECORDING: ${ALLOW_RECORDING:-true}
+ MUMBLE_CONFIG_ROLLINGSTATSWINDOW: ${ROLLING_STATS_WINDOW:-300}
+ MUMBLE_CONFIG_LISTENERSPERCHANNEL: ${LISTENERS_PER_CHANNEL:--1}
+ MUMBLE_CONFIG_LISTENERSPERUSER: ${LISTENERS_PER_USER:--1}
deploy:
restart_policy:
condition: on-failure