Files
misc-docker/stalwart/docker-compose.yml
T
2026-05-22 02:22:23 -07:00

84 lines
1.7 KiB
YAML

---
services:
stalwart:
image: stalwartlabs/stalwart:latest
container_name: stalwart
restart: unless-stopped
depends_on:
- postgres
volumes:
- ./stalwart-etc:/etc/stalwart
- stalwart-var:/var/lib/stalwart
ports:
- 25:25
- 465:465
# - 443:443
- 993:993
- 100.70.0.4:8080:8080
networks:
- caddy
- postgres
# environment:
# - STALWART_RECOVERY_MODE=true
# - STALWART_RECOVERY_ADMIN=admin:bruhmoment
postgres:
image: postgres:18-alpine
container_name: postgres
restart: unless-stopped
shm_size: 256mb
volumes:
- ./postgres-data:/var/lib/postgresql
environment:
- POSTGRES_USER=stalwart
- POSTGRES_DB=stalwart
- POSTGRES_PASSWORD
networks:
- postgres
caddy:
image: caddy:latest
container_name: caddy
restart: unless-stopped
volumes:
- caddy-data:/data
- caddy-config:/config
- ./Caddyfile:/etc/caddy/Caddyfile
ports:
- 80:80
- 443:443
- 443:443/udp
networks:
- caddy
bulwark:
image: ghcr.io/bulwarkmail/webmail:latest
container_name: bulwark
restart: unless-stopped
# ports:
# - 3000:3000
volumes:
- ./bulwark-settings:/app/data/settings
environment:
- JMAP_SERVER_URL=https://postoffice.enstrayed.com
- STALWART_FEATURES=true
- OAUTH_ENABLED=true
- OAUTH_ONLY=true
- OAUTH_CLIENT_ID=stalwart-webui
- OAUTH_ISSUER_URL
- SESSION_SECRET
- SETTINGS_SYNC_ENABLED=true
networks:
- caddy
networks:
caddy:
name: "caddy"
postgres:
name: "postgres"
volumes:
caddy-data:
caddy-config:
stalwart-var: