Files
stalwart/compose.bulwark.yml

62 lines
2.0 KiB
YAML

---
services:
app:
deploy:
labels:
- "traefik.http.routers.${STACK_NAME}-mail-root.rule=Host(`${DOMAIN}`) && Path(`/`)"
- "traefik.http.routers.${STACK_NAME}-mail-root.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}-mail-root.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.${STACK_NAME}-mail-root.middlewares=${STACK_NAME}-to-webmail"
- "traefik.http.routers.${STACK_NAME}-mail-root.priority=1000"
- "traefik.http.middlewares.${STACK_NAME}-to-webmail.redirectregex.regex=.*"
- "traefik.http.middlewares.${STACK_NAME}-to-webmail.redirectregex.replacement=https://${WEBMAIL_DOMAIN}/"
- "traefik.http.middlewares.${STACK_NAME}-to-webmail.redirectregex.permanent=true"
bulwark:
image: ghcr.io/bulwarkmail/webmail:1.8.1
networks:
- proxy
volumes:
- bulwark-admin:/app/data/admin
- bulwark-admin-state:/app/data/admin-state
- bulwark-settings:/app/data/settings
environment:
- SESSION_SECRET_FILE=/run/secrets/session_sec
- JMAP_SERVER_URL=https://${DOMAIN}
- SETTINGS_SYNC_ENABLED=true
secrets:
- session_sec
healthcheck:
test:
[
"CMD",
"wget",
"--no-verbose",
"--tries=1",
"--spider",
"http://127.0.0.1:3000/api/health",
]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
deploy:
restart_policy:
condition: on-failure
labels:
- "traefik.enable=true"
- "traefik.http.routers.${STACK_NAME}-webmail.rule=Host(`${WEBMAIL_DOMAIN}`)"
- "traefik.http.routers.${STACK_NAME}-webmail.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}-webmail.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.services.${STACK_NAME}-webmail.loadbalancer.server.port=3000"
secrets:
session_sec:
external: true
name: ${STACK_NAME}_session_sec_${SECRET_SESSION_SEC_VERSION}
volumes:
bulwark-admin:
bulwark-admin-state:
bulwark-settings: