Files
felhom.eu/documentation/audits/DRILL-r384-dead-db-alarm-2026-08-23/evidence/live-09-scenarioA-full-controller-log.txt
T
admin 55274d5ef3
gates / gates (push) Successful in 17s
R-385: make an UNRECORDED golden fail the currency gate; file R-386; own the alarm ladder
The gate failed only on `released > baked`, so it could catch a forgotten bake
and nothing else. A golden AHEAD of the record passed silently - and that is
how controller 0.221.1 was built, baked AND vouched while the newest CHANGELOG
heading still read v0.221.0, with every gate green. Reproduced on the real
history: newest released 0.221.0 / newest golden baked 0.221.1 -> exit 0.

The gate now asks whether the version being shipped is WRITTEN DOWN: the baked
version must have its own `## vX.Y.Z` heading anywhere in the CHANGELOG.
Membership rather than `baked > released` deliberately - a comparison against
the newest heading alone goes green the moment any later entry is written,
leaving the unrecorded version permanently unrecorded. INCONCLUSIVE (exit 2)
preserved; every refusal names a reason and a route.

Red-proofed both directions: old gate/old record exit 0, new gate/old record
exit 1, new gate/fixed record exit 0, absent clone exit 2, post-bake exit 0.

08-alarm-ladder.md is new, and its absence was itself the finding: no document
owned "when does a broken app raise an alarm?". The rules lived as comments in
four packages, each locally correct, with the ordering between them legible only
by reading one function top to bottom - which is how R-384 survived review.

R-383 and R-384 closed into CLOSED-ITEMS with their rules kept. R-385 filed
closed. R-386 filed OPEN: a single-container app stopped out of band raises no
alarm, and a comment claims the opposite - measured live, 9 scans, 0 events,
against a positive control from the same box 17 minutes earlier. Not fixed here.

Golden 0.222.0 baked and published; vouching is the operator's act.
2026-08-23 07:59:52 +02:00

1809 lines
221 KiB
Plaintext

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LC_NUMERIC = (unset),
LC_COLLATE = (unset),
LC_TIME = (unset),
LC_MESSAGES = (unset),
LC_MONETARY = (unset),
LC_ADDRESS = (unset),
LC_IDENTIFICATION = (unset),
LC_MEASUREMENT = (unset),
LC_PAPER = (unset),
LC_TELEPHONE = (unset),
LC_NAME = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
2026/08/23 05:29:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:29:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:29:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:29:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:29:12 auth.go:115: [DEBUG] [web] auth: rejected GET / from 172.17.0.1:51046 (no cookie)
2026/08/23 05:29:12 auth.go:115: [DEBUG] [web] auth: rejected GET / from 172.18.0.1:58360 (no cookie)
2026/08/23 05:29:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:29:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:29:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:29:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:29:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:29:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:29:16 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:29:16 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:29:16 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:29:16Z, active_sessions=8
2026/08/23 05:29:16 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:29:16 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:29:16 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:29:16 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:29:16 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:29:16 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:29:16 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:29:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (606ms)
2026/08/23 05:29:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (642ms)
2026/08/23 05:29:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:29:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:29:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:29:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:29:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:29:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:29:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:29:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:29:37 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:29:37 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:29:37 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:29:37Z, active_sessions=9
2026/08/23 05:29:37 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:29:37 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:29:37 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:29:37 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:29:37 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:29:37 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:29:37 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:29:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:29:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4089MB avail≈21809MB
2026/08/23 05:29:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25865168 → total=25898MB avail=21809MB used=4089MB (15.8%)
2026/08/23 05:29:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:29:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:29:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.63 0.67 0.74 3/915 998" → 1m=0.63 5m=0.67 15m=0.74
2026/08/23 05:29:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:29:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 51.9°C (hwmon1)
2026/08/23 05:29:44 info.go:13: [DEBUG] [system] GetInfo done in 58ms — mem=4089MB/25898MB (15.8%), rootDisk=10.2GB/68.7GB (14.8%), load=0.63/0.67/0.74, temp=51.9°C (hwmon1), cpu=8.4%
2026/08/23 05:29:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:29:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:29:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:29:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:29:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:29:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:29:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:29:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:29:44 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (553ms)
2026/08/23 05:29:44 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 554ms)
2026/08/23 05:29:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (589ms)
2026/08/23 05:29:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (648ms)
2026/08/23 05:29:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:29:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:29:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:29:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:29:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:29:58 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:29:58 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:29:58 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:29:58Z, active_sessions=10
2026/08/23 05:29:58 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:29:58 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:29:58 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:29:58 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:29:58 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:29:58 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:29:58 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:30:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:30:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:30:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:30:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:30:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:30:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:30:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:30:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:30:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:30:14 manager.go:703: [DEBUG] [stacks] restart-policy of down member "bookstack-db" = "unless-stopped"
2026/08/23 05:30:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:30:14 notifier.go:206: [DEBUG] PushEvent: type=app_start_failed severity=warn url=https://hub.felhom.eu/api/v1/event
2026/08/23 05:30:14 notifier.go:232: [DEBUG] PushEvent: app_start_failed pushed OK (HTTP 200)
2026/08/23 05:30:14 notifier.go:234: [INFO] Event pushed: app_start_failed (warn) — Telepített alkalmazás nem fut: BookStack
2026/08/23 05:30:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (699ms)
2026/08/23 05:30:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (663ms)
2026/08/23 05:30:19 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:30:19 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:30:19 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:30:19Z, active_sessions=11
2026/08/23 05:30:19 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:30:19 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:30:19 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:30:19 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:30:19 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:30:19 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:30:19 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:30:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:30:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:30:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:30:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:30:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:30:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:30:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:30:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:30:40 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:30:40 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:30:40 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:30:40Z, active_sessions=12
2026/08/23 05:30:40 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:30:40 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:30:40 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:30:40 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:30:40 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:30:41 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:30:41 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:30:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:30:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4095MB avail≈21803MB
2026/08/23 05:30:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25857124 → total=25898MB avail=21803MB used=4095MB (15.8%)
2026/08/23 05:30:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:30:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:30:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.67 0.67 0.73 5/900 1121" → 1m=0.67 5m=0.67 15m=0.73
2026/08/23 05:30:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:30:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.0°C (hwmon2)
2026/08/23 05:30:44 info.go:13: [DEBUG] [system] GetInfo done in 67ms — mem=4095MB/25898MB (15.8%), rootDisk=10.2GB/68.7GB (14.8%), load=0.67/0.67/0.73, temp=52.0°C (hwmon2), cpu=5.5%
2026/08/23 05:30:44 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 05:30:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:30:44 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 05:30:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:30:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:30:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:30:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:30:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:30:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:30:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 05:30:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 05:30:44 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 05:30:44 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 05:30:44 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 05:30:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:30:44 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 82ms)
2026/08/23 05:30:45 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (578ms)
2026/08/23 05:30:45 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 579ms)
2026/08/23 05:30:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (600ms)
2026/08/23 05:30:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (604ms)
2026/08/23 05:30:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:30:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:30:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:30:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:30:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:31:02 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:31:02 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:31:02 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:31:02Z, active_sessions=13
2026/08/23 05:31:02 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:31:02 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:31:02 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:31:02 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:31:02 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:31:02 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:31:02 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:31:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:31:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:31:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:31:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:31:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:31:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:31:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:31:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:31:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:31:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:31:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (676ms)
2026/08/23 05:31:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (627ms)
2026/08/23 05:31:23 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:31:23 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:31:23 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:31:23Z, active_sessions=14
2026/08/23 05:31:23 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:31:23 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:31:23 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:31:23 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:31:23 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:31:23 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:31:23 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:31:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:31:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:31:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:31:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:31:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:31:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:31:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:31:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4073MB avail≈21825MB
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25883624 → total=25898MB avail=21825MB used=4073MB (15.7%)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.56 0.64 0.72 9/898 1240" → 1m=0.56 5m=0.64 15m=0.72
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 55.5°C (hwmon2)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] GetInfo done in 73ms — mem=4073MB/25898MB (15.7%), rootDisk=10.2GB/68.7GB (14.8%), load=0.56/0.64/0.72, temp=55.5°C (hwmon2), cpu=2.9%
2026/08/23 05:31:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:31:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:31:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:31:44 scheduler.go:346: [INFO] [scheduler] Running job: offsite-credential-retry
2026/08/23 05:31:44 scheduler.go:67: [DEBUG] [scheduler] job offsite-credential-retry: execution starting
2026/08/23 05:31:44 scheduler.go:363: [INFO] [scheduler] Job offsite-credential-retry completed (took 0s)
2026/08/23 05:31:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:31:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:31:44 scheduler.go:346: [INFO] [scheduler] Running job: system-health
2026/08/23 05:31:44 scheduler.go:67: [DEBUG] [scheduler] job system-health: execution starting
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:31:44 scheduler.go:346: [INFO] [scheduler] Running job: backup-cache
2026/08/23 05:31:44 scheduler.go:67: [DEBUG] [scheduler] job backup-cache: execution starting
2026/08/23 05:31:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:31:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:31:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:31:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:31:44 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/sys_drive → [bookstack, docmost, kimai, opengist, privatebin]
2026/08/23 05:31:44 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/felhom-drives/hdd_1 → [calibre-web, paperless-ngx, romm]
2026/08/23 05:31:44 backup.go:1063: [INFO] [backup] Found 13 DB dump files across drives
2026/08/23 05:31:44 dbdump.go:128: [DEBUG] DiscoverDatabases: running docker ps to find database containers
2026/08/23 05:31:44 dbdump.go:147: [DEBUG] DiscoverDatabases: docker ps output: 80e323a12629 felhom-controller gitea.dooplex.hu/admin/felhom-controller:0.222.0
77031a0c1319 romm romm rommapp/romm:5.0.0
aa6fe6fa459e romm-redis romm redis:7-alpine
e076270a7d75 romm-db romm mariadb:11.4
aa40544a01f2 privatebin privatebin privatebin/pdo:2.0.5
1c704643bc4c paperless-webserver paperless-ngx ghcr.io/paperless-ngx/paperless-ngx:2.20.15
e31aa0b09dbb paperless-postgres paperless-ngx postgres:16-alpine
0d63a39cdce6 paperless-redis paperless-ngx redis:7-alpine
df8ce46d665d opengist op...
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container felhom-controller (image=gitea.dooplex.hu/admin/felhom-controller:0.222.0, not a database)
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm (image=rommapp/romm:5.0.0, not a database)
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm-redis (image=redis:7-alpine, not a database)
2026/08/23 05:31:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: romm-db (id=e076270a7d75)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4075MB avail≈21823MB
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25881048 → total=25898MB avail=21823MB used=4075MB (15.7%)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.56 0.64 0.72 10/910 1288" → 1m=0.56 5m=0.64 15m=0.72
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 55.6°C (hwmon2)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] GetInfo done in 65ms — mem=4075MB/25898MB (15.7%), rootDisk=10.2GB/68.7GB (14.8%), load=0.56/0.64/0.72, temp=55.6°C (hwmon2), cpu=7.6%
2026/08/23 05:31:44 healthcheck.go:42: [DEBUG] [monitor] Raw values: disk=14.8%, hdd=0.6% (configured=true), mem=15.7% (4075MB/25898MB), cpu=7.6%, temp=55.6°C (hwmon2)
2026/08/23 05:31:44 healthcheck.go:74: [DEBUG] [monitor] SSD disk: OK (15%)
2026/08/23 05:31:44 healthcheck.go:107: [DEBUG] [monitor] Memory: OK (16%)
2026/08/23 05:31:44 healthcheck.go:125: [DEBUG] [monitor] CPU: OK (8%)
2026/08/23 05:31:44 healthcheck.go:143: [DEBUG] [monitor] Temperature: OK (56°C)
2026/08/23 05:31:44 dbdump.go:196: [DEBUG] DiscoverDatabases: romm-db → stack=romm, dbUser=root, dbName=romm
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container privatebin (image=privatebin/pdo:2.0.5, not a database)
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container paperless-webserver (image=ghcr.io/paperless-ngx/paperless-ngx:2.20.15, not a database)
2026/08/23 05:31:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: paperless-postgres (id=e31aa0b09dbb)
2026/08/23 05:31:44 dbdump.go:894: [DEBUG] DiscoverDatabases: paperless-postgres → stack "paperless-ngx" from the compose project label (the container name would have given "paperless")
2026/08/23 05:31:44 dbdump.go:196: [DEBUG] DiscoverDatabases: paperless-postgres → stack=paperless-ngx, dbUser=paperless, dbName=paperless
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container paperless-redis (image=redis:7-alpine, not a database)
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container opengist (image=ghcr.io/thomiceli/opengist:1.13, not a database)
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container kimai (image=kimai/kimai2:apache-2.57.0, not a database)
2026/08/23 05:31:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: kimai-db (id=9849469a8b29)
2026/08/23 05:31:44 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:31:44 dbdump.go:196: [DEBUG] DiscoverDatabases: kimai-db → stack=kimai, dbUser=root, dbName=kimai
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost (image=docmost/docmost:0.95.0, not a database)
2026/08/23 05:31:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: docmost-postgres (id=3ead49ef14fe)
2026/08/23 05:31:44 healthcheck.go:157: [DEBUG] [monitor] Docker daemon: OK
2026/08/23 05:31:44 healthcheck.go:165: [DEBUG] [monitor] Checking 4 protected containers: [traefik cloudflared felhom-controller filebrowser]
2026/08/23 05:31:44 dbdump.go:196: [DEBUG] DiscoverDatabases: docmost-postgres → stack=docmost, dbUser=docmost, dbName=docmost
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost-redis (image=redis:7-alpine, not a database)
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container calibre-web (image=crocodilestick/calibre-web-automated:v4.0.6, not a database)
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container bookstack (image=lscr.io/linuxserver/bookstack:26.05.2, not a database)
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container filebrowser (image=gtstef/filebrowser:1.3.3-stable, not a database)
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container cloudflared (image=cloudflare/cloudflared:2026.6.0, not a database)
2026/08/23 05:31:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container traefik (image=traefik:v3.6.7, not a database)
2026/08/23 05:31:44 dbdump.go:203: [DEBUG] DiscoverDatabases: found 4 database(s), skipped 15 non-DB container(s)
2026/08/23 05:31:44 dbdump.go:206: [INFO] [backup] Discovered 4 databases
2026/08/23 05:31:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:31:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 05:31:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:31:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:31:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:31:44 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 05:31:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:31:44 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:31:44 [INFO] [backup] Discovered app data: 8 apps
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.8%)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/felhom-drives/hdd_1" total=937.8 GB used=5.9 GB avail=884.2GB (0.6%)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.8%)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.8%)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.8%)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/felhom-drives/hdd_1" total=937.8 GB used=5.9 GB avail=884.2GB (0.6%)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.8%)
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/felhom-drives/hdd_1" total=937.8 GB used=5.9 GB avail=884.2GB (0.6%)
2026/08/23 05:31:44 backup.go:1133: [INFO] [backup] Backup status cache refreshed
2026/08/23 05:31:44 scheduler.go:363: [INFO] [scheduler] Job backup-cache completed (took 169ms)
2026/08/23 05:31:44 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:31:44 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:31:44Z, active_sessions=15
2026/08/23 05:31:44 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:31:44 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:31:44 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:31:44 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:31:44 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:31:44 healthcheck.go:175: [DEBUG] [monitor] All protected containers running
2026/08/23 05:31:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/felhom-drives/hdd_1" total=937.8 GB used=5.9 GB avail=884.2GB (0.6%)
2026/08/23 05:31:44 healthcheck.go:192: [INFO] [monitor] Health check: status=ok
2026/08/23 05:31:44 healthcheck.go:196: [DEBUG] [monitor] Final status: ok (issues=0, warnings=0, info=5)
2026/08/23 05:31:44 scheduler.go:363: [INFO] [scheduler] Job system-health completed (took 215ms)
2026/08/23 05:31:44 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:31:44 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:31:44 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (546ms)
2026/08/23 05:31:44 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 546ms)
2026/08/23 05:31:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (621ms)
2026/08/23 05:31:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (612ms)
2026/08/23 05:31:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:31:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:31:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:31:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 7 targets (0 skipped not due, 1 skipped no container)
2026/08/23 05:31:54 healthprobe.go:153: [DEBUG] Health probe romm: HTTP GET :8080/ → 200 (7ms)
2026/08/23 05:31:54 healthprobe.go:153: [DEBUG] Health probe privatebin: HTTP GET :8080/ → 200 (10ms)
2026/08/23 05:31:54 healthprobe.go:153: [DEBUG] Health probe opengist: API GET :6157/healthcheck → 200 (10ms)
2026/08/23 05:31:54 healthprobe.go:153: [DEBUG] Health probe docmost: HTTP GET :3000/ → 200 (10ms)
2026/08/23 05:31:54 healthprobe.go:153: [DEBUG] Health probe calibre-web: HTTP GET :8083/ → 302 (12ms)
2026/08/23 05:31:54 healthprobe.go:153: [DEBUG] Health probe kimai: HTTP GET :8001/ → 302 (27ms)
2026/08/23 05:31:54 healthprobe.go:153: [DEBUG] Health probe bookstack: HTTP GET :80/ → 500 (58ms)
2026/08/23 05:31:54 healthprobe.go:133: [INFO] Health probes: 7 ok (of 7 probed)
2026/08/23 05:31:54 auth.go:146: [DEBUG] [web] login attempt from 172.17.0.1:48252 (X-Forwarded-For: )
2026/08/23 05:31:54 auth.go:194: [DEBUG] [web] login successful from 172.17.0.1, creating session
2026/08/23 05:31:54 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:31:54Z, active_sessions=16
2026/08/23 05:31:54 auth.go:214: [INFO] [web] Login from 172.17.0.1:48252
2026/08/23 05:31:54 auth.go:134: [DEBUG] [web] auth: valid session for GET /api/stacks
2026/08/23 05:31:54 router.go:80: [DEBUG] [api] GET /api/stacks (path=/stacks)
2026/08/23 05:32:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /api/stacks
2026/08/23 05:32:03 router.go:80: [DEBUG] [api] GET /api/stacks (path=/stacks)
2026/08/23 05:32:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:32:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:32:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:32:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:32:05 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:32:05 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:32:05 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:32:05Z, active_sessions=17
2026/08/23 05:32:05 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:32:05 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:32:05 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:32:05 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:32:05 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:32:05 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:32:05 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:32:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:32:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:32:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:32:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:32:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:32:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:32:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (658ms)
2026/08/23 05:32:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (672ms)
2026/08/23 05:32:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:32:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:32:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:32:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:32:26 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:32:26 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:32:26 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:32:26Z, active_sessions=18
2026/08/23 05:32:26 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:32:27 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:32:27 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:32:27 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:32:27 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:32:27 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:32:27 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:32:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:32:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:32:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:32:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:32:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:32:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3936MB avail≈21962MB
2026/08/23 05:32:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=26045440 → total=25898MB avail=21962MB used=3936MB (15.2%)
2026/08/23 05:32:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:32:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:32:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.55 0.62 0.71 4/899 1532" → 1m=0.55 5m=0.62 15m=0.71
2026/08/23 05:32:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:32:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 51.9°C (hwmon1)
2026/08/23 05:32:44 info.go:13: [DEBUG] [system] GetInfo done in 58ms — mem=3936MB/25898MB (15.2%), rootDisk=10.2GB/68.7GB (14.8%), load=0.55/0.62/0.71, temp=51.9°C (hwmon1), cpu=5.0%
2026/08/23 05:32:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:32:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:32:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:32:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:32:44 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 05:32:44 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 05:32:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:32:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:32:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:32:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 05:32:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 05:32:44 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 05:32:44 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 05:32:44 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 05:32:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:32:44 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 78ms)
2026/08/23 05:32:44 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (539ms)
2026/08/23 05:32:44 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 539ms)
2026/08/23 05:32:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (663ms)
2026/08/23 05:32:47 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (650ms)
2026/08/23 05:32:48 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:32:48 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:32:48 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:32:48Z, active_sessions=19
2026/08/23 05:32:48 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:32:48 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:32:48 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:32:48 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:32:48 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:32:48 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:32:48 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:32:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:32:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:32:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:32:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:32:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:33:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:33:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:33:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:33:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:33:09 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:33:09 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:33:09 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:33:09Z, active_sessions=20
2026/08/23 05:33:09 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:33:09 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:33:09 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:33:09 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:33:09 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:33:09 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:33:09 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:33:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:33:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:33:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:33:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:33:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:33:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:33:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (653ms)
2026/08/23 05:33:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (671ms)
2026/08/23 05:33:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:33:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:33:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:33:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:33:30 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:33:30 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:33:30 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:33:30Z, active_sessions=21
2026/08/23 05:33:30 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:33:30 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:33:30 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:33:30 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:33:30 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:33:30 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:33:30 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:33:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:33:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:33:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:33:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:33:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:33:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4036MB avail≈21862MB
2026/08/23 05:33:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25926768 → total=25898MB avail=21862MB used=4036MB (15.6%)
2026/08/23 05:33:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:33:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:33:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.39 0.56 0.68 5/897 1658" → 1m=0.39 5m=0.56 15m=0.68
2026/08/23 05:33:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:33:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 51.9°C (hwmon1)
2026/08/23 05:33:44 info.go:13: [DEBUG] [system] GetInfo done in 59ms — mem=4036MB/25898MB (15.6%), rootDisk=10.2GB/68.7GB (14.8%), load=0.39/0.56/0.68, temp=51.9°C (hwmon1), cpu=2.0%
2026/08/23 05:33:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:33:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:33:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:33:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:33:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:33:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:33:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:33:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:33:45 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (607ms)
2026/08/23 05:33:45 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 608ms)
2026/08/23 05:33:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (640ms)
2026/08/23 05:33:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (619ms)
2026/08/23 05:33:51 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:33:51 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:33:51 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:33:51Z, active_sessions=22
2026/08/23 05:33:51 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:33:51 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:33:51 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:33:51 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:33:51 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:33:51 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:33:51 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:33:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:33:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:33:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:33:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:33:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:34:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:34:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:34:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:34:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:34:12 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:34:12 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:34:12 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:34:12Z, active_sessions=23
2026/08/23 05:34:12 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:34:13 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:34:13 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:34:13 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:34:13 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:34:13 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:34:13 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:34:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:34:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:34:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:34:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:34:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:34:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:34:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (652ms)
2026/08/23 05:34:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (683ms)
2026/08/23 05:34:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:34:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:34:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:34:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:34:34 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:34:34 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:34:34 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:34:34Z, active_sessions=24
2026/08/23 05:34:34 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:34:34 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:34:34 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:34:34 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:34:34 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:34:34 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:34:34 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:34:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:34:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:34:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:34:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:34:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:34:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3966MB avail≈21932MB
2026/08/23 05:34:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=26010524 → total=25898MB avail=21932MB used=3966MB (15.3%)
2026/08/23 05:34:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:34:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:34:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.49 0.56 0.67 4/897 1776" → 1m=0.49 5m=0.56 15m=0.67
2026/08/23 05:34:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:34:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 51.9°C (hwmon1)
2026/08/23 05:34:44 info.go:13: [DEBUG] [system] GetInfo done in 61ms — mem=3966MB/25898MB (15.3%), rootDisk=10.2GB/68.7GB (14.8%), load=0.49/0.56/0.67, temp=51.9°C (hwmon1), cpu=5.0%
2026/08/23 05:34:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:34:44 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 05:34:44 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 05:34:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:34:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:34:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 05:34:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:34:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 05:34:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 05:34:44 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 05:34:44 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 05:34:44 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 05:34:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:34:44 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 44ms)
2026/08/23 05:34:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:34:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:34:44 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (522ms)
2026/08/23 05:34:44 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 523ms)
2026/08/23 05:34:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (601ms)
2026/08/23 05:34:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (604ms)
2026/08/23 05:34:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:34:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:34:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:34:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:34:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:34:55 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:34:55 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:34:55 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:34:55Z, active_sessions=25
2026/08/23 05:34:55 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:34:55 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:34:55 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:34:55 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:34:55 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:34:55 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:34:55 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:35:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:35:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:35:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:35:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:35:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:35:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:35:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:35:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:35:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:35:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:35:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (676ms)
2026/08/23 05:35:16 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:35:16 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:35:16 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:35:16Z, active_sessions=26
2026/08/23 05:35:16 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:35:16 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:35:16 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:35:16 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:35:16 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:35:16 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:35:16 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:35:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (689ms)
2026/08/23 05:35:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:35:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:35:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:35:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:35:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:35:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:35:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:35:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:35:37 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:35:37 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:35:37 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:35:37Z, active_sessions=27
2026/08/23 05:35:37 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:35:37 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:35:37 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:35:37 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:35:37 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:35:37 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:35:37 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:35:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:35:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4054MB avail≈21844MB
2026/08/23 05:35:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25905668 → total=25898MB avail=21844MB used=4054MB (15.7%)
2026/08/23 05:35:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:35:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:35:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.42 0.53 0.66 5/900 1898" → 1m=0.42 5m=0.53 15m=0.66
2026/08/23 05:35:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:35:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 51.9°C (hwmon1)
2026/08/23 05:35:44 info.go:13: [DEBUG] [system] GetInfo done in 59ms — mem=4054MB/25898MB (15.7%), rootDisk=10.2GB/68.7GB (14.8%), load=0.42/0.53/0.66, temp=51.9°C (hwmon1), cpu=5.2%
2026/08/23 05:35:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:35:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:35:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:35:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:35:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:35:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:35:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:35:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:35:44 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (567ms)
2026/08/23 05:35:44 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 567ms)
2026/08/23 05:35:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (607ms)
2026/08/23 05:35:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (621ms)
2026/08/23 05:35:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:35:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:35:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:35:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:35:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:35:58 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:35:59 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:35:59 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:35:59Z, active_sessions=28
2026/08/23 05:35:59 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:35:59 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:35:59 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:35:59 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:35:59 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:35:59 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:35:59 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:36:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:36:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:36:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:36:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:36:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:36:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:36:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:36:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:36:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:36:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:36:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (674ms)
2026/08/23 05:36:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (656ms)
2026/08/23 05:36:20 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:36:20 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:36:20 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:36:20Z, active_sessions=29
2026/08/23 05:36:20 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:36:20 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:36:20 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:36:20 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:36:20 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:36:20 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:36:20 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:36:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:36:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:36:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:36:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:36:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:36:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:36:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:36:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:36:41 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:36:41 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:36:41 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:36:41Z, active_sessions=30
2026/08/23 05:36:41 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:36:41 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:36:41 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:36:41 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:36:41 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:36:41 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:36:41 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4048MB avail≈21850MB
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25912800 → total=25898MB avail=21850MB used=4048MB (15.6%)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.44 0.53 0.64 3/897 2008" → 1m=0.44 5m=0.53 15m=0.64
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 51.9°C (hwmon1)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] GetInfo done in 60ms — mem=4048MB/25898MB (15.6%), rootDisk=10.2GB/68.7GB (14.8%), load=0.44/0.53/0.64, temp=51.9°C (hwmon1), cpu=4.7%
2026/08/23 05:36:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:36:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:36:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:36:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:44 scheduler.go:346: [INFO] [scheduler] Running job: backup-cache
2026/08/23 05:36:44 scheduler.go:67: [DEBUG] [scheduler] job backup-cache: execution starting
2026/08/23 05:36:44 scheduler.go:346: [INFO] [scheduler] Running job: offsite-credential-retry
2026/08/23 05:36:44 scheduler.go:67: [DEBUG] [scheduler] job offsite-credential-retry: execution starting
2026/08/23 05:36:44 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 05:36:44 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 05:36:44 scheduler.go:346: [INFO] [scheduler] Running job: system-health
2026/08/23 05:36:44 scheduler.go:67: [DEBUG] [scheduler] job system-health: execution starting
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:36:44 scheduler.go:363: [INFO] [scheduler] Job offsite-credential-retry completed (took 0s)
2026/08/23 05:36:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:36:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:36:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:36:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:36:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 05:36:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 05:36:44 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 05:36:44 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 05:36:44 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4046MB avail≈21852MB
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25915152 → total=25898MB avail=21852MB used=4046MB (15.6%)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.44 0.53 0.64 6/920 2057" → 1m=0.44 5m=0.53 15m=0.64
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 51.9°C (hwmon1)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] GetInfo done in 74ms — mem=4046MB/25898MB (15.6%), rootDisk=10.2GB/68.7GB (14.8%), load=0.44/0.53/0.64, temp=51.9°C (hwmon1), cpu=4.7%
2026/08/23 05:36:44 healthcheck.go:42: [DEBUG] [monitor] Raw values: disk=14.8%, hdd=0.6% (configured=true), mem=15.6% (4046MB/25898MB), cpu=4.7%, temp=51.9°C (hwmon1)
2026/08/23 05:36:44 healthcheck.go:74: [DEBUG] [monitor] SSD disk: OK (15%)
2026/08/23 05:36:44 healthcheck.go:107: [DEBUG] [monitor] Memory: OK (16%)
2026/08/23 05:36:44 healthcheck.go:125: [DEBUG] [monitor] CPU: OK (5%)
2026/08/23 05:36:44 healthcheck.go:143: [DEBUG] [monitor] Temperature: OK (52°C)
2026/08/23 05:36:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:36:44 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 80ms)
2026/08/23 05:36:44 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/sys_drive → [bookstack, docmost, kimai, opengist, privatebin]
2026/08/23 05:36:44 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/felhom-drives/hdd_1 → [calibre-web, paperless-ngx, romm]
2026/08/23 05:36:44 backup.go:1063: [INFO] [backup] Found 13 DB dump files across drives
2026/08/23 05:36:44 dbdump.go:128: [DEBUG] DiscoverDatabases: running docker ps to find database containers
2026/08/23 05:36:44 dbdump.go:147: [DEBUG] DiscoverDatabases: docker ps output: 80e323a12629 felhom-controller gitea.dooplex.hu/admin/felhom-controller:0.222.0
77031a0c1319 romm romm rommapp/romm:5.0.0
aa6fe6fa459e romm-redis romm redis:7-alpine
e076270a7d75 romm-db romm mariadb:11.4
aa40544a01f2 privatebin privatebin privatebin/pdo:2.0.5
1c704643bc4c paperless-webserver paperless-ngx ghcr.io/paperless-ngx/paperless-ngx:2.20.15
e31aa0b09dbb paperless-postgres paperless-ngx postgres:16-alpine
0d63a39cdce6 paperless-redis paperless-ngx redis:7-alpine
df8ce46d665d opengist op...
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container felhom-controller (image=gitea.dooplex.hu/admin/felhom-controller:0.222.0, not a database)
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm (image=rommapp/romm:5.0.0, not a database)
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm-redis (image=redis:7-alpine, not a database)
2026/08/23 05:36:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: romm-db (id=e076270a7d75)
2026/08/23 05:36:44 dbdump.go:196: [DEBUG] DiscoverDatabases: romm-db → stack=romm, dbUser=root, dbName=romm
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container privatebin (image=privatebin/pdo:2.0.5, not a database)
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container paperless-webserver (image=ghcr.io/paperless-ngx/paperless-ngx:2.20.15, not a database)
2026/08/23 05:36:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: paperless-postgres (id=e31aa0b09dbb)
2026/08/23 05:36:44 dbdump.go:894: [DEBUG] DiscoverDatabases: paperless-postgres → stack "paperless-ngx" from the compose project label (the container name would have given "paperless")
2026/08/23 05:36:44 healthcheck.go:157: [DEBUG] [monitor] Docker daemon: OK
2026/08/23 05:36:44 healthcheck.go:165: [DEBUG] [monitor] Checking 4 protected containers: [traefik cloudflared felhom-controller filebrowser]
2026/08/23 05:36:44 dbdump.go:196: [DEBUG] DiscoverDatabases: paperless-postgres → stack=paperless-ngx, dbUser=paperless, dbName=paperless
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container paperless-redis (image=redis:7-alpine, not a database)
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container opengist (image=ghcr.io/thomiceli/opengist:1.13, not a database)
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container kimai (image=kimai/kimai2:apache-2.57.0, not a database)
2026/08/23 05:36:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: kimai-db (id=9849469a8b29)
2026/08/23 05:36:44 dbdump.go:196: [DEBUG] DiscoverDatabases: kimai-db → stack=kimai, dbUser=root, dbName=kimai
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost (image=docmost/docmost:0.95.0, not a database)
2026/08/23 05:36:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: docmost-postgres (id=3ead49ef14fe)
2026/08/23 05:36:44 dbdump.go:196: [DEBUG] DiscoverDatabases: docmost-postgres → stack=docmost, dbUser=docmost, dbName=docmost
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost-redis (image=redis:7-alpine, not a database)
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container calibre-web (image=crocodilestick/calibre-web-automated:v4.0.6, not a database)
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container bookstack (image=lscr.io/linuxserver/bookstack:26.05.2, not a database)
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container filebrowser (image=gtstef/filebrowser:1.3.3-stable, not a database)
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container cloudflared (image=cloudflare/cloudflared:2026.6.0, not a database)
2026/08/23 05:36:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container traefik (image=traefik:v3.6.7, not a database)
2026/08/23 05:36:44 dbdump.go:203: [DEBUG] DiscoverDatabases: found 4 database(s), skipped 15 non-DB container(s)
2026/08/23 05:36:44 dbdump.go:206: [INFO] [backup] Discovered 4 databases
2026/08/23 05:36:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:36:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 05:36:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:36:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:36:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:36:44 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 05:36:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:36:44 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:36:44 [INFO] [backup] Discovered app data: 8 apps
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.8%)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/felhom-drives/hdd_1" total=937.8 GB used=5.9 GB avail=884.2GB (0.6%)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.8%)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.8%)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.8%)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/felhom-drives/hdd_1" total=937.8 GB used=5.9 GB avail=884.2GB (0.6%)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.8%)
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/felhom-drives/hdd_1" total=937.8 GB used=5.9 GB avail=884.2GB (0.6%)
2026/08/23 05:36:44 backup.go:1133: [INFO] [backup] Backup status cache refreshed
2026/08/23 05:36:44 scheduler.go:363: [INFO] [scheduler] Job backup-cache completed (took 211ms)
2026/08/23 05:36:44 healthcheck.go:175: [DEBUG] [monitor] All protected containers running
2026/08/23 05:36:44 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/felhom-drives/hdd_1" total=937.8 GB used=5.9 GB avail=884.2GB (0.6%)
2026/08/23 05:36:44 healthcheck.go:192: [INFO] [monitor] Health check: status=ok
2026/08/23 05:36:44 healthcheck.go:196: [DEBUG] [monitor] Final status: ok (issues=0, warnings=0, info=5)
2026/08/23 05:36:44 scheduler.go:363: [INFO] [scheduler] Job system-health completed (took 211ms)
2026/08/23 05:36:45 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (729ms)
2026/08/23 05:36:45 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 729ms)
2026/08/23 05:36:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (815ms)
2026/08/23 05:36:47 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (652ms)
2026/08/23 05:36:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:36:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:36:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:36:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:36:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:37:02 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:37:02 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:37:02 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:37:02Z, active_sessions=31
2026/08/23 05:37:02 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:37:02 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:37:02 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:37:02 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:37:02 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:37:02 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:37:02 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:37:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:37:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:37:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:37:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 7 targets (0 skipped not due, 1 skipped no container)
2026/08/23 05:37:04 healthprobe.go:153: [DEBUG] Health probe romm: HTTP GET :8080/ → 200 (1ms)
2026/08/23 05:37:04 healthprobe.go:153: [DEBUG] Health probe opengist: API GET :6157/healthcheck → 200 (2ms)
2026/08/23 05:37:04 healthprobe.go:153: [DEBUG] Health probe docmost: HTTP GET :3000/ → 200 (3ms)
2026/08/23 05:37:04 healthprobe.go:153: [DEBUG] Health probe privatebin: HTTP GET :8080/ → 200 (4ms)
2026/08/23 05:37:04 healthprobe.go:153: [DEBUG] Health probe calibre-web: HTTP GET :8083/ → 302 (8ms)
2026/08/23 05:37:04 healthprobe.go:153: [DEBUG] Health probe kimai: HTTP GET :8001/ → 302 (21ms)
2026/08/23 05:37:04 healthprobe.go:153: [DEBUG] Health probe bookstack: HTTP GET :80/ → 500 (44ms)
2026/08/23 05:37:04 healthprobe.go:133: [INFO] Health probes: 7 ok (of 7 probed)
2026/08/23 05:37:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:37:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:37:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:37:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:37:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:37:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:37:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (671ms)
2026/08/23 05:37:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (646ms)
2026/08/23 05:37:23 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:37:23 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:37:23 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:37:23Z, active_sessions=32
2026/08/23 05:37:23 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:37:23 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:37:23 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:37:23 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:37:23 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:37:23 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:37:23 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:37:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:37:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:37:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:37:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:37:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:37:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:37:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:37:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:37:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:37:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3947MB avail≈21951MB
2026/08/23 05:37:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=26032672 → total=25898MB avail=21951MB used=3947MB (15.2%)
2026/08/23 05:37:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:37:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:37:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.25 0.46 0.61 5/898 2314" → 1m=0.25 5m=0.46 15m=0.61
2026/08/23 05:37:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:37:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 54.6°C (hwmon2)
2026/08/23 05:37:44 info.go:13: [DEBUG] [system] GetInfo done in 70ms — mem=3947MB/25898MB (15.2%), rootDisk=10.2GB/68.7GB (14.8%), load=0.25/0.46/0.61, temp=54.6°C (hwmon2), cpu=3.2%
2026/08/23 05:37:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:37:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:37:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:37:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:37:44 main.go:1730: [INFO] [deadapp] check alive: 20 scans since boot, 8 deployed app(s) evaluated, 1 currently down
2026/08/23 05:37:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:37:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:37:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:37:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:37:45 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (572ms)
2026/08/23 05:37:45 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 572ms)
2026/08/23 05:37:45 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:37:45 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:37:45 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:37:45Z, active_sessions=33
2026/08/23 05:37:45 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:37:45 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:37:45 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:37:45 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:37:45 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:37:45 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:37:45 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:37:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (648ms)
2026/08/23 05:37:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (610ms)
2026/08/23 05:37:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:37:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:37:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:37:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:37:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:38:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:38:03 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.17.0.1:35150
2026/08/23 05:38:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:38:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:38:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:38:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:38:06 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:38:06 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:38:06 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:38:06Z, active_sessions=34
2026/08/23 05:38:06 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:38:06 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:38:06 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:38:06 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:38:06 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:38:06 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:38:06 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:38:08 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:38:08 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.17.0.1:35152
2026/08/23 05:38:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:38:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:38:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:38:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:38:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:38:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:38:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (643ms)
2026/08/23 05:38:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (682ms)
2026/08/23 05:38:18 auth.go:146: [DEBUG] [web] login attempt from 172.17.0.1:51410 (X-Forwarded-For: )
2026/08/23 05:38:18 auth.go:194: [DEBUG] [web] login successful from 172.17.0.1, creating session
2026/08/23 05:38:18 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:38:18Z, active_sessions=35
2026/08/23 05:38:18 auth.go:214: [INFO] [web] Login from 172.17.0.1:51410
2026/08/23 05:38:18 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:38:18 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.17.0.1:51412
2026/08/23 05:38:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:38:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:38:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:38:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:38:26 auth.go:146: [DEBUG] [web] login attempt from 172.17.0.1:48684 (X-Forwarded-For: )
2026/08/23 05:38:26 auth.go:194: [DEBUG] [web] login successful from 172.17.0.1, creating session
2026/08/23 05:38:26 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:38:26Z, active_sessions=36
2026/08/23 05:38:26 auth.go:214: [INFO] [web] Login from 172.17.0.1:48684
2026/08/23 05:38:26 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:38:26 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.17.0.1:48698
2026/08/23 05:38:27 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:38:27 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:38:27 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:38:27Z, active_sessions=37
2026/08/23 05:38:27 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:38:27 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:38:27 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:38:27 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:38:27 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:38:27 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:38:27 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:38:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:38:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:38:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:38:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:38:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:38:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3986MB avail≈21912MB
2026/08/23 05:38:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25986724 → total=25898MB avail=21912MB used=3986MB (15.4%)
2026/08/23 05:38:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:38:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:38:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.45 0.49 0.62 3/889 2427" → 1m=0.45 5m=0.49 15m=0.62
2026/08/23 05:38:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:38:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 51.9°C (hwmon1)
2026/08/23 05:38:44 info.go:13: [DEBUG] [system] GetInfo done in 58ms — mem=3986MB/25898MB (15.4%), rootDisk=10.2GB/68.7GB (14.8%), load=0.45/0.49/0.62, temp=51.9°C (hwmon1), cpu=1.5%
2026/08/23 05:38:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:38:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:38:44 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 05:38:44 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 05:38:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:38:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:38:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 05:38:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:38:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 05:38:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 05:38:44 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 05:38:44 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 05:38:44 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 05:38:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:38:44 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 45ms)
2026/08/23 05:38:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:38:45 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (621ms)
2026/08/23 05:38:45 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 622ms)
2026/08/23 05:38:45 auth.go:146: [DEBUG] [web] login attempt from 172.17.0.1:57146 (X-Forwarded-For: )
2026/08/23 05:38:45 auth.go:194: [DEBUG] [web] login successful from 172.17.0.1, creating session
2026/08/23 05:38:45 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:38:45Z, active_sessions=38
2026/08/23 05:38:45 auth.go:214: [INFO] [web] Login from 172.17.0.1:57146
2026/08/23 05:38:45 auth.go:134: [DEBUG] [web] auth: valid session for GET /api/alerts
2026/08/23 05:38:45 router.go:80: [DEBUG] [api] GET /api/alerts (path=/alerts)
2026/08/23 05:38:45 router.go:80: [DEBUG] [api] no matching route: GET /alerts
2026/08/23 05:38:45 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:38:45 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.17.0.1:57162
2026/08/23 05:38:45 auth.go:134: [DEBUG] [web] auth: valid session for GET /dashboard
2026/08/23 05:38:45 server.go:393: [DEBUG] [web] ServeHTTP: GET /dashboard from 172.17.0.1:57176
2026/08/23 05:38:45 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:38:45 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4077MB avail≈21821MB
2026/08/23 05:38:45 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25879484 → total=25898MB avail=21821MB used=4077MB (15.7%)
2026/08/23 05:38:45 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:38:45 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:38:45 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.49 0.50 0.62 4/906 2481" → 1m=0.49 5m=0.50 15m=0.62
2026/08/23 05:38:45 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:38:45 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 55.4°C (hwmon2)
2026/08/23 05:38:45 info.go:13: [DEBUG] [system] GetInfo done in 65ms — mem=4077MB/25898MB (15.7%), rootDisk=10.2GB/68.7GB (14.8%), load=0.49/0.50/0.62, temp=55.4°C (hwmon2), cpu=5.8%
2026/08/23 05:38:45 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/felhom-drives/hdd_1" total=937.8 GB used=5.9 GB avail=884.2GB (0.6%)
2026/08/23 05:38:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (649ms)
2026/08/23 05:38:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (631ms)
2026/08/23 05:38:46 disk_health_state.go:131: [DEBUG] [web] disk-health state loaded: 2 disk(s)
2026/08/23 05:38:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (644ms)
2026/08/23 05:38:48 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:38:48 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:38:48 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:38:48Z, active_sessions=39
2026/08/23 05:38:48 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:38:48 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:38:48 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:38:48 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:38:48 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:38:48 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:38:48 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:38:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:38:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:38:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:38:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:38:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:39:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:39:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:39:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:39:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:39:09 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:39:09 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:39:09 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:39:09Z, active_sessions=40
2026/08/23 05:39:09 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:39:09 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:39:09 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:39:09 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:39:09 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:39:09 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:39:09 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:39:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:39:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:39:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:39:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:39:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:39:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:39:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (703ms)
2026/08/23 05:39:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (680ms)
2026/08/23 05:39:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:39:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:39:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:39:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:39:30 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:39:31 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:39:31 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:39:31Z, active_sessions=41
2026/08/23 05:39:31 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:39:31 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:39:31 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:39:31 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:39:31 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:39:31 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:39:31 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:39:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:39:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:39:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:39:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:39:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:39:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3933MB avail≈21965MB
2026/08/23 05:39:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=26049368 → total=25898MB avail=21965MB used=3933MB (15.2%)
2026/08/23 05:39:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:39:44 info.go:13: [DEBUG] [system] readDiskUsage: path="/mnt/felhom-drives/hdd_1" bsize=4096 total=937.8GB used=5.9GB avail=884.2GB (0.6%)
2026/08/23 05:39:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="1.03 0.66 0.67 2/892 2574" → 1m=1.03 5m=0.66 15m=0.67
2026/08/23 05:39:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:39:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 51.9°C (hwmon1)
2026/08/23 05:39:44 info.go:13: [DEBUG] [system] GetInfo done in 60ms — mem=3933MB/25898MB (15.2%), rootDisk=10.2GB/68.7GB (14.8%), load=1.03/0.66/0.67, temp=51.9°C (hwmon1), cpu=3.9%
2026/08/23 05:39:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:39:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:39:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:39:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:39:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:39:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:39:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:39:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:39:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:39:44 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (541ms)
2026/08/23 05:39:44 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 541ms)
2026/08/23 05:39:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (617ms)
2026/08/23 05:39:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (633ms)