https://github.com/lakostis/altlinux-mailman-docker
https://github.com/lakostis/altlinux-mailman-docker
altlinux docker fcgiwrap mailman mailman-virtualdomains nginx postfix
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/lakostis/altlinux-mailman-docker
- Owner: LAKostis
- Created: 2019-03-28T21:54:35.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2019-03-30T00:34:52.000Z (about 7 years ago)
- Last Synced: 2025-06-26T07:04:10.423Z (12 months ago)
- Topics: altlinux, docker, fcgiwrap, mailman, mailman-virtualdomains, nginx, postfix
- Language: Shell
- Size: 17.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# altlinux-docker-mailman
Simple Mailman 2.x [docker](http://www.docker.com) image with SMTP authentication and multiple domain support.
It also includes rsyslog to enable logging.
I took some ideas and code from [docker-postfix](https://github.com/juanluisbaptiste/docker-postfix) image.
### Build instructions
Clone this repo and then:
cd altlinux-docker-mailman
sudo docker build -t alt-mailman .
### How to run it
The following env variables need to be passed to the container:
* `CUSTOM_POSTFIX` (Optional, Default value: unset) Use provided postfix configuration and skip all configuration steps
* `SMTP_SERVER` Server address of the SMTP server to use (relay).
* `SERVER_HOSTNAME` Server hostname for the Postfix container. Emails will appear to come from the hostname's domain.
* `ADMIN_EMAIL` Email address of the person who should get root's mail.
The following env variable(s) are optional.
* `SMTP_HEADER_TAG` This will add a header for tracking messages upstream. Helpful for spam filters. Will appear as "RelayTag: ${SMTP_HEADER_TAG}" in the email headers.
* `SMTP_NETWORKS` Setting this will allow you to add additional, comma seperated, subnets to use the relay. Used like
-e SMTP_NETWORKS='xxx.xxx.xxx.xxx/xx,xxx.xxx.xxx.xxx/xx'
* `SMTP_PORT` (Optional, Default value: 25) Port address of the SMTP server to use.
* `SASL_ENABLED` (Optional, Default is unset) Use SASL authentication on relay.
* `SMTP_USERNAME` SASL Username to authenticate with.
* `SMTP_PASSWORD` SASL Password of the SMTP user.
Mailman specific vars, all optional (see defaults):
* `CUSTOM_MAILMAN` (Optional, Default value: unset) Use provided mailman configuration and skip all configuration steps
* `MAILMAN_LANG` (Optional, Default value:ru) Default mailman language
* `MAILMAN_URL_HOST` (Optional, Default value: $SERVER_HOSTNAME) Mailman URL FQDN, specified if mailman exposed outside with another name.
* `MAILMAN_EMAIL_HOST` (Optional, Default value: $MAILMAN_URL_HOST) Mailman email FQDN, used in messaging
* `MAILMAN_URL_PATTERN` (Optional, Default value: https://%s/mailman/) Mailman URL pattern used in messaging
* `MAILMAN_DOMAINS` (Optional, Default value: $MAILMAN_URL_HOST) FQDN list to serve
* `SITE_PASSWORD` (Optional, Default value: randomly generated) Mailman site (aka root) password
* `LIST_PASSWORD` (Optional, Default value: randomly generated) Mailman list creation password
* `ML_PASSWORD` (Optional, Default value: randomly generated) 'mailman' list password
`MAILMAN_DOMAINS` can be specified as a simple list:
..
Or as key:value list with custom email hosts:
: ...:
As you see, `` doesn't have email custom url, so it will be used as email url.
To use this container from anywhere, the 25 port or the one specified by `SMTP_PORT` needs to be exposed to the docker host server:
docker run -d --name alt-mailman -p "25:25" \
-e SMTP_SERVER=smtp.bar.com \
-e SMTP_USERNAME=foo@bar.com \
-e SMTP_PASSWORD=XXXXXXXX \
-e SERVER_HOSTNAME=lists.example.com \
alt-mailman
If you are going to use this container from other docker containers then it's better to just publish the port:
docker run -d --name alt-mailman -P \
-e SMTP_SERVER=smtp.bar.com \
-e SMTP_USERNAME=foo@bar.com \
-e SMTP_PASSWORD=XXXXXXXX \
-e SERVER_HOSTNAME=internal.example.com \
-e MAILMAN_DOMAINS='lists.example.com lists.example2.org:example3.net'
alt-mailman
To see the system logs in real time:
docker logs -f alt-mailman (initial configuration)
docker exec -ti alt-mailman supervisorctl tail -f rsyslog (system logs)
To see mailman logs in real time:
docker exec -ti alt-mailman tail -f /var/log/mailman/error /var/log/mailman/qrunner
### Debugging
If you need troubleshooting the container you can set the environment variable _DEBUG=yes_ for a more verbose output.