=== step 4: the disaster and the way back — IN PLACE (no scratch guest, R-481) — 2026-09-13T16:40:06Z ===
--- 4a. the customer removes the app with 'delete my data' (backups kept) ---
HTTP 200
{"ok":true,"message":"Stack adventurelog stop completed"}
HTTP 200
{"ok":true,"data":{"removed":"adventurelog","volumes_removed":null,"hdd_paths_removed":[],"hdd_paths_preserved":[],"hdd_note":"Az alkalmazás nem tárolt saját adatot külső meghajtón, így ott nem volt mit törölni."},"message":"Stack adventurelog removed"}
after removal: state=not_deployed updating=False phase=None err='' hold=''
containers: 0 | volumes: 0
the app answers: 404
--- 4b. the way back: POST /backup/tier2/unit-restore (Mentések → „Teljes visszaállítás”, form stack_name) ---
HTTP/2 302 
location: /backups/apps?flash_error=nincs+m%C3%A1sodlagos+f%C3%A1jlm%C3%A1solat+ehhez+az+alkalmaz%C3%A1shoz

restore-status after 5s: {"running": false, "op": "restore", "stack": "gokapi", "started_at": "2026-09-13T15:40:16.222440489Z", "last": {"op": "restore", "stack": "gokapi", "ok": true, "message": "A(z) gokapi: a beállítások visszaálltak — az alkalmazás újraindult. FIGYELEM: ez a mentés csak a beállításokat tartalmazta, adatot nem. Az alkalmazás adatai NEM álltak vissza ebből a mentésből.", "finished_at": "2026-09-13T15:40:24.982262899Z"}}
after restore: state=not_deployed updating=False phase=None err='' hold=''

--- 4c. read the data back through the front door ---
login: (404, '')
READ BACK after restore: {"locations": [], "collections": [], "photo": null}
IDENTICAL to the truth recorded before the backup: False
  locations: DIFFERENT -> []
  collections: DIFFERENT -> []
  photo: same
--- controller log: removal + restore ---
2026/09/13 16:40:09 manager.go:1211: [INFO] [stacks] Stack adventurelog stopped successfully (took 3.6s)
2026/09/13 16:40:09 lifecycle.go:24: [DEBUG] [integrations] OnStackStop: stack=adventurelog integrationsFound=0
2026/09/13 16:40:09 auth.go:134: [DEBUG] [web] auth: valid session for POST /api/stacks/adventurelog/remove
2026/09/13 16:40:09 router.go:81: [DEBUG] [api] POST /api/stacks/adventurelog/remove (path=/stacks/adventurelog/remove)
2026/09/13 16:40:09 router.go:838: [INFO] [api] Remove requested for stack: adventurelog
2026/09/13 16:40:09 router.go:81: [DEBUG] [api] removeStack: name=adventurelog
2026/09/13 16:40:09 router.go:81: [DEBUG] [api] removeStack: name=adventurelog removeHDDData=true removeBackups=false
2026/09/13 16:40:09 delete.go:418: [DEBUG] [stacks] RemoveStack called: name="adventurelog", removeHDDData=true, backupPathsToRemove=0
2026/09/13 16:40:09 delete.go:432: [DEBUG] [stacks] RemoveStack adventurelog: state=stopped, deployed=true, orphaned=false, deploying=false
2026/09/13 16:40:09 delete.go:461: [INFO] Removing deployed stack: adventurelog (removeHDDData=true, hddDeclared=false, backupPaths=0)
2026/09/13 16:40:09 delete.go:473: [DEBUG] [stacks] RemoveStack adventurelog: found 0 HDD mounts from compose file
2026/09/13 16:40:09 manager.go:1379: [DEBUG] Running: docker compose down --volumes (in /opt/docker/stacks/adventurelog)
2026/09/13 16:40:10 delete.go:483: [DEBUG] [stacks] RemoveStack adventurelog: compose down output: 
2026/09/13 16:40:10 delete.go:552: [DEBUG] [stacks] RemoveStack adventurelog: processing 0 backup paths for removal (base=/mnt/sys_drive/felhom-data/backups)
2026/09/13 16:40:10 delete.go:577: [DEBUG] [stacks] RemoveStack adventurelog: removing app.yaml at /opt/docker/stacks/adventurelog/app.yaml
2026/09/13 16:40:10 delete.go:584: [INFO] Stack adventurelog removed successfully (took 0.2s)
2026/09/13 16:40:10 manager.go:549: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/09/13 16:40:10 lifecycle.go:176: [DEBUG] [integrations] OnStackRemove: stack=adventurelog integrationsFound=0
2026/09/13 16:40:10 notifier.go:234: [INFO] Event pushed: app_removed (info) — Alkalmazás eltávolítva: adventurelog
2026/09/13 16:40:14 auth.go:134: [DEBUG] [web] auth: valid session for GET /api/stacks/adventurelog
2026/09/13 16:40:14 router.go:81: [DEBUG] [api] GET /api/stacks/adventurelog (path=/stacks/adventurelog)
2026/09/13 16:40:16 auth.go:134: [DEBUG] [web] auth: valid session for POST /backup/tier2/unit-restore
2026/09/13 16:40:16 server.go:393: [DEBUG] [web] ServeHTTP: POST /backup/tier2/unit-restore from 172.18.0.3:55178
2026/09/13 16:40:16 handlers.go:1871: [WARN] [web] Tier-2 unit restore refused up front: stack=adventurelog: nincs másodlagos fájlmásolat ehhez az alkalmazáshoz — app NOT stopped
2026/09/13 16:40:16 auth.go:134: [DEBUG] [web] auth: valid session for GET /api/backup/restore-status
2026/09/13 16:40:16 router.go:81: [DEBUG] [api] GET /api/backup/restore-status (path=/backup/restore-status)
2026/09/13 16:40:21 auth.go:134: [DEBUG] [web] auth: valid session for GET /api/backup/restore-status
2026/09/13 16:40:21 router.go:81: [DEBUG] [api] GET /api/backup/restore-status (path=/backup/restore-status)
2026/09/13 16:40:21 auth.go:134: [DEBUG] [web] auth: valid session for GET /api/stacks/adventurelog
2026/09/13 16:40:21 router.go:81: [DEBUG] [api] GET /api/stacks/adventurelog (path=/stacks/adventurelog)
2026/09/13 16:41:22 manager.go:549: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/09/13 16:43:22 manager.go:549: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/09/13 16:45:22 manager.go:549: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
=== step 4 done 2026-09-13T16:46:02Z ===
