=== step 3: back it up through the backups page's own endpoints — 2026-09-13T16:36:50Z ===
TRUTH before backup: {"locations": [["Badacsony", 5.0, "Bazaltorgonák, szürkebarát a hegyoldalban. Árvíztűrő tükörfúrógép. (javítva)", 0, [["2026-07-09T00:00:00Z", "2026-07-11T00:00:00Z"]]], ["Keszthely", 4.0, "Festetics-kastély, a gyerekek a Balaton Múzeumot szerették.", 0, [["2026-07-12T00:00:00Z", "2026-07-15T00:00:00Z"]]], ["Tihany", 5.0, "Levendulamező és az apátság, ahonnan az egész tó látszik.", 0, [["2026-07-06T00:00:00Z", "2026-07-08T00:00:00Z"]]]], "collections": [["Balaton 2026 nyár", "Családi nyaralás a Balatonnál, két hét, három falu.", 0, []]], "photo": null}
--- units BEFORE ---
/mnt/sys_drive/felhom-data/backups/primary/adventurelog:
  2026-09-13T16:29:22.6226313000 1256 manifest.json
  2026-09-13T16:29:22.6226313000 452 compose/app.yaml
  2026-09-13T16:29:22.6226313000 2623 compose/.felhom.yml
  2026-09-13T16:29:22.6226313000 3540 compose/docker-compose.yml
/mnt/felhom-drives/hdd_1/backups/primary/adventurelog: ABSENT
/mnt/felhom-drives/hdd_1/backups/secondary/adventurelog: ABSENT
--- POST /api/backup/run (Mentések: „Mentés most”) at 2026-09-13T16:36:52Z ---
HTTP 200
{"ok":true,"message":"Mentés elindítva"}
backup run idle after 100s; status keys: ['db_dump', 'enabled', 'running']
--- units AFTER the run ---
/mnt/sys_drive/felhom-data/backups/primary/adventurelog:
  2026-09-13T16:38:33.2924199360 1350 manifest.json
  2026-09-13T16:38:33.2924199360 452 compose/app.yaml
  2026-09-13T16:38:33.2924199360 2623 compose/.felhom.yml
  2026-09-13T16:38:33.2914199240 3540 compose/docker-compose.yml
  2026-09-13T16:36:59.5722645580 200260608 volume-dumps/adventurelog_adventurelog_postgres_data.tar
  2026-09-13T16:36:58.3152490620 47497728 volume-dumps/adventurelog_adventurelog_media.tar
/mnt/felhom-drives/hdd_1/backups/primary/adventurelog: ABSENT
/mnt/felhom-drives/hdd_1/backups/secondary/adventurelog: ABSENT
--- POST /api/backup/tier2 (Mentések: 2. mentés) at 2026-09-13T16:38:35Z ---
HTTP 200
{"ok":true,"message":"2. mentés elindítva"}
tier2 idle after 5s
--- units AFTER tier 2 ---
/mnt/sys_drive/felhom-data/backups/primary/adventurelog:
  2026-09-13T16:38:33.2924199360 1350 manifest.json
  2026-09-13T16:38:33.2924199360 452 compose/app.yaml
  2026-09-13T16:38:33.2924199360 2623 compose/.felhom.yml
  2026-09-13T16:38:33.2914199240 3540 compose/docker-compose.yml
  2026-09-13T16:36:59.5722645580 200260608 volume-dumps/adventurelog_adventurelog_postgres_data.tar
  2026-09-13T16:36:58.3152490620 47497728 volume-dumps/adventurelog_adventurelog_media.tar
/mnt/felhom-drives/hdd_1/backups/primary/adventurelog: ABSENT
/mnt/felhom-drives/hdd_1/backups/secondary/adventurelog:
  2026-09-13T16:38:33.2924199360 2623 recovery-unit/compose/.felhom.yml
  2026-09-13T16:38:33.2914199240 3540 recovery-unit/compose/docker-compose.yml
  2026-09-13T16:38:33.2924199360 452 recovery-unit/compose/app.yaml
  2026-09-13T16:36:59.5722645580 200260608 recovery-unit/volume-dumps/adventurelog_adventurelog_postgres_data.tar
  2026-09-13T16:36:58.3152490620 47497728 recovery-unit/volume-dumps/adventurelog_adventurelog_media.tar
  2026-09-13T16:38:33.2924199360 1350 recovery-unit/manifest.json
  2026-09-13T16:38:35.6164485870 1 .felhom-tier2-layout
--- the app's backup card (GET /api/stacks/adventurelog/backup-data) ---
HTTP 200 {"ok":true,"data":{"stack":"adventurelog","backup_paths":[{"path":"/mnt/sys_drive/felhom-data/backups/primary/adventurelog/db-dumps","size_bytes":0,"size_human":"","exists":false},{"path":"/mnt/sys_drive/felhom-data/backups/secondary/adventurelog/rsync","size_bytes":0,"size_human":"","exists":false}],"has_backups":false}}
--- controller log, adventurelog backup lines ---
2026/09/13 16:36:52 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping adventurelog — last check 30s ago, effective interval 5m0s, healthy=true
2026/09/13 16:36:52 dbdump.go:147: [DEBUG] DiscoverDatabases: docker ps output: c9fff76e09c4	adventurelog	adventurelog	ghcr.io/seanmorley15/adventurelog-backend:v0.12.1
0dcf2da87848	adventurelog-postgres	adventurelog	postgis/postgis:16-3.5-alpine
02c0d5ba11e2	adventurelog-frontend	adventurelog	ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1
2026/09/13 16:36:52 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container adventurelog (image=ghcr.io/seanmorley15/adventurelog-backend:v0.12.1, not a database)
2026/09/13 16:36:52 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container adventurelog-postgres (image=postgis/postgis:16-3.5-alpine, not a database)
2026/09/13 16:36:52 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container adventurelog-frontend (image=ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1, not a database)
2026/09/13 16:36:54 backup.go:903: [INFO] [backup] Stopping adventurelog for safe volume dump
2026/09/13 16:36:54 manager.go:1199: [DEBUG] [stacks] StopStack adventurelog: current state=running deployed=true containers=3
2026/09/13 16:36:54 manager.go:1202: [INFO] [stacks] Stopping stack: adventurelog
2026/09/13 16:36:54 manager.go:1379: [DEBUG] Running: docker compose down (in /opt/docker/stacks/adventurelog)
2026/09/13 16:36:58 manager.go:1211: [INFO] [stacks] Stack adventurelog stopped successfully (took 3.3s)
2026/09/13 16:36:58 backup.go:779: [DEBUG] [backup] Dumping volume adventurelog_adventurelog_media for adventurelog
2026/09/13 16:36:58 backup.go:804: [INFO] [backup] Volume dump: adventurelog/adventurelog_adventurelog_media → 45.3 MB
2026/09/13 16:36:58 backup.go:779: [DEBUG] [backup] Dumping volume adventurelog_adventurelog_postgres_data for adventurelog
2026/09/13 16:37:00 backup.go:804: [INFO] [backup] Volume dump: adventurelog/adventurelog_adventurelog_postgres_data → 191.0 MB
2026/09/13 16:37:00 backup.go:913: [INFO] [backup] Restarting adventurelog after volume dump
2026/09/13 16:37:00 manager.go:1117: [DEBUG] [stacks] StartStack adventurelog: current state=stopped deployed=true
2026/09/13 16:37:00 manager.go:1120: [INFO] [stacks] Starting stack: adventurelog
2026/09/13 16:37:00 manager.go:1127: [DEBUG] [stacks] StartStack adventurelog: prepared 10 env vars for compose
2026/09/13 16:37:00 manager.go:1379: [DEBUG] Running: docker compose up -d (in /opt/docker/stacks/adventurelog)
2026/09/13 16:37:02 manager.go:780: [DEBUG] [stacks] restart-policy of down member "adventurelog" = "unless-stopped"
2026/09/13 16:37:02 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping adventurelog — last check 40s ago, effective interval 5m0s, healthy=true
2026/09/13 16:37:07 manager.go:1135: [INFO] [stacks] Stack adventurelog started successfully (took 6.3s)
2026/09/13 16:37:07 installed.go:397: [DEBUG] [stacks] installed-images adventurelog: unchanged (3 service(s)) — app.yaml not rewritten
2026/09/13 16:37:10 manager.go:1379: [DEBUG] Running: docker compose ps -a --format table {{.Name}}	{{.Image}}	{{.State}}	{{.Status}} (in /opt/docker/stacks/adventurelog)
2026/09/13 16:37:10 manager.go:1459: [INFO] [stacks] Stack adventurelog post-start status:
2026/09/13 16:37:10 manager.go:1462: [INFO] [stacks]   adventurelog            ghcr.io/seanmorley15/adventurelog-backend:v0.12.1    running   Up 3 seconds (health: starting)
2026/09/13 16:37:10 manager.go:1462: [INFO] [stacks]   adventurelog-frontend   ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1   running   Up 9 seconds (healthy)
2026/09/13 16:37:10 manager.go:1462: [INFO] [stacks]   adventurelog-postgres   postgis/postgis:16-3.5-alpine                        running   Up 9 seconds (healthy)
2026/09/13 16:37:22 manager.go:549: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=true composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/09/13 16:37:22 healthprobe.go:153: [DEBUG] Health probe adventurelog: API GET :8000/api/ → 200 (368ms)
2026/09/13 16:37:32 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping adventurelog — last check 10s ago, effective interval 5m0s, healthy=true
2026/09/13 16:37:42 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping adventurelog — last check 20s ago, effective interval 5m0s, healthy=true
2026/09/13 16:37:52 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping adventurelog — last check 30s ago, effective interval 5m0s, healthy=true
2026/09/13 16:38:02 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping adventurelog — last check 40s ago, effective interval 5m0s, healthy=true
2026/09/13 16:38:12 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping adventurelog — last check 50s ago, effective interval 5m0s, healthy=true
2026/09/13 16:38:22 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping adventurelog — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/09/13 16:38:32 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping adventurelog — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/09/13 16:38:33 recovery_unit.go:224: [INFO] [backup] Recovery unit captured for adventurelog → /mnt/sys_drive/felhom-data/backups/primary/adventurelog (images=3, secrets-referenced=2, data_keys=1, portable-carried=2/2, withheld=0)
2026/09/13 16:38:35 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/adventurelog/docker-compose.yml
2026/09/13 16:38:35 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/adventurelog/docker-compose.yml
2026/09/13 16:38:35 tier2.go:424: [INFO] [backup] Tier 2 copied adventurelog → /mnt/felhom-drives/hdd_1/backups/secondary/adventurelog (236.3 MB, 0 leg(s), 0s)
2026/09/13 16:38:35 notifier.go:234: [INFO] Event pushed: crossdrive_completed (info) — Másodlagos mentés elkészült: adventurelog
2026/09/13 16:38:41 auth.go:134: [DEBUG] [web] auth: valid session for GET /api/stacks/adventurelog/backup-data
2026/09/13 16:38:41 router.go:81: [DEBUG] [api] GET /api/stacks/adventurelog/backup-data (path=/stacks/adventurelog/backup-data)
2026/09/13 16:38:41 delete.go:631: [DEBUG] [stacks] GetStackBackupData adventurelog: checked path=/mnt/sys_drive/felhom-data/backups/primary/adventurelog/db-dumps exists=false size=
2026/09/13 16:38:41 delete.go:631: [DEBUG] [stacks] GetStackBackupData adventurelog: checked path=/mnt/sys_drive/felhom-data/backups/secondary/adventurelog/rsync exists=false size=
2026/09/13 16:38:41 delete.go:643: [DEBUG] [stacks] GetStackBackupData adventurelog: hasBackups=false
2026/09/13 16:38:42 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping adventurelog — last check 1m20s ago, effective interval 5m0s, healthy=true
=== step 3 done 2026-09-13T16:38:43Z ===
