Files
thingy/docker-compose.yml
T

85 lines
1.7 KiB
YAML

services:
caddy:
image: caddy:2.11-alpine
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro,z
- caddy-data:/data
- caddy-config:/config
networks:
- services
stalwart:
image: stalwartlabs/stalwart:v0.16-alpine
container_name: stalwart
restart: unless-stopped
ports:
- "25:25"
- "465:465"
- "993:993"
- "4190:4190"
- "127.0.0.1:8080:8080"
environment:
- STALWART_PUBLIC_URL
- OIDC_KEY
- OIDC_SIGNATURE_KEY
volumes:
- stalwart-etc:/etc/stalwart
- stalwart-data:/var/lib/stalwart
networks:
- services
bulwark:
image: ghcr.io/bulwarkmail/webmail:latest
container_name: bulwark
restart: unless-stopped
ports:
- "3000:3000"
environment:
- JMAP_SERVER_URL
- SESSION_SECRET
- SETTINGS_SYNC_ENABLED
- ADMIN_PASSWORD
depends_on:
- stalwart
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
volumes:
- bulwark-settings:/app/data/settings
- bulwark-config:/app/data/admin # rw during setup
# - bulwark-config:/app/data/admin:ro # ro after setup
- bulwark-state:/app/data/admin-state
- bulwark-telemetry:/app/data/telemetry
networks:
- services
volumes:
caddy-data:
caddy-config:
stalwart-etc:
stalwart-data:
bulwark-settings:
bulwark-config:
bulwark-state:
bulwark-telemetry:
networks:
services: