Files
cloudy/swarm/mailserver.yml
T

69 lines
2.0 KiB
YAML

services:
mail:
image: mailserver/docker-mailserver:latest
env_file: /var/data/docker-mailserver/docker-mailserver.env
volumes:
# - /var/data/docker-mailserver/maildata:/var/mail
# - /var/data/docker-mailserver/mailstate:/var/mail-state
# - /var/data/docker-mailserver/config:/tmp/docker-mailserver
- /var/data/config/acme.json:/etc/letsencrypt/acme.json:ro
ports:
- target: 25
published: 25
protocol: tcp
mode: host
- target: 587
published: 587
protocol: tcp
mode: host
- target: 993
published: 993
protocol: tcp
mode: host
- target: 995
published: 995
protocol: tcp
mode: host
networks:
- internal
whoami:
image: docker.io/traefik/whoami:latest
networks:
- internal
- traefik-public
deploy:
labels:
- traefik.enable=true
- traefik.docker.network=traefik-public
- traefik.constraint-label=traefik-public
- traefik.http.routers.mailwhoami.entrypoints=https
- traefik.http.routers.mailwhoami.rule=Host(`mail.${DOMAIN}`)
- traefik.http.routers.mailwhoami.tls.certresolver=le
- traefik.http.services.mailwhoami.loadbalancer.server.port=80
# rainloop:
# image: nerzhul/rainloop-arm64
# volumes:
# - /var/data/docker-mailserver/rainloop:/rainloop/data
# networks:
# - internal
# - traefik-public
# deploy:
# labels:
# - traefik.enable=true
# - traefik.docker.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