= MoinMoin = '''!MoinMoin''' is a wiki server. Version 1 (current release) runs on Python 2 with vendored dependencies, a complex plugin ecosystem, and no plan for security support. Version 2 (unstable) runs on Python 3 with the [[Python/Flask|Flask]] ecosystem. <> ---- == Installation == The source files for !MoinMoin are available for download [[http://static.moinmo.in/files|here]]. === Prerequisites === !MoinMoin depends on a `uwsgi` server. See [[Python/Uwsgi|here]] for help with installation. === Virtual Environment === Unpack the !MoinMoin tarball into `/app/example.com`. Move into that directory, instantiate a virtual environment, and activate it. Run `python ./setup.py install`. For `systemd`-capable systems, [[Linux/Systemd|create, start, and enable]] the following service file: {{{ [Unit] Description=Start uwsgi for MoinMoin wiki After=network.target [Service] Type=simple User=www-data ExecStart=/usr/bin/uwsgi --ini /app/example.com/wiki/uwsgi.ini [Install] WantedBy=multi-user.target }}} === Container === ---- == Configuration == === Preparing to Run === !MoinMoin expects a specific directories and scripts. Unpack these from the downloaded package. {{{ cp -r /tmp/wiki /app/example.com cp /tmp/config/wikiconfig.py /app/example.com/wiki/ cp /tmp/server/moin.wsgi /app/example.com/wiki/ }}} Insert the below into `wikiconfig.py` after `import os` but before `from MoinMoin.config import multiconfig, url_prefix_static`. {{{ import sys sys.path.insert(0, '/app/example.com/.venv/lib/python2.7/site-packages/') sys.path.insert(0, '/app/example.com/wiki/') }}} Create a new file, `uwsgi.ini`. {{{ [uwsgi] uid = moin gid = www-data socket = :9000 plugin = python chdir = /app/example.com/wiki wsgi-file = /app/example.com/wiki/moin.wsgi master workers = 3 max-requests = 200 harakiri = 60 die-on-term }}} === Running the First Time === Follow the on-screen instructions to setup a superuser, install language packs or add-ons, and set the front page. ---- CategoryRicottone