mumble-docker reads certain config values from /run/secrets/, so we set the SuperUser password and server password using this method.
server-config.ini
mumble-docker also reads config values from env variables named MUMBLE_CONFIG_*. Importantly, when a variable is set but empty, the corresponding config value is overwritten with an empty string. Therefore we have to provide default values in compose.yml.
The following options are not included, for now:
*ssl* : adding support for certificates needs to be a larger project, it's non-trivial
database, *db*, *sqlite* : as above, for databases
*ice* : I'm unclear how ZeroC Ice works, decided to skip for now
*log* : logs aren't visible outside the container
The following options should probably never be included:
port, host, uname, pidfile: unneccessary in a container environment
legacyPasswordHash: unsecure (could be set with a custom compose file if someone really needs it)
Adding passwords and various config options from https://github.com/mumble-voip/mumble/blob/master/auxiliary_files/mumble-server.ini .
## Passwords
[mumble-docker](https://github.com/mumble-voip/mumble-docker#configuration) reads certain config values from `/run/secrets/`, so we set the SuperUser password and server password using this method.
## server-config.ini
`mumble-docker` also reads config values from env variables named `MUMBLE_CONFIG_*`. Importantly, when a variable is set but empty, the corresponding config value is overwritten with an empty string. Therefore we have to provide default values in `compose.yml`.
The following options are not included, for now:
- `*ssl*` : adding support for certificates needs to be a larger project, it's non-trivial
- `database`, `*db*`, `*sqlite*` : as above, for databases
- `*ice*` : I'm unclear how ZeroC Ice works, decided to skip for now
- `*log*` : logs aren't visible outside the container
The following options should probably never be included:
- `port`, `host`, `uname`, `pidfile`: unneccessary in a container environment
- `legacyPasswordHash`: unsecure (could be set with a custom compose file if someone really needs it)
- `forceExternalAuth`: undocumented
## Checklist
* [X] I have deployed and tested my changes
* [X] I have [updated relevant versions in `abra.sh`](https://docs.coopcloud.tech/maintainers/upgrade/#updating-versions-in-the-abrash)
* [X] I have made my environment variable changes [backwards compatible](https://docs.coopcloud.tech/maintainers/upgrade/#backwards-compatible-environment-variable-changes)
* [X] I have added a [release note entry](https://docs.coopcloud.tech/maintainers/upgrade/#creating-new-release-notes)
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
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
Previous commits introduced new config options:
- passwords
- several misc mumble-server.ini settings
since the new setup requires superuser-pw to be set,
it is a breaking change compared to 0.1.0
however, 0.y.z is not considered stable by semver,
so we're free to increment the minor version.
nice to have the full set of configs too and server password as a secret in its own compose file
my only stylistic question would be that because MUMBLE_ was removed from all the config values, there is more of a possibility of a collision with another environment variable set by something else. for example if abra injected an environment variable that happened to collide. but I don't think its a necessary change or one I would even recommend, but it did pop into my head while looking at the diff. from looking at a couple other recipes, it doesn't look like other recipes prefix env vars very often, so maybe since its within an app-specific container, there are just not many chances of a collision
looks great!
nice to have the full set of configs too and server password as a secret in its own compose file
my only stylistic question would be that because MUMBLE_ was removed from all the config values, there is more of a possibility of a collision with another environment variable set by something else. for example if abra injected an environment variable that happened to collide. but I don't think its a necessary change or one I would even recommend, but it did pop into my head while looking at the diff. from looking at a couple other recipes, it doesn't look like other recipes prefix env vars very often, so maybe since its within an app-specific container, there are just not many chances of a collision
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Adding passwords and various config options from https://github.com/mumble-voip/mumble/blob/master/auxiliary_files/mumble-server.ini .
Passwords
mumble-docker reads certain config values from
/run/secrets/, so we set the SuperUser password and server password using this method.server-config.ini
mumble-dockeralso reads config values from env variables namedMUMBLE_CONFIG_*. Importantly, when a variable is set but empty, the corresponding config value is overwritten with an empty string. Therefore we have to provide default values incompose.yml.The following options are not included, for now:
*ssl*: adding support for certificates needs to be a larger project, it's non-trivialdatabase,*db*,*sqlite*: as above, for databases*ice*: I'm unclear how ZeroC Ice works, decided to skip for now*log*: logs aren't visible outside the containerThe following options should probably never be included:
port,host,uname,pidfile: unneccessary in a container environmentlegacyPasswordHash: unsecure (could be set with a custom compose file if someone really needs it)forceExternalAuth: undocumentedChecklist
abra.shlooks great!
nice to have the full set of configs too and server password as a secret in its own compose file
my only stylistic question would be that because MUMBLE_ was removed from all the config values, there is more of a possibility of a collision with another environment variable set by something else. for example if abra injected an environment variable that happened to collide. but I don't think its a necessary change or one I would even recommend, but it did pop into my head while looking at the diff. from looking at a couple other recipes, it doesn't look like other recipes prefix env vars very often, so maybe since its within an app-specific container, there are just not many chances of a collision