mumble-voip / mumble-docker Goto Github PK
View Code? Open in Web Editor NEWThe official Mumble Docker image
License: BSD 3-Clause "New" or "Revised" License
The official Mumble Docker image
License: BSD 3-Clause "New" or "Revised" License
Docker Hub is unavailable in certain locations.
need container image in ghcr (github packages) or somewhere else
I'm wondering if I could get some help with setting up my Mumble server with a ssl certificate. So that I don't have to convince my gaming friends I'm not trying to hack them when they get the "untrusted certificate" message.
So I recently installed a Mumble server using docker-compose.
Normally, I use Nginx Proxy Manager to set up ssl to the various services I'm running on my homeserver. It's a noob-friendly GUI. You click "add proxy", set the subdomain, forwarding up address and port, and then click "request ssl certificate". And voila, it works.
So my domain is "example.com" which points to my ISP ip address. Also all subdomains point to the same ip (A records are example.com and *.example.com). In the ISP router, ports 80 and 443 are forwarded to the VM running Nginx Proxy Manager. This is how it works now for plex, nextcloud, etc.
Could someone help me with which steps I should go through to basically get rid of the "untrusted certificate" message with the docker-based Mumble server? Adding a proxy in Nginx Proxy Manager and forwarding "mumble.example.com" to the ip and port the docker server is running on doesn't seem to work.
Thanks I advance!
Latest as of last week.
Server
Linux
No response
Currently the ARM build aren't available on the Docker Hub.
Reasons :
This will be fix on next mumble-server release.
Hi,
I imported my existing config when I migrated from a standalone server installation to docker.
Yesterday's update broke my installation. At first I thought it was due to the UID, so I had to change my system for it to match the values of 1000/1000, but that didn't fix anything.
When reading the new commit for the entrypoint.sh, 6a9d8f5
The variable CONFIG_FILE is set as readonly.
Therefore, the code at lines 58ish can't work :
if [[ -f "$MUMBLE_CUSTOM_CONFIG_FILE" ]]; then
echo "Using manually specified config file at $MUMBLE_CUSTOM_CONFIG_FILE"
echo "All MUMBLE_CONFIG variables will be ignored"
CONFIG_FILE="$MUMBLE_CUSTOM_CONFIG_FILE"
else
Because the variable is readonly...
Can you revert that commit or correct the problem please ?
Since the welcometext
configuration option is always set by default, any values assigned to MUMBLE_CONFIG_WELCOMETEXTFILE
will be ignored.
See docs: https://wiki.mumble.info/wiki/Murmur.ini#welcometextfile
If a value for welcometext is set, the welcometextfile will not be read.
I'm happy to see that there's a container for Mumble now!
There's one thing stopping me from switching over, and that is Let's Encrypt SSL cert integration which I currently have configured on my Mumble VM. Could we get this by chance?
Related: https://wiki.mumble.info/wiki/Obtaining_a_Let%27s_Encrypt_Murmur_Certificate
Best regards,
dabruh
See https://github.com/docker-slim/docker-slim
This seems to represent a viable option to further reduce our image's size.
Hi all, sorry if this isn't the proper place to ask this but I'm having issues. I installed the container through docker compose and got nginx properly configured for it, and it passes certification in a web browser. AM I doing something wrong? I'm using the desktop version in the ubuntu repos if age of the package makes a difference
Currently the default behavior of entrypoint.sh is to exit with error when an MUMBLE_CONFIGURATION_
option is set in the docker-compose.yml
file but is not existing in /etc/mumble/bare_config.ini
which is copied from upstream /scripts/murmur.ini.
While I understand the rationale behind this approach, the problem with this behavior is that if a valid option is missing from /etc/mumble/bare_config.ini
then it cannot be set in docker_compose.yml
. From an end user perspective, this is quite annoying. I have currently two examples of missing configurations: listenersperchannel
and listenersperuser
.
IMHO a better approach would be to set provided options even if they are missing in /etc/mumble/bare_config.ini
and instead of an error log a warning stating that as the configuration option is missing in the bare-config, it's not sure that it will be correctly applied and as such it's user's responibility to verify it.
This would allow to make mumble-docker
more robust to this type of issues in upstream project.
Note: if I'm not wrong, if the user provides his own mumble configuration file instead of going the MUMBLE_CONFIGURATION_
way, not existing options in /etc/mumble/bare_config.ini
are accepted anyway.
latest
tag (digest c19e948b9790)
The server log file does not seem to be created regardless of passing or not the logfile
option as an environment variable. In both cases, when connecting to the container, no log file can be found in /var/log/
nor in /data
nor in the directory specified by the environment variable.
Connecting to the container as root and running a "find" does not yield any result.
When passing a MUMBLE_CONFIG_LOGFILE: /data/murmur.log
environment variable in my docker-compose.yml
file, the variable is correctly set into /data/mumble_server_config.ini
however the /data/murmur.log
file is never created and as such logs are not written to it.
It is not a volume / access rights issue (for instance the db file is correctly mounted / created / modified + logging into the container as "mumble" user and executing touch
where the logfileshould be located creates the file with no issue, however nothing is written to it later even if the file is created manually.)
it seems that murmur forces itself to foreground mode which logs to the console and not to a file or that something is missing to allow it to write logs.
Tried both with docker-compose up
and docker-compose up -d
with no difference.
Hi there! Thanks for providing this awesome handy image :-)
To support Docker secrets [1], it would be great if it was possible to provide the values of SENSITIVE_CONFIGS
kind variables from files instead as just values, similar to how database configurations work.
For example, instead of...:
MUMBLE_SERVERPASSWORD=oh_noes_i_m_leaking_this_to_the_docker_compose
...the idea would be to be able to supply...:
MUMBLE_SERVERPASSWORD_FILE=/run/secrets/mumble_serverpassword
Thus removing any secrets from docker-compose.yml
, from docker run...
bash history, and improving the support for docker swarm etc.
[1]
https://docs.docker.com/engine/swarm/secrets/
Cheers,
Kalsan
Hello, I tried building the image myself and I was unable to complete the build resulting in an infinite wait during the /mumble/repo/scripts/mumble-build-number.py
command because the http://mumble.info/ website is down and never timing-out.
It would be great to not hard-depend on a service like this, possible solutions I see are:
Thank you for your work and have a nice day ! :)
The log statements in set_configs()
in entrypoint.sh
can leak sensitive values to logs, primarily the value of MUMBLE_CONFIG_DB_PASSWORD
when using a database like mysql.
Line 45 in 4d73da6
Most probably you are already working on it and I am just too early/impatient... 😄 But the image on dockerhub does not seem to correspond to the current state of this repo. On the dockerhub image the entrypoint file is called docker-entrypoint.sh and is different to the entrypoint.sh in this rep.
Hi,
thanks for the Re-Release!
I am currently struggeling with the Mumble LDAP Authenticator. The Server is currently Running 1 Release behind on Static x86.
In this Setup, i Build murmur & the LDAP Authenticator from the Git Tag of the Latest Release.
I have used the following Configs, but it doesn't seem to work.
The LDAP seems to can't connect to the murmur server and i cant figure out why. I have tried switching up the IPs (172.16.238.2 / 172.16.238.3) but that doesn't help at all.
docker-compose.yaml
version: "3.7"
services:
murmur:
build: ./mumble
volumes:
- $PWD/conf/murmur.ini:/etc/murmur/murmur.ini:ro
- $PWD/murmur.sqlite:/var/lib/murmur/murmur.sqlite:rw
- $PWD/log/murmur.log:/var/log/murmur/murmur.log:rw
ports:
- 6502:6502
networks:
ice:
ipv4_address: 172.16.238.3
murmur-ldap:
build: ./mumble-scripts/Authenticators/LDAP
volumes:
- $PWD/conf/LDAPauth.ini:/app/LDAPauth.ini:ro
- $PWD/log/LDAPauth.log:/var/log/murmur/LDAPauth.log:rw
- $PWD/mumble/src/murmur/Murmur.ice:/app/Murmur.ice:ro
networks:
ice:
ipv4_address: 172.16.238.2
networks:
ice:
driver: bridge
ipam:
config:
- subnet: 172.16.238.0/24
LDAPauth.ini
. . .
;Ice configuration
[ice]
host = 172.16.238.3
port = 6502
slice = Murmur.ice
secret = 4MST5yDtefksy3oLWMMNN
watchdog = 30
. . .
LDAPauth Dockerfile
FROM python:slim-bullseye
WORKDIR /app
COPY LDAPauth.py LDAPauth.py
RUN apt-get update -y && apt-get install -y libsasl2-dev python-dev libldap2-dev libssl-dev build-essential libbz2-dev
RUN pip3 install python-daemon python-ldap zeroc-ice
ENTRYPOINT python3 LDAPauth.py
EXPOSE 6502
murmur.ini
. . .
ice="tcp -h 172.16.238.2 -p 6502"
icesecretread=***********************
icesecretwrite=***********************
;identical
Could you Provide Official examples on how to set it up?
Id like to try the most recent release and the container on dockerhub is the previous 1.4 release, would either like the docker container updated or instructions to build it myself if possible.
hi folks
the latest docker image
mumblevoip/mumble-server:latest
wont work
docker log says:
exec /entrypoint.sh: exec format error
run the current docker image
mumblevoip/mumble-server:latest
Server
Linux
Yes
No response
No response
No response
I want dockerized server to use dockerized mysql server. but, it is using sqlite by default. I have changed the /auxiliary_files/mumble-server.ini file with appropriate value.
I guess it is because of the entrypoint.sh file where all configuration commands are for sqlite.
How can I change the file so that server get connected to mysql instead of sqlite?
1.5.0
Server
Linux
No response
Broken bind mount access for Syn&QTS even with PGID=0, PUID=0, MUMBLE_GID=0, MUMBLE_UID=0, /data:770 (normally 660) and owned (docker running under UID=0, GID=0, forced requirement). Why is every docker trying to force running as 1000:1000+ when you can let the end user do what they need? So much hand-holding...*sigh* Breaking usability.
/entrypoint.sh: line 77: /data/mumble_server_config.ini: Permission denied
Hi!
So I set up a stack with mumo and murmur, and with the default ice configuration to the loopback interface, mumo was not able to connect to the murmur ice instance.
I changed the ice config variable to the following, and mumo was now able to connect:
ice="tcp -h * -p 6502"
However, when I connect with a client that tries to register a callback with a mumo plugin, I get the following error:
Added Ice ServerCallback CB16627A-A7FC-47C4-96CE-29AB2AA38001 -o -e 1.0:tcp -h 127.0.0.1 -p 39125 -t 60000
Ice ServerCallback CB16627A-A7FC-47C4-96CE-29AB2AA38001 -o -e 1.0:tcp -h 127.0.0.1 -p 39125 -t 60000 failed
Removed Ice ServerCallback CB16627A-A7FC-47C4-96CE-29AB2AA38001 -o -e 1.0:tcp -h 127.0.0.1 -p 39125 -t 60000
I am unsure why it's even trying to register a server callback to the loopback interface, especially on random ports. I tried specifically setting the local IP as the ice IP as well, and it still tries to use 127.0.0.1.
Any ideas? Do I have to use ice published endpoints, and if so, the entrypoint.sh overwrites the ice settings on restart.
I run the mumble server with this docker compose file:
services:
murmur:
container_name: murmur
image: mumblevoip/mumble-server:latest
restart: always
ports:
- "49155:50051/tcp"
- "64738:64738/tcp"
- "64738:64738/udp"
environment:
MUMBLE_CONFIG_SERVER_PASSWORD: "mypassword"
MUMBLE_CONFIG_WELCOME_TEXT: "My Welcome Text"
MUMBLE_CONFIG_USERS: "8"
MUMBLE_CONFIG_BANDWIDTH: "128000"
None of the settings seem to work. E.g. the log file shows:
Setting config "database" to: '/data/murmur.sqlite'
Setting config "ice" to: '"tcp -h 127.0.0.1 -p 6502"'
Setting config "welcometext" to: '"
Welcome to this server, running the official Mumble Docker image.
Enjoy your stay!
"'
Setting config "port" to: '64738'
Setting config "users" to: '100'
Running Mumble server as uid=1000 gid=1000
"/data" has the following permissions set:
drwxr-xr-x, owner: "mumble" (UID: 1000), group: "users" (GID: 100)
Command run to start the service : /usr/bin/mumble-server -fg -ini /data/mumble_server_config.ini
Starting...
As you can see the welcome text is not what was configured.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.