services: redis: image: redis:alpine restart: always volumes: - "/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:-2024.06} restart: always env_file: mailu.env logging: driver: journald options: tag: mailu-front ports: - "80:80" - "443:443" - "25:25" - "465:465" - "587:587" - "110:110" - "995:995" - "143:143" - "993:993" - "4190:4190" networks: - default - webmail volumes: - "/mailu/certs:/certs" - "/mailu/overrides/nginx:/overrides:ro" depends_on: - resolver dns: - 192.168.203.254 resolver: image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}unbound:${MAILU_VERSION:-2024.06} 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:-2024.06} restart: always env_file: mailu.env logging: driver: journald options: tag: mailu-admin volumes: - "/mailu/data:/data" - "/mailu/dkim:/dkim" depends_on: - redis - resolver dns: - 192.168.203.254 imap: image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}dovecot:${MAILU_VERSION:-2024.06} restart: always env_file: mailu.env logging: driver: journald options: tag: mailu-imap volumes: - "/mailu/mail:/mail" - "/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:-2024.06} restart: always env_file: mailu.env logging: driver: journald options: tag: mailu-smtp volumes: - "/mailu/mailqueue:/queue" - "/mailu/overrides/postfix:/overrides:ro" depends_on: - front - resolver dns: - 192.168.203.254 antispam: image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}rspamd:${MAILU_VERSION:-2024.06} hostname: antispam restart: always env_file: mailu.env logging: driver: journald options: tag: mailu-antispam networks: - default volumes: - "/mailu/filter:/var/lib/rspamd" - "/mailu/overrides/rspamd:/overrides:ro" depends_on: - front - redis - resolver dns: - 192.168.203.254 # Optional services # Webmail webmail: image: ${DOCKER_ORG:-ghcr.io/mailu}/${DOCKER_PREFIX:-}webmail:${MAILU_VERSION:-2024.06} restart: always env_file: mailu.env logging: driver: journald options: tag: mailu-webmail volumes: - "/mailu/webmail:/data" - "/mailu/overrides/roundcube:/overrides:ro" networks: - webmail depends_on: - front imapsync: build: dockerfile: imapsync-dockerfile container_name: imapsync restart: always logging: driver: journald options: tag: imapsync networks: - default depends_on: - front networks: default: driver: bridge ipam: driver: default config: - subnet: 192.168.203.0/24 webmail: driver: bridge