Skip to main content

Create docker-compose.yml

 Create docker-compose.yml and post bellow text (make sure you removed quote from begging)

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

services:

  # External dependencies
  redis:
    image: redis:alpine
    restart: always
    volumes:
      - "/opt/mailu/redis:/data"
    depends_on:
      - resolver
    dns:
      - 192.168.203.254

  # Core services
  front:
    image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-master}
    restart: always
    env_file: mailu.env
    logging:
      driver: journald
      options:
        tag: mailu-front
    ports:
      - "127.0.0.1:9080:80"
      - "127.0.0.1:9443:443"
      - "0.0.0.0:25:25"
      - "0.0.0.0:465:465"
      - "127.0.0.1:587:587"
      - "127.0.0.1:110:110"
      - "127.0.0.1:995:995"
      - "127.0.0.1:143:143"
      - "0.0.0.0:993:993"
      - "127.0.0.1:4190:4190"
    networks:
      - default
      - webmail
      - radicale
    volumes:
      - "/opt/mailu/certs:/certs"
      - "/opt/mailu/overrides/nginx:/overrides:ro"
    depends_on:
      - resolver
    dns:
      - 192.168.203.254
    environment:
      VIRTUAL_HOST: mail.hrdtechnology.com
      LETSENCRYPT_HOST: mail.hrdtechnology.com

  resolver:
    image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}unbound:${MAILU_VERSION:-master}
    env_file: mailu.env
    logging:
      driver: journald
      options:
        tag: mailu-resolver
    restart: always
    networks:
      default:
        ipv4_address: 192.168.203.254

  admin:
    image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}admin:${MAILU_VERSION:-master}
    restart: always
    env_file: mailu.env
    logging:
      driver: journald
      options:
        tag: mailu-admin
    volumes:
      - "/opt/mailu/data:/data"
      - "/opt/mailu/dkim:/dkim"
    depends_on:
      - redis
      - resolver
    dns:
      - 192.168.203.254

  imap:
    image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}dovecot:${MAILU_VERSION:-master}
    restart: always
    env_file: mailu.env
    logging:
      driver: journald
      options:
        tag: mailu-imap
    volumes:
      - "/opt/mailu/mail:/mail"
      - "/opt/mailu/overrides/dovecot:/overrides:ro"
    networks:
      - default
    depends_on:
      - front
      - resolver
    dns:
      - 192.168.203.254

  smtp:
    image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}postfix:${MAILU_VERSION:-master}
    restart: always
    env_file: mailu.env
    logging:
      driver: journald
      options:
        tag: mailu-smtp
    volumes:
      - "/opt/mailu/mailqueue:/queue"
      - "/opt/mailu/overrides/postfix:/overrides:ro"
    depends_on:
      - front
      - resolver
    dns:
      - 192.168.203.254

  oletools:
    image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}oletools:${MAILU_VERSION:-master}
    hostname: oletools
    logging:
      driver: journald
      options:
        tag: mailu-oletools
    restart: always
    networks:
      - oletools
    depends_on:
      - resolver
    dns:
      - 192.168.203.254


  antispam:
    image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}rspamd:${MAILU_VERSION:-master}
    hostname: antispam
    restart: always
    env_file: mailu.env
    logging:
      driver: journald
      options:
        tag: mailu-antispam
    networks:
      - default
      - oletools
    volumes:
      - "/opt/mailu/filter:/var/lib/rspamd"
      - "/opt/mailu/overrides/rspamd:/overrides:ro"
    depends_on:
      - front
      - redis
      - oletools
      - resolver
    dns:
      - 192.168.203.254

  # Optional services

  webdav:
    image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}radicale:${MAILU_VERSION:-master}
    restart: always
    logging:
      driver: journald
      options:
        tag: mailu-webdav
    volumes:
      - "/opt/mailu/dav:/data"
    networks:
      - radicale

  fetchmail:
    image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}fetchmail:${MAILU_VERSION:-master}
    restart: always
    env_file: mailu.env
    logging:
      driver: journald
      options:
        tag: mailu-fetchmail
    volumes:
      - "/opt/mailu/data/fetchmail:/data"
    depends_on:
      - admin
      - smtp
      - imap
      - resolver
    dns:
      - 192.168.203.254

  # Webmail
  webmail:
    image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}webmail:${MAILU_VERSION:-master}
    restart: always
    env_file: mailu.env
    logging:
      driver: journald
      options:
        tag: mailu-webmail
    volumes:
      - "/opt/mailu/webmail:/data"
      - "/opt/mailu/overrides/snappymail:/overrides:ro"
    networks:
      - webmail
    depends_on:
      - front

networks:
  default:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 192.168.203.0/24
  radicale:
    driver: bridge
  webmail:
    driver: bridge
  oletools:
    driver: bridge
    internal: true