Files
homelab-infra/ops/restore-tests/mailarchiver-compose.test.yml
T
Micha a9b232195d feat(restore): mail-archiver restore smoke test
Borg-Extract der Data-Protection-Keys + pg_restore des 645M
mailarchiver-Dumps in isoliertes Test-Postgres + Container-Boot +
HTTP-Smoke. Wegwerf-DB-Connection und Auth-Password, kein produktiver
Stack-ENV, kein Authelia-ForwardAuth im Smoke.

Machbarkeit vorab verifiziert: Dump vorhanden, App-Image gepinnt,
Data-Protection-Keys im Borg, .NET-App hat kein shfs-chmod-Problem.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-03 14:01:47 +02:00

42 lines
1.6 KiB
YAML

services:
restoretest-mailarchiver-postgres:
image: postgres:18.4@sha256:8ff36f3c66371cba71d20ceedccfc3de9669a68737607888c4ef0af93abe8e39
container_name: restoretest-mailarchiver-postgres
restart: "no"
environment:
TZ: Europe/Berlin
POSTGRES_USER: mailarchiver
POSTGRES_DB: mailarchiver
POSTGRES_PASSWORD: restoretest-mailarchiver-db
PGDATA: /var/lib/postgresql/18/docker
volumes:
- /mnt/user/backups/restore-lab/mailarchiver/postgres:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U mailarchiver -d mailarchiver"]
interval: 10s
timeout: 5s
retries: 10
security_opt:
- no-new-privileges:true
restoretest-mailarchiver:
image: s1t5/mailarchiver@sha256:ea7fd8c2e3e0ef0941e8dd9e726e35a8de33296f5c7b9ed811df5168ae6a9714
container_name: restoretest-mailarchiver
restart: "no"
depends_on:
restoretest-mailarchiver-postgres:
condition: service_healthy
environment:
TZ: Europe/Berlin
# Wegwerf-Connection-String fuer isolierten Test.
# Produktiver MAILARCHIVER_DB_CONNECTION ist Stack-ENV-only und wird
# hier bewusst NICHT verwendet.
ConnectionStrings__DefaultConnection: "Host=restoretest-mailarchiver-postgres;Database=mailarchiver;Username=mailarchiver;Password=restoretest-mailarchiver-db"
Authentication__Password: restoretest-mailarchiver-auth
ports:
- "127.0.0.1:15000:5000"
volumes:
- /mnt/user/backups/restore-lab/mailarchiver/data-protection-keys:/app/DataProtection-Keys
security_opt:
- no-new-privileges:true