Files
omnivore/self-hosting/docker-compose/mail/mail-server/docker-compose-mail.yml
Tom Rogers 9ebcfd840b [feat] Add an imap watcher for emails. (#4536)
[feat] Add an imap watcher for emails.
2025-02-09 18:30:15 +01:00

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