73 lines
2.6 KiB
YAML
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: {} |