# This file is auto-generated by the Mailu configuration wizard.
# Please read the documentation before attempting any change.
# Generated for compose flavor

version: '2.2'

services:

  # External dependencies
  redis:
    image: redis:alpine
    restart: always
    volumes:
      - "/home/chris/mailu/storage/redis:/data"
    
  # Core services
  front:
    image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-1.8}
    restart: always
    env_file: mailu.env
    logging:
      driver: json-file
    ports:
      - "192.168.1.2:80:80"
      - "::1:80:80"
      - "192.168.1.2:443:443"
      - "::1:443:443"
      - "192.168.1.2:25:25"
      - "::1:25:25"
      - "192.168.1.2:465:465"
      - "::1:465:465"
      - "192.168.1.2:587:587"
      - "::1:587:587"
      - "192.168.1.2:110:110"
      - "::1:110:110"
      - "192.168.1.2:995:995"
      - "::1:995:995"
      - "192.168.1.2:143:143"
      - "::1:143:143"
      - "192.168.1.2:993:993"
      - "::1:993:993"
    volumes:
      - "/home/chris/mailu/storage/certs:/certs"
      - "/home/chris/mailu/storage/overrides/nginx:/overrides:ro"

  resolver:
    image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}unbound:${MAILU_VERSION:-1.8}
    env_file: mailu.env
    restart: always
    networks:
      default:
        ipv4_address: 192.168.203.254

  admin:
    image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}admin:${MAILU_VERSION:-1.8}
    restart: always
    env_file: mailu.env
    volumes:
      - "/home/chris/mailu/storage/data:/data"
      - "/home/chris/mailu/storage/dkim:/dkim"
    depends_on:
      - redis

  imap:
    image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}dovecot:${MAILU_VERSION:-1.8}
    restart: always
    env_file: mailu.env
    volumes:
      - "/home/chris/mailu/storage/mail:/mail"
      - "/home/chris/mailu/storage/overrides/dovecot:/overrides:ro"
    depends_on:
      - front

  smtp:
    image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}postfix:${MAILU_VERSION:-1.8}
    restart: always
    env_file: mailu.env
    volumes:
      - "/home/chris/mailu/storage/mailqueue:/queue"
      - "/home/chris/mailu/storage/overrides/postfix:/overrides:ro"
    depends_on:
      - front
      - resolver
    dns:
      - 192.168.203.254

  antispam:
    image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}rspamd:${MAILU_VERSION:-1.8}
    hostname: antispam
    restart: always
    env_file: mailu.env
    volumes:
      - "/home/chris/mailu/storage/filter:/var/lib/rspamd"
      - "/home/chris/mailu/storage/dkim:/dkim:ro"
      - "/home/chris/mailu/storage/overrides/rspamd:/etc/rspamd/override.d:ro"
    depends_on:
      - front
      - resolver
    dns:
      - 192.168.203.254

  # Optional services
  antivirus:
    image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}clamav:${MAILU_VERSION:-1.8}
    restart: always
    env_file: mailu.env
    volumes:
      - "/home/chris/mailu/storage/filter:/data"
    depends_on:
      - resolver
    dns:
      - 192.168.203.254


  fetchmail:
    image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}fetchmail:${MAILU_VERSION:-1.8}
    restart: always
    env_file: mailu.env
    depends_on:
      - resolver
    dns:
      - 192.168.203.254

  # Webmail
  webmail:
    image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}roundcube:${MAILU_VERSION:-1.8}
    restart: always
    env_file: mailu.env
    volumes:
      - "/home/chris/mailu/storage/webmail:/data"
    depends_on:
      - imap


networks:
  default:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 192.168.203.0/24