Vanilla docker mail server w/o ClamAV
10K+
A fullstack but simple mail server (smtp, imap, antispam, antivirus...). Only configuration files, no SQL database. Keep it simple and versioned. Easy to deploy and upgrade.
Includes:
Why I created this image: Simple mail server with Docker
Before you open an issue, please have a look this README, the Wiki and Postfix/Dovecot documentation.
docker pull tvial/docker-mailserver:latest
docker-compose.ymlAdapt this file with your FQDN.
version: '2'
services:
mail:
image: tvial/docker-mailserver:latest
# build: .
hostname: mail
domainname: domain.com
container_name: mail
ports:
- "25:25"
- "143:143"
- "587:587"
- "993:993"
volumes:
- maildata:/var/mail
- ./config/:/tmp/docker-mailserver/
volumes:
maildata:
driver: local
Don't forget to adapt MAIL_USER and MAIL_PASS to your needs
mkdir -p config
docker run --rm \
-e [email protected] \
-e MAIL_PASS=mypassword \
-ti tvial/docker-mailserver:latest \
/bin/sh -c 'echo "$MAIL_USER|$(doveadm pw -s SHA512-CRYPT -u $MAIL_USER -p $MAIL_PASS)"' >> config/postfix-accounts.cf
docker run --rm \
-v "$(pwd)/config":/tmp/docker-mailserver \
-ti tvial/docker-mailserver:latest generate-dkim-config
Now the keys are generated, you can configure your DNS server by just pasting the content of config/opedkim/keys/domain.tld/mail.txt in your domain.tld.hosts zone.
docker-compose up -d mail
You're done!
Please check how the container starts to understand what's expected.
Value in bold is the default value.
If you enable Fail2Ban, don't forget to add the following lines to your docker-compose.yml:
cap_add:
- NET_ADMIN
Otherwise, iptables won't be able to ban IPs.
/etc/postfix/sasl_passwd will be created with the string as passwordPlease read the SSL page in the wiki for more information.
Content type
Image
Digest
Size
203.3 MB
Last updated
about 10 years ago
docker pull flanfly/docker-mailserver