A mailing list management system
|
||
---|---|---|
.drone.yml | ||
.env.sample | ||
abra.sh | ||
compose.yml | ||
entrypoint.core.sh.tmpl | ||
entrypoint.web.sh.tmpl | ||
LICENSE | ||
mailman-extra.cfg.tmpl | ||
nginx.conf.tmpl | ||
README.md | ||
renovate.json | ||
settings_local.py.tmpl |
mailman3
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 theRELAYNETS
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
andSMTP_NETWORK
in the .env.sample andMAILMAN_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
- Set up Docker Swarm,
abra
, andcoop-cloud/mailu
- Deploy
coop-cloud/traefik
abra app new mailman3 --secrets
(optionally with--pass
if you'd like to save secrets inpass
)abra app config YOURAPPDOMAIN
- be sure to change$DOMAIN
to something that resolves to your Docker swarm boxabra app deploy YOURAPPDOMAIN
- Open the configured domain in your browser to finish set-up
Creating users / superusers and running manage.py in general for posterous.
- Go to the
web
containerabra app run lists.example.com web bash
- 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}"
- Then
manage.py
should work. For example, create a superuser withpython3 manage.py createsuperuser
.