continuwuity/servers/containers/stalwart.container
2024-11-20 17:49:26 +00:00

109 lines
No EOL
4 KiB
Text

[Unit]
Description=Stalwart Mail
Wants=network-online.target
Wants=traefik.service
After=network-online.target
[Container]
ContainerName=stalwart-mail
Image=docker.io/stalwartlabs/mail-server:latest
Entrypoint=["/usr/local/bin/stalwart-mail", "--config", "/etc/stalwart/config.toml"]
Volume=/etc/localtime:/etc/localtime:ro
Volume=traefik-certs.volume:/data/certs:ro
Volume=/var/opt/stalwart-mail:/opt/stalwart-mail:z,U
Volume=/etc/stalwart:/etc/stalwart:ro
AutoUpdate=registry
Network=web.network
# allow many file descriptors for rocksdb
Ulimit=nofile=1048567:1048567
Label="traefik.enable=true"
Label="traefik.http.routers.stalwart-mail.rule=(Host(`mail.ellis.link`) || Host(`autodiscover.ellis.link`) || Host(`autoconfig.ellis.link`) || Host(`mta-sts.ellis.link`))"
Label="traefik.http.services.stalwart-mail.loadbalancer.server.port=8080"
Label="traefik.http.routers.stalwart-mail.service=stalwart-mail"
Label="traefik.http.routers.stalwart-mail.entrypoints=https"
Label="traefik.http.routers.stalwart-mail.middlewares=default@file"
Label="homepage.group=Public"
Label="homepage.name=Stalwart Mail"
Label="homepage.href=https://mail.ellis.link/"
Label="homepage.description=AIO mail server"
Label="homepage.siteMonitor=https://mail.ellis.link"
Label=kuma.__monitor=''
Label="traefik.tcp.routers.smtp.rule=HostSNI(`*`)"
Label="traefik.tcp.routers.smtp.entrypoints=smtp"
Label="traefik.tcp.routers.smtp.service=smtp"
Label="traefik.tcp.services.smtp.loadbalancer.server.port=25"
Label="traefik.tcp.services.smtp.loadbalancer.proxyProtocol.version=2"
Label="traefik.tcp.routers.pop.rule=HostSNI(`*`)"
Label="traefik.tcp.routers.pop.entrypoints=pop"
Label="traefik.tcp.routers.pop.service=pop"
Label="traefik.tcp.services.pop.loadbalancer.server.port=110"
Label="traefik.tcp.services.pop.loadbalancer.proxyProtocol.version=2"
Label="traefik.tcp.routers.managesieve.rule=HostSNI(`*`)"
Label="traefik.tcp.routers.managesieve.tls.passthrough=true"
Label="traefik.tcp.routers.managesieve.entrypoints=managesieve"
Label="traefik.tcp.routers.managesieve.service=managesieve"
Label="traefik.tcp.services.managesieve.loadbalancer.server.port=4190"
Label="traefik.tcp.services.managesieve.loadbalancer.proxyProtocol.version=2"
Label="traefik.tcp.routers.jmap.rule=HostSNI(`*`)"
Label="traefik.tcp.routers.jmap.tls.passthrough=true"
Label="traefik.tcp.routers.jmap.entrypoints=https"
Label="traefik.tcp.routers.jmap.service=jmap"
Label="traefik.tcp.services.jmap.loadbalancer.server.port=443"
Label="traefik.tcp.services.jmap.loadbalancer.proxyProtocol.version=2"
Label="traefik.tcp.routers.smtpstarttls.rule=HostSNI(`*`)"
Label="traefik.tcp.routers.smtpstarttls.entrypoints=smtpstarttls"
Label="traefik.tcp.routers.smtpstarttls.service=smtpstarttls"
Label="traefik.tcp.services.smtpstarttls.loadbalancer.server.port=587"
Label="traefik.tcp.services.smtpstarttls.loadbalancer.proxyProtocol.version=2"
Label="traefik.tcp.routers.smtps.rule=HostSNI(`*`)"
Label="traefik.tcp.routers.smtps.tls.passthrough=true"
Label="traefik.tcp.routers.smtps.entrypoints=smtps"
Label="traefik.tcp.routers.smtps.service=smtps"
Label="traefik.tcp.services.smtps.loadbalancer.server.port=465"
Label="traefik.tcp.services.smtps.loadbalancer.proxyProtocol.version=2"
Label="traefik.tcp.routers.imaps.rule=HostSNI(`*`)"
Label="traefik.tcp.routers.imaps.tls.passthrough=true"
Label="traefik.tcp.routers.imaps.entrypoints=imaps"
Label="traefik.tcp.routers.imaps.service=imaps"
Label="traefik.tcp.services.imaps.loadbalancer.server.port=993"
Label="traefik.tcp.services.imaps.loadbalancer.proxyProtocol.version=2"
Label="traefik.tcp.routers.pops.rule=HostSNI(`*`)"
Label="traefik.tcp.routers.pops.tls.passthrough=true"
Label="traefik.tcp.routers.pops.entrypoints=pops"
Label="traefik.tcp.routers.pops.service=pops"
Label="traefik.tcp.services.pops.loadbalancer.server.port=995"
Label="traefik.tcp.services.pops.loadbalancer.proxyProtocol.version=2"
StopTimeout=100
[Service]
Restart=on-failure
RestartSec=5
TimeoutStopSec=2m
TimeoutStartSec=2m
# StartLimitInterval=1m
StartLimitBurst=5
[Install]
WantedBy=default.target