stacks/mailserver/compose.yaml
2025-07-01 17:30:05 +08:00

42 lines
1.4 KiB
YAML

name: mailserver
services:
mailserver:
image: ghcr.io/docker-mailserver/docker-mailserver:latest
container_name: mailserver
volumes:
- mailserver_data:/var/mail/
- mailserver_state:/var/mail-state/
- mailserver_logs:/var/log/mail/
- mailserver_config:/tmp/docker-mailserver/
- /etc/localtime:/etc/localtime:ro
- caddy_data:/srv/tls
environment:
SSL_TYPE: manual
SSL_CERT_PATH: /srv/tls/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.ferngarden.net/wildcard_.ferngarden.net.crt
SSL_KEY_PATH: /srv/tls/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.ferngarden.net/wildcard_.ferngarden.net.key
env_file: mailserver.env
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)
restart: always
healthcheck:
test: "ss --listening --ipv4 --tcp | grep --silent ':smtp' || exit 1"
timeout: 3s
retries: 0
hostname: mail.ferngarden.net
stop_grace_period: 1m
volumes:
mailserver_data:
name: mailserver_data
mailserver_state:
name: mailserver_state
mailserver_logs:
name: mailserver_logs
mailserver_config:
name: mailserver_config
caddy_data:
external: true