REST server
Mailman is controllable through an administrative REST HTTP server.
>>> from mailman.testing import helpers
>>> master = helpers.TestableMaster(helpers.wait_for_webservice)
>>> master.start('rest')
The RESTful server can be used to access basic version information.
>>> from mailman.testing.documentation import dump_json
>>> dump_json('http://localhost:9001/3.1/system')
api_version: 3.1
http_etag: "..."
mailman_version: GNU Mailman 3...
python_version: ...
self_link: http://localhost:9001/3.1/system/versions
Previous versions of the REST API can also be accessed.
>>> dump_json('http://localhost:9001/3.0/system')
api_version: 3.0
http_etag: "..."
mailman_version: GNU Mailman 3...
python_version: ...
self_link: http://localhost:9001/3.0/system/versions
Configuration
Mailman uses Gunicorn as WSGI server. Some parts of it can be configured
by setting up options in [webservice]
in configuration:
# mailman.cfg
[webservice]
workers: 4
This will start up 4 workers instead of the default 2, if you need to scale the REST API.
Additional Gunicorn configuration can be added by creating a configuration file
# mailman.cfg
[webservice]
configuration: /etc/mailman3/gunicorn.cfg
# /etc/mailman3/gunicorn.cfg
[gunicorn]
keyfile:
certfile:
Clean up
>>> master.stop()