Inhaltsverzeichnis

Installation of Mumble Moderator

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 :)

See Installation von MuMo (MumbleModerator)

Dependencies

Howto

Prepare

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

Get Mumble Moderator

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'.

Configure Mumble Moderator

Change to the new directory:

cd mumo

Here you can edit the file mumo.ini, see next section.

slice variable

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#'

Icesecret

If your server uses an icesecretwrite you must add this to the mumo.ini.

secret = yourpassword

Modules

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 -

Examples

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

This is the directory structure of a full MuMo installation.

This is the directory structure of a full MuMo installation.

/home/mumo
|-- modules
|   |-- antirec.py
|   |-- antirec.pyc
|   |-- bf2.py
|   |-- deaftoafk.py
|   |-- deaftoafk.pyc
|   |-- idlemove.py
|   |-- idlemove.pyc
|   |-- onjoin.py
|   |-- onjoin.pyc
|   |-- seen.py
|   |-- seen.pyc
|   |-- test.py
|   |-- test.pyc
|   |-- wrongversion.py
|   `-- wrongversion.pyc
|-- modules-available
|   |-- antirec.ini
|   |-- bf2.ini
|   |-- deaftoafk.ini
|   |-- idlemove.ini
|   |-- onjoin.ini
|   |-- seen.ini
|   |-- test.ini
|   `-- wrongversion.ini
|-- modules-enabled
|   |-- antirec.ini -> ../modules-available/antirec.ini
|   |-- deaftoafk.ini -> ../modules-available/deaftoafk.ini
|   |-- seen.ini -> ../modules-available/seen.ini
|   `-- wrongversion.ini -> ../modules-available/wrongversion.ini

Start MuMo

Now you can start your Mumble Moderator:

python mumo.py -a

Thats it :)

Close it with Ctrl + c.

Run Mumble Moderator as a system daemon

You can choose between:

Use an init script

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

Start Mumble Moderator by hand

You need to start Mumble Moderator with the parameter -d to let it fork to the background.

python mumo.py -d

Problems

Lockfile

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.

See also