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-corecontainer IP range configured in theRELAYNETSenvironment 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_HOSTandSMTP_NETWORKin the .env.sample andMAILMAN_CORE_NETWORKin the Mailu config) - a shared volume between your Mailman3 and Mailu stack which exposes the Mailman generated aliases to Mailu (see
MAILMAN_CORE_VOLUMEin the mailu config)
Basic usage
- Set up Docker Swarm,
abra, andcoop-cloud/mailu - Deploy
coop-cloud/traefik abra app new mailman3 --secrets(optionally with--passif you'd like to save secrets inpass)abra app config YOURAPPDOMAIN- be sure to change$DOMAINto 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
webcontainerabra app run lists.example.com web bash - Set up the enivronment for the
manage.pyto 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.pyshould work. For example, create a superuser withpython3 manage.py createsuperuser.
Languages
Shell
100%