The installation of MuMo is a bit tricky …
This howto is outdated, please try to use the German one, which I updated in 2020. I will later try to update this English version as well :)
One needs root permissions for the following steps:
Packets (on a Debian Squeeze or later):
Install all packages with:
apt-get install git-core python-zeroc-ice python-daemon
Create a new user:
Now login as the new user:
su - mumo
And clone the project files from MuMo:
git clone https://github.com/mumble-voip/mumo.git
All files are now in the directory
Change to the new directory:
Here you can edit the file mumo.ini, see next section.
If you are using a Mumble-Server >= 1.2.4 then you don't need to setup the
'slice = ' variable, Mumble Moderator will get the file from the server automatically.
If your server is older than 1.2.4 then you must point
slice = to the correct path. On Debian this file is located in
'/usr/share/slice/Murmur.ice after the installation of the package
If you did not use the Debian package to install the Mumble server copy the file Murmur.ice from your own package to /usr/share/slice/Murmur.ice and add that path to the slice variable:
slice = /usr/share/slice/Murmur.ice#'
If your server uses an icesecretwrite you must add this to the
secret = yourpassword
Create a new directory named
Now change into the created directory and link all *.ini files of modules that should be active, for example:
cd modules-enabled && ln -s ../modules-available/seen.ini && cd -
This is an example of a complete
mumo.ini, click to show the content:
[ice] ; Host and port of the Ice interface on ; the target Murmur server. host = 127.0.0.1 port = 6502 ; Slicefile to use (e.g. /etc/slice/Murmur.ice), ; if empty MuMo will load the slice file from the ; target server at startup. slice = ; Semicolon seperated list of slice include directories ; to consider. This is only used on legacy platforms ; with old or broken Ice versions. slicedirs = /usr/share/slice;/usr/share/Ice/slice ; Shared secret between the MuMo and the Murmur ; server. For security reason you should always ; use a shared secret. secret = ;Check Ice connection every x seconds watchdog = 15 [murmur] ; Comma seperated list of server ids to listen on (empty for all) ; note that if a server isn't listed here no events for it can ; be received in any module servers = [modules] mod_dir = modules/ cfg_dir = modules-enabled/ timeout = 2 [system] pidfile = mumo.pid ; Logging configuration [log] ; Available loglevels: 10 = DEBUG (default) | 20 = INFO | 30 = WARNING | 40 = ERROR level = file = mumo.log [iceraw] Ice.ThreadPool.Server.Size = 5
Now you can start your Mumble Moderator:
python mumo.py -a
Thats it :)
Close it with Ctrl + c.
You can choose between:
In this section you must work with root permissions or with
sudo on Ubuntu.
The init script can be downloaded from the Mumble Moderator repository: https://github.com/mumble-voip/mumo/blob/master/init-script.
Copy it to
Now you must change the wordir in the script from
Make it executable chmod a+x /etc/init.d/mumo
Now add it to the runlevel:
update-rc.d mumo defaults
On the next system start Mumble Moderator starts automatically; to start it without a system restart, execute
service mumo start
You need to start Mumble Moderator with the parameter
-d to let it fork to the background.
python mumo.py -d
When Mumble Moderator does not start as a daemon and the log contains:
Traceback (most recent call last): File “mumo.py”, line 535, in context.__enter__() File “/usr/lib/pymodules/python2.7/daemon/daemon.py”, line 352, in __enter__ self.open() File “/usr/lib/pymodules/python2.7/daemon/daemon.py”, line 344, in open self.pidfile.__enter__() File “/usr/lib/pymodules/python2.7/lockfile.py”, line 223, in __enter__ self.acquire() File “/usr/lib/pymodules/python2.7/daemon/pidlockfile.py”, line 109, in acquire super(TimeoutPIDLockFile, self).acquire(timeout, *args, **kwargs) File “/usr/lib/pymodules/python2.7/daemon/pidlockfile.py”, line 59, in acquire super(PIDLockFile, self).acquire(*args, **kwargs) File “/usr/lib/pymodules/python2.7/lockfile.py”, line 261, in acquire raise LockTimeout lockfile.LockTimeout
Remove the file
mumo.pid.lock to solve this.