version: '2.2'

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.ixvd.net
    env_file: /etc/ixvd/secrets/env/mailserver.env
    # More information about the mail-server ports:
    # https://docker-mailserver.github.io/docker-mailserver/latest/config/security/understanding-the-ports/
    # To avoid conflicts with yaml base-60 float, DO NOT remove the quotation marks.
    environment:
      SSL_TYPE: "manual"
      SSL_CERT_PATH: "/etc/letsencrypt/live/mail.ixvd.net/fullchain.pem"
      SSL_KEY_PATH: "/etc/letsencrypt/live/mail.ixvd.net/privkey.pem"
    ports:
      - "25:25"    # SMTP  (explicit TLS => STARTTLS)
      - "143:143"  # IMAP4 (explicit TLS => STARTTLS)
      - "465:465"  # ESMTP (implicit TLS)
      - "587:587"  # ESMTP (explicit TLS => STARTTLS)
      - "993:993"  # IMAP4 (implicit TLS)
    volumes:
      - /srv/mailserver/data:/var/mail/
      - /srv/mailserver/config:/tmp/docker-mailserver/
      - /srv/mailserver/other/state:/var/mail-state/
      - /srv/mailserver/other/log/:/var/log/mail/
      - /etc/localtime:/etc/localtime:ro
      - /srv/certbot/data:/etc/letsencrypt:ro # Certbot volume
    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