63 lines
2.1 KiB
YAML
63 lines
2.1 KiB
YAML
services:
|
|
mailserver:
|
|
image: ghcr.io/docker-mailserver/docker-mailserver:latest
|
|
container_name: mailserver
|
|
# Provide the FQDN of your mail server here (Your DNS MX record should point to this value)
|
|
hostname: mail.domain.tld
|
|
env_file: mailserver.env
|
|
# More information about the mail-server ports:
|
|
# https://docker-mailserver.github.io/docker-mailserver/latest/config/security/understanding-the-ports/
|
|
ports:
|
|
- "25:25" # SMTP (explicit TLS => STARTTLS, Authentication is DISABLED => use port 465/587 instead)
|
|
- "143:143" # IMAP4 (explicit TLS => STARTTLS)
|
|
- "465:465" # ESMTP (implicit TLS)
|
|
- "587:587" # ESMTP (explicit TLS => STARTTLS)
|
|
- "993:993" # IMAP4 (implicit TLS)
|
|
volumes:
|
|
- ./docker-data/dms/mail-data/:/var/mail/
|
|
- ./docker-data/dms/mail-state/:/var/mail-state/
|
|
- ./docker-data/dms/mail-logs/:/var/log/mail/
|
|
- ./docker-data/dms/config/:/tmp/docker-mailserver/
|
|
- /etc/localtime:/etc/localtime:ro
|
|
restart: always
|
|
stop_grace_period: 1m
|
|
# Uncomment if using `ENABLE_FAIL2BAN=1`:
|
|
# cap_add:
|
|
# - NET_ADMIN
|
|
healthcheck:
|
|
test: "ss --listening --tcp | grep -P 'LISTEN.+:smtp' || exit 1"
|
|
timeout: 3s
|
|
retries: 0
|
|
docker:
|
|
image: docker:latest
|
|
container_name: setup-email
|
|
environment:
|
|
- DOMAIN="domain.tld"
|
|
volumes:
|
|
- ./docker-data/dms/mail-data/:/var/mail/
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- ./docker-data/dms/config/:/tmp/docker-mailserver/
|
|
depends_on:
|
|
mailserver:
|
|
condition: service_started
|
|
tty: true
|
|
entrypoint: >
|
|
/bin/sh -c "
|
|
sleep 5;
|
|
docker exec -ti mailserver setup email add user@domain.tld pass123;
|
|
echo '@domain.tld user@domain.tld' > /tmp/docker-mailserver/config/postfix-virtual.cf
|
|
exit 0
|
|
"
|
|
watcher:
|
|
build:
|
|
context: ../../../../
|
|
dockerfile: ./packages/local-mail-watcher/Dockerfile-watcher
|
|
container_name: "omnivore-mail-watch"
|
|
volumes:
|
|
- ./docker-data/dms/mail-data/:/var/mail/
|
|
env_file:
|
|
- .env.mail
|
|
depends_on:
|
|
docker:
|
|
condition: service_completed_successfully
|