iac_stack/ansible/roles/deploy_container_mailarchive/templates/docker-compose.yml.j2

80 lines
2.7 KiB
Text
Raw Normal View History

2025-08-24 09:39:19 +02:00
---
services:
mailarchive:
image: s1t5/mailarchiver:${MAILARCHIVE_VERSION}
container_name: mailarchive
restart: always
networks:
- traefik
- mailarchive
environment:
# Database Connection
- ConnectionStrings__DefaultConnection=Host=postgres;Database=MailArchiver;Username=${DB_USER};Password=${DB_PASSWORD};
# Authentication Settings
- Authentication__Enabled=${AUTH_ENABLE}
- Authentication__Username=${AUTH_USER}
- Authentication__Password=${AUTH_PASSWORD}
- Authentication__SessionTimeoutMinutes=${AUTH_SESSION_TIMEOUT_IN_MINUTES}
- Authentication__CookieName=MailArchiverAuth
# MailSync Settings
- MailSync__IntervalMinutes=${MAIL_SYNC_INTERVAL_IN_MINUTES}
- MailSync__TimeoutMinutes=${MAIL_SYNC_TIMEOUT_IN_MINUTES}
- MailSync__ConnectionTimeoutSeconds=${MAIL_CONNECTION_TIMEOUT_IN_SECONDS}
- MailSync__CommandTimeoutSeconds=${MAIL_COMMAND_TIMEOUT_IN_SECONDS}
# BatchRestore Settings
- BatchRestore__AsyncThreshold=50
- BatchRestore__MaxSyncEmails=150
- BatchRestore__MaxAsyncEmails=50000
- BatchRestore__SessionTimeoutMinutes=30
- BatchRestore__DefaultBatchSize=50
# BatchOperation Settings
- BatchOperation__BatchSize=50
- BatchOperation__PauseBetweenEmailsMs=50
- BatchOperation__PauseBetweenBatchesMs=250
# Npgsql Settings
- Npgsql__CommandTimeout=900
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik"
- "traefik.http.routers.mailarchive.entrypoints=http"
- "traefik.http.routers.mailarchive.rule=Host(`${MAILARCHIVE_DOMAIN}`)"
- "traefik.http.middlewares.mailarchive-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.mailarchive.middlewares=mailarchive-https-redirect"
- "traefik.http.routers.mailarchive-secure.entrypoints=https"
- "traefik.http.routers.mailarchive-secure.rule=Host(`${MAILARCHIVE_DOMAIN}`)"
- "traefik.http.routers.mailarchive-secure.tls=true"
- "traefik.http.routers.mailarchive-secure.service=mailarchive"
- "traefik.http.services.mailarchive.loadbalancer.server.port=5000"
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:${POSTGRES_VERSION}
container_name: mailarchive-db
restart: always
environment:
POSTGRES_DB: MailArchiver
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- ./data/db:/var/lib/postgresql/data
networks:
- mailarchive
healthcheck:
test: ["CMD-SHELL", "pg_isready -U mailuser -d MailArchiver"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
networks:
traefik:
external: true
postgres: