feat(restore): mealie restore test + freshness check negativ-test fix

Mealie-Restore-Test: Borg-Extract der App-Daten + pg_restore in
isoliertes Test-Postgres + Mealie-Boot + HTTP /api/app/about Smoke.
Machbarkeit vorab verifiziert (kein shfs-chmod-Problem, Mealie laeuft
als root und switcht intern auf PUID 99).

Freshness-Check: pg_header_ok() Docker-Fallback lieferte bei korruptem
Dump return 2 (unchecked) statt return 1 (invalid). Negativ-Test am
2026-06-03 bewiesen: korrupter mealie.dump wird jetzt als
DUMP_HEADER_INVALID erkannt (Critical, Exit 1).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-03 13:49:51 +02:00
parent 5e52316fab
commit 86435d4091
3 changed files with 213 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
services:
restoretest-mealie-postgres:
image: postgres:18.4@sha256:8ff36f3c66371cba71d20ceedccfc3de9669a68737607888c4ef0af93abe8e39
container_name: restoretest-mealie-postgres
restart: "no"
environment:
TZ: Europe/Berlin
POSTGRES_USER: mealie
POSTGRES_DB: mealie
POSTGRES_PASSWORD: restoretest-mealie-db
PGDATA: /var/lib/postgresql/18/docker
volumes:
- /mnt/user/backups/restore-lab/mealie/postgres:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U mealie -d mealie"]
interval: 10s
timeout: 5s
retries: 10
security_opt:
- no-new-privileges:true
restoretest-mealie:
image: ghcr.io/mealie-recipes/mealie:v3.19.2@sha256:f68e959bf66f4f458893ea58facac71690fe6f2ac7a31466b5cecb41b4e99c02
container_name: restoretest-mealie
restart: "no"
depends_on:
restoretest-mealie-postgres:
condition: service_healthy
environment:
TZ: Europe/Berlin
ALLOW_SIGNUP: "false"
PUID: "99"
PGID: "100"
DB_ENGINE: postgres
POSTGRES_SERVER: restoretest-mealie-postgres
POSTGRES_DB: mealie
POSTGRES_USER: mealie
POSTGRES_PASSWORD: restoretest-mealie-db
BASE_URL: http://127.0.0.1:19925
ports:
- "127.0.0.1:19925:9000"
volumes:
- /mnt/user/backups/restore-lab/mealie/data:/app/data
security_opt:
- no-new-privileges:true