##### life on 9202 — controller gitea.dooplex.hu/admin/felhom-controller:0.287.0 | catalog e42bf78 DRILL grimmory: v3.5.0 (box step behind the family g | 2026-10-02T06:48:28Z
before: gate files: family-gate-grimmory.yml family-gate-metube.yml
2.5 the night chain (debug action) -> 202
     2026/10/02 06:49:04 night_chain.go:93: [INFO] [night-chain] finished in 33s
    grimmory restore points: [(None, '2026-10-02T06:48:32Z')]
    metube restore points: [(None, '2026-10-02T06:48:41Z')]
remove grimmory (KEEPING data and backups) -> 200 {'ok': True, 'data': {'removed': 'grimmory', 'volumes_removed': ['grimmory_grimmory_db'], 'hdd_paths_removed': [], 'hdd_paths_preserved': ['/mnt/felhom-drives/scratch_hdd/userdata/grimmory/appdata/grimmory/data (4.0K)'], 'verified': True}, 'message': 'Stack gr
    left after: /opt/docker/stacks/grimmory | /mnt/felhom-drives/scratch_hdd/userdata/grimmory
remove metube (KEEPING data and backups) -> 200 {'ok': True, 'data': {'removed': 'metube', 'volumes_removed': ['metube_metube_state'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'verified': True}, 'message': 'Stack metube removed'}
    left after: /opt/docker/stacks/metube | /mnt/felhom-drives/scratch_hdd/userdata/metube
after both removes: gate files: none | a stranger at library/ -> LAN 404 | tunnel 404 | video/ -> LAN 404 | tunnel 404
2.5 restore grimmory: {'ok': True, 'snapshot_id': 'helyi', 'seconds': 64.8, 'state_after': 'running', 'hold_after': None}
2.5 restore metube: {'ok': True, 'snapshot_id': 'helyi', 'seconds': 38.5, 'state_after': 'running', 'hold_after': None}
after both restores: gate files: family-gate-grimmory.yml family-gate-metube.yml
    family_gate record: family_gate: since: "2026-10-02T06:50:54Z" hosts: - library.enkisfelhom.hu | family_gate: since: "2026-10-02T06:52:01Z" hosts: - video.enkisfelhom.hu
    a STRANGER (no cookie): library/ -> LAN 401 | tunnel 401 | library/api/v1/books -> LAN 401 | tunnel 401 | video/ -> LAN 401 | tunnel 401 | video/history -> LAN 401 | tunnel 401
    grimmory: readback http=200 found=True (controls: no token 401, wrong 401, second setup 403)
2.5 grimmory: the seed reads back after remove + restore (a member, then the app's own login): True
    metube: history has it=True; GET /download/<file> http=200
2.5 metube: the seed reads back after remove + restore (a member, then the app's own login): True
