57 lines
2.8 KiB
Markdown
57 lines
2.8 KiB
Markdown
# mailman3
|
|
|
|
> https://docs.mailman3.org
|
|
|
|
A mailing list management system.
|
|
|
|
<!-- metadata -->
|
|
|
|
* **Category**: Apps
|
|
* **Status**: 1, alpha
|
|
* **Image**: [`maxking/mailman-*`](https://github.com/maxking/docker-mailman)
|
|
* **Healthcheck**:
|
|
* **Backups**:
|
|
* **Email**:
|
|
* **Tests**:
|
|
* **SSO**:
|
|
|
|
<!-- endmetadata -->
|
|
|
|
## Mailu integration
|
|
|
|
This configuration is intended to be used with a [Mailu](https://git.autonomic.zone/coop-cloud/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](https://mxtoolbox.com))
|
|
- overlay networks configured for both the Mailu and Mailman3 stacks (see `SMTP_HOST` and `SMTP_NETWORK` in the [.env.sample](./.env.sample) and `MAILMAN_CORE_NETWORK` [in the Mailu config](https://git.autonomic.zone/coop-cloud/mailu/src/branch/main/.env.sample))
|
|
- 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](https://git.autonomic.zone/coop-cloud/mailu/src/branch/main/.env.sample))
|
|
|
|
## 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`.
|
|
|
|
|
|
[`abra`]: https://git.autonomic.zone/autonomic-cooperative/abra
|
|
[`coop-cloud/traefik`]: https://git.autonomic.zone/coop-cloud/traefik
|
|
[`coop-cloud/mailu`]: https://git.autonomic.zone/coop-cloud/mailu
|