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:
adduser mumo
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 'mumo
'.
Change to the new directory:
cd mumo
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 'mumble-server
'.
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 mumo.ini
.
secret = yourpassword
Create a new directory named modules-enabled
:
mkdir modules-enabled
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 /etc/init.d/mumo
Now you must change the wordir in the script from
WORKDIR=/opt/mumo
to
WORKDIR=/home/mumo/mumo
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.