install guide

This guide provides quick setup instructions for a basic mudpy installation, sufficient as a starting point for further configuration and customization.

installation

There’s a test and demo walk-through in the coder guide guide which will get you up and running right away if you’re familiar with the tox utility, but you can get by with just a supported Python interpreter. It’s still easiest to do it from a git clone or unpacked tarball of the source code so you have sample configuration to work from. As long as your distro doesn’t strip the venv module out of Python’s standard library, from the top-level source directory you could basically install it as a normal shell user with:

python3 -m venv mudpy_venv
mudpy_venv/bin/pip install .

And then you can start the service with:

mudpy_venv/bin/mudpy

If the python3 command above emits an error like No module named venv, then you’re probably on a distribution like Debian which needs the python3-venv package installed with your package manager first.

initialization

The mudpy service is self-initializing the first time you start it, though you need some minimum configuration in its config search path. The installation example above uses the sample etc/mudpy.conf configuration provided in the source tree, but you can edit this or make a modified copy and pass its name as the only command-line argument to the executable entrypoint:

mudpy_venv/bin/mudpy my_config.yaml

By default it’ll only listen on the loopback address, but that’s configurable in the network settings of course. The basic element definitions are included in the share directory as well as basic archetype, command and menu element definitions. The default configuration is set so that if anyone creates a user named “admin” then that account will start with administrative privileges, configurable in the admins limit.

Using pip to install in a venv or with its --user option takes care of making sure the Python package dependencies listed in the requirements.txt file are available, but it should be possible to run mudpy/daemon.py as a normal python3 script as long as you’ve installed your distro’s packages of the dependencies (on Debian/Ubuntu that’s python3-passlib and python3-yaml, they’re probably named something similar on other distros).

platforms

There’s a good chance that some of the file handling and socket routines are not cross-platform compatible and will only work on Unix derivatives like Linux, *BSD or GNU Hurd (possibly also Mac OS X/Darwin since it’s essentially a BSD descendant). All changes to the codebase are tested on Debian GNU/Linux, but it should at least work reliably on any Linux distribution with a new enough Python interpreter. It probably also works on Microsoft Windows under the WSL (Windows Subsystem for Linux) compatibility layer.