BIGNIGHT F3/F4: drive unplug honest on screen, system apps unaffected; R-520, R-521; R-516 amended
gates / gates (push) Successful in 20s

This commit is contained in:
2026-09-14 22:06:08 +02:00
parent c4ebd9cc63
commit 75b31c4562
12 changed files with 749 additions and 1 deletions
@@ -511,3 +511,37 @@ Verdict **PASS**. Jellyfin's health probe answered 503 / refused for ≈ 45 s af
| torn copy | on disk the adventurelog and bookstack units hold a **19:40:07 SQL dump beside 19:00 volume tars and a 19:02:34 manifest**; both restore points are dated 19:40:07Z → **R-519 (P2)** |
| alarms fired | `backup_failed (error) — an app-data backup (volume dump) was interrupted by a controller restart — 1 app(s) were left stopped and have been restarted` + **operator e-mail** — **true**; `controller_started (info)` — true. No false dead-app alarm at +10 min |
| should have fired, did not | a customer-side notice on the backups page (R-519) |
### F3 — power cut during a guarded Update (`phase5/F3-power-cut-during-update.txt`, `phase5/F3/`)
| | |
|---|---|
| how | `POST /api/stacks/nextcloud/update` 19:52:02Z (no newer version exists after the Phase 4 revert, so a same-version guarded update — the only Update the catalog allows tonight); a live log follower cut power on the line `update nextcloud: phase pulling` (19:52:03Z) → **`qm stop` 19:52:05.8Z**; 30 s off; `qm start` 19:52:36Z |
| journal before the cut | checking → precondition met (Tier 2 copy 49 m old) → **safety dump written** (`…/db-dumps/pre-restore-20260914T195203Z-nextcloud-mariadb.sql`) → pinning („pin advanced to the catalog's current definition", unchanged images) → pulling |
| what the box did alone | all 12 running on the same images at **+230 s**; at boot the gate recreated nextcloud onto the live bind („live bind confirmed — recreating drive-backed app nextcloud"); `pin adoption: 0 pinned, 12 already pinned`. **No log line resumes, aborts or even mentions the interrupted update**; `app.yaml` has `pinned_images` = `installed_images`, no hold, no verdict field |
| pin state | consistent (same definition) |
| the page's message | „Fut · Naprakész"; no word of the interrupted update (fragments `frissít, megszak, vissza, hiba, tartva` absent) |
| data | Nextcloud `status.php` installed, not in maintenance; 4 files read back **sha equal**; 200 photos listed |
| alarms | (below) |
**Verdict: recovered, but the journal's honesty is UNPROVEN for a real version change** — with the images unchanged
there is nothing to resume or abort, and nothing records that an update was cut. Not filed as a defect (no wrong
state was produced); recorded as a gap in what tonight could test.
F3 alarms (re-read 20:03:09Z, +10 min): `controller_started (info)` only — **true**; no false alarm.
### F4 — the data drive is unplugged while apps run (`phase5/F4-drive-unplugged.txt`, `phase5/F4/`)
| | |
|---|---|
| how | `qm set 333 --delete scsi1` at **19:57:27Z** on the running VM (the disk file stays as `unused0`) |
| how fast the drive apps stop | Nextcloud's front door already **503 at +5 s**; controller `storage_disconnected` at 19:58:02Z (+35 s); **all four drive apps (nextcloud, immich, jellyfin, paperless-ngx) `stopped` by +38 s**, Nextcloud front door then 404 |
| do system-disk apps keep running | **yes** — bookstack, vaultwarden, mealie, docmost (and the other system-disk apps) running throughout; BookStack front door 200 |
| what the customer saw (20:04:54Z) | banner on every page: „4 telepített alkalmazás nem fut — nézze meg a rendszermonitort · Rendszermonitor →" and „**Meghajtó leválasztva: Adatlemez (/mnt/felhom-drives/hdd_1)**" (**printed twice**, once with „Beállítások →", once with „Rendszermonitor →"). Tárhely: „Adatlemez · **Leválasztva** · Leválasztva: **2026-09-14T19:58:02Z** · Leállított alkalmazások: immich, jellyfin, nextcloud, paperless-ngx · Csatlakoztatás". App page: „Nextcloud · Leállítva · Naprakész · **Hiányzó tárhely: Adatlemez** — Ennek az alkalmazásnak az adattárolója jelenleg nem elérhető, ezért le van állítva. Csatlakoztasd újra a meghajtót, vagy helyezd át az adatokat egy másik tárhelyre." Dashboard: „12 Futó · 4 Leállítva · Adatlemez — Leválasztva". App list: each drive app „Leállítva · Naprakész · Hiányzó tárhely: Adatlemez". **Honest, Hungarian, and says what to do.** Blemishes: a raw ISO UTC timestamp; the duplicated banner; formal „nézze meg" |
| alarms fired | 21:58:02 CEST `storage_disconnected (error) — Meghajtó váratlanul leválasztva: Adatlemez` + operator mail — **true**; 21:58:15 `app_start_failed (warning)` × 4 (Paperless-ngx, Jellyfin, Immich, Nextcloud) + **four more operator mails** — **true but redundant**: one unplug produced five operator e-mails |
| should have fired, did not | nothing reached the **customer's** mailbox (`to:tester1@felhom.eu` unchanged) — the household learns of it only by opening the dashboard |
Fail-closed path, +8 min (`phase5/F4/fail-closed-path-8min.txt`): on the host and in the guest `/mnt/felhom-drives/hdd_1`
**is still a mountpoint on the dead device** — every read answers `Input/output error`; `df` still shows `/dev/sdb 98G
3.6G`. Writes cannot land on the system disk underneath (0 files visible). Rows R-520, R-521 filed; F4 copy blemishes
added to R-516.
@@ -0,0 +1,80 @@
Sep 14 21:41:06 felhom systemd[1]: Started felhom-agent.service - Felhom host agent (Proxmox host tier; hub control loop + PBS verify + storage watchdog).
Sep 14 21:41:06 felhom felhom-agent[1144]: time=2026-09-14T21:41:06.356+02:00 level=INFO msg="felhom-agent daemon starting" version=0.130.0 host_id=tester-1-a61396 hub_url=https://hub.felhom.eu interval_s=900
Sep 14 21:41:06 felhom felhom-agent[1144]: time=2026-09-14T21:41:06.359+02:00 level=INFO msg="daemon: operator signers pinned" count=2
Sep 14 21:41:06 felhom felhom-agent[1144]: time=2026-09-14T21:41:06.362+02:00 level=INFO msg="local-api leaf LOADED" fingerprint_sha256=f7853a846c980c99337618d5a4618f17fc6b88ffdc00e29d4d422060b0ebf4c2 cert=/var/lib/felhom-agent/local-api.crt
Sep 14 21:41:06 felhom felhom-agent[1144]: time=2026-09-14T21:41:06.362+02:00 level=INFO msg="backup tier armed" target=local cadence=24h0m0s keep_last=3 wait_timeout=30m0s prune_pbs_allowed=false primary=true
Sep 14 21:41:06 felhom felhom-agent[1144]: time=2026-09-14T21:41:06.362+02:00 level=INFO msg="backup tier armed" target=felhom-pbs cadence=168h0m0s keep_last=0 wait_timeout=12h0m0s prune_pbs_allowed=false primary=false
Sep 14 21:41:06 felhom felhom-agent[1144]: time=2026-09-14T21:41:06.362+02:00 level=INFO msg="lanresolver: enabled" host_ip=192.168.0.136 upstreams="[1.1.1.1 8.8.8.8]" interval_s=300
Sep 14 21:41:06 felhom felhom-agent[1144]: time=2026-09-14T21:41:06.363+02:00 level=INFO msg="wgtunnel: enabled" interval_s=60 state_dir=/var/lib/felhom-agent
Sep 14 21:41:06 felhom felhom-agent[1144]: time=2026-09-14T21:41:06.363+02:00 level=INFO msg="poke: agent-plane sync listener enabled" port=51822
Sep 14 21:41:06 felhom felhom-agent[1144]: time=2026-09-14T21:41:06.363+02:00 level=INFO msg="felhomsshd (OOB): enabled" interval_s=60 state_dir=/var/lib/felhom-agent
Sep 14 21:41:06 felhom felhom-agent[1144]: time=2026-09-14T21:41:06.363+02:00 level=INFO msg="pbsdr: bridge enabled (hub-driven; no-op until a pbs_dr descriptor arrives)"
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.300+02:00 level=INFO msg="capabilities self-check" ok=65 total=70 degraded=0 inactive=5
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.300+02:00 level=INFO msg="backup: restore-test scheduler starting (per-archive due-check)" eval_interval=6h0m0s settle=24h0m0s
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.301+02:00 level=INFO msg="storage: watchdog starting" interval=5s debounce=15s
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.301+02:00 level=INFO msg="pbs: verify loop starting" cadence=6h0m0s
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.304+02:00 level=INFO msg="fast-tick armed: 30s out-of-band cadence while desired-state is unapplied" interval=30s
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.305+02:00 level=INFO msg="poke: listening for hub sync-pokes (WG-confined, contentless)" addr=10.77.0.5:51822
Sep 14 21:41:08 felhom sudo[1298]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/mkdir -p /mnt/felhom-drives
Sep 14 21:41:08 felhom sudo[1298]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:08 felhom sudo[1298]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:08 felhom sudo[1311]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/smartctl -a -j /dev/sda
Sep 14 21:41:08 felhom sudo[1311]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:08 felhom sudo[1316]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/smartctl -a -j /dev/sda
Sep 14 21:41:08 felhom sudo[1316]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:08 felhom sudo[1311]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:08 felhom sudo[1319]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/lvs --reportformat json --units b -o lv_name,data_percent,metadata_percent -- pve/data
Sep 14 21:41:08 felhom sudo[1319]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:08 felhom sudo[1316]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:08 felhom sudo[1322]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/lvs --reportformat json --units b -o lv_name,data_percent,metadata_percent -- pve/data
Sep 14 21:41:08 felhom sudo[1322]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:08 felhom sudo[1319]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:08 felhom sudo[1322]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:08 felhom sudo[1325]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/mkdir -p /mnt/hdd_1/felhom-data
Sep 14 21:41:08 felhom sudo[1325]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:08 felhom sudo[1325]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:08 felhom sudo[1328]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/chown 100000:100000 /mnt/hdd_1/felhom-data
Sep 14 21:41:08 felhom sudo[1328]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:08 felhom sudo[1328]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:08 felhom sudo[1333]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/mkdir -p /mnt/felhom-drives/hdd_1
Sep 14 21:41:08 felhom sudo[1333]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:08 felhom sudo[1333]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:08 felhom sudo[1339]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/mount --bind /mnt/hdd_1/felhom-data /mnt/felhom-drives/hdd_1
Sep 14 21:41:08 felhom sudo[1339]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:08 felhom sudo[1339]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.578+02:00 level=INFO msg="guest-attach: drive bound under shared parent (normalized to one bind, live)" vmid=9201 where=/mnt/hdd_1 stable=/mnt/felhom-drives/hdd_1 prior_binds=0
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.578+02:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/hdd_1 guest_path=/mnt/felhom-drives/hdd_1 durable_id=uuid:c4b530fd-d410-424c-917e-c8ecfdde9d8b
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.578+02:00 level=INFO msg="selfheal: node watchdog starting" mode=appliance interval_s=60
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.578+02:00 level=INFO msg="guestnet: watchdog starting" interval=1m0s min_heal_interval=10m0s max_heals_per_hour=3 settle=3m0s
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.603+02:00 level=INFO msg="stale-lock: scanning pool guests" pool=felhom listed=1 scanned=1
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.605+02:00 level=INFO msg="stale-lock: scanning pool guests" pool=felhom listed=1 scanned=1
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.605+02:00 level=INFO msg="guest-power: watchdog started" interval=1m0s max_attempts=3
Sep 14 21:41:08 felhom felhom-agent[1144]: time=2026-09-14T21:41:08.605+02:00 level=INFO msg="local-api server listening" addr=169.254.253.1:8443
Sep 14 21:41:08 felhom sudo[1352]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/systemctl enable --now dnsmasq
Sep 14 21:41:08 felhom sudo[1352]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:08 felhom sudo[1357]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/sshd -t -f /var/lib/felhom-agent/felhom-sshd/sshd_config
Sep 14 21:41:08 felhom sudo[1357]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:08 felhom sudo[1357]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:08 felhom sudo[1367]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/install -o root -g root -m 0644 -- /var/lib/felhom-agent/felhom-sshd/sshd_config /etc/felhom-sshd/sshd_config
Sep 14 21:41:08 felhom sudo[1367]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:08 felhom sudo[1367]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:08 felhom sudo[1374]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/systemctl reload felhom-sshd
Sep 14 21:41:08 felhom sudo[1374]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:09 felhom sudo[1374]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:09 felhom felhom-agent[1144]: time=2026-09-14T21:41:09.590+02:00 level=INFO msg="felhomsshd: config applied" port=8822 action=reload
Sep 14 21:41:09 felhom sudo[1352]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:09 felhom sudo[1611]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob ssh_port
Sep 14 21:41:09 felhom sudo[1611]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:09 felhom sudo[1612]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/wg show wg-felhom latest-handshakes
Sep 14 21:41:09 felhom sudo[1612]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:09 felhom sudo[1612]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:09 felhom sudo[1611]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:09 felhom sudo[1613]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/pct exec 9201 -- ip -4 -o addr show dev eth0
Sep 14 21:41:09 felhom sudo[1613]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:09 felhom sudo[1622]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/sshd -T -f /etc/felhom-sshd/sshd_config
Sep 14 21:41:09 felhom sudo[1622]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:09 felhom sudo[1621]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft flush set inet felhom_oob ssh_port
Sep 14 21:41:09 felhom sudo[1621]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=999)
Sep 14 21:41:09 felhom sudo[1622]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:09 felhom sudo[1621]: pam_unix(sudo:session): session closed for user root
Sep 14 21:41:09 felhom sudo[1628]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/sshd -t -f /etc/felhom-sshd/sshd_config
@@ -0,0 +1,289 @@
2026/09/14 19:42:48 [INFO] local-api: channel up (agent 169.254.253.1:8443) — guest 9201, 3 mount(s) visible
2026/09/14 19:42:48 [INFO] local-api: mount mp8 → /mnt/felhom-drives (storage=/mnt/felhom-drives, class=, backup=false)
2026/09/14 19:42:48 [INFO] local-api: mount mp9 → /etc/felhom-bootstrap (storage=/var/lib/felhom-agent/guests/9201/bootstrap, class=, backup=false)
2026/09/14 19:42:48 [INFO] local-api: mount mp0 → /var/lib/felhom (storage=local-lvm, class=, backup=true)
2026/09/14 19:42:48 [INFO] felhom-controller 0.242.0 starting (customer: tester-1, domain: enkicsifelhom.hu)
2026/09/14 19:42:48 [INFO] [settings] Loaded settings from /opt/docker/felhom-controller/data/settings.json
2026/09/14 19:42:48 [INFO] Encryption key loaded from /opt/docker/felhom-controller/data/encryption.key
2026/09/14 19:42:48 [INFO] [stacks] Using compose command: docker compose
2026/09/14 19:42:48 [INFO] [stacks] ScanStacks complete: 57 stacks found (12 deployed, 45 available)
2026/09/14 19:42:48 [INFO] [stacks] Status refresh: 27 containers across 57 stacks
2026/09/14 19:42:48 [INFO] [stacks] InjectMissingFields: processed 12 stacks
2026/09/14 19:42:48 [INFO] [stacks] Encryption migration: no stacks needed migration
2026/09/14 19:42:48 [WARN] [appstop] crash recovery: an app-data backup (volume dump) (op "volume-dump:adventurelog") was interrupted and left 1 app(s) stopped — restarting them: [adventurelog]
2026/09/14 19:42:48 [INFO] [stacks] Starting stack: adventurelog
2026/09/14 19:42:48 [INFO] [quiesce] loop started (poll 5m0s, max-quiesce 30m0s)
2026/09/14 19:42:49 [INFO] [infra] connected felhom-controller to traefik-public
2026/09/14 19:42:52 [INFO] [stacks] Stack adventurelog started successfully (took 3.3s)
2026/09/14 19:42:52 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:42:52 [INFO] [appstop] crash recovery: restarted adventurelog after the interrupted an app-data backup (volume dump)
2026/09/14 19:42:52 [INFO] [stacks] desired-state backfill: 0 app(s) recorded as running, 0 left unrecorded (state ambiguous — legacy boot behaviour retained)
2026/09/14 19:42:52 [INFO] [stacks] installed-images backfill: 0 app(s) recorded, 12 already had a record, 0 left unrecorded (could not be observed completely — unknown, which renders nothing)
2026/09/14 19:42:52 [INFO] [stacks] pin adoption: 0 pinned, 12 already pinned, 0 left unpinned (0 not completely observed, 0 running something the template no longer offers)
2026/09/14 19:42:52 [INFO] [sync] Starting catalog sync (repo: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git, interval: 15m0s)
2026/09/14 19:42:52 [INFO] [sync] Starting catalog sync
2026/09/14 19:42:52 [INFO] [sync] Pulling latest from https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git (branch: main)
2026/09/14 19:42:52 [INFO] Metrics store opened at /opt/docker/felhom-controller/data/metrics.db
2026/09/14 19:42:52 [INFO] Metrics collector started (60s interval)
2026/09/14 19:42:52 [INFO] Notifier enabled (hub: https://hub.felhom.eu)
2026/09/14 19:42:52 [INFO] Self-update enabled (check every 6h, auto-update: false, auto-update time: 04:30)
2026/09/14 19:42:52 [INFO] [scheduler] Registered periodic job: status-refresh (every 10s)
2026/09/14 19:42:52 [INFO] [scheduler] Registered periodic job: stack-scan (every 2m0s)
2026/09/14 19:42:52 [INFO] [scheduler] Registered periodic job: health-probes (every 10s)
2026/09/14 19:42:52 [INFO] [scheduler] Registered periodic job: system-health (every 5m0s)
2026/09/14 19:42:52 [INFO] [scheduler] Registered periodic job: deadapp-check (every 30s)
2026/09/14 19:42:52 [INFO] [scheduler] Registered periodic job: ring-spill (every 30s)
2026/09/14 19:42:52 [INFO] [scheduler] Daily job db-dump scheduled for 2026-09-15 02:30 CEST
2026/09/14 19:42:52 [INFO] [scheduler] Registered periodic job: offsite-credential-retry (every 5m0s)
2026/09/14 19:42:52 [INFO] [scheduler] Registered periodic job: backup-cache (every 5m0s)
2026/09/14 19:42:52 [INFO] [scheduler] Daily job tier2-backup scheduled for 2026-09-15 03:30 CEST
2026/09/14 19:42:52 [INFO] [scheduler] Daily job offbox-backup scheduled for 2026-09-15 04:15 CEST
2026/09/14 19:42:52 [INFO] [scheduler] Daily job offsite-abandon-sweep scheduled for 2026-09-15 05:10 CEST
2026/09/14 19:42:52 [INFO] [scheduler] Daily job offsite-integrity scheduled for 2026-09-15 06:00 CEST
2026/09/14 19:42:52 [INFO] [scheduler] Daily job offsite-proof scheduled for 2026-09-15 05:30 CEST
2026/09/14 19:42:52 [INFO] [scheduler] Daily job metrics-prune scheduled for 2026-09-15 04:00 CEST
2026/09/14 19:42:52 [INFO] [scheduler] Daily job fill-watch scheduled for 2026-09-15 03:30 CEST
2026/09/14 19:42:52 [INFO] [scheduler] Registered periodic job: hub-report (every 15m0s)
2026/09/14 19:42:52 [INFO] Hub reporting enabled (every 15m0s to https://hub.felhom.eu)
2026/09/14 19:42:52 [INFO] [scheduler] Registered periodic job: selfupdate-check (every 6h0m0s)
2026/09/14 19:42:52 [INFO] ========== Startup Self-Test ==========
2026/09/14 19:42:53 [INFO] [PASS] Docker socket: reachable (v29.8.0)
2026/09/14 19:42:53 [INFO] [PASS] Stacks directory: /opt/docker/stacks
2026/09/14 19:42:53 [INFO] [PASS] Data directory: /opt/docker/felhom-controller/data (writable)
2026/09/14 19:42:53 [INFO] [PASS] System data path: /mnt/sys_drive
2026/09/14 19:42:53 [INFO] [PASS] Storage paths: 1 connected, 0 disconnected
2026/09/14 19:42:53 [INFO] [PASS] Git catalog: 53 app definitions found
2026/09/14 19:42:53 [INFO] [PASS] Hub connectivity: https://hub.felhom.eu reachable (HTTP 200)
2026/09/14 19:42:53 [INFO] [PASS] Metrics DB: 0.2 MB
2026/09/14 19:42:53 [INFO] ========================================
2026/09/14 19:42:53 [INFO] Self-test complete: 8 passed, 0 warnings, 0 failed
2026/09/14 19:42:53 [INFO] [scheduler] Starting scheduler with 18 jobs
2026/09/14 19:42:53 [INFO] [scheduler] Registered periodic job: geo-verify (every 6h0m0s)
2026/09/14 19:42:53 [INFO] Geo-restriction support enabled (CF API token configured)
2026/09/14 19:42:53 [INFO] Event pushed: backup_failed (error) — an app-data backup (volume dump) was interrupted by a controller restart — 1 app(s) were left stopped and have been restarted
2026/09/14 19:42:53 [INFO] [report] hub wait channel active (hold ≤240s)
2026/09/14 19:42:53 [INFO] [web] Auth: using password from settings.json
2026/09/14 19:42:53 [INFO] [scheduler] Registered periodic job: disk-health-check (every 1h0m0s)
2026/09/14 19:42:53 [INFO] [scheduler] Registered periodic job: agent-channel-health (every 1m0s)
2026/09/14 19:42:53 [INFO] Web UI listening on :8080
2026/09/14 19:42:54 [INFO] [gate] boot 1789414856-10033: waiting (≤2m0s) for live drive bind(s) [/mnt/felhom-drives/hdd_1] before recreating drive-backed apps
2026/09/14 19:42:54 [INFO] [gate] boot 1789414856-10033: live bind confirmed — recreating drive-backed app immich (state=starting) onto /mnt/felhom-drives/hdd_1
2026/09/14 19:42:54 [INFO] [stacks] Stopping stack: immich
2026/09/14 19:42:55 [INFO] [web] FileBrowser sync — no config/compose change, ensured running without recreate (1 storage path(s))
2026/09/14 19:42:55 [WARN] [api] Unauthorized request to /api/stacks/bookstack from 172.18.0.11:46646
2026/09/14 19:42:56 [INFO] [sync] Catalog sync complete
2026/09/14 19:42:56 [INFO] [sync] Initial sync: Sablonok naprakészek — nincs változás
2026/09/14 19:42:56 [INFO] [monitor] Health check: status=ok
2026/09/14 19:42:57 [INFO] [web] Login from 172.18.0.11:46646
2026/09/14 19:42:57 [INFO] [stacks] Stack adventurelog post-start status:
2026/09/14 19:42:57 [INFO] [stacks] adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.12.1 running Up 5 seconds (health: starting)
2026/09/14 19:42:57 [INFO] [stacks] adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1 running Up 7 seconds (healthy)
2026/09/14 19:42:57 [INFO] [stacks] adventurelog-postgres postgis/postgis:16-3.5-alpine running Up 13 seconds (healthy)
2026/09/14 19:42:57 [INFO] [stacks] Stack immich stopped successfully (took 3.3s)
2026/09/14 19:42:57 [INFO] [stacks] Status refresh: 24 containers across 57 stacks
2026/09/14 19:42:57 [INFO] [stacks] Starting stack: immich
2026/09/14 19:42:57 [INFO] [stacks] Status refresh: 24 containers across 57 stacks
2026/09/14 19:42:57 [INFO] [settings] Settings saved
2026/09/14 19:42:57 [INFO] [backup] Found 6 DB dump files across drives
2026/09/14 19:42:58 [INFO] [backup] Discovered 5 databases
2026/09/14 19:42:58 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/adventurelog/docker-compose.yml
2026/09/14 19:42:58 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/09/14 19:42:58 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/docmost/docker-compose.yml
2026/09/14 19:42:58 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/gokapi/docker-compose.yml
2026/09/14 19:42:58 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/immich/docker-compose.yml
2026/09/14 19:42:58 [INFO] [report] Building system report
2026/09/14 19:42:58 [INFO] Event pushed: controller_started (info) — Controller elindult (0.242.0)
2026/09/14 19:42:58 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/jellyfin/docker-compose.yml
2026/09/14 19:42:58 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/mealie/docker-compose.yml
2026/09/14 19:42:58 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/nextcloud/docker-compose.yml
2026/09/14 19:42:58 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/09/14 19:42:58 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/09/14 19:42:58 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/09/14 19:42:58 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/vaultwarden/docker-compose.yml
2026/09/14 19:42:58 [INFO] [backup] Discovered app data: 12 apps
2026/09/14 19:42:59 [INFO] [backup] Backup status cache refreshed
2026/09/14 19:42:59 [INFO] [monitor] Health check: status=ok
2026/09/14 19:43:00 [INFO] [report] Hub report pushed successfully (26604 bytes)
2026/09/14 19:43:00 [INFO] [settings] Settings saved
2026/09/14 19:43:00 [INFO] Startup hub report sent
2026/09/14 19:43:02 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:03 [WARN] Health probe jellyfin: API GET :8096/health → Get "http://jellyfin:8096/health": dial tcp 172.18.0.13:8096: connect: connection refused
2026/09/14 19:43:03 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:03 [WARN] Health probes: 4 ok, 1 unhealthy (of 5 probed)
2026/09/14 19:43:08 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:10 [INFO] [stacks] Stack immich started successfully (took 12.6s)
2026/09/14 19:43:10 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:10 [INFO] [gate] boot 1789414856-10033: live bind confirmed — recreating drive-backed app jellyfin (state=running) onto /mnt/felhom-drives/hdd_1
2026/09/14 19:43:10 [INFO] [stacks] Stopping stack: jellyfin
2026/09/14 19:43:13 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:13 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:14 [INFO] Health probes: 2 ok (of 2 probed)
2026/09/14 19:43:16 [INFO] [stacks] Stack immich post-start status:
2026/09/14 19:43:16 [INFO] [stacks] immich-machine-learning ghcr.io/immich-app/immich-machine-learning:v3.0.3 running Up 17 seconds (health: starting)
2026/09/14 19:43:16 [INFO] [stacks] immich-postgres ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0 running Up 17 seconds (healthy)
2026/09/14 19:43:16 [INFO] [stacks] immich-redis redis:7-alpine running Up 17 seconds (healthy)
2026/09/14 19:43:16 [INFO] [stacks] immich-server ghcr.io/immich-app/immich-server:v3.0.3 running Up 7 seconds (health: starting)
2026/09/14 19:43:18 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:21 [INFO] [stacks] Stack jellyfin stopped successfully (took 10.7s)
2026/09/14 19:43:21 [INFO] [stacks] Status refresh: 27 containers across 57 stacks
2026/09/14 19:43:21 [INFO] [stacks] Starting stack: jellyfin
2026/09/14 19:43:22 [INFO] [stacks] Stack jellyfin started successfully (took 0.7s)
2026/09/14 19:43:22 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:22 [INFO] [gate] boot 1789414856-10033: live bind confirmed — recreating drive-backed app nextcloud (state=starting) onto /mnt/felhom-drives/hdd_1
2026/09/14 19:43:22 [INFO] [stacks] Stopping stack: nextcloud
2026/09/14 19:43:23 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:23 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:25 [INFO] [selfupdate] Current version 0.242.0 is up to date
2026/09/14 19:43:25 [INFO] [stacks] Stack jellyfin post-start status:
2026/09/14 19:43:25 [INFO] [stacks] jellyfin jellyfin/jellyfin:10.11.11 running Up 3 seconds (health: starting)
2026/09/14 19:43:26 [INFO] [stacks] Stack nextcloud stopped successfully (took 4.2s)
2026/09/14 19:43:26 [INFO] [stacks] Status refresh: 25 containers across 57 stacks
2026/09/14 19:43:26 [INFO] [stacks] Starting stack: nextcloud
2026/09/14 19:43:28 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:33 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:33 [WARN] Health probe jellyfin: API GET :8096/health → Get "http://jellyfin:8096/health": dial tcp 172.18.0.13:8096: connect: connection refused
2026/09/14 19:43:33 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:33 [WARN] Health probes: 0 ok, 1 unhealthy (of 1 probed)
2026/09/14 19:43:38 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:38 [INFO] [stacks] Stack nextcloud started successfully (took 12.0s)
2026/09/14 19:43:39 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:39 [INFO] [gate] boot 1789414856-10033: live bind confirmed — recreating drive-backed app paperless-ngx (state=starting) onto /mnt/felhom-drives/hdd_1
2026/09/14 19:43:39 [INFO] [stacks] Stopping stack: paperless-ngx
2026/09/14 19:43:43 [INFO] [stacks] Stack nextcloud post-start status:
2026/09/14 19:43:43 [INFO] [stacks] nextcloud nextcloud:34.0.1-apache running Up 4 seconds (health: starting)
2026/09/14 19:43:43 [INFO] [stacks] nextcloud-db mariadb:11.6 running Up 15 seconds (healthy)
2026/09/14 19:43:43 [INFO] [stacks] nextcloud-redis redis:7-alpine running Up 15 seconds (healthy)
2026/09/14 19:43:43 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:44 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:45 [WARN] Health probe jellyfin: API GET :8096/health → expected status 200, got 503
2026/09/14 19:43:45 [WARN] Health probes: 1 ok, 1 unhealthy (of 2 probed)
2026/09/14 19:43:48 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:48 [INFO] [bootrecon] boot window: budget 50s exhausted while the fleet was still changing — sweeping anyway
2026/09/14 19:43:48 [INFO] [bootrecon] Boot reconciliation: no boot-orphaned apps (nothing to start)
2026/09/14 19:43:51 [INFO] [stacks] Stack paperless-ngx stopped successfully (took 12.5s)
2026/09/14 19:43:51 [INFO] [stacks] Status refresh: 25 containers across 57 stacks
2026/09/14 19:43:51 [INFO] [stacks] Starting stack: paperless-ngx
2026/09/14 19:43:53 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:43:53 [INFO] Health probes: 2 ok (of 2 probed)
2026/09/14 19:43:53 [INFO] [scheduler] Running job: agent-channel-health
2026/09/14 19:43:53 [INFO] [scheduler] Job agent-channel-health completed (took 185ms)
2026/09/14 19:44:03 [INFO] [stacks] Stack paperless-ngx started successfully (took 11.2s)
2026/09/14 19:44:03 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:44:03 [INFO] [gate] boot 1789414856-10033: re-syncing FileBrowser mounts against the live binds
2026/09/14 19:44:03 [INFO] [settings] Settings saved
2026/09/14 19:44:03 [INFO] [web] FileBrowser sync — no config/compose change, ensured running without recreate (1 storage path(s))
2026/09/14 19:44:03 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:44:03 [INFO] Health probes: 3 ok (of 3 probed)
2026/09/14 19:44:06 [INFO] [stacks] Stack paperless-ngx post-start status:
2026/09/14 19:44:06 [INFO] [stacks] paperless-postgres postgres:16-alpine running Up 14 seconds (healthy)
2026/09/14 19:44:06 [INFO] [stacks] paperless-redis redis:7-alpine running Up 14 seconds (healthy)
2026/09/14 19:44:06 [INFO] [stacks] paperless-webserver ghcr.io/paperless-ngx/paperless-ngx:2.20.15 running Up 3 seconds (health: starting)
2026/09/14 19:44:13 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:44:22 [INFO] [fillwatch] checked 3 filesystem(s), 0 unreadable/skipped, 0 notification(s); bands: all ok
2026/09/14 19:44:23 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:44:33 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:44:43 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:44:53 [INFO] [scheduler] Running job: stack-scan
2026/09/14 19:44:53 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:44:53 [INFO] [stacks] ScanStacks complete: 57 stacks found (12 deployed, 45 available)
2026/09/14 19:44:53 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:44:53 [INFO] [scheduler] Job stack-scan completed (took 82ms)
2026/09/14 19:44:53 [INFO] [scheduler] Running job: agent-channel-health
2026/09/14 19:44:53 [INFO] [scheduler] Job agent-channel-health completed (took 195ms)
2026/09/14 19:45:03 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:45:09 [INFO] [web] Login from 172.18.0.11:46646
2026/09/14 19:45:13 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:45:23 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:45:33 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:45:43 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:45:53 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:45:53 [INFO] [scheduler] Running job: agent-channel-health
2026/09/14 19:45:53 [INFO] [scheduler] Job agent-channel-health completed (took 179ms)
2026/09/14 19:46:03 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:46:13 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:46:23 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:46:33 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:46:43 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:46:53 [INFO] [scheduler] Running job: stack-scan
2026/09/14 19:46:53 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:46:53 [INFO] [stacks] ScanStacks complete: 57 stacks found (12 deployed, 45 available)
2026/09/14 19:46:53 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:46:53 [INFO] [scheduler] Job stack-scan completed (took 75ms)
2026/09/14 19:46:53 [INFO] [scheduler] Running job: agent-channel-health
2026/09/14 19:46:53 [INFO] [scheduler] Job agent-channel-health completed (took 186ms)
2026/09/14 19:47:03 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:47:13 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:47:23 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:47:33 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:47:43 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:47:53 [INFO] [scheduler] Running job: backup-cache
2026/09/14 19:47:53 [INFO] [scheduler] Running job: system-health
2026/09/14 19:47:53 [INFO] [scheduler] Running job: offsite-credential-retry
2026/09/14 19:47:53 [INFO] [scheduler] Job offsite-credential-retry completed (took 0s)
2026/09/14 19:47:53 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:47:53 [INFO] [backup] Found 6 DB dump files across drives
2026/09/14 19:47:53 [INFO] [scheduler] Running job: agent-channel-health
2026/09/14 19:47:53 [INFO] [backup] Discovered 6 databases
2026/09/14 19:47:53 [INFO] [monitor] Health check: status=ok
2026/09/14 19:47:53 [INFO] [scheduler] Job system-health completed (took 233ms)
2026/09/14 19:47:53 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/adventurelog/docker-compose.yml
2026/09/14 19:47:53 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/09/14 19:47:53 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/docmost/docker-compose.yml
2026/09/14 19:47:53 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/gokapi/docker-compose.yml
2026/09/14 19:47:53 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/immich/docker-compose.yml
2026/09/14 19:47:53 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/jellyfin/docker-compose.yml
2026/09/14 19:47:53 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/mealie/docker-compose.yml
2026/09/14 19:47:53 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/nextcloud/docker-compose.yml
2026/09/14 19:47:53 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/09/14 19:47:53 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/09/14 19:47:53 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/09/14 19:47:53 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/vaultwarden/docker-compose.yml
2026/09/14 19:47:53 [INFO] [backup] Discovered app data: 12 apps
2026/09/14 19:47:53 [INFO] [backup] Backup status cache refreshed
2026/09/14 19:47:53 [INFO] [scheduler] Job backup-cache completed (took 288ms)
2026/09/14 19:47:53 [INFO] [scheduler] Job agent-channel-health completed (took 178ms)
2026/09/14 19:48:03 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:48:03 [INFO] Health probes: 2 ok (of 2 probed)
2026/09/14 19:48:13 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:48:13 [INFO] Health probes: 3 ok (of 3 probed)
2026/09/14 19:48:23 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:48:33 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:48:43 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:48:53 [INFO] [scheduler] Running job: stack-scan
2026/09/14 19:48:53 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:48:53 [INFO] [stacks] ScanStacks complete: 57 stacks found (12 deployed, 45 available)
2026/09/14 19:48:53 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:48:53 [INFO] [scheduler] Job stack-scan completed (took 100ms)
2026/09/14 19:48:53 [INFO] Health probes: 3 ok (of 3 probed)
2026/09/14 19:48:53 [INFO] [scheduler] Running job: agent-channel-health
2026/09/14 19:48:53 [INFO] [scheduler] Job agent-channel-health completed (took 190ms)
2026/09/14 19:49:03 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:49:03 [INFO] Health probes: 1 ok (of 1 probed)
2026/09/14 19:49:13 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:49:13 [INFO] Health probes: 2 ok (of 2 probed)
2026/09/14 19:49:23 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:49:33 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:49:43 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:49:53 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:49:53 [INFO] [scheduler] Running job: agent-channel-health
2026/09/14 19:49:53 [INFO] [scheduler] Job agent-channel-health completed (took 183ms)
2026/09/14 19:50:03 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:50:13 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:50:23 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:50:33 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:50:43 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:50:53 [INFO] [scheduler] Running job: stack-scan
2026/09/14 19:50:53 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:50:53 [INFO] [stacks] ScanStacks complete: 57 stacks found (12 deployed, 45 available)
2026/09/14 19:50:53 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:50:53 [INFO] [scheduler] Job stack-scan completed (took 80ms)
2026/09/14 19:50:53 [INFO] [scheduler] Running job: agent-channel-health
2026/09/14 19:50:53 [INFO] [scheduler] Job agent-channel-health completed (took 189ms)
2026/09/14 19:51:03 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:51:13 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:51:23 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:51:33 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:51:43 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:51:53 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:51:53 [INFO] [scheduler] Running job: agent-channel-health
2026/09/14 19:51:53 [INFO] [scheduler] Job agent-channel-health completed (took 191ms)
@@ -0,0 +1,32 @@
--- before: nextcloud
running {'nextcloud': 'nextcloud:34.0.1-apache', 'nextcloud-db': 'mariadb:11.6', 'nextcloud-redis': 'redis:7-alpine'}
F3 POST /api/stacks/nextcloud/update 19:52:02
{"ok":true,"data":{"accepted":true,"completed":false},"message":"Frissítés elindult – az állapot a kártyán követhető"}
LOG 2026/09/14 19:52:03 [INFO] [stacks] update nextcloud: accepted — guarded update started
LOG 2026/09/14 19:52:03 [INFO] [stacks] update nextcloud: phase checking
LOG 2026/09/14 19:52:03 [INFO] [stacks] update nextcloud: precondition met — Tier 2 (second drive) copy from 2026-09-14T19:03:05Z (49m0s old, limit 24h0m0s)
LOG 2026/09/14 19:52:03 [INFO] [stacks] update nextcloud: phase safety-dump
LOG 2026/09/14 19:52:03 [INFO] [stacks] update nextcloud: safety dump done (1 file(s)) [/mnt/felhom-drives/hdd_1/backups/primary/nextcloud/db-dumps/pre-restore-20260914T195203Z-nextcloud-mariadb.sql]
LOG 2026/09/14 19:52:03 [INFO] [stacks] update nextcloud: phase pinning
LOG 2026/09/14 19:52:03 [INFO] [stacks] update nextcloud: pin advanced to the catalog's current definition (nextcloud=nextcloud:34.0.1-apache, nextcloud-db=mariadb:11.6, nextcloud-redis=redis:7-alpine)
LOG 2026/09/14 19:52:03 [INFO] [stacks] update nextcloud: phase pulling
F3 qm stop at 19:52:05.825 on: phase pulling
F3 qm start at 19:52:36
status: running
F3 + 130s dashboard /api/health 200
F3 + 132s gokapi running same images
F3 + 133s jellyfin running same images
F3 + 139s privatebin running same images
F3 + 139s nextcloud running same images
F3 + 139s vaultwarden running same images
F3 + 150s bookstack running same images
F3 + 151s uptime-kuma running same images
F3 + 178s mealie running same images
F3 + 189s docmost running same images
F3 + 194s immich running same images
F3 + 194s adventurelog running same images
F3 + 230s paperless-ngx running same images
F3 + 230s ALL 12 running
--- after: nextcloud API
running updating False {'nextcloud': 'nextcloud:34.0.1-apache', 'nextcloud-db': 'mariadb:11.6', 'nextcloud-redis': 'redis:7-alpine'}
@@ -0,0 +1,32 @@
=== controller since boot: update/journal lines
2026/09/14 19:54:44 [INFO] [stacks] pin adoption: 0 pinned, 12 already pinned, 0 left unpinned (0 not completely observed, 0 running something the template no longer offers)
2026/09/14 19:54:44 [INFO] Self-update enabled (check every 6h, auto-update: false, auto-update time: 04:30)
2026/09/14 19:54:44 [INFO] [scheduler] Registered periodic job: selfupdate-check (every 6h0m0s)
2026/09/14 19:54:45 [INFO] [report] hub wait channel active (hold ≤240s)
2026/09/14 19:54:46 [INFO] [stacks] Stopping stack: immich
2026/09/14 19:55:01 [INFO] [stacks] Stopping stack: jellyfin
2026/09/14 19:55:04 [INFO] [stacks] immich-redis redis:7-alpine running Up 15 seconds (healthy)
2026/09/14 19:55:14 [INFO] [gate] boot 1789415571-10089: live bind confirmed — recreating drive-backed app nextcloud (state=starting) onto /mnt/felhom-drives/hdd_1
2026/09/14 19:55:14 [INFO] [stacks] Stopping stack: nextcloud
2026/09/14 19:55:16 [INFO] [stacks] Stack nextcloud stopped successfully (took 2.4s)
2026/09/14 19:55:16 [INFO] [stacks] Starting stack: nextcloud
2026/09/14 19:55:17 [INFO] [selfupdate] Current version 0.242.0 is up to date
2026/09/14 19:55:28 [INFO] [stacks] Stack nextcloud started successfully (took 11.9s)
2026/09/14 19:55:29 [INFO] [stacks] Stopping stack: paperless-ngx
2026/09/14 19:55:33 [INFO] [stacks] Stack nextcloud post-start status:
2026/09/14 19:55:33 [INFO] [stacks] nextcloud nextcloud:34.0.1-apache running Up 4 seconds (health: starting)
2026/09/14 19:55:33 [INFO] [stacks] nextcloud-db mariadb:11.6 running Up 15 seconds (healthy)
2026/09/14 19:55:33 [INFO] [stacks] nextcloud-redis redis:7-alpine running Up 15 seconds (healthy)
2026/09/14 19:55:40 [INFO] [bootrecon] boot window: budget 50s exhausted while the fleet was still changing — sweeping anyway
2026/09/14 19:55:55 [INFO] [stacks] paperless-postgres postgres:16-alpine running Up 14 seconds (healthy)
2026/09/14 19:55:55 [INFO] [stacks] paperless-redis redis:7-alpine running Up 14 seconds (healthy)
2026/09/14 19:56:15 [INFO] [stacks] paperless-postgres postgres:16-alpine running Up 33 seconds (healthy)
2026/09/14 19:56:15 [INFO] [stacks] paperless-redis redis:7-alpine running Up 33 seconds (healthy)
=== /apps/nextcloud 19:56:50
tags: ['class="stack-state-badge state-run">Fut', 'class="tag tag-ok" title="Ez az alkalmazás a legfrissebb elérhető változatot futtatja.">Naprakész']
frissít -> absent
Frissít -> absent
megszak -> absent
vissza -> absent
hiba -> absent
tartva -> absent
@@ -0,0 +1,12 @@
file=/opt/docker/stacks/nextcloud/app.yaml
3:deployed_at: "2026-09-14T18:20:14Z"
20:installed_images:
30: ref: redis:7-alpine
33:pinned_images:
36: nextcloud-redis: redis:7-alpine
total 32
drwxr-xr-x 5 root root 4096 Sep 14 17:58 .
drwxr-xr-x 24 root root 4096 Sep 14 17:58 ..
drwx--x--- 12 root root 4096 Sep 14 19:54 docker
drwx------ 2 nobody nogroup 16384 Sep 14 17:57 lost+found
drwxr-xr-x 3 root root 4096 Sep 14 17:59 sys_drive
@@ -0,0 +1,210 @@
2026/09/14 19:54:43 [INFO] local-api: channel up (agent 169.254.253.1:8443) — guest 9201, 3 mount(s) visible
2026/09/14 19:54:43 [INFO] local-api: mount mp8 → /mnt/felhom-drives (storage=/mnt/felhom-drives, class=, backup=false)
2026/09/14 19:54:43 [INFO] local-api: mount mp9 → /etc/felhom-bootstrap (storage=/var/lib/felhom-agent/guests/9201/bootstrap, class=, backup=false)
2026/09/14 19:54:43 [INFO] local-api: mount mp0 → /var/lib/felhom (storage=local-lvm, class=, backup=true)
2026/09/14 19:54:43 [INFO] felhom-controller 0.242.0 starting (customer: tester-1, domain: enkicsifelhom.hu)
2026/09/14 19:54:43 [INFO] [settings] Loaded settings from /opt/docker/felhom-controller/data/settings.json
2026/09/14 19:54:43 [INFO] Encryption key loaded from /opt/docker/felhom-controller/data/encryption.key
2026/09/14 19:54:44 [INFO] [stacks] Using compose command: docker compose
2026/09/14 19:54:44 [INFO] [stacks] ScanStacks complete: 57 stacks found (12 deployed, 45 available)
2026/09/14 19:54:44 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:54:44 [INFO] [stacks] InjectMissingFields: processed 12 stacks
2026/09/14 19:54:44 [INFO] [stacks] Encryption migration: no stacks needed migration
2026/09/14 19:54:44 [INFO] [stacks] desired-state backfill: 0 app(s) recorded as running, 0 left unrecorded (state ambiguous — legacy boot behaviour retained)
2026/09/14 19:54:44 [INFO] [stacks] installed-images backfill: 0 app(s) recorded, 12 already had a record, 0 left unrecorded (could not be observed completely — unknown, which renders nothing)
2026/09/14 19:54:44 [INFO] [stacks] pin adoption: 0 pinned, 12 already pinned, 0 left unpinned (0 not completely observed, 0 running something the template no longer offers)
2026/09/14 19:54:44 [INFO] [sync] Starting catalog sync (repo: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git, interval: 15m0s)
2026/09/14 19:54:44 [INFO] [quiesce] loop started (poll 5m0s, max-quiesce 30m0s)
2026/09/14 19:54:44 [INFO] [sync] Starting catalog sync
2026/09/14 19:54:44 [INFO] [sync] Pulling latest from https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git (branch: main)
2026/09/14 19:54:44 [INFO] Metrics store opened at /opt/docker/felhom-controller/data/metrics.db
2026/09/14 19:54:44 [INFO] Metrics collector started (60s interval)
2026/09/14 19:54:44 [INFO] Notifier enabled (hub: https://hub.felhom.eu)
2026/09/14 19:54:44 [INFO] Self-update enabled (check every 6h, auto-update: false, auto-update time: 04:30)
2026/09/14 19:54:44 [INFO] [scheduler] Registered periodic job: status-refresh (every 10s)
2026/09/14 19:54:44 [INFO] [scheduler] Registered periodic job: stack-scan (every 2m0s)
2026/09/14 19:54:44 [INFO] [scheduler] Registered periodic job: health-probes (every 10s)
2026/09/14 19:54:44 [INFO] [scheduler] Registered periodic job: system-health (every 5m0s)
2026/09/14 19:54:44 [INFO] [scheduler] Registered periodic job: deadapp-check (every 30s)
2026/09/14 19:54:44 [INFO] [scheduler] Registered periodic job: ring-spill (every 30s)
2026/09/14 19:54:44 [INFO] [scheduler] Daily job db-dump scheduled for 2026-09-15 02:30 CEST
2026/09/14 19:54:44 [INFO] [scheduler] Registered periodic job: offsite-credential-retry (every 5m0s)
2026/09/14 19:54:44 [INFO] [scheduler] Registered periodic job: backup-cache (every 5m0s)
2026/09/14 19:54:44 [INFO] [scheduler] Daily job tier2-backup scheduled for 2026-09-15 03:30 CEST
2026/09/14 19:54:44 [INFO] [scheduler] Daily job offbox-backup scheduled for 2026-09-15 04:15 CEST
2026/09/14 19:54:44 [INFO] [scheduler] Daily job offsite-abandon-sweep scheduled for 2026-09-15 05:10 CEST
2026/09/14 19:54:44 [INFO] [scheduler] Daily job offsite-integrity scheduled for 2026-09-15 06:00 CEST
2026/09/14 19:54:44 [INFO] [scheduler] Daily job offsite-proof scheduled for 2026-09-15 05:30 CEST
2026/09/14 19:54:44 [INFO] [scheduler] Daily job metrics-prune scheduled for 2026-09-15 04:00 CEST
2026/09/14 19:54:44 [INFO] [scheduler] Daily job fill-watch scheduled for 2026-09-15 03:30 CEST
2026/09/14 19:54:44 [INFO] [scheduler] Registered periodic job: hub-report (every 15m0s)
2026/09/14 19:54:44 [INFO] Hub reporting enabled (every 15m0s to https://hub.felhom.eu)
2026/09/14 19:54:44 [INFO] [scheduler] Registered periodic job: selfupdate-check (every 6h0m0s)
2026/09/14 19:54:44 [INFO] ========== Startup Self-Test ==========
2026/09/14 19:54:45 [INFO] [PASS] Docker socket: reachable (v29.8.0)
2026/09/14 19:54:45 [INFO] [PASS] Stacks directory: /opt/docker/stacks
2026/09/14 19:54:45 [INFO] [PASS] Data directory: /opt/docker/felhom-controller/data (writable)
2026/09/14 19:54:45 [INFO] [PASS] System data path: /mnt/sys_drive
2026/09/14 19:54:45 [INFO] [PASS] Storage paths: 1 connected, 0 disconnected
2026/09/14 19:54:45 [INFO] [PASS] Git catalog: 53 app definitions found
2026/09/14 19:54:45 [INFO] [infra] connected felhom-controller to traefik-public
2026/09/14 19:54:45 [INFO] [PASS] Hub connectivity: https://hub.felhom.eu reachable (HTTP 200)
2026/09/14 19:54:45 [INFO] [PASS] Metrics DB: 0.2 MB
2026/09/14 19:54:45 [INFO] ========================================
2026/09/14 19:54:45 [INFO] Self-test complete: 8 passed, 0 warnings, 0 failed
2026/09/14 19:54:45 [INFO] [scheduler] Starting scheduler with 18 jobs
2026/09/14 19:54:45 [INFO] [scheduler] Registered periodic job: geo-verify (every 6h0m0s)
2026/09/14 19:54:45 [INFO] Geo-restriction support enabled (CF API token configured)
2026/09/14 19:54:45 [INFO] [report] hub wait channel active (hold ≤240s)
2026/09/14 19:54:45 [INFO] [web] Auth: using password from settings.json
2026/09/14 19:54:45 [INFO] [scheduler] Registered periodic job: disk-health-check (every 1h0m0s)
2026/09/14 19:54:45 [INFO] [scheduler] Registered periodic job: agent-channel-health (every 1m0s)
2026/09/14 19:54:45 [INFO] Web UI listening on :8080
2026/09/14 19:54:45 [INFO] [backup] Found 6 DB dump files across drives
2026/09/14 19:54:46 [INFO] [gate] boot 1789415571-10089: waiting (≤2m0s) for live drive bind(s) [/mnt/felhom-drives/hdd_1] before recreating drive-backed apps
2026/09/14 19:54:46 [INFO] [gate] boot 1789415571-10089: live bind confirmed — recreating drive-backed app immich (state=starting) onto /mnt/felhom-drives/hdd_1
2026/09/14 19:54:46 [INFO] [stacks] Stopping stack: immich
2026/09/14 19:54:46 [WARN] [api] Unauthorized request to /api/stacks/bookstack from 172.18.0.10:39418
2026/09/14 19:54:47 [INFO] [sync] Catalog sync complete
2026/09/14 19:54:47 [INFO] [sync] Initial sync: Sablonok naprakészek — nincs változás
2026/09/14 19:54:47 [INFO] [web] Login from 172.18.0.10:39418
2026/09/14 19:54:48 [INFO] [web] FileBrowser sync — no config/compose change, ensured running without recreate (1 storage path(s))
2026/09/14 19:54:48 [INFO] [backup] Discovered 6 databases
2026/09/14 19:54:48 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/adventurelog/docker-compose.yml
2026/09/14 19:54:48 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/09/14 19:54:48 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/docmost/docker-compose.yml
2026/09/14 19:54:48 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/gokapi/docker-compose.yml
2026/09/14 19:54:48 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/immich/docker-compose.yml
2026/09/14 19:54:48 [INFO] [monitor] Health check: status=ok
2026/09/14 19:54:48 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/jellyfin/docker-compose.yml
2026/09/14 19:54:48 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/mealie/docker-compose.yml
2026/09/14 19:54:48 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/nextcloud/docker-compose.yml
2026/09/14 19:54:48 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/09/14 19:54:48 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/09/14 19:54:48 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/09/14 19:54:48 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/vaultwarden/docker-compose.yml
2026/09/14 19:54:48 [INFO] [backup] Discovered app data: 12 apps
2026/09/14 19:54:48 [INFO] [backup] Backup status cache refreshed
2026/09/14 19:54:49 [INFO] [stacks] Stack immich stopped successfully (took 3.1s)
2026/09/14 19:54:49 [INFO] [stacks] Status refresh: 24 containers across 57 stacks
2026/09/14 19:54:49 [INFO] [stacks] Starting stack: immich
2026/09/14 19:54:49 [INFO] [stacks] Status refresh: 24 containers across 57 stacks
2026/09/14 19:54:50 [INFO] [report] Building system report
2026/09/14 19:54:50 [INFO] Event pushed: controller_started (info) — Controller elindult (0.242.0)
2026/09/14 19:54:51 [INFO] [monitor] Health check: status=ok
2026/09/14 19:54:52 [INFO] [report] Hub report pushed successfully (12356 bytes)
2026/09/14 19:54:52 [INFO] [settings] Settings saved
2026/09/14 19:54:52 [INFO] Startup hub report sent
2026/09/14 19:54:54 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:54:55 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:54:55 [WARN] Health probe jellyfin: API GET :8096/health → Get "http://jellyfin:8096/health": dial tcp 172.18.0.11:8096: connect: connection refused
2026/09/14 19:54:55 [WARN] Health probes: 4 ok, 1 unhealthy (of 5 probed)
2026/09/14 19:54:59 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:00 [INFO] [stacks] Stack immich started successfully (took 11.7s)
2026/09/14 19:55:01 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:01 [INFO] [gate] boot 1789415571-10089: live bind confirmed — recreating drive-backed app jellyfin (state=starting) onto /mnt/felhom-drives/hdd_1
2026/09/14 19:55:01 [INFO] [stacks] Stopping stack: jellyfin
2026/09/14 19:55:04 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:04 [INFO] [stacks] Stack immich post-start status:
2026/09/14 19:55:04 [INFO] [stacks] immich-machine-learning ghcr.io/immich-app/immich-machine-learning:v3.0.3 running Up 15 seconds (health: starting)
2026/09/14 19:55:04 [INFO] [stacks] immich-postgres ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0 running Up 15 seconds (healthy)
2026/09/14 19:55:04 [INFO] [stacks] immich-redis redis:7-alpine running Up 15 seconds (healthy)
2026/09/14 19:55:04 [INFO] [stacks] immich-server ghcr.io/immich-app/immich-server:v3.0.3 running Up 4 seconds (health: starting)
2026/09/14 19:55:05 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:05 [INFO] Health probes: 1 ok (of 1 probed)
2026/09/14 19:55:09 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:13 [INFO] [stacks] Stack jellyfin stopped successfully (took 11.7s)
2026/09/14 19:55:13 [INFO] [stacks] Status refresh: 27 containers across 57 stacks
2026/09/14 19:55:13 [INFO] [stacks] Starting stack: jellyfin
2026/09/14 19:55:14 [INFO] [stacks] Stack jellyfin started successfully (took 0.8s)
2026/09/14 19:55:14 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:14 [INFO] [gate] boot 1789415571-10089: live bind confirmed — recreating drive-backed app nextcloud (state=starting) onto /mnt/felhom-drives/hdd_1
2026/09/14 19:55:14 [INFO] [stacks] Stopping stack: nextcloud
2026/09/14 19:55:15 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:15 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:15 [INFO] Health probes: 1 ok (of 1 probed)
2026/09/14 19:55:16 [INFO] [stacks] Stack nextcloud stopped successfully (took 2.4s)
2026/09/14 19:55:16 [INFO] [stacks] Status refresh: 25 containers across 57 stacks
2026/09/14 19:55:16 [INFO] [stacks] Starting stack: nextcloud
2026/09/14 19:55:17 [INFO] [selfupdate] Current version 0.242.0 is up to date
2026/09/14 19:55:17 [INFO] [stacks] Stack jellyfin post-start status:
2026/09/14 19:55:17 [INFO] [stacks] jellyfin jellyfin/jellyfin:10.11.11 running Up 4 seconds (health: starting)
2026/09/14 19:55:20 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:25 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:25 [WARN] Health probe jellyfin: API GET :8096/health → Get "http://jellyfin:8096/health": dial tcp 172.18.0.11:8096: connect: connection refused
2026/09/14 19:55:25 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:25 [WARN] Health probes: 0 ok, 1 unhealthy (of 1 probed)
2026/09/14 19:55:28 [INFO] [stacks] Stack nextcloud started successfully (took 11.9s)
2026/09/14 19:55:29 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:29 [INFO] [gate] boot 1789415571-10089: live bind confirmed — recreating drive-backed app paperless-ngx (state=starting) onto /mnt/felhom-drives/hdd_1
2026/09/14 19:55:29 [INFO] [stacks] Stopping stack: paperless-ngx
2026/09/14 19:55:30 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:33 [INFO] [stacks] Stack nextcloud post-start status:
2026/09/14 19:55:33 [INFO] [stacks] nextcloud nextcloud:34.0.1-apache running Up 4 seconds (health: starting)
2026/09/14 19:55:33 [INFO] [stacks] nextcloud-db mariadb:11.6 running Up 15 seconds (healthy)
2026/09/14 19:55:33 [INFO] [stacks] nextcloud-redis redis:7-alpine running Up 15 seconds (healthy)
2026/09/14 19:55:35 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:35 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:35 [WARN] Health probe jellyfin: API GET :8096/health → expected status 200, got 503
2026/09/14 19:55:35 [WARN] Health probes: 2 ok, 1 unhealthy (of 3 probed)
2026/09/14 19:55:40 [INFO] [stacks] Stack paperless-ngx stopped successfully (took 11.2s)
2026/09/14 19:55:40 [INFO] [stacks] Status refresh: 25 containers across 57 stacks
2026/09/14 19:55:40 [INFO] [stacks] Starting stack: paperless-ngx
2026/09/14 19:55:40 [INFO] [stacks] Status refresh: 25 containers across 57 stacks
2026/09/14 19:55:40 [INFO] [bootrecon] boot window: budget 50s exhausted while the fleet was still changing — sweeping anyway
2026/09/14 19:55:40 [INFO] [bootrecon] Boot reconciliation: 1 boot-orphaned app(s) found: [paperless-ngx] — up to 2 attempt(s)
2026/09/14 19:55:40 [INFO] [stacks] Starting stack: paperless-ngx
2026/09/14 19:55:41 [ERROR] [stacks] Command failed: docker compose up -d (in /opt/docker/stacks/paperless-ngx) — exit code 1 (took 0.3s)
2026/09/14 19:55:41 [ERROR] [stacks] stderr: Container paperless-webserver Creating
service:paperless-webserver:1 Error response from daemon: Conflict. The container name "/paperless-webserver" is already in use by container "1677d704c838460d1d848b49a4dad7919b9eeeb073815a592d1638a7ecfa7f7f". You have to remove (or rename) that container to be able to reuse that name.
Error response from daemon: Conflict. The container name "/paperless-webserver" is already in use by container "1677d704c838460d1d848b49a4dad7919b9eeeb073815a592d1638a7ecfa...
2026/09/14 19:55:41 [ERROR] [stacks] Stack paperless-ngx start failed after 0.3s: exit code 1
stderr: Container paperless-webserver Creating
service:paperless-webserver:1 Error response from daemon: Conflict. The container name "/paperless-webserver" is already in use by container "1677d704c838460d1d848b49a4dad7919b9eeeb073815a592d1638a7ecfa7f7f". You have to remove (or rename) that container to be able to reuse that name.
Error response from daemon: Conflict. The container name "/paperless-webserver" is already in use by container "1677d704c838460d1d848b49a4dad7919b9eeeb073815a592d1638a7ecfa...
2026/09/14 19:55:41 [WARN] [bootrecon] Boot reconciliation attempt 1/2: start "paperless-ngx" failed after 0.3s: starting stack paperless-ngx: exit code 1
stderr: Container paperless-webserver Creating
service:paperless-webserver:1 Error response from daemon: Conflict. The container name "/paperless-webserver" is already in use by container "1677d704c838460d1d848b49a4dad7919b9eeeb073815a592d1638a7ecfa7f7f". You have to remove (or rename) that container to be able to reuse that name.
Error response from daemon: Conflict. The container name "/paperless-webserver" is already in use by container "1677d704c838460d1d848b49a4dad7919b9eeeb073815a592d1638a7ecfa...
2026/09/14 19:55:41 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:45 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:45 [INFO] Health probes: 3 ok (of 3 probed)
2026/09/14 19:55:45 [INFO] [scheduler] Running job: agent-channel-health
2026/09/14 19:55:45 [INFO] [scheduler] Job agent-channel-health completed (took 183ms)
2026/09/14 19:55:52 [INFO] [stacks] Stack paperless-ngx started successfully (took 11.7s)
2026/09/14 19:55:52 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:52 [INFO] [gate] boot 1789415571-10089: re-syncing FileBrowser mounts against the live binds
2026/09/14 19:55:52 [INFO] [settings] Settings saved
2026/09/14 19:55:52 [INFO] [web] FileBrowser sync — no config/compose change, ensured running without recreate (1 storage path(s))
2026/09/14 19:55:55 [INFO] [stacks] Stack paperless-ngx post-start status:
2026/09/14 19:55:55 [INFO] [stacks] paperless-postgres postgres:16-alpine running Up 14 seconds (healthy)
2026/09/14 19:55:55 [INFO] [stacks] paperless-redis redis:7-alpine running Up 14 seconds (healthy)
2026/09/14 19:55:55 [INFO] [stacks] paperless-webserver ghcr.io/paperless-ngx/paperless-ngx:2.20.15 running Up 3 seconds (health: starting)
2026/09/14 19:55:55 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:55:55 [INFO] Health probes: 1 ok (of 1 probed)
2026/09/14 19:56:05 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:56:11 [INFO] [stacks] Starting stack: paperless-ngx
2026/09/14 19:56:11 [INFO] [stacks] Stack paperless-ngx started successfully (took 0.6s)
2026/09/14 19:56:11 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:56:11 [INFO] [bootrecon] Boot reconciliation attempt 2/2: started "paperless-ngx" (took 0.9s)
2026/09/14 19:56:12 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:56:12 [INFO] [bootrecon] Boot reconciliation complete: 1 app(s) recovered in 2 attempt(s): [paperless-ngx]
2026/09/14 19:56:14 [INFO] [fillwatch] checked 3 filesystem(s), 0 unreadable/skipped, 0 notification(s); bands: all ok
2026/09/14 19:56:15 [INFO] [stacks] Stack paperless-ngx post-start status:
2026/09/14 19:56:15 [INFO] [stacks] paperless-postgres postgres:16-alpine running Up 33 seconds (healthy)
2026/09/14 19:56:15 [INFO] [stacks] paperless-redis redis:7-alpine running Up 33 seconds (healthy)
2026/09/14 19:56:15 [INFO] [stacks] paperless-webserver ghcr.io/paperless-ngx/paperless-ngx:2.20.15 running Up 23 seconds (health: starting)
2026/09/14 19:56:15 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:56:25 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:56:26 [INFO] [web] Login from 172.18.0.10:39418
2026/09/14 19:56:35 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:56:45 [INFO] [scheduler] Running job: stack-scan
2026/09/14 19:56:45 [INFO] [stacks] ScanStacks complete: 57 stacks found (12 deployed, 45 available)
2026/09/14 19:56:45 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:56:45 [INFO] [scheduler] Job stack-scan completed (took 60ms)
2026/09/14 19:56:45 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:56:45 [INFO] [scheduler] Running job: agent-channel-health
2026/09/14 19:56:45 [INFO] [scheduler] Job agent-channel-health completed (took 175ms)
2026/09/14 19:56:55 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:57:05 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
2026/09/14 19:57:15 [INFO] [stacks] Status refresh: 28 containers across 57 stacks
@@ -0,0 +1,6 @@
19:56:56 status.php {"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"34.0.1.2","version
Fotók/Balaton 2026/foto-000.jpg 200 sha equal True
Fotók/Balaton 2026/foto-123.jpg 200 sha equal True
Fotók/Balaton 2026/foto-199.jpg 200 sha equal True
Számlák/szamla-07.pdf 200 sha equal True
photos listed 200
@@ -0,0 +1,20 @@
F4 detach scsi1 at 19:57:27
update VM 333: -delete scsi1
scsi0: nvme-scratch:333/vm-333-disk-1.qcow2,size=200G
scsihw: virtio-scsi-single
unused0: nvme-scratch:333/vm-333-disk-2.qcow2
F4 + 5s 19:57:32 drive: {'nextcloud': 'running', 'immich': 'running', 'jellyfin': 'running', 'paperless-ngx': 'running'} sys: {'bookstack': 'running', 'vaultwarden': 'running', 'mealie': 'running', 'docmost': 'running'} userdata: [(None, 'attached')] front: {'nextcloud': 503, 'bookstack': 200}
F4 + 38s 19:58:04 drive: {'nextcloud': 'stopped', 'immich': 'stopped', 'jellyfin': 'stopped', 'paperless-ngx': 'stopped'} sys: {'bookstack': 'running', 'vaultwarden': 'running', 'mealie': 'running', 'docmost': 'running'} userdata: [(None, 'attached')] front: {'nextcloud': 404, 'bookstack': 200}
--- box view
[ 714.529286] EXT4-fs warning (device sdb): htree_dirblock_to_tree:1051: inode #1573277: lblock 0: comm du: error -5 reading directory block
[ 714.533143] EXT4-fs warning (device sdb): htree_dirblock_to_tree:1051: inode #1572880: lblock 0: comm du: error -5 reading directory block
[ 714.535592] EXT4-fs warning (device sdb): htree_dirblock_to_tree:1051: inode #1704039: lblock 0: comm du: error -5 reading directory block
[ 714.537025] EXT4-fs warning (device sdb): htree_dirblock_to_tree:1051: inode #1704040: lblock 0: comm du: error -5 reading directory block
[ 750.002983] EXT4-fs warning (device sdb): htree_dirblock_to_tree:1051: inode #1572865: lblock 0: comm ls: error -5 reading directory block
[ 750.005249] EXT4-fs warning (device sdb): htree_dirblock_to_tree:1051: inode #1572865: lblock 0: comm find: error -5 reading directory block
[ 750.929013] EXT4-fs warning (device sdb): htree_dirblock_to_tree:1051: inode #1572865: lblock 0: comm ls: error -5 reading directory block
[ 750.931070] EXT4-fs warning (device sdb): htree_dirblock_to_tree:1051: inode #1572865: lblock 0: comm find: error -5 reading directory block
ls: reading directory '/mnt/felhom-drives/hdd_1': Input/output error
/dev/mapper/pve-root on /mnt/felhom-drives type ext4 (rw,relatime,errors=remount-ro)
/dev/sdb on /mnt/felhom-drives/hdd_1 type ext4 (rw,relatime,shutdown)
/dev/mapper/pve-root on /mnt/felhom-drives type ext4 (rw,relatime,errors=remount-ro)
@@ -0,0 +1,12 @@
=== /storage 20:04:54
↗ | 4 telepített alkalmazás nem fut — nézze meg a rendszermonitort | Rendszermonitor → | Meghajtó leválasztva: Adatlemez (/mnt/felhom-drives/hdd_1) | Beállítások → | Meghajtó leválasztva: Adatlemez (/mnt/felhom-drives/hdd_1) | Rendszermonitor → | Tárhely — Meghajtók | Adattárolók | Külső meghajtók kezelése alkalmazásadatok tárolásához. | Adatlemez | /mnt/felhom-drives/hdd_1 | Leválasztva | Leválasztva: 2026-09-14T19:58:02Z | Leállított alkalmazások: immich, jellyfin, nextcloud, paperless-ngx | Csatlakoztatás | Adatok áthelyezése | … | Új meghajtó inicializálása | Meglévő meghajtó csatolása | Nem regisztrált meghajtók | az ügynök által észlelt, még nem regisztrált adatmeghajtók | Rendszermeghajtók | védett — csak operátori aláírással módosíthatók | Már csatlakoztatott tárhely hozzáadása kézzel | Elérési út | Pl. /mnt/hdd_1 — a meghajtónak már csatolva kell lennie | Megnevezés (opcionális) | Legyen alapértelmezett új telepítéseknél | Hozzáadás
=== /apps/nextcloud 20:04:54
↗ | 4 telepített alkalmazás nem fut — nézze meg a rendszermonitort | Rendszermonitor → | Meghajtó leválasztva: Adatlemez (/mnt/felhom-drives/hdd_1) | Beállítások → | Meghajtó leválasztva: Adatlemez (/mnt/felhom-drives/hdd_1) | Rendszermonitor → | ← Alkalmazások | Nextcloud | Leállítva | Naprakész | Megnyitás ↗ | Napló | Exportálás | Beállítások | Hiányzó tárhely: Adatlemez | Ennek az alkalmazásnak az adattárolója jelenleg nem elérhető, ezért le van állítva. Csatlakoztasd újra a meghajtót, vagy helyezd át az adatokat egy másik tárhelyre. | A saját Google Drive-od - fájlok, naptár, névjegyek egy helyen | ~256M RAM | files | HDD szükséges | Csak x86 | Mire használható? | Fájlok szinkronizálása és megosztása eszközök között | Naptár és névjegyek szinkronizálás (CalDAV/CardDAV) | Dokumentumok közös szerkesztése (OnlyOffice integrációval) | Fotó és videó automatikus feltöltés telefonról | Alkalmazásbolt - kibővíthető funkciók (Notes, Tasks, Forms, stb.) | Első lépések | Nyisd meg a cloud.DOMAIN címet a böngészőben | Jelentkezz be a telepítéskor megadott admin fiókkal | Telepítsd a Nextcloud asztali alkalmazást a számítógépedre | Telepítsd a Nextcloud mobil alkalmazást a telefonodra | Hívd meg a családtagokat felhasználói fiókok létrehozásával | Előfeltételek | Külső HDD szükséges a fáj
=== /dashboard 20:04:54
↗ | 4 telepített alkalmazás nem fut — nézze meg a rendszermonitort | Rendszermonitor → | Meghajtó leválasztva: Adatlemez (/mnt/felhom-drives/hdd_1) | Beállítások → | Meghajtó leválasztva: Adatlemez (/mnt/felhom-drives/hdd_1) | Rendszermonitor → | Vezérlőpult | enkicsifelhom.hu | 12 | Futó alkalmazás | 4 | Leállítva | 57 | Összes alkalmazás | Memória | 2.3 GB / 12 GB (20%) | CPU | 7% | Load: 0.30 / 0.86 / 0.86 | Rendszer (/) | 23.0 GB / 68.7 GB (33%) | Adatlemez | — | Leválasztva | Lemezek állapota | QEMU QEMU HARDDISK | Nincs adat | 0 °C | Biztonsági mentés | Utolsó mentés: | 2026-09-14 19:40 | Adatbázisok: | 3 mentve | Telepített alkalmazások | AdventureLog | Utazási napló és kalandtervező | Fut | Megnyitás | Napló | BookStack | Egyszerű, könyv-szerű wiki és dokumentáció platform | Fut | Megnyitás | Napló | Cloudflare Tunnel | Biztonságos internetkapcsolat — a szerver portnyitás nélkül érhető el kívülről. | Fut | Védett | Docmost | Modern wiki és dokumentáció platform (Notion-szerű) | Fut | Megnyitás | Napló | FileBrowser | Fájlkezelő — a tárhely fájljainak böngészése a böngészőből. | Fut | Védett | Megnyitás | Gokapi | Ideiglenes fájlmegosztás lejáró linkekkel | Fut | Megnyitás | Napló | Immich | Fotók és videók kezelése (Google Photos alternatíva) | Leállítva | Hiányzó tárhely
=== /stacks 20:04:54
Nextcloud | cloud.enkicsifelhom.hu ↗ | Leállítva | Naprakész | Hiányzó tárhely: Adatlemez | Saját felhő tárhely - Google Drive/Dropbox alternatíva | ~256M | HDD
Immich | photos.enkicsifelhom.hu ↗ | Leállítva | Naprakész | Hiányzó tárhely: Adatlemez | Fotók és videók kezelése (Google Photos alternatíva) | ~2048M | HDD sz
Jellyfin | media.enkicsifelhom.hu ↗ | Leállítva | Naprakész | Hiányzó tárhely: Adatlemez | Ingyenes és nyílt forráskódú média szerver | ~512M | HDD szükséges |
Paperless-ngx | paperless.enkicsifelhom.hu ↗ | Leállítva | Naprakész | Hiányzó tárhely: Adatlemez | Dokumentumok digitalizálása és rendszerezése | ~500M | Pi ko
BookStack | wiki.enkicsifelhom.hu ↗ | Fut | Naprakész | Egyszerű, könyv-szerű wiki és dokumentáció platform | ~150M | Pi kompatibilis | bookstack | Up 10 minute
@@ -0,0 +1,19 @@
=== fail-closed path while the drive is out 20:05:20
--- PVE host
/mnt/felhom-drives/hdd_1 is a mountpoint
/mnt/felhom-drives/:
total 12
drwxr-xr-x 3 root root 4096 Sep 14 20:12 .
drwxr-xr-x 5 root root 4096 Sep 14 20:12 ..
drwxr-xr-x 5 100000 100000 4096 Sep 14 20:24 hdd_1
/mnt/felhom-drives/hdd_1:
ls: reading directory '/mnt/felhom-drives/hdd_1': Input/output error
total 0
0
--- guest 9201
/mnt/felhom-drives/hdd_1 is a mountpoint
ls: reading directory '/mnt/felhom-drives/hdd_1': Input/output error
total 0
0
/dev/sdb 98G 3.6G 90G 4% /mnt/felhom-drives/hdd_1
+3 -1
View File
@@ -719,10 +719,12 @@ class (an image `VOLUME` at an unmounted path) is still live — `immich-server`
| **R-513** | **[P1-HIGH — SECURITY] Every box's file manager (FileBrowser, `files.<domain>`, a launcher tile) accepts the login `admin` / `admin`, and on demo-hp that login page is on the public internet.** MEASURED 2026-09-14 (BIGNIGHT): `POST /api/auth/login?username=admin` with `X-Password: admin` → **200 + a session token** on VM 333 (fresh ISO 1.27.1 install, controller 0.242.0) and on demo-hp guests **9201 and 9202** (loopback, `Host: files.enkisfelhom.hu`); negative control `admin` / wrong → **401** on all three. On VM 333 that token lists both sources — „Adatlemez" (the data drive's `userdata`: documents, media, photos…) and „Beolvasás" (with `paperless`) — `GET /api/users?id=self` 200. **Public exposure, measured by GET only:** `https://files.enkisfelhom.hu/` from DooPlex through Cloudflare → 200, FileBrowser Quantum, `passwordAvailable:true, noAuth:false` (`phase3/filebrowser-public-reachability-demo-hp.txt`); no login was attempted over the internet. The generated `config.yaml` sets no admin credential (FileBrowser's own default applies); no screen shows the customer any FileBrowser login. Geo-restriction narrows who can reach it, it does not authenticate. **Not changed tonight** (9201's standing state is fenced; no product code). **Fix shape:** the controller sets a generated admin password (or proxy auth behind the dashboard session) at stack creation and on every existing box, and shows it where the customer finds app credentials. | **READY — rank P1-HIGH; owner: CC (controller) · operator (rotate on live boxes first)** |
| **R-514** | **[P2-MEDIUM] Paperless-ngx dies silently when a family uploads 20 documents at once: its worker is OOM-killed inside the catalog's 768 MB cap, 11 uploads fail, 8 wait forever, and the app still reads „Fut".** MEASURED 2026-09-14 (BIGNIGHT, VM 333, catalog paperless-ngx 2.20.15, `paperless-webserver` limit 805 306 368 B): 20 small 3-page PDFs posted through `/api/documents/post_document/` at 18:29:57Z. At 18:31:22Z the VM kernel logged `Memory cgroup out of memory: Killed process … (gs)` ×2, `([celeryd: celer)`, `([celery beat] -)` — constraint MEMCG of that container; `docker inspect` → `oomkilled=true restarts=0`. Paperless's own task list: **11 FAILURE (`WorkerLostError`), 1 STARTED, 8 PENDING**, unchanged 13 minutes later; **0 documents**. The controller shows the app running and healthy; no event, no alarm (`phase3/paperless-tasks.txt`, `paperless-oom-check.txt`). A household scanning a drawer of bills sees nothing arrive and no reason. **Fix shape:** raise the cap or set `PAPERLESS_TASK_WORKERS=1` / `PAPERLESS_THREADS_PER_WORKER=1` in the template, and let the dead-app/health check see an OOM-killed worker. | **READY — rank P2-MEDIUM; owner: CC (catalog)** |
| **R-515** | **[P3-LOW] The Paperless-ngx app page tells the customer to log in with `admin / admin`, and that login does not exist: the deploy form generates the admin password.** MEASURED 2026-09-14 (BIGNIGHT, VM 333): `/apps/paperless-ngx` „Első lépések — Jelentkezz be: admin / admin" and „Alapértelmezett belépés admin / admin"; the catalog template generates `PAPERLESS_ADMIN_PASSWORD` (`password:16`) and the token call with the generated value succeeded (`phase3/seed-paperless.txt`). A household following the page is refused at its first login. Same card also sends documents to „FileBrowser … import/paperless" — the FileBrowser login is R-513. **Fix:** the card points at „Beállítások → Automatikusan generált értékek" as gokapi's does. | **READY — rank P3-LOW; owner: CC (catalog)** |
| **R-516** | **[P3-LOW] English a customer meets on a fresh box and its apps' first screens — enumerated by the big night.** MEASURED 2026-09-14 (BIGNIGHT, VM 333, ISO 1.27.1, controller 0.242.0). Felhom-owned: (1) the dashboard menu item **„Debug"**; (2) the dashboard CPU tile **„Load: 0.29 / 0.39 / 0.37"**; (3) the launcher tile **„Filebrowser"** opens a login in English with no Felhom text (R-513); (4) the storage page mixes formal „Adjon hozzá / Csatlakoztasson" with the product's „te". App first screens a household meets before any Felhom text helps: (5) **Uptime Kuma 2.4 opens on „Which database would you like to use?"** (SQLite / Embedded MariaDB, „Next") — the app card's „Első lépések" does not mention it; (6) PrivateBin, Gokapi, AdventureLog and FileBrowser UIs are English (the apps' own). Already rows: the Proxmox installer screens (R-495, answered by the guide), `wiki.DOMAIN` (R-498). **Fix shape:** rename „Debug"/„Load" (controller); add the Uptime Kuma database step to its card, or pre-seed `db-config.json` for SQLite in the template (catalog). | **READY — rank P3-LOW; owner: CC (controller + catalog)** |
| **R-516** | **[P3-LOW] English a customer meets on a fresh box and its apps' first screens — enumerated by the big night.** MEASURED 2026-09-14 (BIGNIGHT, VM 333, ISO 1.27.1, controller 0.242.0). Felhom-owned: (1) the dashboard menu item **„Debug"**; (2) the dashboard CPU tile **„Load: 0.29 / 0.39 / 0.37"**; (3) the launcher tile **„Filebrowser"** opens a login in English with no Felhom text (R-513); (4) the storage page mixes formal „Adjon hozzá / Csatlakoztasson" with the product's „te". App first screens a household meets before any Felhom text helps: (5) **Uptime Kuma 2.4 opens on „Which database would you like to use?"** (SQLite / Embedded MariaDB, „Next") — the app card's „Első lépések" does not mention it; (6) PrivateBin, Gokapi, AdventureLog and FileBrowser UIs are English (the apps' own). Already rows: the Proxmox installer screens (R-495, answered by the guide), `wiki.DOMAIN` (R-498). **Fix shape:** rename „Debug"/„Load" (controller); add the Uptime Kuma database step to its card, or pre-seed `db-config.json` for SQLite in the template (catalog). **Added by F4 (20:04:54Z):** (7) the storage page prints the disconnect time as a raw ISO UTC string „Leválasztva: 2026-09-14T19:58:02Z"; (8) the „Meghajtó leválasztva" banner appears twice on every page; (9) „4 telepített alkalmazás nem fut — nézze meg a rendszermonitort" uses the formal form. | **READY — rank P3-LOW; owner: CC (controller + catalog)** |
| **R-517** | **[P1-HIGH] After a failed off-site whole-system backup, „Biztonsági mentés" tells the customer the full backup is current and that a remote copy on separate hardware exists — neither is true.** MEASURED 2026-09-14 (BIGNIGHT, VM 333, controller 0.242.0, customer `tester-1` with the DR tier ticked but never provisioned — R-511): „Mentés most" at 19:03:23Z; the local tier succeeded (8 877 619 753 B, 362 s); the `felhom-pbs` tier then failed — agent: `could not activate storage 'felhom-pbs': storage 'felhom-pbs' does not exist`; `pvesm status` lists only `local` and `local-lvm`. At 19:15:36Z `/backups` read: „✗ · **Utolsó teljes mentés 2026-09-14 21:09 (5 perce) · 0 B · Biztonsági szerver – külön hardver (PBS) · Naprakész**" and „✓ **Távoli rendszermentés — külön hardveren (PBS)**" (`phase4/backup-pages-after.txt`). The successful 8.9 GB local backup is no longer shown; a 0-byte failed attempt is labelled up to date; the remote tier is ticked as present. The CLAUDE.md rule „presence is not success" in page form: an attempt's timestamp stands in for a result. The hub did raise a true `whole_guest_backup_failed (error)` to the operator; the customer's page says the opposite. **Fix shape:** the tile shows the newest SUCCESSFUL backup per tier, a failed tier as failed, and a tier whose storage does not exist as „nincs beállítva". **Also measured after F2's reboot (19:45:41Z):** the whole-system tile read „– · Utolsó teljes mentés – · Méret / cél · **Naprakész**" — no backup listed at all, still labelled up to date (the 21:03 CEST local success no longer shown). | **READY — rank P1-HIGH; owner: CC (controller)** |
| **R-518** | **[P2-MEDIUM] „Mentés most" on the whole-system backup stops every app for about eight minutes while the page promises „csak néhány másodpercre".** MEASURED 2026-09-14 (BIGNIGHT, VM 333, 12 apps): the button's call quiesced all 12 stacks at 19:03:23Z (first stopped 19:03:27Z); the local vzdump ran 19:03:49 → 19:09:59Z; the controller then kept the apps stopped for the second (PBS) tier and restarted them at 19:10:09Z after it failed, the last started 19:11:12Z (`phase4/guest-backup-quiesce-log.txt`) — **≈ 7 m 45 s** with every app answering 404. The page under the button: „Pillanatkép-mód: az alkalmazások csak néhány másodpercre állnak le." A household pressing it at dinner loses every app for the length of the dump, and longer on a bigger box. **Fix shape:** state the real expected downtime (it scales with data), or quiesce per tier and not across a second tier's attempt; do not start a tier whose storage is absent (see R-517). | **READY — rank P2-MEDIUM; owner: CC (controller)** |
| **R-519** | **[P2-MEDIUM] After a backup torn by a power cut, an app's restore point carries the new database dump's time while its files are from the previous run — and no customer screen says the run was interrupted.** MEASURED 2026-09-14 (BIGNIGHT F2, VM 333): „Mentés most" 19:40:03Z; the power was cut 19:40:08Z while adventurelog was stopped for its volume dump. On disk afterwards, `backups/primary/adventurelog`: `db-dumps/adventurelog-postgres.sql` **19:40:07**, `volume-dumps/*.tar` **19:00:35**, `manifest.json created_at 19:02:34Z`; bookstack the same shape (sql 19:40:07, tars 19:00:48). `GET /api/backup/snapshots` for both → `time 2026-09-14T19:40:07Z, helyi` (`phase5/F2/units-on-disk.txt`, `backup-honesty.txt`). `/backups/apps` shows „Utolsó adatbázis mentés 2026-09-14 21:40 · … OK" and every app „Utolsó: 5 perce"; `/backups` and `/dashboard` contain no word of an interruption (fragments `megszakad|sikertelen|nem sikerült` = 0; control „hiba" appears in the standing warning text). The controller itself knew: `[appstop] crash recovery: an app-data backup (volume dump) … was interrupted … restarting them: [adventurelog]` and pushed `backup_failed (error)` to the hub. A household restoring „the 21:40 backup" gets 21:00 files for BookStack's uploads. **Fix shape:** date a point by the oldest part it contains (or mark it partial) and show the interrupted run on the backups page until the next complete one. | **READY — rank P2-MEDIUM; owner: CC (controller)** |
| **R-520** | **[P3-LOW] A power cut during a guarded Update leaves no record that an update was running, so whether the journal resumes or aborts honestly is unmeasured for a real version change.** MEASURED 2026-09-14 (BIGNIGHT F3, VM 333): the only Update the catalog allowed after the Phase 4 revert was a same-version one on nextcloud; power was cut 2 s after `update nextcloud: phase pulling` (safety dump written, pin advanced to the unchanged definition). After boot: no log line resumes, aborts or names the interrupted update; `app.yaml` `pinned_images` = `installed_images`, no hold, no verdict; page „Fut · Naprakész". Nothing wrong was produced — and nothing could have been, with identical images. **What it needs:** the same cut on a real bump (a throwaway app with a one-step catalog move on a scratch branch or the scratch guest), asserting the page's message and the pin after boot. | **READY — rank P3-LOW; owner: CC (drill)** |
| **R-521** | **[P3-LOW] One unplugged drive sends the operator five e-mails and the household none.** MEASURED 2026-09-14 (BIGNIGHT F4, VM 333): `storage_disconnected (error)` at 21:58:02 CEST plus `app_start_failed (warning)` for each of the four apps the drive carries at 21:58:15, each with its own operator mail (hub log: five `Operator email sent`). The customer's mailbox (`tester1@felhom.eu`, read through the connector) received nothing; the household learns of it only on the dashboard, which is honest and says what to do. The apps' stop is a consequence of the drive event, so the four warnings add no information. **Fix shape:** suppress `app_start_failed` for apps stopped by a `storage_disconnected` (the dead-app check already knows the reason — „Hiányzó tárhely"), and decide whether a household gets a mail for a lost drive. | **READY — rank P3-LOW; owner: CC (controller) · operator (customer mail policy)** |
<!-- DUE-CHECKS-BEGIN — machine-readable. Parsed by scripts/due_checks_gate.py.
One row per dated check. The R-number must have a row above. Dates are UTC.