A mailing list management system
Go to file
3wc 8157cd16c9 Revert "Stage 1 to support multiple domains"
This reverts commit 5e941cb055.
2024-05-29 14:04:34 -05:00
.drone.yml Remove trigger, we make the tags [ci skip] 2021-06-04 00:14:49 +02:00
.env.sample Revert "Stage 1 to support multiple domains" 2024-05-29 14:04:34 -05:00
LICENSE Add placeholder 2020-10-07 10:43:34 +02:00
README.md Update .env.sample to fix autoreplace issues and comment issues. Add note about how to add users to README.md 2023-09-20 11:45:25 -07:00
abra.sh Fix export of DATABASE_URL 2024-04-10 14:55:32 -07:00
compose.yml Revert "Stage 1 to support multiple domains" 2024-05-29 14:04:34 -05:00
entrypoint.core.sh.tmpl Add devmode configuration support. 2024-03-05 14:31:14 -08:00
entrypoint.web.sh.tmpl Add missing env var 2021-05-14 16:57:09 +02:00
mailman-extra.cfg.tmpl Use the right env vars 2021-05-14 15:47:36 +02:00
nginx.conf.tmpl Use new service name 2021-05-16 15:02:25 +02:00
renovate.json Add renovate.json 2021-06-04 07:02:39 +00:00
settings_local.py.tmpl Allow to disable signup 2021-05-23 13:00:28 +02:00




A mailing list management system.

  • Category: Apps
  • Status: 1, alpha
  • Image: maxking/mailman-*
  • Healthcheck:
  • Backups:
  • Email:
  • Tests:
  • SSO:

Mailu integration

This configuration is intended to be used with a Mailu instance which is setup on the same VPS. A shared volume (Mailman core generated aliases for mail delivery) and a shared network (Mailu and Mailman can then see each other) are used to ensure that the postfix service in the Mailu stack can handle incoming and outgoing mail for Mailman.

This configuration assumes the following:

  • a working Mailu instance (e.g. mail.example.com)
  • a MX and SPF domain record for your mailing list domain (e.g. lists.example.com) ponting to your Mailu instance for incoming mail (e.g. mail.example.com)
  • the mailman-core container IP range configured in the RELAYNETS environment variable on the Mailu side for outgoing mail relaying (ensure you do not an open relay using a tool like mxtoolbox)
  • overlay networks configured for both the Mailu and Mailman3 stacks (see SMTP_HOST and SMTP_NETWORK in the .env.sample and MAILMAN_CORE_NETWORK in the Mailu config)
  • a shared volume between your Mailman3 and Mailu stack which exposes the Mailman generated aliases to Mailu (see MAILMAN_CORE_VOLUME in the mailu config)

Basic usage

  1. Set up Docker Swarm, abra, and coop-cloud/mailu
  2. Deploy coop-cloud/traefik
  3. abra app new mailman3 --secrets (optionally with --pass if you'd like to save secrets in pass)
  4. abra app config YOURAPPDOMAIN - be sure to change $DOMAIN to something that resolves to your Docker swarm box
  5. abra app deploy YOURAPPDOMAIN
  6. Open the configured domain in your browser to finish set-up

Creating users / superusers and running manage.py in general for posterous.

  1. Go to the web container abra app run lists.example.com web bash
  2. Set up the enivronment for the manage.py to work: a. export SECRET_KEY=$(cat /run/secrets/django_secret_key) b. export DATABASE_PASSWORD=$(cat /run/secrets/db_password) c. export DATABASE_URL="postgres://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}/${DATABASE_NAME}"
  3. Then manage.py should work. For example, create a superuser with python3 manage.py createsuperuser.