Merge pull request #397 from danil-smirnov/gunicorn-configurable

Allow configuring Gunicorn configuration for Mailman Core easily using
a special gunicorn-extra.cfg config file.
This commit is contained in:
Abhilash Raj
2020-08-25 19:54:43 -07:00
committed by GitHub
2 changed files with 23 additions and 0 deletions

View File

@@ -61,6 +61,18 @@ standard version of docker-compose.yaml from this repository.
- `HYPERKITTY_URL`: Default value is `http://mailman-web:8000/hyperkitty`
In case of a need for fine tuning of REST API web-server that uses [Gunicorn](https://docs.gunicorn.org/en/stable/settings.html) (e.g. for raising of timeouts) `/opt/mailman/core/gunicorn-extra.cfg` file could be provided holding necessary configuration options.
Configuration file, [shipped with Mailman Core](https://gitlab.com/mailman/mailman/-/blob/master/src/mailman/config/gunicorn.cfg), is used by default.
For example, to increase the default 30 sec timeout, which won't work for some API calls to highly populated lists, provide the following `gunicorn-extra.cfg` file:
```
[gunicorn]
graceful_timeout = 30
timeout = 300
```
Running Mailman-Core
====================
@@ -103,6 +115,7 @@ hostname: $MM_HOSTNAME
port: $MAILMAN_REST_PORT
admin_user: $MAILMAN_REST_USER
admin_pass: $MAILMAN_REST_PASSWORD
configuration: /etc/gunicorn.cfg
[archiver.hyperkitty]
class: mailman_hyperkitty.Archiver

View File

@@ -123,6 +123,7 @@ hostname: $MM_HOSTNAME
port: $MAILMAN_REST_PORT
admin_user: $MAILMAN_REST_USER
admin_pass: $MAILMAN_REST_PASSWORD
configuration: /etc/gunicorn.cfg
[archiver.hyperkitty]
class: mailman_hyperkitty.Archiver
@@ -131,6 +132,10 @@ configuration: /etc/mailman-hyperkitty.cfg
EOF
# Generate a basic gunicorn.cfg.
SITE_DIR=$(python3 -c 'import site; print(site.getsitepackages()[0])')
cp "${SITE_DIR}/mailman/config/gunicorn.cfg" /etc/gunicorn.cfg
# Generate a basic configuration to use exim
cat > /tmp/exim-mailman.cfg <<EOF
[mta]
@@ -186,6 +191,11 @@ then
cat /opt/mailman/mailman-extra.cfg >> /etc/mailman.cfg
fi
if [[ -e /opt/mailman/gunicorn-extra.cfg ]]
then
echo "Found [webserver] configuration file at /opt/mailman/gunicorn-extra.cfg"
cat /opt/mailman/gunicorn-extra.cfg > /etc/gunicorn.cfg
fi
if [[ ! -v HYPERKITTY_API_KEY ]]; then
echo "HYPERKITTY_API_KEY not defined, please set this environment variable..."