services: mailarchive-app: image: s1t5/mailarchiver:dev restart: always environment: # Database Connection - ConnectionStrings__DefaultConnection=Host=postgres;Database=MailArchiver;Username=mailuser;Password=masterkey; # Authentication Settings - Authentication__Username=michael - Authentication__Password=?Aichwald01 - Authentication__SessionTimeoutMinutes=60 - Authentication__CookieName=MailArchiverAuth # MailSync Settings - MailSync__IntervalMinutes=15 - MailSync__TimeoutMinutes=60 - MailSync__ConnectionTimeoutSeconds=180 - MailSync__CommandTimeoutSeconds=300 - MailSync__AlwaysForceFullSync=false - MailSync__IgnoreSelfSignedCert=false # 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 # Selection Settings - Selection__MaxSelectableEmails=250 # Npgsql Settings - Npgsql__CommandTimeout=900 # Upload Settings for MBox files - Upload__MaxFileSizeGB=10 - Upload__KeepAliveTimeoutHours=4 - Upload__RequestHeadersTimeoutHours=2 # TimeZone Settings - TimeZone__DisplayTimeZoneId=Etc/UCT+2 ports: - "5000:5000" networks: - postgres volumes: - data-protection-keys:/app/DataProtection-Keys depends_on: postgres: condition: service_healthy postgres: image: postgres:17-alpine restart: always environment: POSTGRES_DB: MailArchiver POSTGRES_USER: mailuser POSTGRES_PASSWORD: masterkey volumes: - postgres-data:/var/lib/postgresql/data networks: - postgres healthcheck: test: ["CMD-SHELL", "pg_isready -U mailuser -d MailArchiver"] interval: 10s timeout: 5s retries: 5 start_period: 10s networks: postgres: volumes: data-protection-keys: postgres-data: