Files

73 lines
2.6 KiB
YAML

services:
mail:
image: mailserver/docker-mailserver:latest
env_file: /var/data/docker-mailserver/docker-mailserver.env
hostname: mail
restart: unless-stopped
volumes:
- mail_data:/var/mail
- mail_state:/var/mail-state
- mail_logs:/var/log/mail
- mail_config:/tmp/docker-mailserver
- /var/data/docker-mailserver/ssl:/tmp/docker-mailserver/ssl:ro
networks:
- internal
- traefik-public
deploy:
placement:
constraints:
- node.role == manager
labels:
- traefik.enable=true
- traefik.swarm.network=traefik-public
- traefik.constraint-label=traefik-public
- traefik.tcp.routers.mail-smtp.entrypoints=smtp
- traefik.tcp.routers.mail-smtp.rule=HostSNI(`*`)
- traefik.tcp.routers.mail-smtp.service=mail-smtp-svc
- traefik.tcp.services.mail-smtp-svc.loadbalancer.server.port=25
- traefik.tcp.routers.mail-submission.entrypoints=submission
- traefik.tcp.routers.mail-submission.rule=HostSNI(`*`)
- traefik.tcp.routers.mail-submission.service=mail-submission-svc
- traefik.tcp.services.mail-submission-svc.loadbalancer.server.port=587
- traefik.tcp.routers.mail-imaps.entrypoints=imaps
- traefik.tcp.routers.mail-imaps.rule=HostSNI(`*`)
- traefik.tcp.routers.mail-imaps.tls.passthrough=true
- traefik.tcp.routers.mail-imaps.service=mail-imaps-svc
- traefik.tcp.services.mail-imaps-svc.loadbalancer.server.port=993
- traefik.tcp.routers.mail-pop3s.entrypoints=pop3s
- traefik.tcp.routers.mail-pop3s.rule=HostSNI(`*`)
- traefik.tcp.routers.mail-pop3s.tls.passthrough=true
- traefik.tcp.routers.mail-pop3s.service=mail-pop3s-svc
- traefik.tcp.services.mail-pop3s-svc.loadbalancer.server.port=995
# rainloop:
# image: nerzhul/rainloop-arm64
# volumes:
# - /var/data/docker-mailserver/rainloop:/rainloop/data
# networks:
# - internal
# - traefik-public
# deploy:
# labels:
# - traefik.enable=true
# - traefik.swarm.network=traefik-public
# - traefik.constraint-label=traefik-public
# - traefik.http.routers.rainloop.entrypoints=https
# - traefik.http.routers.rainloop.rule=Host(`webmail.${DOMAIN}`)
# - traefik.http.routers.rainloop.tls.certresolver=le
# - traefik.http.services.rainloop.loadbalancer.server.port=8888
networks:
traefik-public:
external: true
internal:
driver: overlay
ipam:
config:
- subnet: 172.16.2.0/24
volumes:
mail_data: {}
mail_state: {}
mail_logs: {}
mail_config: {}