Add docker-compose.yml

Signed-off-by: karmacoma <karmacoma@karmacoma.dev>
This commit is contained in:
KARMACOMA 2025-11-03 02:47:50 +00:00
parent eca98cd1b9
commit d752a9e8b0

66
docker-compose.yml Normal file
View file

@ -0,0 +1,66 @@
services:
mail_stalwart:
image: 'stalwartlabs/mail-server:latest'
networks:
- coolify
ports:
- '25:25'
- '587:587'
- '465:465'
- '143:143'
- '993:993'
- '4190:4190'
- '110:110'
- '995:995'
volumes:
- '/var/lib/stalwart-mail:/opt/stalwart-mail'
- /etc/localtime:/etc/localtime:ro
- /data/coolify/certs:/data/certs:ro
labels:
- traefik.enable=true
- traefik.http.routers.mailserver.rule=Host(`mail.karmacoma.dev`) || Host(`autodiscover.mail.karmacoma.dev`) || Host(`autoconfig.mail.karmacoma.dev`) || Host(`mta-sts.mail.karmacoma.dev`) || Host(`mx.mail.karmacoma.dev`) || Host(`smtp.mail.karmacoma.dev`) || Host(`pop.mail.karmacoma.dev`) || Host(`imap.mail.karmacoma.dev`)
- traefik.http.routers.mailserver.entrypoints=http
- traefik.http.routers.mailserver.service=mailserver
- traefik.http.services.mailserver.loadbalancer.server.port=80
- traefik.http.routers.mailserver.tls.certresolver=letsencrypt
- traefik.http.routers.mailserver.tls=true
- traefik.http.routers.mailserver.tls.domains[0].main=mx.mail.karmacoma.dev
- traefik.http.routers.mailserver.tls.domains[0].sans=autodiscover.mail.karmacoma.dev,autoconfig.mail.karmacoma.dev,mta-sts.mail.karmacoma.dev,mail.karmacoma.dev,smtp.mail.karmacoma.dev,pop.mail.karmacoma.dev,imap.mail.karmacoma.dev
- traefik.tcp.routers.smtp.rule=HostSNI(`*`)
- traefik.tcp.routers.smtp.entrypoints=smtp
- traefik.tcp.routers.smtp.service=smtp
- traefik.tcp.services.smtp.loadbalancer.server.port=25
- traefik.tcp.services.smtp.loadbalancer.proxyProtocol.version=2
- traefik.tcp.routers.jmap.rule=HostSNI(`*`)
- traefik.tcp.routers.jmap.tls.passthrough=true
- traefik.tcp.routers.jmap.entrypoints=https
- traefik.tcp.routers.jmap.service=jmap
- traefik.tcp.services.jmap.loadbalancer.server.port=443
- traefik.tcp.services.jmap.loadbalancer.proxyProtocol.version=2
- traefik.tcp.routers.smtps.rule=HostSNI(`*`)
- traefik.tcp.routers.smtps.tls.passthrough=true
- traefik.tcp.routers.smtps.entrypoints=smtps
- traefik.tcp.routers.smtps.service=smtps
- traefik.tcp.services.smtps.loadbalancer.server.port=465
- traefik.tcp.services.smtps.loadbalancer.proxyProtocol.version=2
- traefik.tcp.routers.imaps.rule=HostSNI(`*`)
- traefik.tcp.routers.imaps.tls.passthrough=true
- traefik.tcp.routers.imaps.entrypoints=imaps
- traefik.tcp.routers.imaps.service=imaps
- traefik.tcp.services.imaps.loadbalancer.server.port=993
- traefik.tcp.services.imaps.loadbalancer.proxyProtocol.version=2
tty: true
stdin_open: true
restart: always
volumes:
data:
networks:
coolify:
external: true