When a MUMBLE_CONFIG var is set, mumble will use it even if it is empty. This caused problems e.g. when USERNAME="" caused all usernames to be rejected. One option to resolve this would be to keep unset-in-config variables unset in the container. The other option is to supply mumble's default values to the .env (which also makes the values more explicit). This commit also removes a few config variables: SSL would require more work to set up, as the server would need access to the cert files REGISTER is skipped for now as it would require an extra secret LOG_DAYS is skipped because I'm not sure the logs are visible to the user
78 lines
3.2 KiB
YAML
78 lines
3.2 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_BONJOUR: ${BONJOUR}
|
|
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:
|