I have been working on a new sub-project Mailman Web1. This project basically combines Postorius and Hyperkitty together in a single package which you can easily use to serve Mailman's web interface.
The basic motivation behind this was to make it simpler for people to install the web interface *and* make it easier for people to configure Mailman's web ui.
Both Postorius and Hyperkitty are based on Django Web Framework, which uses settings.py as its default configuration language. While it is quite convenient for Python developers to be able to put Python statements in configuration to join/edit/configure settings. However, I think a traditional INI, or TOML style configuration is easier for non-developers without having to worry about PYTHONPATH, valid Python sytax etc, etc.
For this reason, I decided to combine all the projects together into a Django project which can be easily installed and run:
$ pip install mailman-web
# Export Settings for commands to just work.
$ export DJANGO_SETTINGS=mailman_web.settings
$ django-admin migrate
$ django-admin runserver
This should get you default settings for running. If you want to customize your installation, which you almost always would need to in a prod environment, you can create a config file at one of these locations (which are searched in following order):
- /etc/mailman-web.toml
- /etc/mailman3/mailman-web.toml
- ./mailman-web.toml
Note that we support only TOML as the configuration language3 because of its simplicity. I would have loved to use INI, like Mailman Core, but it turns out to be way too simple to represent more complex data structures like maps and tables, that is commonly used in Django's Settings.
This project is currently in alpha stage (I created it today!), but can be installed with pip5 and in my basic tests works. There isn't much in the project itself beyond some configurations.
I also took this opportunity to document all the settings that are used in Mailman Web (both Postorius and Hyperkitty) together6. This is documented in code and so I really hope that it won't go out of date like many other places ;-) Improvements to docs is very welcome, just a modification of a comment and is quite easy to propose right in your web browser using Gitlab!
Any questions, comments or suggestions are welcome. You can open issues for feature requests on gitlab1 too.
-- thanks, Abhilash Raj (maxking)