Restore-holes run (2026-10-24 night): D43 = A recorded; 07/05/03/11 carry the R-1251, R-1252, R-1254 and D43 rules; register 207 -> 208 (R-1268 opened; R-1251/1252/1253/1257 VERIFY, R-1254 NARROWED); STATUS Monday list + D44/D45 picks; evidence (Tester 1, 9202)
gates / gates (push) Successful in 13m4s

This commit is contained in:
2026-10-24 21:08:38 +02:00
parent dcf4f84cb7
commit 3add386aa9
60 changed files with 2082 additions and 16 deletions
+10
View File
@@ -63,6 +63,16 @@
> STATUS:** the default limit's size (CC: 50 % of the measured upload) and who is told (CC: the family only about the
> qBittorrent limit they can change; the unexplained alarms to the operator only — the R-388 rule).
> **2026-10-24 (night, unattended) — the restore and backup holes; operator ruling D43 = A**
> (`audits/restore-holes-2026-10-24/README.md`). **Ruling D43 = A (operator, 2026-10-24 evening, by starting the run):**
> the root-key-only sshd drop-in applies only in appliance mode; BYO hosts keep their SSH settings (`11` §1, `03`).
> Fixed on main, nothing released: controller `bb2809d`/`062f9b4` (R-1251: a pending put-back blocks every start — a
> restore hold `putback_pending`; the put-back runs first when the drive binds; a failed put-back holds; the copy synced
> before the marker names it), `518a135` (R-1252: reconcile only under a valid classification), `c9b4b82` (R-1253: a
> stop-first export refuses while another operation holds the marker); hub `dcf4f84c` (R-1254: escrow in one
> transaction; image built locally, not pushed); agent `c8d3c17` (R-1257: D43). Proven: R-1251 on Tester 1 (power cut,
> disk off, disk back), R-1252 and R-1253 on 9202. D44/D45 prepared: `audits/review-round-2-2026-10-24/D44-D45-picks.md`.
> **2026-10-24 (evening, unattended) — review round 2** (`audits/review-round-2-2026-10-24/README.md`). The 17 architecture
> documents checked against `main`: facts corrected at `file:line` (EDITS.md), rulings and promises left for the operator
> (R-1266, D45), undocumented decisions written as notes (R-1265, D44). New: **R-1251 (P1)** a cut restore of a drive-backed
+29
View File
@@ -0,0 +1,29 @@
# REPORT — the restore and backup holes, D43 = A, and the D44/D45 picks (2026-10-24 night, unattended)
**Plain words first.**
- A power cut during a restore of an app on a drive no longer brings old data back later (R-1251, the P1). Proven on
Tester 1 with a real power-off and a drive that came back late.
- One wrong line in an app's backup settings no longer deletes its second-drive copy (R-1252). Proven on 9202.
- An export no longer overwrites a running restore's record (R-1253, proven on 9202); the hub saves a recovery package
in one step (R-1254, tested, not deployed).
- BYO hosts keep their own SSH settings (your D43 = A, R-1257). Tested in the bundle's harness.
- The review's 32 notes have one line each with a pick: answer „all picks" or name the ones you disagree with.
- Nothing is released. Monday: controller v0.343.0, agent v0.165.0 + your vouch, hub v0.170.0.
**Evidence and tables:** `documentation/audits/restore-holes-2026-10-24/README.md`; the picks:
`documentation/audits/review-round-2-2026-10-24/D44-D45-picks.md`.
**Commits:** controller `bb2809d`, `062f9b4`, `518a135`, `c9b4b82`, `e1613ae`; felhom.eu `dcf4f84c` (hub) and this
commit (documents, register, STATUS, CONTEXT, evidence); felhom-agent `c8d3c17`, `4a1a849`. CI by hash: in the final
report.
**Register:** before 207, after 208; opened 1 (R-1268), closed 0. R-1251/R-1252/R-1253/R-1257 → VERIFY (fixed on main,
waits for the release); R-1254 → NARROWED (the hub half fixed); R-1265/R-1266 carry the picks; R-1267 extended.
**Documents edited:** `07` (the R-1251 rule after D22's paragraph; the R-1252 rule in §8.2a; a pointer in §6.5), `05`
(the escrow transaction), `03` and `11` §1 (D43 = A). **System poster:** no fact on it changed (none of the four).
**Instruction files:** none edited.
**Machines:** Tester 1 and 9202 put back as found except leftover empty anonymous volumes of the R-1267 class (named in
the audit). demo-hp: nothing provisioned; the catalog sweep's VM untouched. DooPlex, ep0, household boxes, the hub: not
changed. No release, deploy, vouch, publish or catalog push.
+7 -8
View File
@@ -2,7 +2,7 @@
**Ready for Tester 2? Yes — tell the friend go (hand-over list: `documentation/pilot/TESTER2-handover.md`).**
**Updated 2026-10-24 (evening, unattended review).** The 17 design documents were checked against the code; about 130 old facts are corrected, no rule changed. Two new data-loss holes are proven; both need a fix in an attended run. Two small controller faults are fixed, not released.
**Updated 2026-10-24 (night, unattended fix run).** Four restore and backup holes are fixed on main (three proven on test boxes); BYO hosts keep their SSH settings (D43 = A). Nothing is released — see Monday's list.
## What works
- **The Plex attack (10-17 → 10-23) did not reach Felhom's secrets** (R-1241).
@@ -15,10 +15,10 @@
- The three test boxes answer only over https; the hub's key opens nothing on a box; password guesses are counted (map E12, E13, E17).
- A hacked app that uploads or computes more than it explains alarms only you; each box tests its upload weekly; qBittorrent gets half (map F13).
- An urgent security fix reaches the boxes at night after one test on the test box; the box backs up first and undoes a failed update (map B23).
- The hub mails alarms and recoveries, and keeps one whole-box copy per week on ep0; CC uses its own limited token, not your password (map F1, F11, G15).
- The hub mails alarms and recoveries and keeps a weekly whole-box copy on ep0; CC uses its own limited token (map F1, F11, G15).
## What is broken
- **P1 (new):** a power cut while an app on a drive is restored can later pour old data over new data (R-1251); one wrong line in an app's backup settings deletes its second-drive copy (R-1252, P2).
- **P1 (fixed on main, NOT released):** a power cut while an app on a drive is restored can later pour old data over new data (R-1251); one wrong line in an app's backup settings deletes its second-drive copy (R-1252, P2).
- **P1:** any hacked app on DooPlex can read the hub's nightly backups, and maybe the signing keys (R-1241, homelab session); about 12 homelab logins still use a password that was public, and the public Gitea repo is not decided (R-925, yours).
- Tester 2 is off since 2026-10-04: old emergency password, no off-site check, no bootstrap (R-1139, R-1104, R-862). The scratch box cannot use agent features (R-1083).
- DooPlex: something sets the shared checkout to „bare" (R-935).
@@ -32,9 +32,8 @@ Newest first. CC's pick is in the „Pick" column. Each row also has its full te
| # | Row | Question | Pick (why) | The other option costs | If you do nothing | Blocked |
|---|---|---|---|---|---|---|
| D45 | R-1266 | Six places where a design document says one thing and the code does another (two update rules, the golden check, „the hub never connects into a box", „the operator cannot open the off-site copy", the tunnel plan). Should the text follow the code? | **Yes — the text follows the code** (each is how the system works today; you read every changed sentence) | the code follows the text: six code changes, one of them to the box's door for you | the documents keep saying what is not true | — |
| D44 | R-1265 | Confirm about 25 behaviours the code has but no document named (now written as notes), and that MeTube's downloads are not backed up? | **Yes, all** (each was read in the code; none adds risk) | name the ones to change; each becomes a row | the notes stay marked „undocumented" | — |
| D43 | R-1257 | The SSH rule „root logs in by key only" also reaches a box the household owns (a BYO host), where we promised to change nothing on the host. Keep it there too? | **No — skip it on BYO hosts** (it is their machine; we said we would not touch it) | keep it: a BYO owner who uses a root password over SSH loses it at the next update, and the installer screen must say so | it reaches every BYO host at its next update | — |
| D45 | R-1266 | Seven places where a design document says one thing and the code does another. One line each, with a pick: `documentation/audits/review-round-2-2026-10-24/D44-D45-picks.md`. Answer „all picks" or name the ones you disagree with. | **Yes — the text follows the code** (each is how the system works today; you read every changed sentence) | the code follows the text: six code changes, one of them to the box's door for you | the documents keep saying what is not true | — |
| D44 | R-1265 | 25 behaviours the code has but no document named. One line each, with a pick (21 confirm, 4 small changes): the same file. Answer „all picks" or name the ones you disagree with. | **All picks** (each was read in the code) | name the ones to change; each becomes a row | the notes stay marked „undocumented" | — |
| D38 | R-1235 | Put the newest golden (637 MB) into the nightly release copy on ep0 too? | **Yes** (a new install after a DooPlex loss needs it; it fits under the 3 GB cap) | leave it out: after a loss, no new install until a golden is rebuilt and vouched | the same | — |
| D37 | R-1236 | Raise Gitea's memory limit from 1 GiB to 2 GiB? It was killed for memory 4 times in 17 days, once during today's release. | **Yes** (DooPlex has the RAM; a DooPlex change, so yours) | keep 1 GiB: a restart in release hours fails box updates and CI for a minute | the same | — |
| D9 | R-1062 | Split the N100's USB drive in two, for multi-drive tests? | **No — keep one drive** (the lived-in box keeps its nightly whole-box backup) | Split: the box loses its local whole-box backup, or you buy a second drive first | it stays one drive; multi-drive tests stay on Tester 1 | — |
@@ -51,11 +50,11 @@ Newest first. CC's pick is in the „Pick" column. Each row also has its full te
6. BIOS: on the N100, read „After Power Loss"; on the HP, set „Bypass F1 Prompt on Configuration Changes" to Enable. Since 2026-10-14.
7. Pin the first Facebook post (R-917), and look at the new cover in the Facebook phone app (R-919). Since 2026-10-12.
**Monday 2026-10-26, release list (attended).** 1. Controller v0.343.0: the restore and backup fixes (R-1251–R-1253), R-1250. If not: the P1 stays open. 2. Agent v0.165.0 + your vouch: BYO keeps its SSH (R-1257). 3. Hub v0.170.0: the recovery package in one step (R-1254).
**Day, 2026-10-23 — your do list.**
1. Print the break-glass sheet (`documentation/runbooks/break-glass-sheet.md`, the part from „The sheet”, one A4), fill it by hand, keep it outside the home (D32; R-923, R-924). If not: after a DooPlex loss no off-site copy opens.
2. On the hub's Hosts page: Discard appliance 49, and delete host Tester4-16fdef. If not: two dead entries alarm.
3. D37 and D38 in the table (two small yes/no). If not: Gitea may restart in release hours; no golden in the release copy.
4. Give the homelab session R-1241, R-1242, the 7-item list at the end of `documentation/audits/plex2shell-felhom-impact-2026-10-23/README.md`, the 5-item list at the end of `documentation/audits/dooplex-alarms-2026-10-24/README.md` (the database's two passwords), and an upload alarm on DooPlex's `eno1` (the line is ~100 Mbit/s; the flood peaked at 905). If not: the next hacked app on DooPlex can read the hub's backups.
3. Give the homelab session R-1241, R-1242, the lists at the end of `documentation/audits/plex2shell-felhom-impact-2026-10-23/README.md` and `documentation/audits/dooplex-alarms-2026-10-24/README.md`, and an upload alarm on DooPlex's `eno1` (~100 Mbit/s line; the flood peaked at 905). If not: the next hacked app on DooPlex can read the hub's backups.
**The rest**
- System poster needs a refresh: the new 01:40 „release copy” arrow from DooPlex to ep0 (D33); the hub-database label already says every 6 hours. If not: the drawing misses one copy.
- Rotate the reused homelab logins and decide the Gitea repo's visibility (R-925, P1). Since 2026-10-09.
@@ -130,6 +130,13 @@ the one trust root; the agent's API token is untouched; a box gets the new rule
0.146.0 cannot update itself on that box).
**[DESIGN, ruled 2026-10-22 15:47 (D4, R-982) — SHIPPED in agent v0.163.0 (`1109092`) and installer-v1.36.0 (`manifests/webpage.yaml:347`); corrected 2026-10-24] Root SSH from the LAN by key only; the console password stays.** The config bundle gains one fixed file, `/etc/ssh/sshd_config.d/10-felhom-root-key-only.conf` (`PermitRootLogin prohibit-password`), checked and reloaded by `felhom-os-apply`; the installer's uninstall removes it. Why a drop-in: Debian's `sshd_config` Includes `sshd_config.d/*` FIRST and sshd keeps the first value it reads, so the drop-in wins over the stock line; the out-of-band operator sshd (`FELHOM_SSHD`, port 8822) has its own config with no Include and is not touched. Proven on a fresh ISO 1.30.0 install: password SSH refused after, key SSH and the PVE web password login (200) and the console login still work (`audits/night-2026-10-22/P2-D4/`). It ships with the next agent release + installer tag.
**[DESIGN, operator ruling D43 = A, 2026-10-24 — committed agent `c8d3c17`, unreleased; R-1257]** **Appliances only.** The
drop-in's bundle policy is `appliance`: written only when the root-owned install record (`/var/lib/felhom-install/state.json`)
says `appliance` (the installer records the mode before it installs the bundle); on a `byo` record nothing is written and
a copy WE wrote (this path, beginning with our header line) is removed, then `sshd -t` and a reload; a box with no
readable record is left as it is. The „in force" check asks `sshd -T` for each of the host's own global IPv4 addresses
(a `Match Address <LAN>` block no longer reads as in force); a failing `sshd -t` puts back ONLY the SSH file and keeps
the rest of the bundle (the report says `sshd_step_undone`).
**[FACT, agent `a0c88e5`, released in v0.163.0 — corrected 2026-10-24] The heartbeat reports a WireGuard handshake from the future (R-1204).** WireGuard refuses an initiation whose TAI64N time is not newer than the last one accepted from that peer, so a box that once ran with its clock ahead is locked out of ep0 until real time passes that moment. The agent used to clamp the negative age to 0 (it looked healthy); `wgtunnel.handshakeFuture` now sets `handshake_future_s` when the handshake is more than 60 s ahead (`TestR1204_AFutureHandshakeIsReported`). The hub alarms on it (`05` §15.4b).
@@ -296,6 +296,12 @@ What remains:
PBS repo and namespace in the **DR recipe** (`dr_recipe`, reported every cycle — R-106 fixed it to match the
backup); the endpoint's PBS fingerprint in **tenantsync** (`hub/internal/tenantsync`); the wrapped key in
**`host_escrow.blob`** (and the identity blob beside it).
**[DESIGN] 2026-10-24 (R-1254; committed felhom.eu `dcf4f84c`, hub next v0.170.0 — NOT deployed):** the escrow PUT
stores the blob, its sealed-password hash and the identity blob in ONE transaction (`Store.SaveHostEscrowWithIdentity`;
the superseded copy is made inside it). A failure leaves all of the old package or all of the new — never the new hash
beside the old identity package, which a box would read as „escrowed" while the written code opened nothing. A
malformed identity blob is refused before anything is stored. (The agent ceremony's „the previous code still works"
after a lost answer, R-1254's other half, stays open.)
Both existing infra-backup tables retire — `infra_backup_versions` (the current/live one, all readers
hit it) **and** `infra_backups` (the deprecated legacy mirror). (The planned slim DR record on `hosts` was never
@@ -778,6 +778,28 @@ than the unit), the app running, the record reads the D22 sentence. Known limit
named volume the unit replaces (none in the catalog today — a drive-file app's unit restore is refused by R-538) is not
covered by the volume copy.
**`[DESIGN]` 2026-10-24 — a pending put-back blocks EVERY start (R-1251; review round 2 HUNT-1 H1, H2, H7; committed in
controller `bb2809d` + `062f9b4`, unreleased — rides the next controller release).** For a drive-backed app the copy lives on
the app's drive, and at start the drive is often not bound yet. A copy that cannot be reached while its drive is not
bound is **waiting, never „gone"**: the crash recovery writes a restore hold (`putback_pending`, the copy's folder
in it) and starts nothing. The hold is the one store every start path already honours — the household's
Start/Restart/Update, the boot recreate, the drive return, the media restart, the boot sweep, the night chain, the
update leg — so no path has its own check. When the drive binds, the put-back runs FIRST (the boot recreate and the
drive-return restart; the start and every drive return sweep the waiting holds), the hold is lifted, then the app
starts. The household reads „…A visszaállítás előtti adatai egy meghajtón vannak, amely most nem érhető el…" on the
app and „Ne indítsd újra a visszaállítást…" in the restore record. A put-back that FAILS (at start or when the drive
returns), or a copy gone while its drive is bound, leaves the app **held** with the D20 hold („félúton megszakadt"),
the copy kept, and the marker lets go of the app — never stopped-and-unheld (H2). Stop pressed during the restore still
gets the put-back; only the start is skipped (H7). A removal clears a waiting put-back; a later restore that completes
drops it (the household chose that data). The copy's folders are synced to disk BEFORE the marker names the copy.
**`[FACT]` 2026-10-24 night, Tester 1 (VM 341; MeTube on the data drive, 1.5 GB in its volume;
`audits/restore-holes-2026-10-24/P1-tester1/`):** a local restore cut by powering the VM off 2.1 s after „the restore
copy is recorded", the data disk taken off, the box booted: held as waiting, Start and Update refused (409, the
sentence); the disk plugged back: the agent re-mounted it, the boot recreate put the copy back BEFORE the start, the
household's newest data („gen2") and its download on the drive were there, and a later controller restart poured
nothing. Run 1 of the same proof found the journal left as `undo.json.tmp` (the rename lived only in the page cache) —
the app was held for support, never started on the cut data; the folder sync above fixed it, run 2 passed.
**[DESIGN] 2026-08-22 — the failure ladder of a database restore: replay → rollback → hold.**
Recorded here rather than only in a closed register row, because a decision that survives only inside
a closed work item is a decision nobody will find.
@@ -888,6 +910,8 @@ run makes it longer.
### 6.5 Kept data — what a removed app leaves on the drive (controller v0.274.0, `09` §3 decision 36)
*Second-drive copies that are KEPT (D25) and the rule that a rejected backup block never deletes one: §8.2a (R-1252, 2026-10-24).*
**What it is.** "Remove the app, keep my data" leaves the app's drive folder (`<drive>/appdata/<app>`, or the folder
its definition binds through `${HDD_PATH}`) in place. A reinstall over it no longer runs silently into the old files
(R-657): the install asks „A megőrzött adataimat használom" / "Use my kept data" (the database from the newest copy of
@@ -1597,6 +1621,19 @@ or pattern. **Why:** the data-loss hunt of 2026-10-20 proved two nights that del
(R-1175: one share group's reconcile removed the other groups' copies, and a dead drive's copy; R-1181: a missing or
emptied folder took its copy within one night). Controller: `internal/backup/tier2_kept.go`.
**`[DESIGN]` 2026-10-24 — a rejected backup block never deletes a copy (R-1252; review round 2 HUNT-2 H1, H2, H9;
committed in controller `518a135`, unreleased).** The night's reconcile (deleting dest dirs the legs no longer name)
runs ONLY under a valid classification. An app whose block is rejected (one bad line rejects the whole block) or absent
falls back to the legacy legs, and nothing is reconciled that night — every existing copy stays. A REJECTED block puts
„Az alkalmazás mentési beállításai most nem olvashatók…" on the app's second-drive status and tells the operator once a
day (the operator-only digest `backup_run_failures`, leg `tier2-settings-unreadable`). A kept copy (D25) is always in
the keep set, also when its leg later leaves the declared set (H2); Remove with „remove backups" drops the kept-copy
records of what it deleted (H9). **`[FACT]` 2026-10-24 night, 9202 (`audits/restore-holes-2026-10-24/P2-9202/`):**
audiobookshelf with a household file in `media/audiobooks`; two control runs kept the copy; one bogus path in the
block → „the backup block is REJECTED … every existing copy on the second drive is KEPT", the copy there, the status
sentence set, the operator digest sent (9202 has no hub: logged as dropped); the review's run on 0.342.0 the same day
deleted that copy (`review-round-2-2026-10-24/proofs/H2-bad-backup-block/`).
### 8.2b The second-drive copy runs in a memory-capped container that never outlives the copy [DESIGN + FACT, R-1214, 2026-10-22/23 nights; rides controller 0.340.0]
The copy (`rsync -a --delete`) runs in a container of the controller's own image, capped at 512 MB, so its page cache
@@ -76,6 +76,10 @@ boxes installed. Nobody keeps a hand-written list.
- **A BYO host** (the owner brought their own Proxmox). `[FACT]` The installer leaves its repositories
alone: *"apt repo alignment skipped (byo — the owner manages repos)"* (`scripts/felhom-host-install.sh`,
`align_apt_repos`). `[PROPOSAL]` On a BYO box we update the guest and Docker only, never the host.
**[DESIGN, operator ruling D43 = A, 2026-10-24 — committed agent `c8d3c17`, unreleased]** The host's root-key-only sshd
drop-in (D4, R-982) is an APPLIANCE-only file of the config bundle: written only when the root-owned install record
says `appliance`; on a `byo` record nothing is written and a copy the bundle wrote earlier (this path, our first line)
is removed; a box whose record proves nothing is left as it is (R-1257).
- **The Proxmox MAJOR upgrade** (PVE 9 → 10). It is a later step of its own, drilled first (R-808 item 5).
- **`cloudflared` and the other infrastructure images** (traefik, filebrowser). **[FACT] (C8)** They are containers in
the guest, pinned in the controller (`internal/infra/infra.go:26`: `cloudflare/cloudflared:2026.6.0`, since
@@ -0,0 +1,347 @@
# Tester 1 as found — 2026-10-24T17:13:10Z
## host
felhom
felhom-agent 0.164.0
19:13:10 up 1 day, 1:40, 1 user, load average: 0.37, 0.39, 0.41
├─/mnt/adatlemez /dev/sdb
│ └─/mnt/felhom-drives/adatlemez /dev/sdb[/felhom-data]
/dev/mapper/pve-root 59G 16G 41G 28% /
/dev/sdb 49G 31G 17G 66% /mnt/adatlemez
## guest
gitea.dooplex.hu/admin/felhom-controller:0.342.0
bookstack lscr.io/linuxserver/bookstack:26.09.1 Up 14 hours (healthy)
bookstack-db mariadb:12.3 Up 14 hours (healthy)
cloudflared cloudflare/cloudflared:2026.9.3 Up 26 hours (healthy)
felhom-controller gitea.dooplex.hu/admin/felhom-controller:0.342.0 Up 9 hours (healthy)
filebrowser gtstef/filebrowser:1.5.6-stable Up 26 hours (healthy)
paperless-postgres postgres:18-alpine Up 14 hours (healthy)
paperless-redis redis:7-alpine Up 14 hours (healthy)
paperless-webserver ghcr.io/paperless-ngx/paperless-ngx:2.20.15 Up 14 hours (healthy)
privatebin privatebin/pdo:2.0.6 Up 14 hours (healthy)
traefik traefik:v3.7.13 Up 26 hours
-- volumes
026676d188d863de11370e48d6decb4a3c9f18e291d47e6b6f93134c04fd8b8a
0307ed61b95007e0e6c16b610151f970d48ff44aaf27107e142642f1542b0aff
03fb88df97c2caadbad5b2939e66a2ac7405a6b70c3bc9015dcdee638f4f559c
0512f70d8466285288b2898f5e5a3d1894fa693da5bc437149ce8bb6e292dd3d
05be881c3d6df732ac8accd17b8b60ae528f3d4dc3e82dbcc581ec0fc11788fd
07e9e1a0abf55dcc8b862c1cfda992ae61c6ba6abe1cadbaadc6a88ba27389ba
087a9bace33db5ca4cb7ba5321c5179148b70d234bb89c79580cedc538269542
0af1d7ba94faf62af4085edae6877f0eaf9e7d3327eea5c78ea7c1b374604e36
0b2999097abdee1118b633751262f8cd305d964843d0ef7e5fcb13cd4943c28d
0c60ac019df853c9a423de4d8df848c9ba55997fe972df8daee0cadd9cd0a8e9
0dbbd609c9ffebb17db835a8e78c5e5055f4d406fd391f0a98df8da2acdc1c80
0e80fb67355307fe7a308c935143ebcffe92ef48c19c6ac8f683f1be2cdcaac4
0ed0950de66f59e390312976d2dcbc482fc46ccc6116eaedffefc8385ee569cd
13cdc778636898ab0ae3f0608517b74b2d37f304ad27f38994c63bd2d1df88e1
169495ece08dae7a0f7cd9db8644d848390d105ab7decac010f93f960b25770e
1736f9912df81d3baa0948c81e0c29d060257e5dc71bb48825e7ca0f2e332ec9
17a70549ee795512a61f658effcf0d58782819edfc637cc7450a932809410800
18d8583ed522380a43e6c3bd5ff8f71f3f182e1035cb58297d875efe0a2a9cdd
1a2ee8eb082b857bbe7faf0afb09302e71a7ddb759fd94d96bf33c6b1dfd595c
1b1cfa1031168bfe8f253b181cd596b2e26a0bc2d1f2bab62a06837dc7d4a6fd
1b290754d93a7b164751ab1a1adc8c33bfed608152945f0778a4309c988f156e
1bd7c60829f82c73bf745abcdbd3c638d6170759a787d356ed3d007f6f7ef44f
1d0dfc3bcdbf21fd53119721be0994da359573807740a24f681cdc26403f3849
1dc145b6978bcf718f58b2870b56f3ccb4de31bdd46f492a1fe80b50b27c39c0
1e97663bce6009c54dfc1f46397070fc89e5e93a5c9f2603cafcf69c0e6cd033
1efb8232cca07e79814c3312fb01742a04b1b4e9f685f2a05850971ee266bcd7
20c2493284ddbd104a18a8f46ed591ff9db77e5dac8c6c6dd5424606e0299fb3
23c16e83962478de5f949ad9ca3c87e2bd4dc1411f93def1054bc99102211d0f
254bb12bbe1265abebbb46d929e9b9a20c76a2c4e51b248075ca8c4f553c8481
29d4c05b0a58d8e3ddf299dfb77c312ef4604ce3580caf565f8b6effb03866ed
2ad544ce19a9fae74fd836bf867f20884a3c58cbcb27af67e8e2ff514c91b414
2d6e67e3979b18ec184b09ec197bb175002f029c1ed59442c6f1817823236747
2e00ffe61ba63c08c1937440678e26b3673807e3629523e0d6b873c6c337d989
300b348c97bc82d526b924691f5c2ec2cde931a1b32e57f403b29a132ff60d69
3083f29c152163f2aecc43c938f99c132cb2c94a3ea6a42e6c2735599eff6493
31d03e714a361cbeb031105de688981c659c5195ae2eabacfc92f493d3c56ead
33ae418cf3f0923739bfafb632c10d89e55bdb1264f5b5d1a3060bcbdd8510a5
341e4cdfefa6769d31b3e1bcf50f941a560fa91545fff410e1ba2e06d0362c91
352d14b0639f21ebec9290dd0dd695f3b32007ff609f04088116306d9f382577
3573efc924d1f6ff9a44e8e9bf455bbf1ca809b8c49cbc468c54d29ef711c054
35eae9e23b7dbbe0068613f2a99308d3e8f5d81246b1956a14c84e932b7913de
3665996bb9b3d30e859cce10cd616d5030337d583b5ef98d80cebe0ea80d5ecc
36e89857418bdb0db5fee915bcc57a706bdae7e7ffad640d9d7fea0aa106755b
38c6960925ea3092357512de1d0783f5ecb458750e669f0fc5e2d686e4cd08d1
3911a1c2d88aee190825bff3923dbdaf21e09aca1b2dd231ff886436c9f4e0f9
3982c2639123f3bf7d27ee389618e9b8436c539e5db5e08cea76b2770aa50acb
3e03055905de6ed34652f654c9f06a00e4144fc4d1a9fd34537257667e46f62d
3fdce3fd3489379cafe338eff1f282b30d61e687ac883d11cbb4c16c9cfb6d68
40adc1b526df2547bf7690b03f6b34655ede6496fc1fe3ba2b2a366e4c5d97a9
40b9deceaca0f4d72070ed243fb8e0c230c473fe374a4e53c45b7ec74c96ab35
43742e9f4b2112256104565572a219a767489b96a1a13d31994b97add17b18ed
4464ee2fd1ddf58e950a02d2ab0a8d08e01c616df16ebf34591c2cc927f09728
448a8cf6b579abd1476ab3bb5c7e2d887daa2afeaed121417e49689d098d107b
48e77a53d9ce9159d511916d9811e8a1af878cbf946d55518819a69b614ec2d6
49f595a534f50b0c4c6e9936cdee077aeca8a4f050c2924deef5e522be241e94
4a9c6139cf88809d39a0988527a321864d52a5402e0bdd742fc454de1c394e05
4b176b8b9860a157765395f3b2116bf6a8551a811d5e407b37ad607bb1c728e0
4cf4d383b6f47c68734196ec255d53957bcb0c83ea7d1f1a18c666c9db9db293
4eef3059d5c0d83ad0adf115d2c3c0b81329b1c21b6c4e13abf27c6bc3081919
51dc5eaee47e0d902546941ae5462363a57bab30f604f950f4f2efdb6c06dc94
523603f8305b77733af3080e7c3f346625afc21124bc59e9ccec78e5c679b36f
53d45c8f089f14a9fdc3153ec9d932198002b4be0be58db547f56a6cd8c8317a
5692d2745f6c5f3c01479ea934451fbc4ba8982f89e60d4fc6a44fc22c25b8e1
58261c801d3c4f9b3c40481bb73513a12234f791c465469f23a8ae1af8b65069
58f2f64dd8c4c12028c7360ef8663ef9f1ae426f30bce1d83a73a81054a3948b
597b93a8833088933ab7281c5df8b8a4e866620b1992e235d7b62bebe5209e6b
59e65f6aee1a077839c9ddc34902d3b18a6ec5491e6df8ab35bd23cc259c158e
59f0d572040c92a3d797d98fc49654a92b393318de5da9f9779229dfa400c065
5ad6e65fcba390d193580bff949c448a2ca9434331fdf9a42157892ea4ad8a3b
5bd3cb958f8a42194a5980266c30b9eac522455d2d15832680282c85a77f24e6
5c28d2f2ee2ecc47776f4c06004a937778ba4d76475bbeb6506f244c621b59e2
5dd4cd85aef07c83a68ca496eccc97c6fa3460fb732889e96684537dd5e7350a
6131874f33d3c3887516e68de0368769a8cac5348ccacfceea5ac54273a36611
61a81b7aa4ec3b4e7bd140a236cb0b2ce60e21b9f1330a8d609cb3ab062ea27e
6503b04e0922099bbab0c241c38701177cc1d75cfdc06e7e0b283145d6e66adb
6784c394d01cfcbe663502b836cae3a629f7f39f3eb649524fd62e06d8c86cf3
68cfc2664c15490c3d89efcbd41093ba61eee8b218dc647c12d8ef62ec997fd4
6aceb21ff40dd2bfe14b07836e44885c5bb65ae7ace30562e72074f2fcfa47cf
6e77a58f856657d4b3da205dd99884eb97555482fd917dd42747f6c321a93283
6f06aeea4a112e6f6ee3ee401dd3acf2189f233ba8010d259c13706d643d521e
6f9ef861cc7e00994738e64d5ab640673a66f617d6933277c7110f1135beb5ae
7090e6a6fb4233d6c7e06dac2d9fa31591388a14e5ff9af22177692951131811
7224dac5110be6bb73a640f813218c65497aca167f97423ec3ba7c5d573efa8e
745e2aa6027e5f1a9ff6f8cb69144f8aef2e77338a85068a04be893cbb87373f
77c9939676ec7e4c56d332d2f38b3454048758fbc9b70c144d255ebf78eff866
7a29f347e972db28979f697dfd2107373cbe219633af4fb969f961cde572d492
7b11f5e4e56fdaa4f41587ef61da287bd0f249d2d0974ed2f7521a04bd10a23b
80691462fec8717413857aa76148b63b07fadd71ff38f8dbfc90cf3317b84437
8076fde747347156353daa1b46aa97fbc854d9e51c8754b3c833a6674fc8bcf2
84d1bd03752af9ab2a9df5e3af9edc84cecb294253d4522b7241cd5e8a21b940
84f50eff27db32f45be4549210f0935faa0bec618f34085d0af741a3f9b451cb
85212d642b9775b85822fa204aa87b9add826eba1c1216d46a103fb5c09795c2
85a130c049861e25e1672c11abff79946997074dfdbb73f48006210d2f006772
85a4484bb1ba82f6e38837a09e6923c20c36b5afa9dc130debd7bbed6efd3c36
86e6ca57521ffe0bdb8354abcf8d769805333bd1abc55d6d5fa34a73f69540a8
86f2ae52a9e75a8dc526a92bfca2aab397f462b17a933dca65692fe07246b41a
86fff796264e3da25bfa88156e47098cb2fd7626edfd53ed8cc46af8ad9c9fd4
8768803887bb29d1f3e3f0031cf1f79a031fd4a118e58426a111c90e3b562b01
8a7ea3a230023522d445d38125d701cf2d36245da4d7020b5d03e5f26583bfcc
8c3748404cd4c9f05f232ad3de41efd09c9787be38d3f40de2a97dfe3462319c
8c738b754e6adc44dcf89cbf54084d769c08e9bde2137b7da06de55e1565e945
8d02518fe445ffe5073953f6c59a91a75447e0d824155356fdfb723cbfc2bcf9
8db607d6cd685eb60ec45850abc21cb690e2c2e28138e34119293219eb6f84e0
8e91c61a79f6898f3db44eff65b32b31cf1841ec2a7542941805c4b490e9f096
8eb670e140bfa81eb00c2102ad23ea2033775e571f353db2ff1aad6f2535dda8
91bf64330904fafce2bdb442cb48cff15f017f1b50e4170a0b493459889f15df
92f78e44d608c3a070de162939af9248acfa2a1a6111d1a63fa68f0bc2acc597
930d24bdff15118065d54b712d82475d10c1a677886f47f7ac582b9a69a7ddaf
93e3db6eef0cf8c3ac5beb3c6f966a9beaf4f176197746073fd4b1371d0afc4c
95357e4c1efb7d954eaf3f8b7a308fcd65aae4eea22f1988c65bd84bb0898294
9658d1100070dd5036b2bbd673e72b8a5e50ab8086f9e8f2234feceba73e6134
96e018f984bc36e4249c0d65d2e8c33007d63ccbfec107a0b92445be17fe0ccf
99c2977efbdbfd8abdc20694df171b41e0a0774c9b2016ecca829643358a8808
9a1404592c789382258ec7c1a2d6be74a28ebd4dc433c039b86c89497e561165
9ac0907283e5874963a41116da3364cb0f313603dc6dae2788ba0131128e9fbc
9ac2217865c4c77eb51cf074da4885d278bede1158a9c7d8e31f074488a6bf3f
9d92ff119044918fb0b44e1dcab2c36139e5176bb918fedd601ff1bdf88c355e
9e2452e7d60e31de7b2c83ad26d0a702f7d32679ce5404752b49e60eb68318e9
9ef356efb45c5eb06816bd9dcf31153d254ab95aed73ad73bd24700c529a72a1
a0d3fed2d1504d92044b20e95223c3b365877f47ae95d49751c4f41e83cd9bd1
a59452d57d553008c895847a4676f1e54df99412453f0440aa822c954b80310a
a5a5914b129ef814b6d933ac8c94527e387bcc972c463cf477346990e22ceaf0
a714c2bbbad8419b5238fb0e6aede18b90e8c16e04fb739bc8ed3d5c1a2b2739
a74bbcf91ea34ba1558e4f92c400d00d5d1b4654c032bb77240f226d99be3ac2
a7e800d4dc55c7aa8de862f050cd64473bb5d7472780f011c3c08addca55c09f
a82b87e9c13274143e8622babf9ba27d908d4713b61445055e28dbee16203c45
ac369736ccf2fbc61d5d5044fca171e84d5689c0105f889b16cbefc6e57b9894
ad89ce83ef046ca4d1d9fee168dd9ea1cdf33afdec91bc658bb9cd6aabfafadf
adecf80e0947e89de653f5bdc49e3eca1001bbcf208fe8f6cca236436cfb6504
ae1ea01423ad0fcf9d2c2e19e3b59179700625804db438644ff737eadc66203e
aed401ec2d1c9e4d70b7f0893dce625a8a956baa6be10b7b168e9cf8c048b2c4
af2ef39dea8eac3871ee860874157389c1c509c3b70ff37c4b7d990f3cf0a9b7
b1f696383cabdbc0709ca1f955e6dd4f6083bba1922c71295245429de1b18c34
b22a97bce70026ce57c9b35a2397c00d883588c50b0f2011c36ae44643270590
b4449dff437f068e99c52394132b65225e2da322ad09eb668476f06a4e42f440
b4c8a01fdc0d6890c8112d9a270de3fed5915011431ad8aee41cd480772c0b12
b521b88edc168b2f72bb4687ec53a92f5095276484ba215bc7b2ac0a69c03861
b71d4c0f2639a08e4380dfb3816e08eb9fc41978ba0ca2be32624d1a82e2500c
b866b4bc219c3ebd57f965ec78fe878708cf5edf7d52d881971b7e68e86c6d01
b92895aad000c10b55b645614ba9a3ca6390781d63a1bfa2ef11ea7e236f8784
b93d6f8106d62cf711e2e2d4b1ee973a5a1ba1c4c08cff9c62a72fcfaf17aa3a
bb4cb8ad03b92e415724e7b9ea371fa9a0719c3b244cf38e3465dc025f23e712
bookstack_bookstack_config
bookstack_bookstack_db_data
c0a1b3cb428ce0a10c88a92cb1fe7d33efbae86303e44ac0a61cc5d49b1c166e
c0f132dee2b24dbbafc6ff8ef94c40047973c328d50f19fbdc3c0d2a1009c1d0
c0f33ced1f6bafa7ddafe86eb0b33082d005be39dc8000e4d9e0017071bccc2f
c116cbbc8a58794e88003a08d78cc86c938c344440ab3ee2874155710ed26644
c4634a92ca630ad48193f2dbe645f3b0c5e435daf3b76ff1359770f706723593
c8d34ded435496db30ee00525fe00ec46d73c63e24341bd8835c080995283325
ca98a3f6471eb0efab615e78dcc496f17fed147cfc573af648c184ff7e0aafa5
cd33ea68493c24cd7e78e7bd5d39a19da518585af06115a3a5fa31c5c91a8a8b
ce313d72e040dcc30a4df849212511a3688d0764ed2caa814afd55dd6f8cb525
ce8c79b3a922c33549bc79ae6af5fe88e9a7200eee7915ae2b5811584261a320
d1285cc85513b1a6de68e6190fa4788a2a5f1b44ccfa708cc717335df3b44fb9
d1f18944c2ab0db265da296ef140ff2d0f45303fb5e65198107c0e3e26d6f79e
d51fe1ac2fc10b9abb6d6e333fda91bd794cf0b5a36fe2060e30b2758a5507d3
d72d9e389c168c257944b3dde0e807ed795fe77bcd36d755598b0536965df44a
d8a67a033a39fe6f886903556f8f69c5d72cf13bf4860c2d50ecf808bcf84c81
d8feb4aae5566bdb02e7c3f29ed5d994221ce2c0054df3fa38acc1fe84c271c6
da85e9426537a6005df390aa45832fc2dfa9093fe1e245d4cf15de061eac2efe
dcc3f781ccbda058c8dd8104c9ec76629685530b3120bb80979108c602b2bdf7
ddde08f176b72ff003e6451eb5af3384221de9287224c0421a80155e39a6ae91
dee8a41031f9d7e4b6a20684d22317c1159dc9f66cacc4a9708208f43a8d3306
e014c71a27c899b0c6456c53569a2dd6c9e77126a7361bef2c99761c1d231801
e04e180ff6f066952eadb82c3965cd4cce04dabd7423f3ac60c5cfc774bb6e82
e0a6cf7542476d85181416e3a5b54588e692d5e2a36cb7439a0d4fc05ea75cdf
e12bef6ed1435f6789b65273b37e4620ecf7a52fa4c056414cb637770e82213a
e19cbc63c47f6602cfe5c4844b311a7292db5c70e961e0fb2220b01a0fd8762e
e3e3b934d26f9d2737c64897d302e5f9f03594e312b85307c2f4e5d60ef1c58c
e4d4dd066ab630f703fe3753b5fb00f6c88fa47c344bf51214c598b88d8afca8
e4d62b254a585664909f6814404cfb7f1a2803c6a043cf92925b79481640628f
e589c34e20e7d78b616fd1cfed16ec332dcd20d9a819f52bf808e6250e6371f5
e65f710998dd172fc35db9136bd058572ca65a425b21eca5f9ed412d05e675f7
e84951d8e332c6a76085c83a3be458bf078c9c3be8796d55ea70be37d4660f41
e87ec0a62652b292400fe4e5f0b73c484cc2bc244ced64216589930bcfd0e63b
e9385bce883dd85ba21d07cb6bcf82d262655dd4889545cad7787cb2c34c4ed7
eab31183ef7b453dc049d816fc372d893d8d69383e96f9628df02c7e34f42198
eb2fd76f92ec9c0dae6407c79603e82fc785cba2721498bf38ca4ea67bb993fb
ed421f3cea361f2670c63349d25bdc481a8280b4bca294a2f6a1ff7cc7a09700
ed89b25f9b78775c9744c10a0b05214ecc61ee40a268917e0ffc05755c969e6c
edaf98a9bd0a8272f16f5a123e8e89a847717097be8e0a2fe4a6f1965915d67d
eec0215eff753e61208f8ce89c328832e95b2045635216e771c59a4bbac64ae8
f00f2d239580728a7e6e40378a0dd2078ea243c74e440739f3536db70f7799f2
f0603085c01674274d6e4cc3871f9ad50768859aed42364e441f6262486d2086
f2e2beccd3dd346bb19a82e7585e100c5ffcecf64e00402db1b938bde6b84ff9
f353c9bff2ac802c271d08011700155ba8b13d5320f8d722b431aee3fb7d9326
f4573daac82885e39585604297044e7677d4edff30eb4cdde2edbfb2b1b2d8ae
f514957d3ebce5d70a42be290cef385fc5326644e73581024552010f869e6f0f
f58282c0d4b95da155ffe4eefa3778fdb50617dd918a733c93c7eb8c50d39c56
f8d6f1387935ae6316af476ffe7dba55288cfeb4fa95a30fed6b6fe4156647e2
f92b58bff009e768c65bc67bd75d410fe063414261fc841dbda26c2bae82c95c
f93ea05339c0f6c48f5cd9bf18f14922555ce62b7fd06e7563946d4134f0c444
fb1a557fd1e7a61643134e0cbc57d7c54306330a5ec4f673f7871488e8072556
fb3c614084787aac24fc60190bbf6b79c5f1a9c3f93a6f53566691e130a573c1
fd26547d4646042fead55ad21bafa7ac4ffa83b464adf7f0dba4385dabe7eb59
fe1940040b28a09bcbe20ea3819d93b119247eb5543cba462370667cfae1c663
felhom-controller-data
ff9fcd38ad6080875b5c121ea94957128f35c5e3300f0192521a40ccf055c0bd
filebrowser_filebrowser_data
paperless-ngx_paperless_data
paperless-ngx_paperless_postgres_data
paperless-ngx_paperless_redis_data
privatebin_privatebin_data
-- drive
/mnt/felhom-drives/adatlemez/backups/:
offsite-proof
primary
secondary
/mnt/felhom-drives/adatlemez/backups/offsite-proof:
/mnt/felhom-drives/adatlemez/backups/primary:
paperless-ngx
/mnt/felhom-drives/adatlemez/backups/secondary:
bookstack
jellyfin
plex
privatebin
prowlarr
qbittorrent
radarr
sonarr
transmission
ls: cannot access '/mnt/felhom-drives/adatlemez/backups/restore-undo': No such file or directory
-- marker
ls: cannot access '/var/lib/felhom/data/appstop-state.json': No such file or directory
data mount:
-- holds
Traceback (most recent call last):
File "<string>", line 1, in <module>
import json,sys;d=json.load(open(sys.argv[1]));print(sorted((d.get("restore_holds") or {}).keys()))
~~~~^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/settings.json'
/dev/mapper/pve-vm--9201--disk--1 69G 4.8G 61G 8% /var/lib/docker
/dev/sdb 49G 31G 17G 66% /mnt/felhom-drives/adatlemez
appdata-run.json
catalog-cache
dashboard-sessions.json
debug-ring.log
disk-health-state.json
encryption.key
filebrowser-sso-header
image-retention-v2.done
metrics.db
metrics.db-shm
metrics.db-wal
night-ledger.json
offbox
settings.json
settings.json.bak
setup-gate.key
update-state.json
whole-guest-ledger.json
holds: []
ls: cannot access '/var/lib/docker/volumes/felhom-controller-data/_data/data/appstop-state.json': No such file or directory
actualbudget
adventurelog
audiobookshelf
bentopdf
bookstack
calcom
calibre-web
claper
cloudflared
code-server
crafty-controller
dawarich
docmost
emby
filebrowser
ghost
gitea
glance
gokapi
grafana
gramps-web
grimmory
grocy
home-assistant
homebox
homepage
immich
jellyfin
karakeep
kimai
komga
lubelogger
mealie
metube
n8n
navidrome
nextcloud
nzbget
onlyoffice
opengist
outline
paperless-ngx
papra
plant-it
plex
privatebin
prowlarr
qbittorrent
radarr
radicale
rallly
recipe-importer
romm
sabnzbd
seerr
sonarr
sparkyfitness
tandoor
termix
traefik
transmission
uptime-kuma
vaultwarden
vikunja
wanderer
wger
wishlist
zipline
@@ -0,0 +1,8 @@
{"ok":true,"message":"Telepítés elindítva – az állapot a kártyán követhető"}
202
metube Up 6 seconds (healthy)
local metube_metube_state
HDD_PATH: /mnt/felhom-drives/adatlemez
- HDD_PATH
desired_state: running
@@ -0,0 +1,12 @@
total 1572880
drwxr-xr-x 2 1000 1000 4096 Oct 24 17:16 .
drwx-----x 3 root root 4096 Oct 24 17:15 ..
-rw-r--r-- 1 root root 1610612736 Oct 24 17:16 r1251-ballast.bin
-rw-r--r-- 1 root root 54 Oct 24 17:16 r1251-gen.txt
total 12
drwxrwsr-x 2 1000 1000 4096 Oct 24 17:16 .
drwxrwsr-x 16 root 1000 4096 Oct 13 19:26 ..
-rw-r--r-- 1 root 1000 53 Oct 24 17:16 r1251-household-video.txt
{"ok":true,"message":"Mentés elindítva"}
200
@@ -0,0 +1,25 @@
2026/10/24 17:16:08 [INFO] [stacks] ScanStacks complete: 68 stacks found (4 deployed, 64 available)
2026/10/24 17:16:08 [INFO] [scheduler] Job stack-scan completed (took 115ms)
2026/10/24 17:16:09 [INFO] [scheduler] Job agent-channel-health completed (took 554ms)
2026/10/24 17:16:57 [INFO] [backup] Stopping metube for safe volume dump
2026/10/24 17:16:57 [INFO] [stacks] Stopping stack: metube
2026/10/24 17:16:58 [INFO] [stacks] Stack metube stopped successfully (took 0.7s)
2026/10/24 17:17:11 [INFO] [scheduler] Job agent-channel-health completed (took 2.614s)
2026/10/24 17:17:21 [INFO] [backup] Volume dump: metube/metube_metube_state → 1.5 GB
2026/10/24 17:17:21 [INFO] [backup] Restarting metube after volume dump
2026/10/24 17:17:21 [INFO] [stacks] Starting stack: metube
2026/10/24 17:17:22 [INFO] [stacks] Stack metube started successfully (took 0.5s)
2026/10/24 17:17:25 [INFO] [stacks] Stack metube post-start status:
2026/10/24 17:17:25 [INFO] [stacks] metube ghcr.io/alexta69/metube:2026.09.29@sha256:8e2fe9beeefc55a02f6e1d04cad0fc3c22e8f067d309188f016551dc99ec27b3 running Up 3 seconds (health: starting)
2026/10/24 17:17:50 [INFO] [backup] App-data backup completed: 2 databases (528.6 KB total), 4 volume dump(s) (1m8.704s)
2026/10/24 17:17:50 [INFO] [backup] Recovery unit captured for metube → /mnt/felhom-drives/adatlemez/backups/primary/metube (images=1, secrets-referenced=0, data_keys=0, portable-carried=0/0, withheld=0)
/mnt/felhom-drives/adatlemez/backups/primary/metube
/mnt/felhom-drives/adatlemez/backups/primary/metube/data-stamps.json
/mnt/felhom-drives/adatlemez/backups/primary/metube/manifest.json
/mnt/felhom-drives/adatlemez/backups/primary/metube/compose
/mnt/felhom-drives/adatlemez/backups/primary/metube/compose/docker-compose.yml
/mnt/felhom-drives/adatlemez/backups/primary/metube/compose/.felhom.yml
/mnt/felhom-drives/adatlemez/backups/primary/metube/compose/app.yaml
/mnt/felhom-drives/adatlemez/backups/primary/metube/volume-dumps
/mnt/felhom-drives/adatlemez/backups/primary/metube/volume-dumps/metube_metube_state.tar
1.6G /mnt/felhom-drives/adatlemez/backups/primary/metube
@@ -0,0 +1 @@
gen2 — the household newest, written after the backup (2026-10-24T17:18:05Z)
@@ -0,0 +1,51 @@
2026/10/24 17:18:28 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:18:28 [WARN] [offbox] jellyfin: not deployed — offsite push is unit-only (mandatory userdata not resolvable)
2026/10/24 17:18:28 [WARN] [offbox] plex: not deployed — offsite push is unit-only (mandatory userdata not resolvable)
2026/10/24 17:18:28 [WARN] [offbox] qbittorrent: not deployed — offsite push is unit-only (mandatory userdata not resolvable)
2026/10/24 17:18:28 [WARN] [offbox] radarr: not deployed — offsite push is unit-only (mandatory userdata not resolvable)
2026/10/24 17:18:28 [WARN] [offbox] sonarr: not deployed — offsite push is unit-only (mandatory userdata not resolvable)
2026/10/24 17:18:28 [WARN] [offbox] transmission: not deployed — offsite push is unit-only (mandatory userdata not resolvable)
2026/10/24 17:18:28 [WARN] [offbox] prowlarr: not deployed — offsite push is unit-only (mandatory userdata not resolvable)
2026/10/24 17:18:38 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:18:48 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:18:48 [INFO] Health probes: 1 ok (of 1 probed)
2026/10/24 17:18:58 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:19:08 [INFO] [scheduler] Running job: backup-cache
2026/10/24 17:19:08 [INFO] [scheduler] Running job: docker-socket-users
2026/10/24 17:19:08 [INFO] [scheduler] Running job: system-health
2026/10/24 17:19:08 [INFO] [scheduler] Running job: offsite-credential-retry
2026/10/24 17:19:08 [INFO] [scheduler] Job offsite-credential-retry completed (took 0s)
2026/10/24 17:19:08 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:19:08 [INFO] [backup] Found 2 DB dump files across drives
2026/10/24 17:19:08 [INFO] [scheduler] Running job: agent-channel-health
2026/10/24 17:19:09 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:19:09 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:19:09 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:19:09 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:19:09 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:19:09 [INFO] [backup] Discovered 2 databases
2026/10/24 17:19:09 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:19:09 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/10/24 17:19:09 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:19:09 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:19:09 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:19:09 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:19:09 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:19:09 [INFO] [backup] Discovered app data: 4 apps
2026/10/24 17:19:09 [INFO] [backup] Backup status cache refreshed
2026/10/24 17:19:09 [INFO] [scheduler] Job backup-cache completed (took 345ms)
2026/10/24 17:19:09 [INFO] [scheduler] Job docker-socket-users completed (took 352ms)
2026/10/24 17:19:09 [INFO] [monitor] Health check: status=ok
2026/10/24 17:19:09 [INFO] [scheduler] Job system-health completed (took 503ms)
2026/10/24 17:19:09 [INFO] [scheduler] Job agent-channel-health completed (took 597ms)
2026/10/24 17:19:11 [WARN] [offbox] inventory: size of plex's newest snapshot unknown: offbox: a(z) 3af609d1 pillanatkép mérete ismeretlen (listing it anyway)
2026/10/24 17:19:18 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:19:27 [WARN] [web] Restore requested (async): stack=metube, snapshot=helyi from 172.18.0.7:35240
2026/10/24 17:19:27 [INFO] [backup] Restoring metube from recovery unit /mnt/felhom-drives/adatlemez/backups/primary/metube: images=1, secrets recovered=0/0, data_keys=0
2026/10/24 17:19:28 [INFO] [stacks] Stopping stack: metube
2026/10/24 17:19:28 [INFO] [stacks] Stack metube stopped successfully (took 0.3s)
2026/10/24 17:19:28 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:19:28 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:19:38 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:19:47 [INFO] [offbox] metube: the live volumes are copied before the restore (1 copied, 0 new from the snapshot) in 19.304s — /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z (R-893)
2026/10/24 17:19:47 [INFO] [backup] metube: the restore copy is recorded — a power cut from here on puts the app back on start (R-1195)
@@ -0,0 +1 @@
CUT: line seen 2026-10-24T17:19:47.820Z, qm stop returned 2026-10-24T17:19:49.935Z
@@ -0,0 +1,9 @@
scsi0: nvme-scratch:341/vm-341-disk-1.raw,size=200G
scsi1: nvme-scratch:341/vm-341-disk-2.raw,size=50G
scsihw: virtio-scsi-single
update VM 341: -delete scsi1
scsi0: nvme-scratch:341/vm-341-disk-1.raw,size=200G
scsihw: virtio-scsi-single
unused0: nvme-scratch:341/vm-341-disk-2.raw
status: running
17:20:05
@@ -0,0 +1,16 @@
2026/10/24 17:23:40 [WARN] [appstop] crash recovery: a local restore (op "unit-restore:metube") was interrupted and left 1 app(s) stopped — restarting them: [metube]
2026/10/24 17:23:40 [WARN] [appstop] crash recovery: metube's restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z cannot be reached yet (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z: no such file or directory) — NOT starting it; the put-back waits for its drive
2026/10/24 17:23:40 [WARN] [settings] restore hold SET for metube — the app stays stopped until it is cleared
2026/10/24 17:23:40 [WARN] [appstop] metube: the cut restore's copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z is on a drive that is not bound — the app is HELD until the copy is put back (R-1251)
2026/10/24 17:23:40 [WARN] [appstop] crash recovery: 1 app(s) were deliberately NOT restarted (drive absent: []; put-back waiting for its drive: [metube]) — KEEPING the marker; this is the gate working, not a fault
2026/10/24 17:23:40 [INFO] [appstop] metube: the restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z is still not reachable (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z: no such file or directory) — the app stays held until its drive is bound
2026/10/24 17:23:40 [WARN] [backup] restore of metube (restore, started 2026-10-24T17:19:27Z) was INTERRUPTED by a controller stop — recorded as failed; the household is told to run it again
2026/10/24 17:23:40 [WARN] [appstop] a local restore was interrupted by a controller restart — 1 app(s) are HELD until their data drive is bound: the copy taken before the change is on it and is put back first — not alarming: op=unit-restore:metube reason=unit_restore started_at=2026-10-24T17:19:28Z restarted=[] put_back_waiting_for_drive=[metube]
2026/10/24 17:23:40 [INFO] [report] hub wait channel active (hold ≤240s)
2026/10/24 17:23:40 [INFO] Event pushed: restore_interrupted (warning) [hu-only] — A(z) metube visszaállítása megszakadt, mert a doboz újraindult — indítsd el újra.
2026/10/24 17:23:40 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:24:00 [INFO] [bootrecon] "metube" is a boot orphan by intent but is HELD (an app-data operation is holding it — the app-stop guard restarts it when the operation ends) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:24:00 [INFO] [bootrecon] "paperless-ngx" is a boot orphan by intent but is HELD (drive /mnt/felhom-drives/adatlemez is not a live mountpoint) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:24:00 [INFO] [bootrecon] Boot reconciliation: nothing to start — 2 app(s) held (absent drive / quiesce / app-data operation): [metube paperless-ngx]
---
@@ -0,0 +1,7 @@
{"ok":false,"data":{"reason":"held"},"error":"A(z) metube visszaállítása megszakadt. A visszaállítás előtti adatai egy meghajtón vannak, amely most nem érhető el. Amikor a meghajtó újra elérhető, a doboz visszateszi ezeket az adatokat, és elindítja az alkalmazást. Addig az alkalmazás nem indul el."}
409
{"ok":false,"data":{"reason":"held"},"error":"A(z) metube visszaállítása megszakadt. A visszaállítás előtti adatai egy meghajtón vannak, amely most nem érhető el. Amikor a meghajtó újra elérhető, a doboz visszateszi ezeket az adatokat, és elindítja az alkalmazást. Addig az alkalmazás nem indul el."}
409
{'reason': 'putback_pending', 'at': '2026-10-24T17:23:40Z', 'safety_dump': '/mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z'}
@@ -0,0 +1,148 @@
2026/10/24 17:23:39 [INFO] local-api: channel up (agent 169.254.253.1:8443) — guest 9201, 3 mount(s) visible
2026/10/24 17:23:39 [INFO] local-api: mount mp8 → /mnt/felhom-drives (storage=/mnt/felhom-drives, class=, backup=false)
2026/10/24 17:23:39 [INFO] local-api: mount mp9 → /etc/felhom-bootstrap (storage=/var/lib/felhom-agent/guests/9201/bootstrap, class=, backup=false)
2026/10/24 17:23:39 [INFO] local-api: mount mp0 → /var/lib/felhom (storage=local-lvm, class=, backup=true)
2026/10/24 17:23:39 [INFO] felhom-controller 0.343.0-dev.r1251a starting (customer: tester-1, domain: enkicsifelhom.hu)
2026/10/24 17:23:39 [INFO] [settings] Loaded settings from /opt/docker/felhom-controller/data/settings.json
2026/10/24 17:23:39 [INFO] Encryption key loaded from /opt/docker/felhom-controller/data/encryption.key
2026/10/24 17:23:40 [INFO] [stacks] Using compose command: docker compose
2026/10/24 17:23:40 [INFO] [stacks] ScanStacks complete: 68 stacks found (4 deployed, 64 available)
2026/10/24 17:23:40 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:23:40 [INFO] [stacks] InjectMissingFields: processed 4 stacks
2026/10/24 17:23:40 [INFO] [stacks] Encryption migration: no stacks needed migration
2026/10/24 17:23:40 [WARN] [appstop] crash recovery: a local restore (op "unit-restore:metube") was interrupted and left 1 app(s) stopped — restarting them: [metube]
2026/10/24 17:23:40 [WARN] [appstop] crash recovery: metube's restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z cannot be reached yet (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z: no such file or directory) — NOT starting it; the put-back waits for its drive
2026/10/24 17:23:40 [WARN] [settings] restore hold SET for metube — the app stays stopped until it is cleared
2026/10/24 17:23:40 [INFO] [quiesce] loop started (poll 5m0s, max-quiesce 30m0s)
2026/10/24 17:23:40 [INFO] [settings] Settings saved
2026/10/24 17:23:40 [WARN] [appstop] metube: the cut restore's copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z is on a drive that is not bound — the app is HELD until the copy is put back (R-1251)
2026/10/24 17:23:40 [WARN] [appstop] crash recovery: 1 app(s) were deliberately NOT restarted (drive absent: []; put-back waiting for its drive: [metube]) — KEEPING the marker; this is the gate working, not a fault
2026/10/24 17:23:40 [INFO] [appstop] metube: the restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z is still not reachable (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z: no such file or directory) — the app stays held until its drive is bound
2026/10/24 17:23:40 [INFO] [stacks] desired-state backfill: 0 app(s) recorded as running, 0 left unrecorded (state ambiguous — legacy boot behaviour retained)
2026/10/24 17:23:40 [INFO] [stacks] installed-images backfill: 0 app(s) recorded, 4 already had a record, 0 left unrecorded (could not be observed completely — unknown, which renders nothing)
2026/10/24 17:23:40 [INFO] [stacks] pin adoption: 0 pinned, 4 already pinned, 0 left unpinned (0 not completely observed, 0 running something the template no longer offers)
2026/10/24 17:23:40 [INFO] [stacks] applied-meta backfill (R-646): recorded 0 []; skipped 0 [] — not current with the catalog, their pinned version's .felhom.yml is no longer on the box
2026/10/24 17:23:40 [INFO] [sync] Starting catalog sync (repo: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git, interval: 15m0s)
2026/10/24 17:23:40 [INFO] [sync] Starting catalog sync
2026/10/24 17:23:40 [INFO] Metrics store opened at /opt/docker/felhom-controller/data/metrics.db
2026/10/24 17:23:40 [INFO] Metrics collector started (60s interval)
2026/10/24 17:23:40 [INFO] [sync] Pulling latest from https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git (branch: main)
2026/10/24 17:23:40 [INFO] [tier2] start-up: no leftover second-drive copy container
2026/10/24 17:23:40 [WARN] [backup] restore of metube (restore, started 2026-10-24T17:19:27Z) was INTERRUPTED by a controller stop — recorded as failed; the household is told to run it again
2026/10/24 17:23:40 [INFO] [backup] restore record wired: /opt/docker/felhom-controller/data/restore-status.json (interrupted at startup: true)
2026/10/24 17:23:40 [INFO] [backup] app-data run record wired: /opt/docker/felhom-controller/data/appdata-run.json (an earlier cut still shown: false)
2026/10/24 17:23:40 [INFO] Notifier enabled (hub: https://hub.felhom.eu)
2026/10/24 17:23:40 [INFO] [upwatch] the host's weekly line test: 94.3 Mbit/s (measured 2026-10-24T08:00:58Z)
2026/10/24 17:23:40 [INFO] [upwatch] upload and CPU watch started (line 94 Mbit/s, qBittorrent share 50 %)
2026/10/24 17:23:40 [WARN] [appstop] a local restore was interrupted by a controller restart — 1 app(s) are HELD until their data drive is bound: the copy taken before the change is on it and is put back first — not alarming: op=unit-restore:metube reason=unit_restore started_at=2026-10-24T17:19:28Z restarted=[] put_back_waiting_for_drive=[metube]
2026/10/24 17:23:40 [INFO] Self-update enabled (check every 6h, auto-update: false, auto-update time: 04:30)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: status-refresh (every 10s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: stack-scan (every 2m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: docker-socket-watch (every 15s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: docker-socket-users (every 5m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: health-probes (every 10s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: system-health (every 5m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: after-unclean-boot (every 30s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: deadapp-check (every 30s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: ring-spill (every 30s)
2026/10/24 17:23:40 [INFO] [offsite-apply] settle-gate: awaiting floor knowledge (first report ACK) before offsite apply
2026/10/24 17:23:40 [INFO] [scheduler] Daily job db-dump scheduled for 2026-10-25 02:30 CET
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: offsite-credential-retry (every 5m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: backup-cache (every 5m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: conversion-copy-release (every 1h0m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Daily job tier2-backup scheduled for 2026-10-25 03:30 CET
2026/10/24 17:23:40 [INFO] [scheduler] Daily job offbox-backup scheduled for 2026-10-25 04:15 CET
2026/10/24 17:23:40 [INFO] [catch-up] controller start: no backup leg missed its last scheduled time — nothing to make up
2026/10/24 17:23:40 [INFO] [scheduler] Daily job offsite-abandon-sweep scheduled for 2026-10-25 05:10 CET
2026/10/24 17:23:40 [INFO] [scheduler] Daily job offsite-integrity scheduled for 2026-10-25 06:00 CET
2026/10/24 17:23:40 [INFO] [scheduler] Daily job offsite-proof scheduled for 2026-10-25 05:30 CET
2026/10/24 17:23:40 [INFO] [scheduler] Daily job metrics-prune scheduled for 2026-10-25 04:00 CET
2026/10/24 17:23:40 [INFO] [scheduler] Daily job fill-watch scheduled for 2026-10-25 03:30 CET
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: fill-watch-interval (every 10m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: hub-report (every 15m0s)
2026/10/24 17:23:40 [INFO] Hub reporting enabled (every 15m0s to https://hub.felhom.eu)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: selfupdate-check (every 6h0m0s)
2026/10/24 17:23:40 [INFO] ========== Startup Self-Test ==========
2026/10/24 17:23:40 [INFO] [PASS] Docker socket: reachable (v29.8.2)
2026/10/24 17:23:40 [INFO] [PASS] Stacks directory: /opt/docker/stacks
2026/10/24 17:23:40 [INFO] [PASS] Data directory: /opt/docker/felhom-controller/data (writable)
2026/10/24 17:23:40 [INFO] [PASS] System data path: /mnt/sys_drive
2026/10/24 17:23:40 [INFO] [WARN] Storage paths: 0 connected, 1 disconnected
2026/10/24 17:23:40 [INFO] [PASS] Git catalog: 65 app definitions found
2026/10/24 17:23:40 [INFO] [PASS] Hub connectivity: https://hub.felhom.eu reachable (HTTP 200)
2026/10/24 17:23:40 [INFO] [PASS] Metrics DB: 34.2 MB
2026/10/24 17:23:40 [INFO] ========================================
2026/10/24 17:23:40 [INFO] Self-test complete: 7 passed, 1 warnings, 0 failed
2026/10/24 17:23:40 [INFO] [scheduler] Starting scheduler with 23 jobs
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: geo-verify (every 6h0m0s)
2026/10/24 17:23:40 [INFO] Geo-restriction support enabled (CF API token configured)
2026/10/24 17:23:40 [INFO] [infra] connected felhom-controller to traefik-public
2026/10/24 17:23:40 [INFO] [report] hub wait channel active (hold ≤240s)
2026/10/24 17:23:40 [INFO] Event pushed: restore_interrupted (warning) [hu-only] — A(z) metube visszaállítása megszakadt, mert a doboz újraindult — indítsd el újra.
2026/10/24 17:23:40 [INFO] [backup] Found 1 DB dump files across drives
2026/10/24 17:23:40 [INFO] [web] sessions: restored 5 dashboard session(s) from disk (dropped 0 expired, 0 malformed)
2026/10/24 17:23:40 [INFO] [web] Auth: using password from settings.json
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: disk-health-check (every 1h0m0s)
2026/10/24 17:23:40 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/adatlemez not mounted — skipping userdata skeleton
2026/10/24 17:23:40 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_a not mounted — skipping userdata skeleton
2026/10/24 17:23:40 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_b not mounted — skipping userdata skeleton
2026/10/24 17:23:40 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_c not mounted — skipping userdata skeleton
2026/10/24 17:23:40 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_d not mounted — skipping userdata skeleton
2026/10/24 17:23:40 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:23:40 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: agent-channel-health (every 1m0s)
2026/10/24 17:23:40 [INFO] Web UI listening on :8080
2026/10/24 17:23:41 [INFO] [backup] Discovered 2 databases
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:23:41 [INFO] [backup] Discovered app data: 4 apps
2026/10/24 17:23:41 [INFO] [infra] filebrowser compose exists — starting without regenerating
2026/10/24 17:23:41 [INFO] [backup] Backup status cache refreshed
2026/10/24 17:23:41 [ERROR] [stacks] Command failed: docker compose up -d (in /opt/docker/stacks/filebrowser) — exit code 1 (took 0.2s)
2026/10/24 17:23:41 [ERROR] [stacks] stderr (last part): ...emon: Conflict. The container name "/2efa44c97a56_filebrowser" is already in use by container "774b32721d18d4591e021f2b271a512ac523a6ad3faead89c971043242ffef41". You have to remove (or rename) that container to be able to reuse that name.
Error response from daemon: Conflict. The container name "/2efa44c97a56_filebrowser" is already in use by container "774b32721d18d4591e021f2b271a512ac523a6ad3faead89c971043242ffef41". You have to remove (or rename) that container to be able to reuse that name.
2026/10/24 17:23:41 [WARN] [infra] first-boot base-stack bring-up: base-infra bring-up: filebrowser: compose up: : exit code 1
stderr: ...emon: Conflict. The container name "/2efa44c97a56_filebrowser" is already in use by container "774b32721d18d4591e021f2b271a512ac523a6ad3faead89c971043242ffef41". You have to remove (or rename) that container to be able to reuse that name.
Error response from daemon: Conflict. The container name "/2efa44c97a56_filebrowser" is already in use by container "774b32721d18d4591e021f2b271a512ac523a6ad3faead89c971043242ffef41". You have to remove (or rename) that container to be able to reuse that name.
2026/10/24 17:23:41 [INFO] [monitor] Health check: status=fail
2026/10/24 17:23:41 [INFO] [gate] boot 1792862417-19114: waiting (≤2m0s) for live drive bind(s) [/mnt/felhom-drives/adatlemez] before recreating drive-backed apps
2026/10/24 17:23:42 [INFO] [sync] Catalog sync complete
2026/10/24 17:23:42 [INFO] [sync] Initial sync: Sablonok naprakészek — nincs változás
2026/10/24 17:23:42 [INFO] [web] FileBrowser mounts synced (recreated) — 5 storage path(s), config updated
2026/10/24 17:23:43 [INFO] [infra] connected felhom-controller to felhom-filebrowser (the FileBrowser default-login check, R-1126)
2026/10/24 17:23:45 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:23:45 [INFO] [report] Building system report
2026/10/24 17:23:45 [INFO] Event pushed: controller_started (info) [hu-only] — Controller elindult (0.343.0-dev.r1251a)
2026/10/24 17:23:46 [INFO] [monitor] Health check: status=warn
2026/10/24 17:23:47 [INFO] [infra] filebrowser: default login refused for this run — joined traefik-public, files.<domain> served (R-1126)
2026/10/24 17:23:48 [INFO] [report] Hub report pushed successfully (14617 bytes)
2026/10/24 17:23:48 [INFO] [settings] Settings saved
2026/10/24 17:23:48 [INFO] Startup hub report sent
2026/10/24 17:23:50 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:23:50 [INFO] [offsite-apply] settle-gate: GO — at/above floor 0.342.0 (we are 0.343.0-dev.r1251a), no managed update running
2026/10/24 17:23:50 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:23:50 [INFO] Health probes: 2 ok (of 2 probed)
2026/10/24 17:23:55 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:24:00 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:24:00 [INFO] [bootrecon] boot window: fleet settled after 15s (3 identical samples 5s apart) — sweeping
2026/10/24 17:24:00 [INFO] [bootrecon] "metube" is a boot orphan by intent but is HELD (an app-data operation is holding it — the app-stop guard restarts it when the operation ends) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:24:00 [INFO] [bootrecon] "paperless-ngx" is a boot orphan by intent but is HELD (drive /mnt/felhom-drives/adatlemez is not a live mountpoint) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:24:00 [INFO] [bootrecon] Boot reconciliation: nothing to start — 2 app(s) held (absent drive / quiesce / app-data operation): [metube paperless-ngx]
2026/10/24 17:24:00 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:24:10 [INFO] [deadapp] boot grace 15m0s: the host's last boot (2026-10-24T17:20:17Z) followed an UNCLEAN stop (R-856)
2026/10/24 17:24:10 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:24:20 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:24:25 [INFO] [web] Login from 192.168.0.180
2026/10/24 17:24:25 [INFO] [api] start requested for stack: metube
2026/10/24 17:24:25 [INFO] [api] update requested for stack: metube
2026/10/24 17:24:30 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
@@ -0,0 +1,5 @@
update VM 341: -scsi1 nvme-scratch:341/vm-341-disk-2.raw
scsi0: nvme-scratch:341/vm-341-disk-1.raw,size=200G
scsi1: nvme-scratch:341/vm-341-disk-2.raw,size=50G
scsihw: virtio-scsi-single
17:24:42
@@ -0,0 +1,30 @@
2026/10/24 17:23:40 [WARN] [appstop] crash recovery: a local restore (op "unit-restore:metube") was interrupted and left 1 app(s) stopped — restarting them: [metube]
2026/10/24 17:23:40 [WARN] [appstop] crash recovery: metube's restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z cannot be reached yet (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z: no such file or directory) — NOT starting it; the put-back waits for its drive
2026/10/24 17:23:40 [WARN] [settings] restore hold SET for metube — the app stays stopped until it is cleared
2026/10/24 17:23:40 [WARN] [appstop] metube: the cut restore's copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z is on a drive that is not bound — the app is HELD until the copy is put back (R-1251)
2026/10/24 17:23:40 [WARN] [appstop] crash recovery: 1 app(s) were deliberately NOT restarted (drive absent: []; put-back waiting for its drive: [metube]) — KEEPING the marker; this is the gate working, not a fault
2026/10/24 17:23:40 [INFO] [appstop] metube: the restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z is still not reachable (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z: no such file or directory) — the app stays held until its drive is bound
2026/10/24 17:23:40 [WARN] [backup] restore of metube (restore, started 2026-10-24T17:19:27Z) was INTERRUPTED by a controller stop — recorded as failed; the household is told to run it again
2026/10/24 17:23:40 [WARN] [appstop] a local restore was interrupted by a controller restart — 1 app(s) are HELD until their data drive is bound: the copy taken before the change is on it and is put back first — not alarming: op=unit-restore:metube reason=unit_restore started_at=2026-10-24T17:19:28Z restarted=[] put_back_waiting_for_drive=[metube]
2026/10/24 17:23:40 [INFO] [offsite-apply] settle-gate: awaiting floor knowledge (first report ACK) before offsite apply
2026/10/24 17:23:40 [INFO] [report] hub wait channel active (hold ≤240s)
2026/10/24 17:23:40 [INFO] Event pushed: restore_interrupted (warning) [hu-only] — A(z) metube visszaállítása megszakadt, mert a doboz újraindult — indítsd el újra.
2026/10/24 17:23:40 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:23:41 [INFO] [gate] boot 1792862417-19114: waiting (≤2m0s) for live drive bind(s) [/mnt/felhom-drives/adatlemez] before recreating drive-backed apps
2026/10/24 17:23:50 [INFO] [offsite-apply] settle-gate: GO — at/above floor 0.342.0 (we are 0.343.0-dev.r1251a), no managed update running
2026/10/24 17:24:00 [INFO] [bootrecon] "metube" is a boot orphan by intent but is HELD (an app-data operation is holding it — the app-stop guard restarts it when the operation ends) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:24:00 [INFO] [bootrecon] "paperless-ngx" is a boot orphan by intent but is HELD (drive /mnt/felhom-drives/adatlemez is not a live mountpoint) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:24:00 [INFO] [bootrecon] Boot reconciliation: nothing to start — 2 app(s) held (absent drive / quiesce / app-data operation): [metube paperless-ngx]
2026/10/24 17:24:25 [INFO] [api] start requested for stack: metube
2026/10/24 17:24:25 [INFO] [api] update requested for stack: metube
2026/10/24 17:25:01 [INFO] [gate] boot 1792862417-19114: live bind confirmed — recreating drive-backed app metube (state=stopped) onto /mnt/felhom-drives/adatlemez
2026/10/24 17:25:01 [WARN] [settings] restore hold SET for metube — the app stays stopped until it is cleared
2026/10/24 17:25:01 [ERROR] [appstop] metube: the interrupted restore could NOT be put back (reading the restore copy's journal: open /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z/undo.json: no such file or directory) — the app is HELD for support, the copy stays at /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z (R-1251 H2)
2026/10/24 17:25:01 [INFO] [gate] boot 1792862417-19114: live bind confirmed — recreating drive-backed app paperless-ngx (state=degraded) onto /mnt/felhom-drives/adatlemez
2026/10/24 17:25:14 [INFO] [gate] boot 1792862417-19114: re-syncing FileBrowser mounts against the live binds
2026/10/24 17:25:14 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
---
TARGET SOURCE FSTYPE OPTIONS
/mnt/felhom-drives/adatlemez /dev/sdb[/felhom-data] ext4 rw,relatime
/mnt/felhom-drives/adatlemez /dev/sdb[/felhom-data] ext4 rw,relatime
@@ -0,0 +1,15 @@
/mnt/felhom-drives/adatlemez/backups/restore-undo/metube 4096 17:19:28.4662702010
/mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z 4096 17:19:47.8045336330
/mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z/undo.json.tmp 132 17:19:47.8045336330
/mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z/definition 4096 17:19:47.8035336190
/mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z/definition/docker-compose.yml 2244 17:19:47.7715331830
/mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z/definition/.felhom.yml 12057 17:19:47.7805333060
/mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z/definition/app.yaml 674 17:19:47.7885334150
/mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z/metube_metube_state.tar 1610615808 17:19:44.0864829840
total 8
drwxr-xr-x 2 1000 1000 4096 Oct 24 17:19 .
drwx-----x 3 root root 4096 Oct 24 17:19 ..
-rw-r--r-- 1 root root 0 Oct 24 17:19 r1251-ballast.bin
-rw-r--r-- 1 root root 0 Oct 24 17:16 r1251-gen.txt
{'reason': 'restore_mixed', 'at': '2026-10-24T17:25:01Z', 'safety_dump': '/mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z', 'replay_error': "interrupted restore, put-back failed: reading the restore copy's journal: open /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z/undo.json: no such file or directory"}
ls: cannot access '/var/lib/docker/volumes/felhom-controller-data/_data/data/appstop-state.json': No such file or directory
@@ -0,0 +1,191 @@
2026/10/24 17:23:39 [INFO] local-api: channel up (agent 169.254.253.1:8443) — guest 9201, 3 mount(s) visible
2026/10/24 17:23:39 [INFO] local-api: mount mp8 → /mnt/felhom-drives (storage=/mnt/felhom-drives, class=, backup=false)
2026/10/24 17:23:39 [INFO] local-api: mount mp9 → /etc/felhom-bootstrap (storage=/var/lib/felhom-agent/guests/9201/bootstrap, class=, backup=false)
2026/10/24 17:23:39 [INFO] local-api: mount mp0 → /var/lib/felhom (storage=local-lvm, class=, backup=true)
2026/10/24 17:23:39 [INFO] felhom-controller 0.343.0-dev.r1251a starting (customer: tester-1, domain: enkicsifelhom.hu)
2026/10/24 17:23:39 [INFO] [settings] Loaded settings from /opt/docker/felhom-controller/data/settings.json
2026/10/24 17:23:39 [INFO] Encryption key loaded from /opt/docker/felhom-controller/data/encryption.key
2026/10/24 17:23:40 [INFO] [stacks] Using compose command: docker compose
2026/10/24 17:23:40 [INFO] [stacks] ScanStacks complete: 68 stacks found (4 deployed, 64 available)
2026/10/24 17:23:40 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:23:40 [INFO] [stacks] InjectMissingFields: processed 4 stacks
2026/10/24 17:23:40 [INFO] [stacks] Encryption migration: no stacks needed migration
2026/10/24 17:23:40 [WARN] [appstop] crash recovery: a local restore (op "unit-restore:metube") was interrupted and left 1 app(s) stopped — restarting them: [metube]
2026/10/24 17:23:40 [WARN] [appstop] crash recovery: metube's restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z cannot be reached yet (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z: no such file or directory) — NOT starting it; the put-back waits for its drive
2026/10/24 17:23:40 [WARN] [settings] restore hold SET for metube — the app stays stopped until it is cleared
2026/10/24 17:23:40 [INFO] [quiesce] loop started (poll 5m0s, max-quiesce 30m0s)
2026/10/24 17:23:40 [INFO] [settings] Settings saved
2026/10/24 17:23:40 [WARN] [appstop] metube: the cut restore's copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z is on a drive that is not bound — the app is HELD until the copy is put back (R-1251)
2026/10/24 17:23:40 [WARN] [appstop] crash recovery: 1 app(s) were deliberately NOT restarted (drive absent: []; put-back waiting for its drive: [metube]) — KEEPING the marker; this is the gate working, not a fault
2026/10/24 17:23:40 [INFO] [appstop] metube: the restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z is still not reachable (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z: no such file or directory) — the app stays held until its drive is bound
2026/10/24 17:23:40 [INFO] [stacks] desired-state backfill: 0 app(s) recorded as running, 0 left unrecorded (state ambiguous — legacy boot behaviour retained)
2026/10/24 17:23:40 [INFO] [stacks] installed-images backfill: 0 app(s) recorded, 4 already had a record, 0 left unrecorded (could not be observed completely — unknown, which renders nothing)
2026/10/24 17:23:40 [INFO] [stacks] pin adoption: 0 pinned, 4 already pinned, 0 left unpinned (0 not completely observed, 0 running something the template no longer offers)
2026/10/24 17:23:40 [INFO] [stacks] applied-meta backfill (R-646): recorded 0 []; skipped 0 [] — not current with the catalog, their pinned version's .felhom.yml is no longer on the box
2026/10/24 17:23:40 [INFO] [sync] Starting catalog sync (repo: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git, interval: 15m0s)
2026/10/24 17:23:40 [INFO] [sync] Starting catalog sync
2026/10/24 17:23:40 [INFO] Metrics store opened at /opt/docker/felhom-controller/data/metrics.db
2026/10/24 17:23:40 [INFO] Metrics collector started (60s interval)
2026/10/24 17:23:40 [INFO] [sync] Pulling latest from https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git (branch: main)
2026/10/24 17:23:40 [INFO] [tier2] start-up: no leftover second-drive copy container
2026/10/24 17:23:40 [WARN] [backup] restore of metube (restore, started 2026-10-24T17:19:27Z) was INTERRUPTED by a controller stop — recorded as failed; the household is told to run it again
2026/10/24 17:23:40 [INFO] [backup] restore record wired: /opt/docker/felhom-controller/data/restore-status.json (interrupted at startup: true)
2026/10/24 17:23:40 [INFO] [backup] app-data run record wired: /opt/docker/felhom-controller/data/appdata-run.json (an earlier cut still shown: false)
2026/10/24 17:23:40 [INFO] Notifier enabled (hub: https://hub.felhom.eu)
2026/10/24 17:23:40 [INFO] [upwatch] the host's weekly line test: 94.3 Mbit/s (measured 2026-10-24T08:00:58Z)
2026/10/24 17:23:40 [INFO] [upwatch] upload and CPU watch started (line 94 Mbit/s, qBittorrent share 50 %)
2026/10/24 17:23:40 [WARN] [appstop] a local restore was interrupted by a controller restart — 1 app(s) are HELD until their data drive is bound: the copy taken before the change is on it and is put back first — not alarming: op=unit-restore:metube reason=unit_restore started_at=2026-10-24T17:19:28Z restarted=[] put_back_waiting_for_drive=[metube]
2026/10/24 17:23:40 [INFO] Self-update enabled (check every 6h, auto-update: false, auto-update time: 04:30)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: status-refresh (every 10s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: stack-scan (every 2m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: docker-socket-watch (every 15s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: docker-socket-users (every 5m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: health-probes (every 10s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: system-health (every 5m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: after-unclean-boot (every 30s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: deadapp-check (every 30s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: ring-spill (every 30s)
2026/10/24 17:23:40 [INFO] [offsite-apply] settle-gate: awaiting floor knowledge (first report ACK) before offsite apply
2026/10/24 17:23:40 [INFO] [scheduler] Daily job db-dump scheduled for 2026-10-25 02:30 CET
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: offsite-credential-retry (every 5m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: backup-cache (every 5m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: conversion-copy-release (every 1h0m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Daily job tier2-backup scheduled for 2026-10-25 03:30 CET
2026/10/24 17:23:40 [INFO] [scheduler] Daily job offbox-backup scheduled for 2026-10-25 04:15 CET
2026/10/24 17:23:40 [INFO] [catch-up] controller start: no backup leg missed its last scheduled time — nothing to make up
2026/10/24 17:23:40 [INFO] [scheduler] Daily job offsite-abandon-sweep scheduled for 2026-10-25 05:10 CET
2026/10/24 17:23:40 [INFO] [scheduler] Daily job offsite-integrity scheduled for 2026-10-25 06:00 CET
2026/10/24 17:23:40 [INFO] [scheduler] Daily job offsite-proof scheduled for 2026-10-25 05:30 CET
2026/10/24 17:23:40 [INFO] [scheduler] Daily job metrics-prune scheduled for 2026-10-25 04:00 CET
2026/10/24 17:23:40 [INFO] [scheduler] Daily job fill-watch scheduled for 2026-10-25 03:30 CET
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: fill-watch-interval (every 10m0s)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: hub-report (every 15m0s)
2026/10/24 17:23:40 [INFO] Hub reporting enabled (every 15m0s to https://hub.felhom.eu)
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: selfupdate-check (every 6h0m0s)
2026/10/24 17:23:40 [INFO] ========== Startup Self-Test ==========
2026/10/24 17:23:40 [INFO] [PASS] Docker socket: reachable (v29.8.2)
2026/10/24 17:23:40 [INFO] [PASS] Stacks directory: /opt/docker/stacks
2026/10/24 17:23:40 [INFO] [PASS] Data directory: /opt/docker/felhom-controller/data (writable)
2026/10/24 17:23:40 [INFO] [PASS] System data path: /mnt/sys_drive
2026/10/24 17:23:40 [INFO] [WARN] Storage paths: 0 connected, 1 disconnected
2026/10/24 17:23:40 [INFO] [PASS] Git catalog: 65 app definitions found
2026/10/24 17:23:40 [INFO] [PASS] Hub connectivity: https://hub.felhom.eu reachable (HTTP 200)
2026/10/24 17:23:40 [INFO] [PASS] Metrics DB: 34.2 MB
2026/10/24 17:23:40 [INFO] ========================================
2026/10/24 17:23:40 [INFO] Self-test complete: 7 passed, 1 warnings, 0 failed
2026/10/24 17:23:40 [INFO] [scheduler] Starting scheduler with 23 jobs
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: geo-verify (every 6h0m0s)
2026/10/24 17:23:40 [INFO] Geo-restriction support enabled (CF API token configured)
2026/10/24 17:23:40 [INFO] [infra] connected felhom-controller to traefik-public
2026/10/24 17:23:40 [INFO] [report] hub wait channel active (hold ≤240s)
2026/10/24 17:23:40 [INFO] Event pushed: restore_interrupted (warning) [hu-only] — A(z) metube visszaállítása megszakadt, mert a doboz újraindult — indítsd el újra.
2026/10/24 17:23:40 [INFO] [backup] Found 1 DB dump files across drives
2026/10/24 17:23:40 [INFO] [web] sessions: restored 5 dashboard session(s) from disk (dropped 0 expired, 0 malformed)
2026/10/24 17:23:40 [INFO] [web] Auth: using password from settings.json
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: disk-health-check (every 1h0m0s)
2026/10/24 17:23:40 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/adatlemez not mounted — skipping userdata skeleton
2026/10/24 17:23:40 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_a not mounted — skipping userdata skeleton
2026/10/24 17:23:40 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_b not mounted — skipping userdata skeleton
2026/10/24 17:23:40 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_c not mounted — skipping userdata skeleton
2026/10/24 17:23:40 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_d not mounted — skipping userdata skeleton
2026/10/24 17:23:40 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:23:40 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/10/24 17:23:40 [INFO] [scheduler] Registered periodic job: agent-channel-health (every 1m0s)
2026/10/24 17:23:40 [INFO] Web UI listening on :8080
2026/10/24 17:23:41 [INFO] [backup] Discovered 2 databases
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:23:41 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:23:41 [INFO] [backup] Discovered app data: 4 apps
2026/10/24 17:23:41 [INFO] [infra] filebrowser compose exists — starting without regenerating
2026/10/24 17:23:41 [INFO] [backup] Backup status cache refreshed
2026/10/24 17:23:41 [ERROR] [stacks] Command failed: docker compose up -d (in /opt/docker/stacks/filebrowser) — exit code 1 (took 0.2s)
2026/10/24 17:23:41 [ERROR] [stacks] stderr (last part): ...emon: Conflict. The container name "/2efa44c97a56_filebrowser" is already in use by container "774b32721d18d4591e021f2b271a512ac523a6ad3faead89c971043242ffef41". You have to remove (or rename) that container to be able to reuse that name.
Error response from daemon: Conflict. The container name "/2efa44c97a56_filebrowser" is already in use by container "774b32721d18d4591e021f2b271a512ac523a6ad3faead89c971043242ffef41". You have to remove (or rename) that container to be able to reuse that name.
2026/10/24 17:23:41 [WARN] [infra] first-boot base-stack bring-up: base-infra bring-up: filebrowser: compose up: : exit code 1
stderr: ...emon: Conflict. The container name "/2efa44c97a56_filebrowser" is already in use by container "774b32721d18d4591e021f2b271a512ac523a6ad3faead89c971043242ffef41". You have to remove (or rename) that container to be able to reuse that name.
Error response from daemon: Conflict. The container name "/2efa44c97a56_filebrowser" is already in use by container "774b32721d18d4591e021f2b271a512ac523a6ad3faead89c971043242ffef41". You have to remove (or rename) that container to be able to reuse that name.
2026/10/24 17:23:41 [INFO] [monitor] Health check: status=fail
2026/10/24 17:23:41 [INFO] [gate] boot 1792862417-19114: waiting (≤2m0s) for live drive bind(s) [/mnt/felhom-drives/adatlemez] before recreating drive-backed apps
2026/10/24 17:23:42 [INFO] [sync] Catalog sync complete
2026/10/24 17:23:42 [INFO] [sync] Initial sync: Sablonok naprakészek — nincs változás
2026/10/24 17:23:42 [INFO] [web] FileBrowser mounts synced (recreated) — 5 storage path(s), config updated
2026/10/24 17:23:43 [INFO] [infra] connected felhom-controller to felhom-filebrowser (the FileBrowser default-login check, R-1126)
2026/10/24 17:23:45 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:23:45 [INFO] [report] Building system report
2026/10/24 17:23:45 [INFO] Event pushed: controller_started (info) [hu-only] — Controller elindult (0.343.0-dev.r1251a)
2026/10/24 17:23:46 [INFO] [monitor] Health check: status=warn
2026/10/24 17:23:47 [INFO] [infra] filebrowser: default login refused for this run — joined traefik-public, files.<domain> served (R-1126)
2026/10/24 17:23:48 [INFO] [report] Hub report pushed successfully (14617 bytes)
2026/10/24 17:23:48 [INFO] [settings] Settings saved
2026/10/24 17:23:48 [INFO] Startup hub report sent
2026/10/24 17:23:50 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:23:50 [INFO] [offsite-apply] settle-gate: GO — at/above floor 0.342.0 (we are 0.343.0-dev.r1251a), no managed update running
2026/10/24 17:23:50 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:23:50 [INFO] Health probes: 2 ok (of 2 probed)
2026/10/24 17:23:55 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:24:00 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:24:00 [INFO] [bootrecon] boot window: fleet settled after 15s (3 identical samples 5s apart) — sweeping
2026/10/24 17:24:00 [INFO] [bootrecon] "metube" is a boot orphan by intent but is HELD (an app-data operation is holding it — the app-stop guard restarts it when the operation ends) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:24:00 [INFO] [bootrecon] "paperless-ngx" is a boot orphan by intent but is HELD (drive /mnt/felhom-drives/adatlemez is not a live mountpoint) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:24:00 [INFO] [bootrecon] Boot reconciliation: nothing to start — 2 app(s) held (absent drive / quiesce / app-data operation): [metube paperless-ngx]
2026/10/24 17:24:00 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:24:10 [INFO] [deadapp] boot grace 15m0s: the host's last boot (2026-10-24T17:20:17Z) followed an UNCLEAN stop (R-856)
2026/10/24 17:24:10 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:24:20 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:24:25 [INFO] [web] Login from 192.168.0.180
2026/10/24 17:24:25 [INFO] [api] start requested for stack: metube
2026/10/24 17:24:25 [INFO] [api] update requested for stack: metube
2026/10/24 17:24:30 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:24:40 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:24:40 [INFO] [scheduler] Running job: agent-channel-health
2026/10/24 17:24:41 [INFO] [scheduler] Job agent-channel-health completed (took 525ms)
2026/10/24 17:24:50 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:25:00 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:25:01 [INFO] [gate] boot 1792862417-19114: live bind confirmed — recreating drive-backed app metube (state=stopped) onto /mnt/felhom-drives/adatlemez
2026/10/24 17:25:01 [WARN] [settings] restore hold SET for metube — the app stays stopped until it is cleared
2026/10/24 17:25:01 [INFO] [settings] Settings saved
2026/10/24 17:25:01 [ERROR] [appstop] metube: the interrupted restore could NOT be put back (reading the restore copy's journal: open /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z/undo.json: no such file or directory) — the app is HELD for support, the copy stays at /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T171928Z (R-1251 H2)
2026/10/24 17:25:01 [INFO] [gate] boot 1792862417-19114: live bind confirmed — recreating drive-backed app paperless-ngx (state=degraded) onto /mnt/felhom-drives/adatlemez
2026/10/24 17:25:01 [INFO] [stacks] Stopping stack: paperless-ngx
2026/10/24 17:25:02 [INFO] [stacks] Stack paperless-ngx stopped successfully (took 0.5s)
2026/10/24 17:25:02 [INFO] [stacks] Status refresh: 6 containers across 68 stacks
2026/10/24 17:25:02 [INFO] [stacks] Starting stack: paperless-ngx
2026/10/24 17:25:10 [INFO] [fillwatch] checked 3 filesystem(s), 0 unreadable/skipped, 0 notification(s); bands: all ok
2026/10/24 17:25:10 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:25:13 [INFO] [stacks] Stack paperless-ngx started successfully (took 11.4s)
2026/10/24 17:25:14 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:25:14 [INFO] [gate] boot 1792862417-19114: re-syncing FileBrowser mounts against the live binds
2026/10/24 17:25:14 [INFO] [settings] Settings saved
2026/10/24 17:25:14 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_a not mounted — skipping userdata skeleton
2026/10/24 17:25:14 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_b not mounted — skipping userdata skeleton
2026/10/24 17:25:14 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_c not mounted — skipping userdata skeleton
2026/10/24 17:25:14 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_d not mounted — skipping userdata skeleton
2026/10/24 17:25:14 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:25:14 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/10/24 17:25:14 [INFO] [web] FileBrowser mounts synced (recreated) — 5 storage path(s), config updated
2026/10/24 17:25:17 [INFO] [stacks] Stack paperless-ngx post-start status:
2026/10/24 17:25:17 [INFO] [stacks] paperless-postgres postgres:18-alpine@sha256:77f585114c32fbca283dc835b0596f4e52b51b4c6662d7810b2f4084f60a1873 running Up 14 seconds (healthy)
2026/10/24 17:25:17 [INFO] [stacks] paperless-redis redis:7-alpine@sha256:858f009f9709ce576febc734aa78b8f6d624b82571f9ddb6bda4377c833b3499 running Up 14 seconds (healthy)
2026/10/24 17:25:17 [INFO] [stacks] paperless-webserver ghcr.io/paperless-ngx/paperless-ngx:2.20.15@sha256:6c86cad803970ea782683a8e80e7403444c5bf3cf70de63b4d3c8e87500db92f running Up 3 seconds (health: starting)
2026/10/24 17:25:17 [INFO] [infra] filebrowser: default login refused for this run — joined traefik-public, files.<domain> served (R-1126)
2026/10/24 17:25:20 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:25:30 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:25:40 [INFO] [scheduler] Running job: stack-scan
2026/10/24 17:25:40 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:25:40 [INFO] [scheduler] Running job: agent-channel-health
2026/10/24 17:25:41 [INFO] [stacks] ScanStacks complete: 68 stacks found (4 deployed, 64 available)
2026/10/24 17:25:41 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:25:41 [INFO] [scheduler] Job stack-scan completed (took 251ms)
2026/10/24 17:25:41 [INFO] [scheduler] Job agent-channel-health completed (took 594ms)
2026/10/24 17:25:50 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:26:00 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
@@ -0,0 +1,6 @@
{"ok":true,"data":{"removed":"metube","volumes_removed":["metube_metube_state"],"hdd_paths_removed":[],"hdd_paths_preserved":[],"userdata_kept":["/mnt/felhom-drives/adatlemez/userdata/media/metube (8.0K)"],"backup_paths_removed":["/mnt/felhom-drives/adatlemez/backups/primary/metube (1.6G)"],"verified":true},"message":"Stack metube removed"}
200
holds: {'metube': 'restore_mixed'}
/usr/local/bin/felhom-controller
/usr/local/bin/felhom-controller --config /opt/docker/felhom-controller/controller.yaml
@@ -0,0 +1,8 @@
NOW RESTART THE CONTROLLER, or it will keep refusing to start the app:
systemctl restart felhom-controller-bootstrap.service
Check the app's data first — the undo copies are in its unit's db-dumps dir.
gitea.dooplex.hu/admin/felhom-controller:0.343.0-dev.r1251b Up 25 seconds (healthy)
holds: {}
offsite-proof
primary
secondary
@@ -0,0 +1,17 @@
{"ok":true,"message":"Telepítés elindítva – az állapot a kártyán követhető"}
202
metube Up 6 seconds (healthy)
3e1ec80f99e09173
total 12
drwxrwsr-x 2 1000 1000 4096 Oct 24 17:16 .
drwxrwsr-x 16 root 1000 4096 Oct 13 19:26 ..
-rw-r--r-- 1 1000 1000 53 Oct 24 17:16 r1251-household-video.txt
{"ok":true,"message":"Mentés elindítva"}
200
2026/10/24 17:41:33 [INFO] [stacks] Stack metube started successfully (took 0.7s)
2026/10/24 17:41:36 [INFO] [stacks] Stack metube post-start status:
2026/10/24 17:41:36 [INFO] [stacks] metube ghcr.io/alexta69/metube:2026.09.29@sha256:8e2fe9beeefc55a02f6e1d04cad0fc3c22e8f067d309188f016551dc99ec27b3 running Up 3 seconds (health: starting)
2026/10/24 17:41:59 [INFO] [backup] Recovery unit captured for metube → /mnt/felhom-drives/adatlemez/backups/primary/metube (images=1, secrets-referenced=0, data_keys=0, portable-carried=0/0, withheld=0)
gen2 — the household newest, after the backup (2026-10-24T17:42:05Z)
@@ -0,0 +1,10 @@
2026/10/24 17:42:16 [WARN] [web] Restore requested (async): stack=metube, snapshot=helyi from 172.18.0.4:34112
2026/10/24 17:42:16 [INFO] [backup] Restoring metube from recovery unit /mnt/felhom-drives/adatlemez/backups/primary/metube: images=1, secrets recovered=0/0, data_keys=0
2026/10/24 17:42:17 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:42:17 [INFO] [stacks] Stopping stack: metube
2026/10/24 17:42:18 [INFO] [stacks] Stack metube stopped successfully (took 0.6s)
2026/10/24 17:42:18 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:42:27 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:42:37 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:42:38 [INFO] [offbox] metube: the live volumes are copied before the restore (1 copied, 0 new from the snapshot) in 20.001s — /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z (R-893)
2026/10/24 17:42:38 [INFO] [backup] metube: the restore copy is recorded — a power cut from here on puts the app back on start (R-1195)
@@ -0,0 +1 @@
CUT: line seen 2026-10-24T17:42:38.379Z, qm stop returned 2026-10-24T17:42:40.608Z
@@ -0,0 +1,6 @@
status: stopped
update VM 341: -delete scsi1
scsi0: nvme-scratch:341/vm-341-disk-1.raw,size=200G
scsihw: virtio-scsi-single
unused0: nvme-scratch:341/vm-341-disk-2.raw
17:42:47
@@ -0,0 +1,19 @@
2026/10/24 17:47:24 [WARN] [appstop] crash recovery: a local restore (op "unit-restore:metube") was interrupted and left 1 app(s) stopped — restarting them: [metube]
2026/10/24 17:47:24 [WARN] [appstop] crash recovery: metube's restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z cannot be reached yet (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z: no such file or directory) — NOT starting it; the put-back waits for its drive
2026/10/24 17:47:24 [WARN] [settings] restore hold SET for metube — the app stays stopped until it is cleared
2026/10/24 17:47:24 [WARN] [appstop] metube: the cut restore's copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z is on a drive that is not bound — the app is HELD until the copy is put back (R-1251)
2026/10/24 17:47:24 [WARN] [appstop] crash recovery: 1 app(s) were deliberately NOT restarted (drive absent: []; put-back waiting for its drive: [metube]) — KEEPING the marker; this is the gate working, not a fault
2026/10/24 17:47:24 [INFO] [appstop] metube: the restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z is still not reachable (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z: no such file or directory) — the app stays held until its drive is bound
2026/10/24 17:47:24 [WARN] [backup] restore of metube (restore, started 2026-10-24T17:42:16Z) was INTERRUPTED by a controller stop — recorded as failed; the household is told to run it again
2026/10/24 17:47:24 [WARN] [appstop] a local restore was interrupted by a controller restart — 1 app(s) are HELD until their data drive is bound: the copy taken before the change is on it and is put back first — not alarming: op=unit-restore:metube reason=unit_restore started_at=2026-10-24T17:42:17Z restarted=[] put_back_waiting_for_drive=[metube]
2026/10/24 17:47:24 [INFO] [report] hub wait channel active (hold ≤240s)
2026/10/24 17:47:24 [INFO] Event pushed: restore_interrupted (warning) [hu-only] — metube: A visszaállítás félbeszakadt (áramszünet). Az alkalmazás nem indul el, amíg a meghajtója vissza nem tér: akkor a doboz visszateszi a visszaállítás előtti adatait, és elindítja. Ne indítsd újra a visszaállítást, mert az a mentést tölti vissza az adataid helyére.
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:47:39 [INFO] [bootrecon] boot window: fleet settled after 10s (3 identical samples 5s apart) — sweeping
2026/10/24 17:47:39 [INFO] [bootrecon] "metube" is a boot orphan by intent but is HELD (an app-data operation is holding it — the app-stop guard restarts it when the operation ends) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:47:39 [INFO] [bootrecon] "paperless-ngx" is a boot orphan by intent but is HELD (drive /mnt/felhom-drives/adatlemez is not a live mountpoint) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:47:39 [INFO] [bootrecon] Boot reconciliation: nothing to start — 2 app(s) held (absent drive / quiesce / app-data operation): [metube paperless-ngx]
---
drive NOT bound
holds: {'metube': 'putback_pending'}
@@ -0,0 +1,3 @@
{"ok":false,"data":{"reason":"held"},"error":"A(z) metube visszaállítása megszakadt. A visszaállítás előtti adatai egy meghajtón vannak, amely most nem érhető el. Amikor a meghajtó újra elérhető, a doboz visszateszi ezeket az adatokat, és elindítja az alkalmazást. Addig az alkalmazás nem indul el."}
409
@@ -0,0 +1,146 @@
2026/10/24 17:47:23 [INFO] local-api: channel up (agent 169.254.253.1:8443) — guest 9201, 3 mount(s) visible
2026/10/24 17:47:23 [INFO] local-api: mount mp8 → /mnt/felhom-drives (storage=/mnt/felhom-drives, class=, backup=false)
2026/10/24 17:47:23 [INFO] local-api: mount mp9 → /etc/felhom-bootstrap (storage=/var/lib/felhom-agent/guests/9201/bootstrap, class=, backup=false)
2026/10/24 17:47:23 [INFO] local-api: mount mp0 → /var/lib/felhom (storage=local-lvm, class=, backup=true)
2026/10/24 17:47:23 [INFO] felhom-controller 0.343.0-dev.r1251b starting (customer: tester-1, domain: enkicsifelhom.hu)
2026/10/24 17:47:23 [INFO] [settings] Loaded settings from /opt/docker/felhom-controller/data/settings.json
2026/10/24 17:47:23 [INFO] Encryption key loaded from /opt/docker/felhom-controller/data/encryption.key
2026/10/24 17:47:23 [INFO] [stacks] Using compose command: docker compose
2026/10/24 17:47:24 [INFO] [stacks] ScanStacks complete: 68 stacks found (4 deployed, 64 available)
2026/10/24 17:47:24 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:47:24 [INFO] [stacks] InjectMissingFields: processed 4 stacks
2026/10/24 17:47:24 [INFO] [stacks] Encryption migration: no stacks needed migration
2026/10/24 17:47:24 [INFO] [quiesce] loop started (poll 5m0s, max-quiesce 30m0s)
2026/10/24 17:47:24 [WARN] [appstop] crash recovery: a local restore (op "unit-restore:metube") was interrupted and left 1 app(s) stopped — restarting them: [metube]
2026/10/24 17:47:24 [WARN] [appstop] crash recovery: metube's restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z cannot be reached yet (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z: no such file or directory) — NOT starting it; the put-back waits for its drive
2026/10/24 17:47:24 [WARN] [settings] restore hold SET for metube — the app stays stopped until it is cleared
2026/10/24 17:47:24 [INFO] [settings] Settings saved
2026/10/24 17:47:24 [WARN] [appstop] metube: the cut restore's copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z is on a drive that is not bound — the app is HELD until the copy is put back (R-1251)
2026/10/24 17:47:24 [WARN] [appstop] crash recovery: 1 app(s) were deliberately NOT restarted (drive absent: []; put-back waiting for its drive: [metube]) — KEEPING the marker; this is the gate working, not a fault
2026/10/24 17:47:24 [INFO] [appstop] metube: the restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z is still not reachable (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z: no such file or directory) — the app stays held until its drive is bound
2026/10/24 17:47:24 [INFO] [stacks] desired-state backfill: 0 app(s) recorded as running, 0 left unrecorded (state ambiguous — legacy boot behaviour retained)
2026/10/24 17:47:24 [INFO] [stacks] installed-images backfill: 0 app(s) recorded, 4 already had a record, 0 left unrecorded (could not be observed completely — unknown, which renders nothing)
2026/10/24 17:47:24 [INFO] [stacks] pin adoption: 0 pinned, 4 already pinned, 0 left unpinned (0 not completely observed, 0 running something the template no longer offers)
2026/10/24 17:47:24 [INFO] [stacks] applied-meta backfill (R-646): recorded 0 []; skipped 0 [] — not current with the catalog, their pinned version's .felhom.yml is no longer on the box
2026/10/24 17:47:24 [INFO] [sync] Starting catalog sync (repo: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git, interval: 15m0s)
2026/10/24 17:47:24 [INFO] [sync] Starting catalog sync
2026/10/24 17:47:24 [INFO] Metrics store opened at /opt/docker/felhom-controller/data/metrics.db
2026/10/24 17:47:24 [INFO] Metrics collector started (60s interval)
2026/10/24 17:47:24 [INFO] [sync] Pulling latest from https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git (branch: main)
2026/10/24 17:47:24 [INFO] [tier2] start-up: no leftover second-drive copy container
2026/10/24 17:47:24 [WARN] [backup] restore of metube (restore, started 2026-10-24T17:42:16Z) was INTERRUPTED by a controller stop — recorded as failed; the household is told to run it again
2026/10/24 17:47:24 [INFO] [backup] restore record wired: /opt/docker/felhom-controller/data/restore-status.json (interrupted at startup: true)
2026/10/24 17:47:24 [INFO] [backup] app-data run record wired: /opt/docker/felhom-controller/data/appdata-run.json (an earlier cut still shown: false)
2026/10/24 17:47:24 [INFO] Notifier enabled (hub: https://hub.felhom.eu)
2026/10/24 17:47:24 [INFO] [upwatch] the host's weekly line test: 94.3 Mbit/s (measured 2026-10-24T08:00:58Z)
2026/10/24 17:47:24 [INFO] [upwatch] upload and CPU watch started (line 94 Mbit/s, qBittorrent share 50 %)
2026/10/24 17:47:24 [WARN] [appstop] a local restore was interrupted by a controller restart — 1 app(s) are HELD until their data drive is bound: the copy taken before the change is on it and is put back first — not alarming: op=unit-restore:metube reason=unit_restore started_at=2026-10-24T17:42:17Z restarted=[] put_back_waiting_for_drive=[metube]
2026/10/24 17:47:24 [INFO] Self-update enabled (check every 6h, auto-update: false, auto-update time: 04:30)
2026/10/24 17:47:24 [INFO] [offsite-apply] settle-gate: awaiting floor knowledge (first report ACK) before offsite apply
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: status-refresh (every 10s)
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: stack-scan (every 2m0s)
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: docker-socket-watch (every 15s)
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: docker-socket-users (every 5m0s)
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: health-probes (every 10s)
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: system-health (every 5m0s)
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: after-unclean-boot (every 30s)
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: deadapp-check (every 30s)
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: ring-spill (every 30s)
2026/10/24 17:47:24 [INFO] [scheduler] Daily job db-dump scheduled for 2026-10-25 02:30 CET
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: offsite-credential-retry (every 5m0s)
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: backup-cache (every 5m0s)
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: conversion-copy-release (every 1h0m0s)
2026/10/24 17:47:24 [INFO] [scheduler] Daily job tier2-backup scheduled for 2026-10-25 03:30 CET
2026/10/24 17:47:24 [INFO] [scheduler] Daily job offbox-backup scheduled for 2026-10-25 04:15 CET
2026/10/24 17:47:24 [INFO] [catch-up] controller start: no backup leg missed its last scheduled time — nothing to make up
2026/10/24 17:47:24 [INFO] [scheduler] Daily job offsite-abandon-sweep scheduled for 2026-10-25 05:10 CET
2026/10/24 17:47:24 [INFO] [scheduler] Daily job offsite-integrity scheduled for 2026-10-25 06:00 CET
2026/10/24 17:47:24 [INFO] [scheduler] Daily job offsite-proof scheduled for 2026-10-25 05:30 CET
2026/10/24 17:47:24 [INFO] [scheduler] Daily job metrics-prune scheduled for 2026-10-25 04:00 CET
2026/10/24 17:47:24 [INFO] [scheduler] Daily job fill-watch scheduled for 2026-10-25 03:30 CET
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: fill-watch-interval (every 10m0s)
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: hub-report (every 15m0s)
2026/10/24 17:47:24 [INFO] Hub reporting enabled (every 15m0s to https://hub.felhom.eu)
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: selfupdate-check (every 6h0m0s)
2026/10/24 17:47:24 [INFO] ========== Startup Self-Test ==========
2026/10/24 17:47:24 [INFO] [PASS] Docker socket: reachable (v29.8.2)
2026/10/24 17:47:24 [INFO] [PASS] Stacks directory: /opt/docker/stacks
2026/10/24 17:47:24 [INFO] [PASS] Data directory: /opt/docker/felhom-controller/data (writable)
2026/10/24 17:47:24 [INFO] [PASS] System data path: /mnt/sys_drive
2026/10/24 17:47:24 [INFO] [WARN] Storage paths: 0 connected, 1 disconnected
2026/10/24 17:47:24 [INFO] [PASS] Git catalog: 65 app definitions found
2026/10/24 17:47:24 [INFO] [PASS] Hub connectivity: https://hub.felhom.eu reachable (HTTP 200)
2026/10/24 17:47:24 [INFO] [PASS] Metrics DB: 34.2 MB
2026/10/24 17:47:24 [INFO] ========================================
2026/10/24 17:47:24 [INFO] Self-test complete: 7 passed, 1 warnings, 0 failed
2026/10/24 17:47:24 [INFO] [scheduler] Starting scheduler with 23 jobs
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: geo-verify (every 6h0m0s)
2026/10/24 17:47:24 [INFO] Geo-restriction support enabled (CF API token configured)
2026/10/24 17:47:24 [INFO] [report] hub wait channel active (hold ≤240s)
2026/10/24 17:47:24 [INFO] [infra] connected felhom-controller to traefik-public
2026/10/24 17:47:24 [INFO] [backup] Found 1 DB dump files across drives
2026/10/24 17:47:24 [INFO] Event pushed: restore_interrupted (warning) [hu-only] — metube: A visszaállítás félbeszakadt (áramszünet). Az alkalmazás nem indul el, amíg a meghajtója vissza nem tér: akkor a doboz visszateszi a visszaállítás előtti adatait, és elindítja. Ne indítsd újra a visszaállítást, mert az a mentést tölti vissza az adataid helyére.
2026/10/24 17:47:24 [INFO] [web] sessions: restored 8 dashboard session(s) from disk (dropped 0 expired, 0 malformed)
2026/10/24 17:47:24 [INFO] [web] Auth: using password from settings.json
2026/10/24 17:47:24 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/adatlemez not mounted — skipping userdata skeleton
2026/10/24 17:47:24 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_a not mounted — skipping userdata skeleton
2026/10/24 17:47:24 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_b not mounted — skipping userdata skeleton
2026/10/24 17:47:24 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_c not mounted — skipping userdata skeleton
2026/10/24 17:47:24 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_d not mounted — skipping userdata skeleton
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: disk-health-check (every 1h0m0s)
2026/10/24 17:47:24 [INFO] [scheduler] Registered periodic job: agent-channel-health (every 1m0s)
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/10/24 17:47:24 [INFO] Web UI listening on :8080
2026/10/24 17:47:24 [INFO] [backup] Discovered 2 databases
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:47:24 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:47:24 [INFO] [backup] Discovered app data: 4 apps
2026/10/24 17:47:24 [INFO] [backup] Backup status cache refreshed
2026/10/24 17:47:24 [INFO] [infra] filebrowser compose exists — starting without regenerating
2026/10/24 17:47:24 [INFO] [monitor] Health check: status=fail
2026/10/24 17:47:25 [ERROR] [stacks] Command failed: docker compose up -d (in /opt/docker/stacks/filebrowser) — exit code 1 (took 0.2s)
2026/10/24 17:47:25 [ERROR] [stacks] stderr (last part): ...emon: Conflict. The container name "/fb851f608269_filebrowser" is already in use by container "41f9f100523ff03118e131221dad8a11cab19f8fd4c4ba899e419d9ac9cf4722". You have to remove (or rename) that container to be able to reuse that name.
Error response from daemon: Conflict. The container name "/fb851f608269_filebrowser" is already in use by container "41f9f100523ff03118e131221dad8a11cab19f8fd4c4ba899e419d9ac9cf4722". You have to remove (or rename) that container to be able to reuse that name.
2026/10/24 17:47:25 [WARN] [infra] first-boot base-stack bring-up: base-infra bring-up: filebrowser: compose up: : exit code 1
stderr: ...emon: Conflict. The container name "/fb851f608269_filebrowser" is already in use by container "41f9f100523ff03118e131221dad8a11cab19f8fd4c4ba899e419d9ac9cf4722". You have to remove (or rename) that container to be able to reuse that name.
Error response from daemon: Conflict. The container name "/fb851f608269_filebrowser" is already in use by container "41f9f100523ff03118e131221dad8a11cab19f8fd4c4ba899e419d9ac9cf4722". You have to remove (or rename) that container to be able to reuse that name.
2026/10/24 17:47:25 [INFO] [sync] Catalog sync complete
2026/10/24 17:47:25 [INFO] [sync] Initial sync: Sablonok naprakészek — nincs változás
2026/10/24 17:47:25 [INFO] [gate] boot 1792863842-19140: waiting (≤2m0s) for live drive bind(s) [/mnt/felhom-drives/adatlemez] before recreating drive-backed apps
2026/10/24 17:47:25 [INFO] [web] FileBrowser mounts synced (recreated) — 5 storage path(s), config updated
2026/10/24 17:47:25 [INFO] [infra] connected felhom-controller to felhom-filebrowser (the FileBrowser default-login check, R-1126)
2026/10/24 17:47:29 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:47:29 [INFO] [report] Building system report
2026/10/24 17:47:29 [INFO] Event pushed: controller_started (info) [hu-only] — Controller elindult (0.343.0-dev.r1251b)
2026/10/24 17:47:29 [INFO] [infra] filebrowser: default login refused for this run — joined traefik-public, files.<domain> served (R-1126)
2026/10/24 17:47:30 [INFO] [monitor] Health check: status=warn
2026/10/24 17:47:31 [INFO] [report] Hub report pushed successfully (13681 bytes)
2026/10/24 17:47:31 [INFO] [settings] Settings saved
2026/10/24 17:47:31 [INFO] Startup hub report sent
2026/10/24 17:47:34 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:47:34 [INFO] [offsite-apply] settle-gate: GO — at/above floor 0.342.0 (we are 0.343.0-dev.r1251b), no managed update running
2026/10/24 17:47:34 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:47:34 [INFO] Health probes: 2 ok (of 2 probed)
2026/10/24 17:47:39 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:47:39 [INFO] [bootrecon] boot window: fleet settled after 10s (3 identical samples 5s apart) — sweeping
2026/10/24 17:47:39 [INFO] [bootrecon] "metube" is a boot orphan by intent but is HELD (an app-data operation is holding it — the app-stop guard restarts it when the operation ends) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:47:39 [INFO] [bootrecon] "paperless-ngx" is a boot orphan by intent but is HELD (drive /mnt/felhom-drives/adatlemez is not a live mountpoint) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:47:39 [INFO] [bootrecon] Boot reconciliation: nothing to start — 2 app(s) held (absent drive / quiesce / app-data operation): [metube paperless-ngx]
2026/10/24 17:47:44 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:47:54 [INFO] [deadapp] boot grace 15m0s: the host's last boot (2026-10-24T17:44:02Z) followed an UNCLEAN stop (R-856)
2026/10/24 17:47:54 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:48:04 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:48:14 [INFO] [stacks] Status refresh: 9 containers across 68 stacks
2026/10/24 17:48:14 [INFO] [web] Login from 192.168.0.180
2026/10/24 17:48:15 [INFO] [api] start requested for stack: metube
@@ -0,0 +1,5 @@
update VM 341: -scsi1 nvme-scratch:341/vm-341-disk-2.raw
scsi0: nvme-scratch:341/vm-341-disk-1.raw,size=200G
scsi1: nvme-scratch:341/vm-341-disk-2.raw,size=50G
scsihw: virtio-scsi-single
17:48:30
@@ -0,0 +1,49 @@
2026/10/24 17:47:24 [WARN] [appstop] crash recovery: a local restore (op "unit-restore:metube") was interrupted and left 1 app(s) stopped — restarting them: [metube]
2026/10/24 17:47:24 [WARN] [appstop] crash recovery: metube's restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z cannot be reached yet (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z: no such file or directory) — NOT starting it; the put-back waits for its drive
2026/10/24 17:47:24 [WARN] [settings] restore hold SET for metube — the app stays stopped until it is cleared
2026/10/24 17:47:24 [WARN] [appstop] metube: the cut restore's copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z is on a drive that is not bound — the app is HELD until the copy is put back (R-1251)
2026/10/24 17:47:24 [WARN] [appstop] crash recovery: 1 app(s) were deliberately NOT restarted (drive absent: []; put-back waiting for its drive: [metube]) — KEEPING the marker; this is the gate working, not a fault
2026/10/24 17:47:24 [INFO] [appstop] metube: the restore copy /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z is still not reachable (stat /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z: no such file or directory) — the app stays held until its drive is bound
2026/10/24 17:47:24 [WARN] [backup] restore of metube (restore, started 2026-10-24T17:42:16Z) was INTERRUPTED by a controller stop — recorded as failed; the household is told to run it again
2026/10/24 17:47:24 [WARN] [appstop] a local restore was interrupted by a controller restart — 1 app(s) are HELD until their data drive is bound: the copy taken before the change is on it and is put back first — not alarming: op=unit-restore:metube reason=unit_restore started_at=2026-10-24T17:42:17Z restarted=[] put_back_waiting_for_drive=[metube]
2026/10/24 17:47:24 [INFO] [report] hub wait channel active (hold ≤240s)
2026/10/24 17:47:24 [INFO] Event pushed: restore_interrupted (warning) [hu-only] — metube: A visszaállítás félbeszakadt (áramszünet). Az alkalmazás nem indul el, amíg a meghajtója vissza nem tér: akkor a doboz visszateszi a visszaállítás előtti adatait, és elindítja. Ne indítsd újra a visszaállítást, mert az a mentést tölti vissza az adataid helyére.
2026/10/24 17:47:25 [INFO] [gate] boot 1792863842-19140: waiting (≤2m0s) for live drive bind(s) [/mnt/felhom-drives/adatlemez] before recreating drive-backed apps
2026/10/24 17:47:39 [INFO] [bootrecon] "metube" is a boot orphan by intent but is HELD (an app-data operation is holding it — the app-stop guard restarts it when the operation ends) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:47:39 [INFO] [bootrecon] "paperless-ngx" is a boot orphan by intent but is HELD (drive /mnt/felhom-drives/adatlemez is not a live mountpoint) — NOT starting it; whatever is holding it owns its recovery
2026/10/24 17:47:39 [INFO] [bootrecon] Boot reconciliation: nothing to start — 2 app(s) held (absent drive / quiesce / app-data operation): [metube paperless-ngx]
2026/10/24 17:48:15 [INFO] [api] start requested for stack: metube
2026/10/24 17:48:47 [INFO] [gate] boot 1792863842-19140: live bind confirmed — recreating drive-backed app metube (state=stopped) onto /mnt/felhom-drives/adatlemez
2026/10/24 17:48:47 [INFO] [stacks] Stopping stack: metube
2026/10/24 17:48:47 [INFO] [stacks] Stack metube stopped successfully (took 0.1s)
2026/10/24 17:48:47 [INFO] [backup] Restoring Docker volume metube_metube_state for metube
2026/10/24 17:49:03 [INFO] [backup] Restored 1 Docker volume(s) for metube
2026/10/24 17:49:03 [DEBUG] [stacks] SaveAppConfig: saving /opt/docker/stacks/metube — 3 env vars, 0 encrypted, 0 sensitive fields
2026/10/24 17:49:03 [INFO] [stacks] Redeploying metube from recovery unit with 3 env vars
2026/10/24 17:49:03 [INFO] [stacks] SaveAppConfig: saved config for metube
2026/10/24 17:49:03 [DEBUG] [stacks] SaveAppConfig: saving /opt/docker/stacks/metube — 3 env vars, 0 encrypted, 0 sensitive fields
2026/10/24 17:49:03 [INFO] [stacks] pin metube: metube=ghcr.io/alexta69/metube:2026.09.29
2026/10/24 17:49:03 [INFO] [stacks] SaveAppConfig: saved config for metube
2026/10/24 17:49:03 [WARN] [appstop] metube: the interrupted restore is put back from /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z — 1 volume(s) poured back, 0 removed, definition=true (R-1195)
2026/10/24 17:49:03 [INFO] [settings] restore hold CLEARED for metube
2026/10/24 17:49:03 [WARN] [appstop] metube: the drive is bound — the interrupted restore is put back from /mnt/felhom-drives/adatlemez/backups/restore-undo/metube/20261024T174218Z BEFORE the app starts; its data is as before the restore (R-1251)
2026/10/24 17:49:03 [INFO] [stacks] Stopping stack: metube
---
TARGET SOURCE FSTYPE OPTIONS
/mnt/felhom-drives/adatlemez /dev/sdb[/felhom-data] ext4 rw,relatime
/mnt/felhom-drives/adatlemez /dev/sdb[/felhom-data] ext4 rw,relatime
metube Up 49 seconds (healthy)
gen2 — the household newest, after the backup (2026-10-24T17:42:05Z)
total 1572880
drwxr-xr-x 2 1000 1000 4096 Oct 24 17:48 .
drwx-----x 3 root root 4096 Oct 24 17:48 ..
-rw-r--r-- 1 1000 1000 1610612736 Oct 24 17:40 r1251-ballast.bin
-rw-r--r-- 1 1000 1000 71 Oct 24 17:42 r1251-gen.txt
3e1ec80f99e09173
total 12
drwxrwsr-x 2 1000 1000 4096 Oct 24 17:16 .
drwxrwsr-x 16 root 1000 4096 Oct 13 19:26 ..
-rw-r--r-- 1 1000 1000 53 Oct 24 17:16 r1251-household-video.txt
ls: cannot access '/mnt/felhom-drives/adatlemez/backups/restore-undo/metube': No such file or directory
holds: {}
ls: cannot access '/var/lib/docker/volumes/felhom-controller-data/_data/data/appstop-state.json': No such file or directory
@@ -0,0 +1,4 @@
2026/10/24 17:50:11 [INFO] [report] hub wait channel active (hold ≤240s)
-- after restart:
gen3 — written after the put-back (2026-10-24T17:50:09Z)
metube Up About a minute (healthy)
@@ -0,0 +1,122 @@
2026/10/24 17:50:11 [INFO] local-api: channel up (agent 169.254.253.1:8443) — guest 9201, 3 mount(s) visible
2026/10/24 17:50:11 [INFO] local-api: mount mp8 → /mnt/felhom-drives (storage=/mnt/felhom-drives, class=, backup=false)
2026/10/24 17:50:11 [INFO] local-api: mount mp9 → /etc/felhom-bootstrap (storage=/var/lib/felhom-agent/guests/9201/bootstrap, class=, backup=false)
2026/10/24 17:50:11 [INFO] local-api: mount mp0 → /var/lib/felhom (storage=local-lvm, class=, backup=true)
2026/10/24 17:50:11 [INFO] felhom-controller 0.343.0-dev.r1251b starting (customer: tester-1, domain: enkicsifelhom.hu)
2026/10/24 17:50:11 [INFO] [settings] Loaded settings from /opt/docker/felhom-controller/data/settings.json
2026/10/24 17:50:11 [INFO] Encryption key loaded from /opt/docker/felhom-controller/data/encryption.key
2026/10/24 17:50:11 [INFO] [stacks] Using compose command: docker compose
2026/10/24 17:50:11 [INFO] [stacks] ScanStacks complete: 68 stacks found (4 deployed, 64 available)
2026/10/24 17:50:11 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:50:11 [INFO] [stacks] InjectMissingFields: processed 4 stacks
2026/10/24 17:50:11 [INFO] [stacks] Encryption migration: no stacks needed migration
2026/10/24 17:50:11 [INFO] [quiesce] loop started (poll 5m0s, max-quiesce 30m0s)
2026/10/24 17:50:11 [INFO] [stacks] desired-state backfill: 0 app(s) recorded as running, 0 left unrecorded (state ambiguous — legacy boot behaviour retained)
2026/10/24 17:50:11 [INFO] [stacks] installed-images backfill: 0 app(s) recorded, 4 already had a record, 0 left unrecorded (could not be observed completely — unknown, which renders nothing)
2026/10/24 17:50:11 [INFO] [stacks] pin adoption: 0 pinned, 4 already pinned, 0 left unpinned (0 not completely observed, 0 running something the template no longer offers)
2026/10/24 17:50:11 [INFO] [stacks] applied-meta backfill (R-646): recorded 0 []; skipped 0 [] — not current with the catalog, their pinned version's .felhom.yml is no longer on the box
2026/10/24 17:50:11 [INFO] [sync] Starting catalog sync (repo: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git, interval: 15m0s)
2026/10/24 17:50:11 [INFO] [sync] Starting catalog sync
2026/10/24 17:50:11 [INFO] [sync] Pulling latest from https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git (branch: main)
2026/10/24 17:50:11 [INFO] Metrics store opened at /opt/docker/felhom-controller/data/metrics.db
2026/10/24 17:50:11 [INFO] Metrics collector started (60s interval)
2026/10/24 17:50:11 [INFO] [tier2] start-up: no leftover second-drive copy container
2026/10/24 17:50:11 [INFO] [backup] restore record loaded: 1 interrupted restore notice(s) still shown
2026/10/24 17:50:11 [INFO] [backup] restore record wired: /opt/docker/felhom-controller/data/restore-status.json (interrupted at startup: false)
2026/10/24 17:50:11 [INFO] [backup] app-data run record wired: /opt/docker/felhom-controller/data/appdata-run.json (an earlier cut still shown: false)
2026/10/24 17:50:11 [INFO] Notifier enabled (hub: https://hub.felhom.eu)
2026/10/24 17:50:11 [INFO] [upwatch] the host's weekly line test: 94.3 Mbit/s (measured 2026-10-24T08:00:58Z)
2026/10/24 17:50:11 [INFO] [upwatch] upload and CPU watch started (line 94 Mbit/s, qBittorrent share 50 %)
2026/10/24 17:50:11 [INFO] Self-update enabled (check every 6h, auto-update: false, auto-update time: 04:30)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: status-refresh (every 10s)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: stack-scan (every 2m0s)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: docker-socket-watch (every 15s)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: docker-socket-users (every 5m0s)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: health-probes (every 10s)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: system-health (every 5m0s)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: after-unclean-boot (every 30s)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: deadapp-check (every 30s)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: ring-spill (every 30s)
2026/10/24 17:50:11 [INFO] [offsite-apply] settle-gate: awaiting floor knowledge (first report ACK) before offsite apply
2026/10/24 17:50:11 [INFO] [scheduler] Daily job db-dump scheduled for 2026-10-25 02:30 CET
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: offsite-credential-retry (every 5m0s)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: backup-cache (every 5m0s)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: conversion-copy-release (every 1h0m0s)
2026/10/24 17:50:11 [INFO] [scheduler] Daily job tier2-backup scheduled for 2026-10-25 03:30 CET
2026/10/24 17:50:11 [INFO] [scheduler] Daily job offbox-backup scheduled for 2026-10-25 04:15 CET
2026/10/24 17:50:11 [INFO] [catch-up] controller start: no backup leg missed its last scheduled time — nothing to make up
2026/10/24 17:50:11 [INFO] [scheduler] Daily job offsite-abandon-sweep scheduled for 2026-10-25 05:10 CET
2026/10/24 17:50:11 [INFO] [scheduler] Daily job offsite-integrity scheduled for 2026-10-25 06:00 CET
2026/10/24 17:50:11 [INFO] [scheduler] Daily job offsite-proof scheduled for 2026-10-25 05:30 CET
2026/10/24 17:50:11 [INFO] [scheduler] Daily job metrics-prune scheduled for 2026-10-25 04:00 CET
2026/10/24 17:50:11 [INFO] [scheduler] Daily job fill-watch scheduled for 2026-10-25 03:30 CET
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: fill-watch-interval (every 10m0s)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: hub-report (every 15m0s)
2026/10/24 17:50:11 [INFO] Hub reporting enabled (every 15m0s to https://hub.felhom.eu)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: selfupdate-check (every 6h0m0s)
2026/10/24 17:50:11 [INFO] ========== Startup Self-Test ==========
2026/10/24 17:50:11 [INFO] [PASS] Docker socket: reachable (v29.8.2)
2026/10/24 17:50:11 [INFO] [PASS] Stacks directory: /opt/docker/stacks
2026/10/24 17:50:11 [INFO] [PASS] Data directory: /opt/docker/felhom-controller/data (writable)
2026/10/24 17:50:11 [INFO] [PASS] System data path: /mnt/sys_drive
2026/10/24 17:50:11 [INFO] [PASS] Storage paths: 1 connected, 0 disconnected
2026/10/24 17:50:11 [INFO] [PASS] Git catalog: 65 app definitions found
2026/10/24 17:50:11 [INFO] [PASS] Hub connectivity: https://hub.felhom.eu reachable (HTTP 200)
2026/10/24 17:50:11 [INFO] [PASS] Metrics DB: 34.2 MB
2026/10/24 17:50:11 [INFO] ========================================
2026/10/24 17:50:11 [INFO] Self-test complete: 8 passed, 0 warnings, 0 failed
2026/10/24 17:50:11 [INFO] [scheduler] Starting scheduler with 23 jobs
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: geo-verify (every 6h0m0s)
2026/10/24 17:50:11 [INFO] Geo-restriction support enabled (CF API token configured)
2026/10/24 17:50:11 [INFO] [report] hub wait channel active (hold ≤240s)
2026/10/24 17:50:11 [INFO] [backup] Found 2 DB dump files across drives
2026/10/24 17:50:11 [INFO] [infra] connected felhom-controller to traefik-public
2026/10/24 17:50:11 [INFO] [web] sessions: restored 9 dashboard session(s) from disk (dropped 0 expired, 0 malformed)
2026/10/24 17:50:11 [INFO] [web] Auth: using password from settings.json
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: disk-health-check (every 1h0m0s)
2026/10/24 17:50:11 [INFO] [scheduler] Registered periodic job: agent-channel-health (every 1m0s)
2026/10/24 17:50:11 [INFO] Web UI listening on :8080
2026/10/24 17:50:11 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_a not mounted — skipping userdata skeleton
2026/10/24 17:50:11 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_b not mounted — skipping userdata skeleton
2026/10/24 17:50:11 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_c not mounted — skipping userdata skeleton
2026/10/24 17:50:11 [INFO] [web] FileBrowser: drive /mnt/felhom-drives/media_d not mounted — skipping userdata skeleton
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/10/24 17:50:11 [INFO] [backup] Discovered 2 databases
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/metube/docker-compose.yml
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:50:11 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/10/24 17:50:11 [INFO] [backup] Discovered app data: 4 apps
2026/10/24 17:50:11 [INFO] [backup] Backup status cache refreshed
2026/10/24 17:50:11 [INFO] [web] FileBrowser sync — no config/compose change, ensured running without recreate (5 storage path(s))
2026/10/24 17:50:11 [INFO] [monitor] Health check: status=ok
2026/10/24 17:50:12 [INFO] [infra] connected felhom-controller to felhom-filebrowser (the FileBrowser default-login check, R-1126)
2026/10/24 17:50:12 [INFO] [sync] Catalog sync complete
2026/10/24 17:50:12 [INFO] [sync] Initial sync: Sablonok naprakészek — nincs változás
2026/10/24 17:50:16 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:50:16 [INFO] [report] Building system report
2026/10/24 17:50:16 [INFO] Event pushed: controller_started (info) [hu-only] — Controller elindult (0.343.0-dev.r1251b)
2026/10/24 17:50:17 [INFO] [monitor] Health check: status=ok
2026/10/24 17:50:18 [INFO] [report] Hub report pushed successfully (7568 bytes)
2026/10/24 17:50:18 [INFO] [settings] Settings saved
2026/10/24 17:50:18 [INFO] Startup hub report sent
2026/10/24 17:50:21 [INFO] [offsite-apply] settle-gate: GO — at/above floor 0.342.0 (we are 0.343.0-dev.r1251b), no managed update running
2026/10/24 17:50:21 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:50:21 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:50:21 [INFO] Health probes: 4 ok (of 4 probed)
2026/10/24 17:50:26 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:50:26 [INFO] [bootrecon] boot window: fleet settled after 10s (3 identical samples 5s apart) — sweeping
2026/10/24 17:50:26 [INFO] [bootrecon] Boot reconciliation: no boot-orphaned apps (nothing to start)
2026/10/24 17:50:31 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:50:41 [INFO] [deadapp] boot grace 15m0s: the host's last boot (2026-10-24T17:44:02Z) followed an UNCLEAN stop (R-856)
2026/10/24 17:50:41 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
2026/10/24 17:50:51 [INFO] [stacks] Status refresh: 10 containers across 68 stacks
@@ -0,0 +1,20 @@
Oct 24 19:46:44 felhom felhom-agent[1146]: time=2026-10-24T19:46:44.625+02:00 level=INFO msg="storage: enrolled drive absent by UUID — not re-asserting (will retry when it enumerates)" name=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2 where=/mnt/adatlemez uuid=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
Oct 24 19:47:04 felhom felhom-agent[1146]: time=2026-10-24T19:47:04.625+02:00 level=INFO msg="storage: enrolled drive absent by UUID — not re-asserting (will retry when it enumerates)" name=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2 where=/mnt/adatlemez uuid=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
Oct 24 19:47:22 felhom felhom-agent[1146]: time=2026-10-24T19:47:22.539+02:00 level=WARN msg="local-api: storage view unavailable for class hints" err="storage: NodeStorage: proxmox: GET /nodes/felhom/storage: Get \"https://127.0.0.1:8006/api2/json/nodes/felhom/storage\": context canceled"
Oct 24 19:47:24 felhom felhom-agent[1146]: time=2026-10-24T19:47:24.626+02:00 level=INFO msg="storage: enrolled drive absent by UUID — not re-asserting (will retry when it enumerates)" name=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2 where=/mnt/adatlemez uuid=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
Oct 24 19:47:44 felhom felhom-agent[1146]: time=2026-10-24T19:47:44.625+02:00 level=INFO msg="storage: enrolled drive absent by UUID — not re-asserting (will retry when it enumerates)" name=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2 where=/mnt/adatlemez uuid=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
Oct 24 19:48:04 felhom felhom-agent[1146]: time=2026-10-24T19:48:04.625+02:00 level=INFO msg="storage: enrolled drive absent by UUID — not re-asserting (will retry when it enumerates)" name=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2 where=/mnt/adatlemez uuid=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
Oct 24 19:48:24 felhom felhom-agent[1146]: time=2026-10-24T19:48:24.625+02:00 level=INFO msg="storage: enrolled drive absent by UUID — not re-asserting (will retry when it enumerates)" name=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2 where=/mnt/adatlemez uuid=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
Oct 24 19:48:33 felhom felhom-agent[1146]: time=2026-10-24T19:48:33.979+02:00 level=INFO msg="storage: watchdog self-heal — re-mounting enrolled drive (device returned, no eject intent)" target=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2 where=/mnt/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
Oct 24 19:48:33 felhom felhom-agent[1146]: time=2026-10-24T19:48:33.979+02:00 level=INFO msg="audit: gate decision" class=storage_mount host=tester-1-d70be4 guest=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2 source=desired_delta disposition=benign allowed=true reason=benign key_id="" nonce="" durable_id=""
Oct 24 19:48:33 felhom felhom-agent[1146]: time=2026-10-24T19:48:33.979+02:00 level=INFO msg="gate decision" class=storage_mount guest=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2 source=desired_delta disposition=benign allowed=true reason=benign
Oct 24 19:48:33 felhom sudo[6340]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/local/sbin/felhom-priv-apply unit mnt-adatlemez.mount
Oct 24 19:48:34 felhom felhom-priv-apply[6343]: felhom-priv-apply: SAME unit /etc/systemd/system/mnt-adatlemez.mount
Oct 24 19:48:34 felhom sudo[6383]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/systemctl enable --now -- mnt-adatlemez.mount
Oct 24 19:48:34 felhom felhom-agent[1146]: time=2026-10-24T19:48:34.896+02:00 level=INFO msg="storage: ensured mount" name=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2 where=/mnt/adatlemez unit=mnt-adatlemez.mount
Oct 24 19:48:34 felhom felhom-agent[1146]: time=2026-10-24T19:48:34.896+02:00 level=INFO msg="storage: re-mounted returned target" target=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2 where=/mnt/adatlemez
Oct 24 19:48:38 felhom felhom-agent[1146]: time=2026-10-24T19:48:38.978+02:00 level=WARN msg="storage: watchdog detected target state change" target=863c67fd-3e21-4d9f-9a74-3c5fa406f2a2 from=disconnected to=attached
Oct 24 19:48:38 felhom felhom-agent[1146]: time=2026-10-24T19:48:38.979+02:00 level=INFO msg="storage: watchdog triggering out-of-band host-report" transitions=1
Oct 24 19:48:39 felhom sudo[6514]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/local/sbin/felhom-pbs-apply read felhom-pbs /etc/pve/priv/storage
Oct 24 19:48:45 felhom sudo[6810]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/mount --bind /mnt/adatlemez/felhom-data /mnt/felhom-drives/adatlemez
Oct 24 19:48:45 felhom felhom-agent[1146]: time=2026-10-24T19:48:45.447+02:00 level=INFO msg="guest-attach: drive bound under shared parent (normalized to one bind, live)" vmid=9201 where=/mnt/adatlemez stable=/mnt/felhom-drives/adatlemez prior_binds=0
@@ -0,0 +1,36 @@
{"ok":false,"error":"stack \"metube\" is still running — stop it first before removing"}
409
audiobooks
books
comics
grimmory
movies
music
nzbget
photos
podcasts
torrents
offsite-proof
primary
restore-undo
secondary
1
app.yaml
applied-compose.yml
applied-meta
docker-compose.yml
gitea.dooplex.hu/admin/felhom-controller:0.342.0
gitea.dooplex.hu/admin/felhom-controller:0.342.0 Up 30 seconds (healthy)
Deleted: sha256:59d3821e5f5eed4430cd649b853ca587ced89cfef1dad88466007c9b5efeac04
Deleted: sha256:c854f867806d050e014d0f82ca46a1f12f775b083dd31b7c9e058083c721886e
200
{"ok":true,"data":{"removed":"metube","volumes_removed":["metube_metube_state"],"hdd_paths_removed":[],"hdd_paths_preserved":[],"userdata_kept":["/mnt/felhom-drives/adatlemez/userdata/media/metube (4.0K)"],"backup_paths_removed":["/mnt/felhom-drives/adatlemez/backups/primary/metube (1.6G)"],"verified":true},"message":"Stack metube removed"}
200
offsite-proof
primary
secondary
0
docker-compose.yml
0
@@ -0,0 +1,45 @@
# Tester 1 at end — 2026-10-24T17:52:52Z
## host
felhom
felhom-agent 0.164.0
│ └─/mnt/felhom-drives/adatlemez /dev/sdb[/felhom-data]
└─/mnt/adatlemez /dev/sdb
/dev/sdb 49G 31G 17G 66% /mnt/adatlemez
scsi0: nvme-scratch:341/vm-341-disk-1.raw,size=200G
scsi1: nvme-scratch:341/vm-341-disk-2.raw,size=50G
scsihw: virtio-scsi-single
## guest
gitea.dooplex.hu/admin/felhom-controller:0.342.0
bookstack lscr.io/linuxserver/bookstack:26.09.1 Up 5 minutes (healthy)
bookstack-db mariadb:12.3 Up 5 minutes (healthy)
cloudflared cloudflare/cloudflared:2026.9.3 Up 5 minutes (healthy)
felhom-controller gitea.dooplex.hu/admin/felhom-controller:0.342.0 Up About a minute (healthy)
filebrowser gtstef/filebrowser:1.5.6-stable Up 3 minutes (healthy)
paperless-postgres postgres:18-alpine Up 3 minutes (healthy)
paperless-redis redis:7-alpine Up 3 minutes (healthy)
paperless-webserver ghcr.io/paperless-ngx/paperless-ngx:2.20.15 Up 3 minutes (healthy)
privatebin privatebin/pdo:2.0.6 Up 5 minutes (healthy)
traefik traefik:v3.7.13 Up 5 minutes
-- named volumes
bookstack_bookstack_config
bookstack_bookstack_db_data
felhom-controller-data
filebrowser_filebrowser_data
paperless-ngx_paperless_data
paperless-ngx_paperless_postgres_data
paperless-ngx_paperless_redis_data
privatebin_privatebin_data
-- anonymous volumes: 202
/mnt/felhom-drives/adatlemez/backups/:
offsite-proof
primary
secondary
/mnt/felhom-drives/adatlemez/backups/primary:
paperless-ngx
holds: []
ls: cannot access '/var/lib/docker/volumes/felhom-controller-data/_data/data/appstop-state.json': No such file or directory
docker-compose.yml
0.342.0
0.341.0
0.318.0-rc.2
@@ -0,0 +1,14 @@
2a78047f78ed975d6988b9a7c1a20e2d8996beb4d761c0658ef6139f7a1e501b 2026-10-24T17:17:50Z 72K
b9682d7c22236517f96a418e7788abd5ebb950bba1ade0ff8e12a63ff867b6e6 2026-10-24T17:17:50Z 4.0K
d2f28971e52b7f500ea3273d6eed43ab0036f2548f1e5bcbd40e7970a0e9c660 2026-10-24T17:17:50Z 24K
/privatebin 78a9fff9b159c6b367934dbc8b9ffd0b393521c44a05c52b122dd5e81d1ae152 365e817db1f058ff2ec9adb1a90e7a865b2fc1c8907
2a78047f78ed975d6988b9a7c1a20e2d8996beb4d761c0658ef6139f7a1e501b
b9682d7c22236517f96a418e7788abd5ebb950bba1ade0ff8e12a63ff867b6e6
d2f28971e52b7f500ea3273d6eed43ab0036f2548f1e5bcbd40e7970a0e9c660
anonymous now: 199
78a9fff9b159c6b367934dbc8b9ffd0b393521c44a05c52b122dd5e81d1ae152 -> /run
365e817db1f058ff2ec9adb1a90e7a865b2fc1c8907fa73a410d4300278229e3 -> /tmp
privatebin_privatebin_data -> /srv/data
3878ff257f55ead8bd4a48864fd4d0bb694e971bc4e5e111c293d1445e0c6641 -> /var/lib/nginx/tmp
@@ -0,0 +1,43 @@
# 9202 as found — 2026-10-24T18:08:53Z
gitea.dooplex.hu/admin/felhom-controller:0.342.0
felhom-controller gitea.dooplex.hu/admin/felhom-controller:0.342.0 Up 10 hours (healthy)
filebrowser gtstef/filebrowser:1.5.6-stable Up 27 hours (healthy)
immich-machine-learning ghcr.io/immich-app/immich-machine-learning:v3.2.4 Up 5 hours (healthy)
immich-postgres ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0 Up 5 hours (healthy)
immich-redis redis:7-alpine Up 5 hours (healthy)
immich-server ghcr.io/immich-app/immich-server:v3.2.4 Up 5 hours (healthy)
paperless-postgres postgres:18-alpine Up 5 hours (healthy)
paperless-redis redis:7-alpine Up 5 hours (healthy)
paperless-webserver ghcr.io/paperless-ngx/paperless-ngx:2.20.15 Up 5 hours (healthy)
traefik traefik:v3.7.13 Up 27 hours
-- named volumes
felhom-controller-data
filebrowser_filebrowser_data
immich_immich_ml_cache
immich_immich_postgres_data
immich_immich_redis_data
paperless-ngx_paperless_data
paperless-ngx_paperless_postgres_data
paperless-ngx_paperless_redis_data
privatebin_privatebin_data
-- anonymous: 294
/mnt/felhom-drives/scratch_hdd/backups/primary:
/mnt/sizing-bench/backups/secondary:
paperless-ngx
audiobooks
books
comics
grimmory
metube
movies
music
nzbget
photos
podcasts
torrents
transmission
tv
usenet
holds: ['chaoscrash', 'chaosoom', 'chaosoomb', 'gokapi'] kept: 0
docker-compose.yml
@@ -0,0 +1,6 @@
gitea.dooplex.hu/admin/felhom-controller:0.343.0-dev.r1252a Up 25 seconds (healthy)
{"ok":true,"message":"Telepítés elindítva – az állapot a kártyán követhető"}
202
audiobookshelf Up 21 seconds (healthy)
-rw-r--r-- 1 root 1000 58 Oct 24 18:10 /mnt/felhom-drives/scratch_hdd/userdata/media/audiobooks/r1252-marker.txt
@@ -0,0 +1,52 @@
== control run 1
{"data":{"legs":["db-dump","tier2","update-leg"]},"message":"started","ok":true}
202
2026/10/24 18:10:41 night_chain.go:108: [INFO] [night-chain] manual run started from 172.18.0.4:37144: [db-dump tier2 update-leg]
2026/10/24 18:10:41 night_chain.go:84: [INFO] [night-chain] manual run of tonight's chain: dump → second drive → off-site → update leg
2026/10/24 18:10:41 night_chain.go:77: [INFO] [night-chain] db-dump: started
2026/10/24 18:11:36 night_chain.go:82: [INFO] [night-chain] db-dump: done in 55s
2026/10/24 18:11:36 night_chain.go:77: [INFO] [night-chain] tier2: started
2026/10/24 18:11:37 tier2.go:521: [INFO] [backup] Tier 2 copied audiobookshelf → /mnt/sizing-bench/backups/secondary/audiobookshelf (484.0 KB, 1 leg(s), 2s)
2026/10/24 18:11:51 tier2.go:521: [INFO] [backup] Tier 2 copied immich → /mnt/felhom-drives/scratch_hdd/backups/secondary/immich (1.1 GB, 2 leg(s), 13s)
2026/10/24 18:11:53 tier2.go:521: [INFO] [backup] Tier 2 copied paperless-ngx → /mnt/sizing-bench/backups/secondary/paperless-ngx (128.3 MB, 1 leg(s), 2s)
2026/10/24 18:11:53 tier2.go:521: [INFO] [backup] Tier 2 copied privatebin → /mnt/felhom-drives/scratch_hdd/backups/secondary/privatebin (8.4 KB, 0 leg(s), 0s)
2026/10/24 18:11:53 tier2.go:583: [INFO] [backup] Tier 2 run complete: 4 app(s) processed (incl. volume-only — F6)
2026/10/24 18:11:53 night_chain.go:82: [INFO] [night-chain] tier2: done in 17s
2026/10/24 18:11:53 night_chain.go:90: [INFO] [night-chain] offsite: no off-site target on this box — skipped, as at night
2026/10/24 18:11:53 night_chain.go:77: [INFO] [night-chain] update-leg: started
2026/10/24 18:11:53 night_chain.go:82: [INFO] [night-chain] update-leg: done in 0s
2026/10/24 18:11:53 night_chain.go:93: [INFO] [night-chain] finished in 1m12s
-- rejected-block lines: 0
-- the copy of the marker:
total 12
drwxrwsr-x 2 root 1000 4096 Oct 24 18:10 .
drwxr-xr-x 3 root root 4096 Oct 24 18:11 ..
-rw-r--r-- 1 root 1000 58 Oct 24 18:10 r1252-marker.txt
== control run 2
{"data":{"legs":["db-dump","tier2","update-leg"]},"message":"started","ok":true}
202
2026/10/24 18:11:59 night_chain.go:108: [INFO] [night-chain] manual run started from 172.18.0.4:37144: [db-dump tier2 update-leg]
2026/10/24 18:11:59 night_chain.go:84: [INFO] [night-chain] manual run of tonight's chain: dump → second drive → off-site → update leg
2026/10/24 18:11:59 night_chain.go:77: [INFO] [night-chain] db-dump: started
2026/10/24 18:12:50 night_chain.go:82: [INFO] [night-chain] db-dump: done in 52s
2026/10/24 18:12:50 night_chain.go:77: [INFO] [night-chain] tier2: started
2026/10/24 18:12:51 tier2.go:521: [INFO] [backup] Tier 2 copied audiobookshelf → /mnt/sizing-bench/backups/secondary/audiobookshelf (487.0 KB, 1 leg(s), 1s)
2026/10/24 18:13:07 tier2.go:521: [INFO] [backup] Tier 2 copied immich → /mnt/felhom-drives/scratch_hdd/backups/secondary/immich (1.1 GB, 2 leg(s), 16s)
2026/10/24 18:13:13 tier2.go:521: [INFO] [backup] Tier 2 copied paperless-ngx → /mnt/sizing-bench/backups/secondary/paperless-ngx (128.3 MB, 1 leg(s), 6s)
2026/10/24 18:13:13 tier2.go:521: [INFO] [backup] Tier 2 copied privatebin → /mnt/felhom-drives/scratch_hdd/backups/secondary/privatebin (8.4 KB, 0 leg(s), 0s)
2026/10/24 18:13:13 tier2.go:583: [INFO] [backup] Tier 2 run complete: 4 app(s) processed (incl. volume-only — F6)
2026/10/24 18:13:13 night_chain.go:82: [INFO] [night-chain] tier2: done in 23s
2026/10/24 18:13:13 night_chain.go:90: [INFO] [night-chain] offsite: no off-site target on this box — skipped, as at night
2026/10/24 18:13:13 night_chain.go:77: [INFO] [night-chain] update-leg: started
2026/10/24 18:13:13 night_chain.go:82: [INFO] [night-chain] update-leg: done in 0s
2026/10/24 18:13:13 night_chain.go:93: [INFO] [night-chain] finished in 1m15s
-- rejected-block lines: 0
-- the copy of the marker:
total 12
drwxrwsr-x 2 root 1000 4096 Oct 24 18:10 .
drwxr-xr-x 3 root root 4096 Oct 24 18:11 ..
-rw-r--r-- 1 root 1000 58 Oct 24 18:10 r1252-marker.txt
@@ -0,0 +1,3 @@
28- # If Viktor rules excluded, flip THIS LINE ONLY before committing.
29: - path: media/r1252-typo
30- class: optional # R-1252 LIVE PROOF: a path no compose bind has
@@ -0,0 +1,29 @@
{"data":{"legs":["db-dump","tier2","update-leg"]},"message":"started","ok":true}
202
2026/10/24 18:13:38 night_chain.go:108: [INFO] [night-chain] manual run started from 172.18.0.4:49314: [db-dump tier2 update-leg]
2026/10/24 18:13:38 night_chain.go:84: [INFO] [night-chain] manual run of tonight's chain: dump → second drive → off-site → update leg
2026/10/24 18:13:38 night_chain.go:77: [INFO] [night-chain] db-dump: started
2026/10/24 18:14:30 night_chain.go:82: [INFO] [night-chain] db-dump: done in 51s
2026/10/24 18:14:30 night_chain.go:77: [INFO] [night-chain] tier2: started
2026/10/24 18:14:30 tier2.go:501: [WARN] [backup] Tier 2 audiobookshelf: the backup block is REJECTED (userdata["media/r1252-typo"]: matches no compose bind (stale or typoed path)) — nothing reconciled, every existing copy on the second drive is KEPT (R-1252)
2026/10/24 18:14:30 tier2.go:521: [INFO] [backup] Tier 2 copied audiobookshelf → /mnt/sizing-bench/backups/secondary/audiobookshelf (489.9 KB, 0 leg(s), 1s)
2026/10/24 18:14:46 tier2.go:521: [INFO] [backup] Tier 2 copied immich → /mnt/felhom-drives/scratch_hdd/backups/secondary/immich (1.1 GB, 2 leg(s), 15s)
2026/10/24 18:14:48 tier2.go:521: [INFO] [backup] Tier 2 copied paperless-ngx → /mnt/sizing-bench/backups/secondary/paperless-ngx (128.3 MB, 1 leg(s), 3s)
2026/10/24 18:14:49 tier2.go:521: [INFO] [backup] Tier 2 copied privatebin → /mnt/felhom-drives/scratch_hdd/backups/secondary/privatebin (8.4 KB, 0 leg(s), 1s)
2026/10/24 18:14:49 tier2.go:583: [INFO] [backup] Tier 2 run complete: 4 app(s) processed (incl. volume-only — F6)
2026/10/24 18:14:49 night_chain.go:82: [INFO] [night-chain] tier2: done in 19s
2026/10/24 18:14:49 night_chain.go:90: [INFO] [night-chain] offsite: no off-site target on this box — skipped, as at night
2026/10/24 18:14:49 night_chain.go:77: [INFO] [night-chain] update-leg: started
2026/10/24 18:14:49 night_chain.go:82: [INFO] [night-chain] update-leg: done in 0s
2026/10/24 18:14:49 night_chain.go:93: [INFO] [night-chain] finished in 1m11s
-- rejected-block lines: 12
-- the copy of the marker:
total 12
drwxrwsr-x 2 root 1000 4096 Oct 24 18:10 .
drwxr-xr-x 3 root root 4096 Oct 24 18:11 ..
-rw-r--r-- 1 root 1000 58 Oct 24 18:10 r1252-marker.txt
last_warning: None
2026/10/24 18:14:30 notifier.go:1463: [WARN] notifier disabled (no hub configured): DROPPED event backup_run_failures (severity error) — further backup_run_failures events are logged at DEBUG only
app_backup {"enabled": false, "cross_drive": {"enabled": true, "method": "rsync", "destination_path": "/mnt/sizing-bench", "schedule": "daily", "last_run": "2026-10-24T18:14:30Z", "last_status": "ok", "last_success": "2026-10-24T18:14:30Z", "success_tracked": true, "last_warning": "Az alkalmazás mentési beállításai most nem olvashatók, ezért a második meghajtón egyetlen korábbi másolat sem törlődött. Az új mappák másolása addig szünetel. A Felhom ügyfélszolgálata értesítést kapott.", "unit_package_date": "2026-10-24T18:14:14Z", "last_duration": "1s", "last_size_human": "489.9 KB"}}
@@ -0,0 +1,27 @@
0
restored
{"data":{"legs":["db-dump","tier2","update-leg"]},"message":"started","ok":true}
202
2026/10/24 18:15:22 night_chain.go:108: [INFO] [night-chain] manual run started from 172.18.0.4:49314: [db-dump tier2 update-leg]
2026/10/24 18:15:22 night_chain.go:84: [INFO] [night-chain] manual run of tonight's chain: dump → second drive → off-site → update leg
2026/10/24 18:15:22 night_chain.go:77: [INFO] [night-chain] db-dump: started
2026/10/24 18:16:21 night_chain.go:82: [INFO] [night-chain] db-dump: done in 59s
2026/10/24 18:16:21 night_chain.go:77: [INFO] [night-chain] tier2: started
2026/10/24 18:16:22 tier2.go:521: [INFO] [backup] Tier 2 copied audiobookshelf → /mnt/sizing-bench/backups/secondary/audiobookshelf (493.0 KB, 1 leg(s), 1s)
2026/10/24 18:16:46 tier2.go:521: [INFO] [backup] Tier 2 copied immich → /mnt/felhom-drives/scratch_hdd/backups/secondary/immich (1.1 GB, 2 leg(s), 23s)
2026/10/24 18:16:49 tier2.go:521: [INFO] [backup] Tier 2 copied paperless-ngx → /mnt/sizing-bench/backups/secondary/paperless-ngx (128.3 MB, 1 leg(s), 3s)
2026/10/24 18:16:50 tier2.go:521: [INFO] [backup] Tier 2 copied privatebin → /mnt/felhom-drives/scratch_hdd/backups/secondary/privatebin (8.4 KB, 0 leg(s), 1s)
2026/10/24 18:16:50 tier2.go:583: [INFO] [backup] Tier 2 run complete: 4 app(s) processed (incl. volume-only — F6)
2026/10/24 18:16:50 night_chain.go:82: [INFO] [night-chain] tier2: done in 29s
2026/10/24 18:16:50 night_chain.go:90: [INFO] [night-chain] offsite: no off-site target on this box — skipped, as at night
2026/10/24 18:16:50 night_chain.go:77: [INFO] [night-chain] update-leg: started
2026/10/24 18:16:50 night_chain.go:82: [INFO] [night-chain] update-leg: done in 0s
2026/10/24 18:16:50 night_chain.go:93: [INFO] [night-chain] finished in 1m28s
-- rejected-block lines: 0
-- the copy of the marker:
total 12
drwxrwsr-x 2 root 1000 4096 Oct 24 18:10 .
drwxr-xr-x 3 root root 4096 Oct 24 18:11 ..
-rw-r--r-- 1 root 1000 58 Oct 24 18:10 r1252-marker.txt
@@ -0,0 +1,5 @@
{"ok":true,"data":{"removed":"audiobookshelf","volumes_removed":["audiobookshelf_audiobookshelf_config","audiobookshelf_audiobookshelf_metadata"],"hdd_paths_removed":[],"hdd_paths_preserved":[],"userdata_kept":["/mnt/felhom-drives/scratch_hdd/userdata/media/audiobooks (8.0K)","/mnt/felhom-drives/scratch_hdd/userdata/media/podcasts (4.0K)"],"backup_paths_removed":["/mnt/felhom-drives/scratch_hdd/backups/primary/audiobookshelf (524K)","/mnt/sizing-bench/backups/secondary/audiobookshelf (493.0 KB)"],"verified":true},"message":"Stack audiobookshelf removed"}
200
0
rmi=0
@@ -0,0 +1,43 @@
# 9202 at end — 2026-10-24T18:18:14Z
gitea.dooplex.hu/admin/felhom-controller:0.342.0
felhom-controller gitea.dooplex.hu/admin/felhom-controller:0.342.0 Up 29 seconds (healthy)
filebrowser gtstef/filebrowser:1.5.6-stable Up 27 hours (healthy)
immich-machine-learning ghcr.io/immich-app/immich-machine-learning:v3.2.4 Up 2 minutes (healthy)
immich-postgres ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0 Up 2 minutes (healthy)
immich-redis redis:7-alpine Up 2 minutes (healthy)
immich-server ghcr.io/immich-app/immich-server:v3.2.4 Up 2 minutes (healthy)
paperless-postgres postgres:18-alpine Up 2 minutes (healthy)
paperless-redis redis:7-alpine Up 2 minutes (healthy)
paperless-webserver ghcr.io/paperless-ngx/paperless-ngx:2.20.15 Up About a minute (healthy)
traefik traefik:v3.7.13 Up 27 hours
-- named volumes
felhom-controller-data
filebrowser_filebrowser_data
immich_immich_ml_cache
immich_immich_postgres_data
immich_immich_redis_data
paperless-ngx_paperless_data
paperless-ngx_paperless_postgres_data
paperless-ngx_paperless_redis_data
privatebin_privatebin_data
-- anonymous: 298
/mnt/felhom-drives/scratch_hdd/backups/primary:
/mnt/sizing-bench/backups/secondary:
paperless-ngx
audiobooks
books
comics
grimmory
metube
movies
music
nzbget
photos
podcasts
torrents
transmission
tv
usenet
holds: ['chaoscrash', 'chaosoom', 'chaosoomb', 'gokapi'] kept: 0
docker-compose.yml
@@ -0,0 +1,8 @@
0aa8e2d4562f2a2de55adb01e10c04f28b4309ea4944c3ac28bac4c17c41edbf 2026-10-24T18:12:16Z 4.0K
4af480448ba89ec358af3f5f9ba57b97013b4b8167b831a19174f4a80ff1f6c9 2026-10-24T18:13:55Z 4.0K
2447807a3f1f9a61b8f0dfb8e0c5d9a2fe990d404aeafa39c00c2112dd7ff215 2026-10-24T18:10:59Z 4.0K
removed 0aa8e2d4562f2a2de55adb01e10c04f28b4309ea4944c3ac28bac4c17c41edbf
removed 4af480448ba89ec358af3f5f9ba57b97013b4b8167b831a19174f4a80ff1f6c9
removed 2447807a3f1f9a61b8f0dfb8e0c5d9a2fe990d404aeafa39c00c2112dd7ff215
anonymous now: 295
1
@@ -0,0 +1,25 @@
# 9202 as found (R-1253 run) — 2026-10-24T18:49:05Z
gitea.dooplex.hu/admin/felhom-controller:0.342.0
felhom-controller gitea.dooplex.hu/admin/felhom-controller:0.342.0
filebrowser gtstef/filebrowser:1.5.6-stable
immich-machine-learning ghcr.io/immich-app/immich-machine-learning:v3.2.4
immich-postgres ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0
immich-redis redis:7-alpine
immich-server ghcr.io/immich-app/immich-server:v3.2.4
paperless-postgres postgres:18-alpine
paperless-redis redis:7-alpine
paperless-webserver ghcr.io/paperless-ngx/paperless-ngx:2.20.15
traefik traefik:v3.7.13
felhom-controller-data
filebrowser_filebrowser_data
immich_immich_ml_cache
immich_immich_postgres_data
immich_immich_redis_data
paperless-ngx_paperless_data
paperless-ngx_paperless_postgres_data
paperless-ngx_paperless_redis_data
privatebin_privatebin_data
anonymous: 295
/mnt/felhom-drives/scratch_hdd/backups/primary:
/mnt/felhom-drives/scratch_hdd/exports:
@@ -0,0 +1,16 @@
gitea.dooplex.hu/admin/felhom-controller:0.343.0-dev.r1253a Up 25 seconds (healthy)
{"ok":true,"message":"Telepítés elindítva – az állapot a kártyán követhető"}
202
{"ok":true,"message":"Telepítés elindítva – az állapot a kártyán követhető"}
202
uptime-kuma Up 6 seconds (healthy)
metube Up 35 seconds (healthy)
drwx-----x 3 root root 4096 Oct 24 18:50 ..
-rw-r--r-- 1 root root 1610612736 Oct 24 18:51 r1253-ballast.bin
{"ok":true,"message":"Mentés elindítva"}
200
2026/10/24 18:52:34 recovery_unit.go:289: [INFO] [backup] Recovery unit captured for metube → /mnt/felhom-drives/scratch_hdd/backups/primary/metube (images=1, secrets-referenced=0, data_keys=0, portable-carried=0/0, withheld=0)
2026/10/24 18:52:34 recovery_unit.go:289: [INFO] [backup] Recovery unit captured for uptime-kuma → /mnt/sys_drive/felhom-data/backups/primary/uptime-kuma (images=1, secrets-referenced=0, data_keys=0, portable-carried=0/0, withheld=0)
@@ -0,0 +1,26 @@
302
-- marker during the restore:
{
"active": true,
"op_id": "unit-restore:metube",
"reason": "unit_restore",
"stacks": [
"metube"
],
"started_at": "2026-10-24T18:52:57.639136768Z"
}-- export stop-first of uptime-kuma during the restore:
{"error":"Egy másik művelet (például egy visszaállítás) éppen leállítva tart egy alkalmazást, ezért most nem indítható olyan exportálás, amely leállítja az alkalmazást. Próbáld újra, amikor az a művelet befejeződött.","ok":false}
409
-- marker after:
cat: /var/lib/docker/volumes/felhom-controller-data/_data/data/appstop-state.json: No such file or directory
metube Up 24 seconds (healthy)
uptime-kuma Up About a minute (healthy)
2026/10/24 18:52:57 handlers.go:1888: [WARN] [web] Restore requested (async): stack=metube, snapshot=helyi from 172.18.0.4:37066
2026/10/24 18:53:08 handler_export.go:161: [DEBUG] [web] apiExportStart: stack="uptime-kuma" drive="/mnt/felhom-drives/scratch_hdd" encrypted=false stopApp=true
2026/10/24 18:53:08 export.go:192: [WARN] Export of uptime-kuma refused: unit-restore:metube holds the app-stop marker — an export that stops the app would replace its crash record (R-1253)
2026/10/24 18:53:08 handler_export.go:201: [ERROR] [web] Export start failed for uptime-kuma: Egy másik művelet (például egy visszaállítás) éppen leállítva tart egy alkalmazást, ezért most nem indítható olyan exportálás, amely leállítja az al
2026/10/24 18:53:08 handler_export.go:202: [DEBUG] [web] apiExportStart error: Egy másik művelet (például egy visszaállítás) éppen leállítva tart egy alkalmazást, ezért most nem indítható olyan exportálás, amely leállítja az alkalmazást. Pr�
2026/10/24 18:53:12 restore_crash_putback.go:89: [INFO] [backup] metube: the restore copy is recorded — a power cut from here on puts the app back on start (R-1195)
2026/10/24 18:53:32 restore_unit.go:571: [INFO] [backup] Restore-from-unit completed: metube — 1 volume(s) of 1 listed, 0 database(s) of 0 listed
2026/10/24 18:53:32 handlers.go:1900: [INFO] [web] Restore completed (async): stack=metube in 35.522574346s (volumes 1/1, dbs 0/0)
@@ -0,0 +1,38 @@
-- control: the same export after the restore
{"ok":true}
200
2026/10/24 18:53:08 export.go:192: [WARN] Export of uptime-kuma refused: unit-restore:metube holds the app-stop marker — an export that stops the app would replace its crash record (R-1253)
2026/10/24 18:53:08 handler_export.go:201: [ERROR] [web] Export start failed for uptime-kuma: Egy másik művelet (például egy visszaállítás) éppen leállítva tart egy alkalmazást, ezért most
2026/10/24 18:53:58 handler_export.go:207: [INFO] [web] Export started for uptime-kuma to /mnt/felhom-drives/scratch_hdd
2026/10/24 18:54:01 export.go:282: [INFO] Export: stopping uptime-kuma
2026/10/24 18:54:06 export.go:516: [INFO] Export completed: uptime-kuma → /mnt/felhom-drives/scratch_hdd/exports/uptime-kuma_20261024-185406.fab (22.0 KB) in 8.35546611s
2026/10/24 18:54:06 export.go:295: [INFO] Export: restarting uptime-kuma
/mnt/felhom-drives/scratch_hdd/exports/uptime-kuma_20261024-185406.fab
200
200
{"ok":true,"data":{"removed":"metube","volumes_removed":["metube_metube_state"],"hdd_paths_removed":[],"hdd_paths_preserved":[],"userdata_kept":["/mnt/felhom-drives/scratch_hdd/userdata/media/metube (4.0K)"],"backup_paths_removed":["/mnt/felhom-drives/scratch_hdd/backups/primary/metube (1.6G)"],"verified":true},"message":"Stack metube removed"}
200
{"ok":true,"data":{"removed":"uptime-kuma","volumes_removed":["uptime-kuma_uptime_kuma_data"],"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.","userdata_kept":[],"backup_paths_removed":["/mnt/sys_drive/felhom-data/backups/primary/uptime-kuma (328K)"],"verified":true},"message":"Stack uptime-kuma removed"}
200
drwxrwsr-x root:UNKNOWN movies
drwxrwsr-x root:UNKNOWN music
drwxrwsr-x root:UNKNOWN nzbget
drwxrwsr-x UNKNOWN:UNKNOWN transmission
drwxrwsr-x root:UNKNOWN metube
audiobooks
books
comics
grimmory
metube
movies
music
nzbget
photos
podcasts
torrents
transmission
tv
usenet
@@ -0,0 +1,25 @@
# 9202 at end (R-1253 run) — 2026-10-24T18:56:32Z
gitea.dooplex.hu/admin/felhom-controller:0.342.0
felhom-controller gitea.dooplex.hu/admin/felhom-controller:0.342.0
filebrowser gtstef/filebrowser:1.5.6-stable
immich-machine-learning ghcr.io/immich-app/immich-machine-learning:v3.2.4
immich-postgres ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0
immich-redis redis:7-alpine
immich-server ghcr.io/immich-app/immich-server:v3.2.4
paperless-postgres postgres:18-alpine
paperless-redis redis:7-alpine
paperless-webserver ghcr.io/paperless-ngx/paperless-ngx:2.20.15
traefik traefik:v3.7.13
felhom-controller-data
filebrowser_filebrowser_data
immich_immich_ml_cache
immich_immich_postgres_data
immich_immich_redis_data
paperless-ngx_paperless_data
paperless-ngx_paperless_postgres_data
paperless-ngx_paperless_redis_data
privatebin_privatebin_data
anonymous: 296
/mnt/felhom-drives/scratch_hdd/backups/primary:
/mnt/felhom-drives/scratch_hdd/exports:
@@ -0,0 +1,65 @@
# Restore and backup holes — fixed on main, proven on test boxes (2026-10-24 night, unattended)
Brief: „fix the restore and backup holes the review found, keep BYO hosts untouched, and pre-answer the review's
notes". **Operator ruling recorded:** D43 = A (by starting the run) — `CONTEXT.md`, `03`, `11` §1.
**Baselines (read at start, 16:47 UTC):** felhom.eu `80f1ab31`, felhom-controller `2449223` (v0.342.0 released), felhom-agent
`f5c3d77` (v0.164.0), app-catalog `227a544`. Register 207 rows. Architecture read first: `07` §6.3 / §8 / §8.2a, `03`,
`05`, `11` §1.
## What was fixed (commit only — nothing released, deployed, vouched or published)
| Row | Fix | Commit | CI |
|---|---|---|---|
| R-1251 (P1) | a pending put-back blocks every start: a copy on an unbound drive WAITS (restore hold `putback_pending`); the put-back runs first when the drive binds; a failed put-back holds (H2); Stop during a restore still gets the put-back (H7) | controller `bb2809d` | 2301 / #482 success |
| R-1251 (found by the live proof) | the copy's folders are synced before the marker names the copy; the household is not told to run the restore again while the put-back waits | controller `062f9b4` | 2302 / #483 success |
| R-1252 (P2) | the second-drive reconcile runs only under a valid classification; a rejected block is said on the status and once a day to the operator; kept copies stay kept (H2); Remove drops kept records it deleted (H9) | controller `518a135` | 2303 / #484 success |
| R-1253 (P2) | a stop-first export refuses while another operation holds the app-stop marker | controller `c9b4b82` | 2304 / #485 success |
| R-1254 (P2, hub half) | key, hash and identity blob in ONE transaction; a bad identity refused before any write | felhom.eu `dcf4f84c` | 2305 / #1256 success |
| R-1257 (P2, D43 = A) | the sshd drop-in only on an appliance; BYO: nothing written, our copy removed; X3 LAN addresses; X4 only the SSH step undone | felhom-agent `c8d3c17` | (final report) |
Every rule was red-proved: the rule taken out, the test seen failing, the rule put back (the commands are in the session
log; each test file names its red-proof). Images: controller dev images `0.343.0-dev.r1251a/b`, `r1252a`, `r1253a`
were built locally and loaded straight into the test guests (never pushed); hub `0.170.0-rc.r1254` (`67db584a45d7`)
built locally from a clean clone at `dcf4f84c`, NOT pushed, NOT deployed.
## The proofs — before (today's code) and after
| Proof | Before | After | Evidence |
|---|---|---|---|
| R-1251, Tester 1 (VM 341) | a cut restore + a late drive: the app ran on the cut data, a later start poured the old copy over new writes (review proof H1, lean clone) | run 2: held while the drive was away (Start/Update 409 with the sentence); the disk back → the put-back BEFORE the start; „gen2" (the newest) and the household's download there; a later restart poured nothing | `P1-tester1/20…30` |
| R-1251 run 1 (a finding) | — | the cut left the journal as `undo.json.tmp`: the H2 hold kept the app stopped for support (never started on the cut data) → the folder-sync fix → run 2 | `P1-tester1/05…13` |
| R-1252, 9202 | one bogus path → „removed stale dest dir userdata/media" (review, 0.342.0, same box, same day) | two control runs kept the copy; the bogus path → „REJECTED … every existing copy … KEPT", the copy there, the status sentence set, the digest sent | `P2-9202/` |
| R-1253, 9202 | a stop-first export during a restore replaced the restore's marker (static, review HUNT-1 H3) | the export refused (409) during a MeTube restore, uptime-kuma never stopped, the restore recorded its copy and finished; the same export after it ran (control) | `P3-9202/` |
| R-1254 | — (static) | store and endpoint tests only (the hub is not deployed) | the test files |
| R-1257 | — (static) | the bundle harness (7 tests) | the test file |
How the late drive was made on Tester 1: the restore was cut by `qm stop 341` 2.1 s after the controller logged „the
restore copy is recorded" (`tools/cut_on_line.sh`); the data disk (`nvme-scratch:341/vm-341-disk-2.raw`, not the thin
pool) was detached with `qm set 341 --delete scsi1`, the VM started, and the disk re-attached with `qm set 341 --scsi1 …`;
the agent re-mounted it by itself („watchdog self-heal") and the boot recreate ran the put-back.
## Teardown (three layers)
- **Tester 1:** MeTube removed through the product (Stop, then Remove with data and backups); my household file and the
`media/metube` folder I made removed; my run-1 copy folder removed; the controller back on 0.342.0 and the two dev
images removed; the data disk back on `scsi1`; no hold, no marker. One difference: privatebin's recreates left 3 empty
anonymous volumes I cannot tell apart safely (196 → 199 after removing the 3 dangling ones my backup run made) —
R-1267. (`P1-tester1/00-as-found.txt`, `41-at-end.txt`, `42-anon-volumes.txt`.)
- **9202:** the throwaway apps (audiobookshelf; MeTube and uptime-kuma) removed through the product, my marker and my
`.fab` removed, the controller back on 0.342.0, the dev images removed; the dangling anonymous volumes my runs made
removed by name. One difference: Immich's running container uses a new empty anonymous volume (R-1267).
- **Host (demo-hp):** nothing provisioned; VM 341 config as found (`scsi1` back). The catalog sweep's VM 9360 not touched.
- **Hub:** nothing changed. The boxes pushed their normal events (Tester 1: the drive away and back, the interrupted
restore).
## Observations
- `FILED: R-1268` — Remove with „remove backups" leaves a restore's undo copy (`backups/restore-undo/<app>/`) on the drive.
- `FILED: R-1267` (extended) — privatebin's image volumes leak like Immich's.
- `NOT-A-FINDING:` a support hold (`restore_mixed`) stays after the app is removed — by design (R-379: only a person
clears it, `-clear-restore-hold`).
- `NOT-A-FINDING:` the boot sweep logged MeTube as held „by an app-data operation" while the marker waited — true (the
kept marker), and the hold refused it as well.
- `NOT-A-FINDING:` a restore or the night dump replacing an EXPORT's marker — the replaced record only owed the exported
app a restart, which the boot sweep gives every app the household wants running.
@@ -0,0 +1,9 @@
#!/usr/bin/env bash
# Run 9202's night chain through the product's endpoint and print its Tier 2 lines + the copy of the marker (R-1252).
cd "$(dirname "$0")/.."
since=$(python3 tools/t1.py 9202 guest 'date -u +%Y-%m-%dT%H:%M:%SZ' | tr -d '\n')
python3 tools/t1.py 9202 api POST /api/debug/backup/night-chain | head -c 200; echo
python3 tools/t1.py 9202 guest "for i in \$(seq 1 120); do docker logs --since $since felhom-controller 2>&1 | grep -q 'night-chain\] finished' && break; sleep 10; done
docker logs --since $since felhom-controller 2>&1 | grep -E 'night-chain\]|Tier 2|backup block|reconcile|R-1252' | grep -v DEBUG | grep -v 'block rejected in' | cut -c1-300
echo '-- rejected-block lines:' \$(docker logs --since $since felhom-controller 2>&1 | grep -c 'block rejected in')
echo '-- the copy of the marker:'; ls -la /mnt/sizing-bench/backups/secondary/audiobookshelf/userdata/media/audiobooks/ 2>&1 | head -5"
@@ -0,0 +1,13 @@
#!/usr/bin/env bash
# Power-cut VM 341 (Tester 1) the moment the controller logs that the restore copy is recorded (R-1251 live proof).
# Streams the controller log to $1 (the evidence file) — the container is recreated at boot, so this stream IS the log.
out="$1"; pat='restore copy is recorded'
ssh -o BatchMode=yes root@192.168.0.154 'pct exec 9201 -- docker logs -f --since 1s felhom-controller 2>&1' | while IFS= read -r line; do
printf '%s\n' "$line" >> "$out"
case "$line" in *"$pat"*)
t0=$(date -u +%FT%T.%3NZ)
ssh -o BatchMode=yes demo-hp 'qm stop 341 --skiplock 1' >> "$out.cut" 2>&1
echo "CUT: line seen $t0, qm stop returned $(date -u +%FT%T.%3NZ)" >> "$out.cut"
exit 0;;
esac
done
@@ -0,0 +1,99 @@
#!/usr/bin/env python3
"""Drive one box's controller the way the dashboard does (restore-holes night, 2026-10-24).
Usage (the password comes ONLY from the environment, through `sec run`, and is never printed):
sec run TESTER1_PASSWORD -- python3 t1.py tester-1 login
python3 t1.py tester-1 api GET /api/stacks
python3 t1.py tester-1 form POST /backups/restore stack_name=metube snapshot_id=unit
python3 t1.py tester-1 guest '<bash script>' # inside the customer guest
python3 t1.py tester-1 host '<bash script>' # on the box's Proxmox host
Session cookie + CSRF token live in the session scratchpad (0600), never in the repo.
"""
import os, re, subprocess, sys, secrets as _s
SC = os.environ.get("T1_SCRATCH", "/tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/63b6c84e-0c09-4657-a160-855d2e4fe326/scratchpad/t1")
os.makedirs(SC, mode=0o700, exist_ok=True)
BOXES = {
"tester-1": {"ssh": ["ssh", "-o", "BatchMode=yes", "-o", "ConnectTimeout=20", "root@192.168.0.154"], "guest": "9201",
"domain": "enkicsifelhom.hu", "pwenv": "TESTER1_PASSWORD"},
"9202": {"ssh": ["ssh", "-o", "BatchMode=yes", "-o", "ConnectTimeout=20", "demo-hp"], "guest": "9202",
"domain": "enkisfelhom.hu", "pwenv": "REHEARSAL_2026_10_20_9202_PW"},
}
box = BOXES[sys.argv[1]]
cmd = sys.argv[2]
HOST = f"Host: felhom.{box['domain']}"
pre = f"{SC}/{sys.argv[1]}"
def run(args, inp=None, timeout=900):
return subprocess.run(args, input=inp, capture_output=True, text=True, errors="replace", timeout=timeout)
def host(script, timeout=900):
return run(box["ssh"] + ["bash -s"], inp=script, timeout=timeout)
def guest(script, timeout=900):
t = f"/tmp/rh-{os.getpid()}-{_s.token_hex(4)}.sh"
g = box["guest"]
return run(box["ssh"] + [f"cat > {t}; pct push {g} {t} {t}; pct exec {g} -- bash {t}; pct exec {g} -- rm -f {t}; rm -f {t}"],
inp=script, timeout=timeout)
def base():
r = guest("ip -4 -o addr show eth0")
m = re.search(r"inet (\d+\.\d+\.\d+\.\d+)/", r.stdout)
if not m:
sys.exit("no guest address: " + (r.stderr or r.stdout)[-200:])
return "https://" + m.group(1)
def login():
pw = os.environ.get(box["pwenv"])
if not pw:
sys.exit(f"{box['pwenv']} is not in the environment — run through `sec run {box['pwenv']} --`")
b = base()
hdr = f"{pre}.hdr"
run(["curl", "-sk", "-D", hdr, "-o", "/dev/null", "-H", HOST, "-X", "POST", "--data-urlencode", f"password={pw}", f"{b}/login"])
h = open(hdr).read()
os.remove(hdr)
m = re.search(r"felhom_session=[A-Za-z0-9._-]+", h, re.I)
if not m:
sys.exit("login failed: no session cookie (" + h.splitlines()[0] + ")")
r = run(["curl", "-sk", "-L", "-H", HOST, "-H", f"Cookie: {m.group(0)}", f"{b}/"])
c = re.search(r'<meta name="csrf-token" content="([^"]+)"', r.stdout or "")
if not c:
sys.exit("login failed: no csrf token")
for name, val in (("sess", m.group(0)), ("csrf", c.group(1)), ("base", b)):
fd = os.open(f"{pre}.{name}", os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600)
os.write(fd, val.encode())
os.close(fd)
print("login ok", b)
def call(method, path, form=None, json_body=None):
sess, csrf, b = (open(f"{pre}.{n}").read().strip() for n in ("sess", "csrf", "base"))
a = ["curl", "-sk", "-H", HOST, "-H", f"Cookie: {sess}", "-w", "\n%{http_code}"]
if method != "GET":
a += ["-X", method, "-H", f"X-CSRF-Token: {csrf}"]
if form is not None:
a += ["--data-urlencode", f"_csrf={csrf}"]
for kv in form:
a += ["--data-urlencode", kv]
if json_body is not None:
a += ["-H", "Content-Type: application/json", "--data", json_body]
r = run(a + [b + path])
print(r.stdout)
if cmd == "login":
login()
elif cmd == "api":
call(sys.argv[3], sys.argv[4], json_body=sys.argv[5] if len(sys.argv) > 5 else None)
elif cmd == "form":
call(sys.argv[3], sys.argv[4], form=sys.argv[5:])
elif cmd in ("guest", "host"):
r = (guest if cmd == "guest" else host)(sys.argv[3])
sys.stdout.write(r.stdout)
sys.stderr.write(r.stderr[-2000:])
sys.exit(r.returncode)
@@ -0,0 +1,59 @@
# D44 and D45 — one line per note, with CC's pick (prepared 2026-10-24 night)
**Answer „all picks" or name the ones you disagree with.** Rows: D44 = R-1265 (decisions the code takes that no
document named), D45 = R-1266 (rulings or promises the code does not do as written). Count: **25 + 7 = 32** (the review
said „about 30" for D44; 25 is the number of notes actually written). Each line: what the code does · the risk if it is
wrong · **the pick** · the cost. „Confirm" = the note loses its „undocumented" tag and stays as written.
## D44 — safe to confirm (21)
| # | Where | What the code does | Risk if wrong | Pick | Cost |
|---|---|---|---|---|---|
| 1 | `03` local API | 41 routes; 24 are not listed in `03` (one starts a host action: the 55 s line test) | a review that reads `03` misses what a guest can ask the host | **change the document** (list every route) | docs only |
| 2 | `07` §8.2c | a second-drive copy stops at 60 min; a stray copy blocks restores; one copy per destination at a time | a first copy of a very large library takes several nights | **confirm** | none (rsync resumes each night) |
| 3 | `07` §8.2c | „Eltávolítás" of a kept copy is refused while a backup, restore or copy runs | none — a refusal, said on the page | **confirm** | none |
| 4 | `07` §8.2c | a start that fails AFTER a good put-back leaves the app stopped, not held | none — the data is as before; Start is safe | **confirm** | none |
| 5 | `07` §8.2c | the hub's off-site delivery check skips a box that waits for the recovery code | a box stuck there is not alarmed as „stuck" | **confirm** | none (the box says it waits) |
| 6 | `07` §8.2c | the nightly release copy to ep0 (D33) has no row in the recovery matrix | a reader of §8 does not find it | **change the document** (add the row) | docs only |
| 7 | `09` §6.4.x | `build.sh --push` also refuses a dirty tree, a HEAD not at `origin/main`, a non-git directory | none | **confirm** | none |
| 8 | `09` §6.4.x | the night leg retries a „busy" refusal once in the same night | none | **confirm** | none |
| 9 | `09` §6.4.x | the night leg skips an app the household stopped (an update would start it) | none — R-721's own rule | **confirm** | none |
| 10 | `09` §6.4.x | a manual chain run gives the leg its normal length as the deadline, not W+5 h | none | **confirm** | none |
| 11 | `09` §6.4.x | `already_current` and `engine_no_test` are plain skips | none | **confirm** | none |
| 12 | `09` §6.4.x | an unreadable catalog template leaves the app's compose alone that cycle | none — the safe side | **confirm** | none |
| 13 | `09` §6.4.x | the R-971 image allow-list runs before ANY compose write | none — the safe side | **confirm** | none |
| 14 | `14` | a re-enroll during the power-off hold counts as „gone" (a reinstall) | none known | **confirm** | none |
| 15 | `14` | setting and clearing the off time each make an info event, not mailed | none | **confirm** | none |
| 16 | `14` | the confirmation word is accepted as „KIKAPCSOLÁS", „KIKAPCSOLAS" and „TURN OFF" | none | **confirm** | none |
| 17 | `15` | the Sonarr/Radarr API key is read from `/config/config.xml` | an upstream format change breaks the wiring (loud, not silent) | **confirm** | none |
| 18 | `16` | `systemd-detect-virt` is read once per agent process; empty → „unknown" | none — fail-closed | **confirm** | none |
| 19 | `16` | a path the controller cannot read counts as the SAME disk (no second copy claimed) | none — fail-closed | **confirm** | none |
| 20 | `16` | the internal place refuses eject, decommission and wipe; moving its data is allowed | none | **confirm** | none |
| 21 | `16` | the internal place's size subtracts every thin volume already promised | none — the safe side | **confirm** | none |
## D44 — the few that matter (4)
| # | Where | What the code does | Risk if wrong | Pick | Cost |
|---|---|---|---|---|---|
| 22 | `04` §2 | a signed operation's window has no maximum length (`felhom-opsign` defaults to 30 min) | a signed job made with a long window by mistake stays usable for that whole time | **change the code**: the agent and the root wrapper refuse a window longer than 24 h | one small agent change + test; rides an agent release |
| 23 | `13` (file manager sign-in) | FileBrowser trusts its proxy header; the only guard is that the header NAME is a per-box secret, and every app container can reach `filebrowser:80` | an app that learns the name (a hacked app on the box) reads and writes every household file | **change the code**: FileBrowser joins only the network traefik uses, so no app container reaches it directly | a compose/network change in the controller + a live check; one release |
| 24 | `15` | the „Később" 03:30 media restart is an in-memory timer — a controller restart forgets it (only the notice stays) | media apps do not see the new drives until the household presses „now" | **change the code**: store the due time and run it after a restart | small controller change |
| 25 | catalog `c50adfc` (R-1019) | MeTube, NZBGet and SABnzbd downloads are excluded from every backup, like qBittorrent and Transmission | MeTube downloads may be gone from their source site — on a drive failure they cannot be fetched again | **change the catalog for MeTube only**: `optional` (the second-drive copy carries it; off-site does not); NZBGet/SABnzbd stay excluded (re-downloadable) | second-drive space for MeTube's folder |
## D45 — the text or the code (7)
The default pick is **„the text follows the code"** wherever the code is the safer or the decided behaviour; CC
then rewrites each passage and you read the diff.
| # | Where | The document says | The code does | Risk | Pick | Cost |
|---|---|---|---|---|---|---|
| 1 | `09` decision 13 | the tag rule moves to the catalog gate | it stays in the controller (`updateorder.go:134`) | none — the controller check is the safe one | **text follows code** | docs only |
| 2 | `09` decision 14 | a box „never jumps" versions | a PERSON's press on an app older than the ladder takes the catalog's current definition; the night leg never jumps | a big jump can fail — the guarded update undoes it | **text follows code** (say: the night never jumps; a person's press may) | docs only |
| 3 | `09` decision 250 item 5 | the golden gate judges by AGE while the floor is above it | the gate cannot read the floor; it uses „release ahead" | none — the gate is stricter | **text follows code** | docs only |
| 4 | `01` §1/§4 | „the hub never connects into a box", „no inbound control endpoint", „no standing operator backdoor" | the hub sends a UDP poke (no command) through ep0; the operator's WireGuard peer reaches the operator door (felhom-sshd) | a household reads a promise that is not exact | **text follows code**, with the exact words: a poke carries no command, the box still pulls; the operator door is the documented break-glass | docs + the website check (R-985 style) |
| 5 | `03` §5, `06` §6 | break-glass „via the Cloudflare Tunnel behind Access"; „no inbound listener" | old text — the break-glass is the operator door over WireGuard | none in code; the text misleads | **text follows code** | docs only |
| 6 | `01` §8 | the operator „cannot open / read" the off-site backup | the operator holds the retained escrow key and can open an old store (R-985 already softened the website) | a promise to the household that is not exact | **text follows code**, in the words the website already uses | docs only |
| 7 | `06` §8 | the agent will manage cloudflared | `03` §2: it will not | none | **text follows code** (`03` wins) | docs only |
**What happens if you do nothing:** the 25 notes stay tagged „undocumented" and the 7 passages keep saying something
the code does not do. Nothing in a box changes either way until you answer.
File diff suppressed because one or more lines are too long
+5
View File
@@ -33,6 +33,11 @@ Moved here byte for byte on 2026-10-14 (night session), newest first, so that `S
**Updated 2026-10-23 (afternoon).** Your D39 = B is built and live: an app with a public security hole can now get its fix at night on every box, after one test on the test box — controller 0.341.0 is the floor since 13:24 (your yes). The test: Plex moved by itself at night on the test box, and an older controller safely waited for a hand press. Nothing needs you.
## Moved from STATUS on 2026-10-24 (night)
- **Updated 2026-10-24 (evening, unattended review).** The 17 design documents were checked against the code; about 130 old facts are corrected, no rule changed. Two new data-loss holes are proven; both need a fix in an attended run. Two small controller faults are fixed, not released.
- D43 (R-1257) left the decide table: ruled A by the operator 2026-10-24 evening (starting the restore-holes run) — BYO hosts keep their SSH settings.
## Moved from STATUS on 2026-10-24 (evening)
**Updated 2026-10-24 (afternoon, attended).** The two DooPlex backup alarms had one cause: yesterday's reboot changed which password the database takes, so the database copy job could not log in, and the Gitea off-site copy then refused its old copy. Fixed and cleared at 12:51 local; critical alarms now repeat every 4 hours (all backup alarms in one mail), warnings every 12. A box whose torrent app seeds all day can now get its weekly line test (proven on demo-hp, not yet released).