summaryrefslogtreecommitdiff
path: root/src/mailman/rest
diff options
context:
space:
mode:
authorBarry Warsaw2015-07-10 14:11:25 -0400
committerBarry Warsaw2017-02-10 11:58:53 -0500
commit2a4cade68d4d77c6107e090a39fad4a3011ee81d (patch)
tree66460fdba7b0edce965404b8722fd0048aafce7a /src/mailman/rest
parent03e04a93efa312bfec58dd267959d401e9bcf22b (diff)
downloadmailman-2a4cade68d4d77c6107e090a39fad4a3011ee81d.tar.gz
mailman-2a4cade68d4d77c6107e090a39fad4a3011ee81d.tar.zst
mailman-2a4cade68d4d77c6107e090a39fad4a3011ee81d.zip
Diffstat (limited to 'src/mailman/rest')
-rw-r--r--src/mailman/rest/gunicorn.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/mailman/rest/gunicorn.py b/src/mailman/rest/gunicorn.py
new file mode 100644
index 000000000..e628dcd61
--- /dev/null
+++ b/src/mailman/rest/gunicorn.py
@@ -0,0 +1,50 @@
+# Copyright (C) 2015 by the Free Software Foundation, Inc.
+#
+# This file is part of GNU Mailman.
+#
+# GNU Mailman is free software: you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option)
+# any later version.
+#
+# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# GNU Mailman. If not, see <http://www.gnu.org/licenses/>.
+
+"""Experimental Gunicorn based REST server.
+
+To use this do the following:
+
+* Install gunicorn as a Python 3 application (in a venv if necessary).
+* Create a mailman.cfg with at least the following it it:
+
+ [runner.rest]
+ start: no
+
+* Start Mailman as normal: `mailman start`
+* Set the MAILMAN_CONFIG_FILE environment variable to the location of your
+ mailman.cfg file from above.
+* Run: gunicorn mailman.rest.gunicorn:make_application
+"""
+
+__all__ = [
+ 'make_application',
+ ]
+
+
+
+def make_application():
+ """Create the WSGI application, after initializing the Mailman system.
+
+ Use this if you want to integrate Mailman's REST server with an external
+ WSGI server, such as gunicorn. Be sure to set the $MAILMAN_CONFIG_FILE
+ environment variable.
+ """
+ from mailman.core.initialize import initialize
+ initialize()
+ from mailman.rest.wsgiapp import make_application as base_application
+ return base_application()