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:41:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:41:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:41:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:41:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:41:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:41:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:41:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:41:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:41:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:41:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:41:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (677ms)
2026/08/23 05:41:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (639ms)
2026/08/23 05:41:17 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:41:17 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:41:17 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:41:17Z, active_sessions=48
2026/08/23 05:41:17 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:41:17 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:41:17 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:41:17 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:41:17 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:41:17 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:41:17 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:41:18 auth.go:134: [DEBUG] [web] auth: valid session for GET /dashboard
2026/08/23 05:41:18 server.go:393: [DEBUG] [web] ServeHTTP: GET /dashboard from 172.17.0.1:33650
2026/08/23 05:41:18 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:41:18 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4404MB avail≈21494MB
2026/08/23 05:41:18 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25490572 → total=25898MB avail=21494MB used=4404MB (17.0%)
2026/08/23 05:41:18 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:41:18 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:41:18 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.83 0.72 0.69 3/923 2800" → 1m=0.83 5m=0.72 15m=0.69
2026/08/23 05:41:18 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:41:18 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 56.0°C (hwmon2)
2026/08/23 05:41:18 info.go:13: [DEBUG] [system] GetInfo done in 68ms — mem=4404MB/25898MB (17.0%), rootDisk=10.2GB/68.7GB (14.8%), load=0.83/0.72/0.69, temp=56.0°C (hwmon2), cpu=5.9%
2026/08/23 05:41:18 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:41:23 auth.go:134: [DEBUG] [web] auth: valid session for GET /stacks/docmost
2026/08/23 05:41:23 server.go:393: [DEBUG] [web] ServeHTTP: GET /stacks/docmost from 172.17.0.1:49684
2026/08/23 05:41:23 server.go:636: [WARN] [web] 404 Not Found: GET /stacks/docmost
2026/08/23 05:41:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:41:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:41:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:41:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:41:29 auth.go:134: [DEBUG] [web] auth: valid session for GET /stacks
2026/08/23 05:41:29 server.go:393: [DEBUG] [web] ServeHTTP: GET /stacks from 172.17.0.1:49698
2026/08/23 05:41:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:41:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:41:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:41:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:41:34 auth.go:134: [DEBUG] [web] auth: valid session for GET /apps/docmost
2026/08/23 05:41:34 server.go:393: [DEBUG] [web] ServeHTTP: GET /apps/docmost from 172.17.0.1:39726
2026/08/23 05:41:38 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:41:38 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:41:38 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:41:38Z, active_sessions=49
2026/08/23 05:41:38 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:41:38 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:41:38 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:41:38 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:41:38 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:41:38 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:41:38 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:41:44 sync.go:189: [INFO] [sync] Starting catalog sync
2026/08/23 05:41:44 sync.go:277: [INFO] [sync] Pulling latest from https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git (branch: main)
2026/08/23 05:41:44 sync.go:279: [DEBUG] [sync] git fetch --depth 1 origin main in /opt/docker/felhom-controller/data/catalog-cache
2026/08/23 05:41:44 sync.go:449: [DEBUG] [sync] Running: git fetch --depth 1 origin main
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4124MB avail≈21774MB
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25823100 → total=25898MB avail=21774MB used=4124MB (15.9%)
2026/08/23 05:41: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:41: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:41:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.75 0.71 0.69 6/922 2854" → 1m=0.75 5m=0.71 15m=0.69
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.0°C (hwmon0)
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] GetInfo done in 61ms — mem=4124MB/25898MB (15.9%), rootDisk=10.2GB/68.7GB (14.8%), load=0.75/0.71/0.69, temp=52.0°C (hwmon0), cpu=10.3%
2026/08/23 05:41:44 scheduler.go:346: [INFO] [scheduler] Running job: offsite-credential-retry
2026/08/23 05:41:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:41:44 scheduler.go:346: [INFO] [scheduler] Running job: hub-report
2026/08/23 05:41:44 scheduler.go:67: [DEBUG] [scheduler] job hub-report: execution starting
2026/08/23 05:41:44 builder.go:37: [INFO] [report] Building system report
2026/08/23 05:41:44 builder.go:40: [DEBUG] [report] BuildReport: starting — version=0.222.0, storagePaths=1
2026/08/23 05:41:44 scheduler.go:67: [DEBUG] [scheduler] job offsite-credential-retry: execution starting
2026/08/23 05:41:44 scheduler.go:346: [INFO] [scheduler] Running job: backup-cache
2026/08/23 05:41:44 scheduler.go:67: [DEBUG] [scheduler] job backup-cache: execution starting
2026/08/23 05:41:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:41:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:41:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:41:44 scheduler.go:346: [INFO] [scheduler] Running job: system-health
2026/08/23 05:41:44 scheduler.go:67: [DEBUG] [scheduler] job system-health: execution starting
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:41:44 builder.go:62: [DEBUG] [report] BuildReport: configHash=042b71a3123d... (2989 bytes)
2026/08/23 05:41:44 scheduler.go:363: [INFO] [scheduler] Job offsite-credential-retry completed (took 0s)
2026/08/23 05:41:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:41:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:41:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:41:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:41:44 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/sys_drive → [bookstack, docmost, kimai, opengist, privatebin]
2026/08/23 05:41:44 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/felhom-drives/hdd_1 → [calibre-web, paperless-ngx, romm]
2026/08/23 05:41:44 backup.go:1063: [INFO] [backup] Found 13 DB dump files across drives
2026/08/23 05:41:44 dbdump.go:128: [DEBUG] DiscoverDatabases: running docker ps to find database containers
2026/08/23 05:41: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:41: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:41:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm (image=rommapp/romm:5.0.0, not a database)
2026/08/23 05:41:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm-redis (image=redis:7-alpine, not a database)
2026/08/23 05:41:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: romm-db (id=e076270a7d75)
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4126MB avail≈21772MB
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25821028 → total=25898MB avail=21772MB used=4126MB (15.9%)
2026/08/23 05:41: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:41: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:41:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.75 0.71 0.69 11/939 2927" → 1m=0.75 5m=0.71 15m=0.69
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 55.8°C (hwmon2)
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] GetInfo done in 81ms — mem=4126MB/25898MB (15.9%), rootDisk=10.2GB/68.7GB (14.8%), load=0.75/0.71/0.69, temp=55.8°C (hwmon2), cpu=10.3%
2026/08/23 05:41: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:41:44 builder.go:128: [DEBUG] [report] BuildReport: system info collected — cpu=10.3%, mem=4126/25898MB, temp=55.8C
2026/08/23 05:41:44 builder.go:130: [DEBUG] [report] BuildReport: storage entries=2
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4126MB avail≈21772MB
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25821028 → total=25898MB avail=21772MB used=4126MB (15.9%)
2026/08/23 05:41: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:41: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:41:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.75 0.71 0.69 9/938 2928" → 1m=0.75 5m=0.71 15m=0.69
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 55.8°C (hwmon2)
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] GetInfo done in 85ms — mem=4126MB/25898MB (15.9%), rootDisk=10.2GB/68.7GB (14.8%), load=0.75/0.71/0.69, temp=55.8°C (hwmon2), cpu=10.3%
2026/08/23 05:41:44 healthcheck.go:42: [DEBUG] [monitor] Raw values: disk=14.8%, hdd=0.6% (configured=true), mem=15.9% (4126MB/25898MB), cpu=10.3%, temp=55.8°C (hwmon2)
2026/08/23 05:41:44 healthcheck.go:74: [DEBUG] [monitor] SSD disk: OK (15%)
2026/08/23 05:41:44 healthcheck.go:107: [DEBUG] [monitor] Memory: OK (16%)
2026/08/23 05:41:44 healthcheck.go:125: [DEBUG] [monitor] CPU: OK (10%)
2026/08/23 05:41:44 healthcheck.go:143: [DEBUG] [monitor] Temperature: OK (56°C)
2026/08/23 05:41:44 dbdump.go:196: [DEBUG] DiscoverDatabases: romm-db → stack=romm, dbUser=root, dbName=romm
2026/08/23 05:41:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container privatebin (image=privatebin/pdo:2.0.5, not a database)
2026/08/23 05:41: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:41:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: paperless-postgres (id=e31aa0b09dbb)
2026/08/23 05:41: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:41:44 dbdump.go:196: [DEBUG] DiscoverDatabases: paperless-postgres → stack=paperless-ngx, dbUser=paperless, dbName=paperless
2026/08/23 05:41:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container paperless-redis (image=redis:7-alpine, not a database)
2026/08/23 05:41:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container opengist (image=ghcr.io/thomiceli/opengist:1.13, not a database)
2026/08/23 05:41:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container kimai (image=kimai/kimai2:apache-2.57.0, not a database)
2026/08/23 05:41:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: kimai-db (id=9849469a8b29)
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4120MB avail≈21778MB
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25828268 → total=25898MB avail=21778MB used=4120MB (15.9%)
2026/08/23 05:41:44 dbdump.go:196: [DEBUG] DiscoverDatabases: kimai-db → stack=kimai, dbUser=root, dbName=kimai
2026/08/23 05:41:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost (image=docmost/docmost:0.95.0, not a database)
2026/08/23 05:41:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: docmost-postgres (id=3ead49ef14fe)
2026/08/23 05:41: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:41: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:41:44 healthcheck.go:157: [DEBUG] [monitor] Docker daemon: OK
2026/08/23 05:41:44 healthcheck.go:165: [DEBUG] [monitor] Checking 4 protected containers: [traefik cloudflared felhom-controller filebrowser]
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.75 0.71 0.69 6/931 2989" → 1m=0.75 5m=0.71 15m=0.69
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 55.8°C (hwmon2)
2026/08/23 05:41:44 info.go:13: [DEBUG] [system] GetInfo done in 57ms — mem=4120MB/25898MB (15.9%), rootDisk=10.2GB/68.7GB (14.8%), load=0.75/0.71/0.69, temp=55.8°C (hwmon2), cpu=10.3%
2026/08/23 05:41:44 healthcheck.go:42: [DEBUG] [monitor] Raw values: disk=14.8%, hdd=0.6% (configured=true), mem=15.9% (4120MB/25898MB), cpu=10.3%, temp=55.8°C (hwmon2)
2026/08/23 05:41:44 healthcheck.go:74: [DEBUG] [monitor] SSD disk: OK (15%)
2026/08/23 05:41:44 healthcheck.go:107: [DEBUG] [monitor] Memory: OK (16%)
2026/08/23 05:41:44 healthcheck.go:125: [DEBUG] [monitor] CPU: OK (10%)
2026/08/23 05:41:44 healthcheck.go:143: [DEBUG] [monitor] Temperature: OK (56°C)
2026/08/23 05:41:44 dbdump.go:196: [DEBUG] DiscoverDatabases: docmost-postgres → stack=docmost, dbUser=docmost, dbName=docmost
2026/08/23 05:41:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost-redis (image=redis:7-alpine, not a database)
2026/08/23 05:41: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:41:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container bookstack (image=lscr.io/linuxserver/bookstack:26.05.2, not a database)
2026/08/23 05:41:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: bookstack-db (id=95dcda149d29)
2026/08/23 05:41:44 sync.go:449: [DEBUG] [sync] Running: git reset --hard origin/main
2026/08/23 05:41:44 dbdump.go:196: [DEBUG] DiscoverDatabases: bookstack-db → stack=bookstack, dbUser=root, dbName=bookstack
2026/08/23 05:41:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container filebrowser (image=gtstef/filebrowser:1.3.3-stable, not a database)
2026/08/23 05:41:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container cloudflared (image=cloudflare/cloudflared:2026.6.0, not a database)
2026/08/23 05:41:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container traefik (image=traefik:v3.6.7, not a database)
2026/08/23 05:41:44 dbdump.go:203: [DEBUG] DiscoverDatabases: found 5 database(s), skipped 15 non-DB container(s)
2026/08/23 05:41:44 dbdump.go:206: [INFO] [backup] Discovered 5 databases
2026/08/23 05:41:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:41:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] actualbudget/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] actualbudget/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] adventurelog/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] adventurelog/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] audiobookshelf/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] audiobookshelf/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] bentopdf/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] bentopdf/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] bookstack/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] bookstack/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] calcom/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] calcom/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] calibre-web/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] calibre-web/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] claper/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] claper/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] code-server/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] code-server/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] crafty-controller/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] crafty-controller/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] docmost/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] docmost/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] emby/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] emby/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] ghost/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] ghost/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] gitea/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] gitea/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] glance/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] glance/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] gokapi/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] gokapi/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] grafana/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] grafana/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] gramps-web/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] gramps-web/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] home-assistant/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] home-assistant/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] homebox/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] homebox/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] homepage/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] homepage/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] immich/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] immich/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] jellyfin/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] jellyfin/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] kimai/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] kimai/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] komga/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] komga/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] mealie/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] mealie/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] n8n/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] n8n/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] navidrome/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] navidrome/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] nextcloud/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] nextcloud/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] onlyoffice/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] onlyoffice/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] opengist/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] opengist/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] outline/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] outline/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] paperless-ngx/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] paperless-ngx/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] papra/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] papra/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] plant-it/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] plant-it/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] plex/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] plex/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] privatebin/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] privatebin/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] radarr/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] radarr/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] rallly/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] rallly/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] recipe-importer/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] recipe-importer/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] romm/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] romm/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] seerr/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] seerr/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] sonarr/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] sonarr/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] sparkyfitness/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] sparkyfitness/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] tandoor/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] tandoor/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] termix/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] termix/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] uptime-kuma/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] uptime-kuma/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] vaultwarden/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] vaultwarden/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] vikunja/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] vikunja/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] wanderer/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 [INFO] [backup] Discovered app data: 8 apps
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] wanderer/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] wger/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] wger/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] wishlist/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] wishlist/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 healthcheck.go:157: [DEBUG] [monitor] Docker daemon: OK
2026/08/23 05:41:44 healthcheck.go:165: [DEBUG] [monitor] Checking 4 protected containers: [traefik cloudflared felhom-controller filebrowser]
2026/08/23 05:41: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:41:44 sync.go:371: [DEBUG] [sync] zipline/docker-compose.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:371: [DEBUG] [sync] zipline/.felhom.yml: hash match, skipped
2026/08/23 05:41:44 sync.go:244: [INFO] [sync] Catalog sync complete
2026/08/23 05:41:44 sync.go:116: [INFO] [sync] Periodic sync: Sablonok naprakészek — nincs változás
2026/08/23 05:41: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:41: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:41: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:41: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:41: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:41: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:41: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:41:44 backup.go:1133: [INFO] [backup] Backup status cache refreshed
2026/08/23 05:41:44 scheduler.go:363: [INFO] [scheduler] Job backup-cache completed (took 219ms)
2026/08/23 05:41:44 healthcheck.go:175: [DEBUG] [monitor] All protected containers running
2026/08/23 05:41: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:41:44 healthcheck.go:192: [INFO] [monitor] Health check: status=ok
2026/08/23 05:41:44 healthcheck.go:196: [DEBUG] [monitor] Final status: ok (issues=0, warnings=0, info=5)
2026/08/23 05:41:44 scheduler.go:363: [INFO] [scheduler] Job system-health completed (took 237ms)
2026/08/23 05:41:44 healthcheck.go:175: [DEBUG] [monitor] All protected containers running
2026/08/23 05:41: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:41:44 healthcheck.go:192: [INFO] [monitor] Health check: status=ok
2026/08/23 05:41:44 healthcheck.go:196: [DEBUG] [monitor] Final status: ok (issues=0, warnings=0, info=5)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: starting log scan for 17 containers (since 15m0s)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned bookstack: errors=0 warnings=0 issues=0 (took 20ms)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned bookstack-db: errors=0 warnings=2 issues=2 (took 22ms)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned calibre-web: errors=0 warnings=0 issues=0 (took 20ms)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned docmost: errors=0 warnings=0 issues=0 (took 19ms)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned docmost-postgres: errors=0 warnings=0 issues=0 (took 19ms)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned docmost-redis: errors=0 warnings=0 issues=0 (took 21ms)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned kimai: errors=0 warnings=0 issues=0 (took 22ms)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned kimai-db: errors=0 warnings=0 issues=0 (took 22ms)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned opengist: errors=0 warnings=0 issues=0 (took 20ms)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned paperless-webserver: errors=0 warnings=0 issues=0 (took 20ms)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned paperless-postgres: errors=0 warnings=0 issues=0 (took 28ms)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned paperless-redis: errors=0 warnings=0 issues=0 (took 21ms)
2026/08/23 05:41:44 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (548ms)
2026/08/23 05:41:44 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 548ms)
2026/08/23 05:41:44 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned privatebin: errors=0 warnings=0 issues=0 (took 22ms)
2026/08/23 05:41:45 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned romm: errors=0 warnings=0 issues=0 (took 21ms)
2026/08/23 05:41:45 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned romm-redis: errors=0 warnings=0 issues=0 (took 19ms)
2026/08/23 05:41:45 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned romm-db: errors=0 warnings=0 issues=0 (took 20ms)
2026/08/23 05:41:45 logscanner.go:69: [DEBUG] [metrics] logscanner: scanned felhom-controller: errors=0 warnings=1 issues=1 (took 30ms)
2026/08/23 05:41:45 logscanner.go:69: [DEBUG] [metrics] logscanner: log scan completed: 17 containers in 366ms
2026/08/23 05:41:45 builder.go:197: [DEBUG] [report] BuildReport: complete — containers=16, health=ok, deployed=8, available=45, app_telemetry=9
2026/08/23 05:41:45 pusher.go:100: [DEBUG] [report] Push: url=https://hub.felhom.eu/api/v1/report payload=7813 bytes
2026/08/23 05:41:45 pusher.go:134: [INFO] [report] Hub report pushed successfully (7813 bytes)
2026/08/23 05:41:45 settings.go:711: [DEBUG] [settings] saved to /opt/docker/felhom-controller/data/settings.json (9760 bytes)
2026/08/23 05:41:45 settings.go:714: [INFO] [settings] Settings saved
2026/08/23 05:41:45 updater.go:96: [DEBUG] [selfupdate] maybeAutoUpdate: current 0.222.0 >= floor 0.221.1 — no action
2026/08/23 05:41:45 scheduler.go:363: [INFO] [scheduler] Job hub-report completed (took 1.083s)
2026/08/23 05:41:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (629ms)
2026/08/23 05:41:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (608ms)
2026/08/23 05:41:52 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:41:52 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.17.0.1:55772
2026/08/23 05:41:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:41:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:41:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:41:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:41:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:41:59 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:41:59 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:41:59 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:41:59Z, active_sessions=50
2026/08/23 05:41:59 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:41:59 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:41:59 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:41:59 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:41:59 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:41:59 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:41:59 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:42:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:42:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:42:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:42:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:42:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:42:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:42:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 7 targets (0 skipped not due, 1 skipped no container)
2026/08/23 05:42:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:42:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:42:14 healthprobe.go:153: [DEBUG] Health probe romm: HTTP GET :8080/ → 200 (8ms)
2026/08/23 05:42:14 healthprobe.go:153: [DEBUG] Health probe opengist: API GET :6157/healthcheck → 200 (9ms)
2026/08/23 05:42:14 healthprobe.go:153: [DEBUG] Health probe privatebin: HTTP GET :8080/ → 200 (14ms)
2026/08/23 05:42:14 healthprobe.go:153: [DEBUG] Health probe docmost: HTTP GET :3000/ → 200 (14ms)
2026/08/23 05:42:14 healthprobe.go:153: [DEBUG] Health probe calibre-web: HTTP GET :8083/ → 302 (24ms)
2026/08/23 05:42:14 healthprobe.go:153: [DEBUG] Health probe kimai: HTTP GET :8001/ → 302 (33ms)
2026/08/23 05:42:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:42:14 healthprobe.go:153: [DEBUG] Health probe bookstack: HTTP GET :80/ → 302 (63ms)
2026/08/23 05:42:14 healthprobe.go:133: [INFO] Health probes: 7 ok (of 7 probed)
2026/08/23 05:42:15 auth.go:146: [DEBUG] [web] login attempt from 172.17.0.1:50540 (X-Forwarded-For: )
2026/08/23 05:42:15 auth.go:194: [DEBUG] [web] login successful from 172.17.0.1, creating session
2026/08/23 05:42:15 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:42:15Z, active_sessions=51
2026/08/23 05:42:15 auth.go:214: [INFO] [web] Login from 172.17.0.1:50540
2026/08/23 05:42:15 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:42:15 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.17.0.1:50552
2026/08/23 05:42:15 auth.go:134: [DEBUG] [web] auth: valid session for POST /api/stacks/docmost/stop
2026/08/23 05:42:15 router.go:80: [DEBUG] [api] POST /api/stacks/docmost/stop (path=/stacks/docmost/stop)
2026/08/23 05:42:15 router.go:566: [INFO] [api] stop requested for stack: docmost
2026/08/23 05:42:15 router.go:80: [DEBUG] [api] actionStack: action=stop name=docmost
2026/08/23 05:42:15 [DEBUG] [stacks] SaveAppConfig: saving /opt/docker/stacks/docmost — 4 env vars, 0 encrypted, 2 sensitive fields
2026/08/23 05:42:15 [INFO] [stacks] SaveAppConfig: saved config for docmost
2026/08/23 05:42:15 desiredstate.go:81: [INFO] [stacks] desired state for docmost recorded as "stopped" (was "running")
2026/08/23 05:42:15 manager.go:1117: [DEBUG] [stacks] StopStack docmost: current state=running deployed=true containers=3
2026/08/23 05:42:15 manager.go:1120: [INFO] [stacks] Stopping stack: docmost
2026/08/23 05:42:15 manager.go:1311: [DEBUG] Env vars for compose: [PATH, HOSTNAME, FELHOM_BOOTSTRAP_PATH, HOME, DOMAIN, DB_PASSWORD, DOMAIN, SUBDOMAIN, APP_SECRET, IMPORT_PATH] (10 app + 0 system)
2026/08/23 05:42:15 manager.go:1320: [DEBUG] Running: docker compose down (in /opt/docker/stacks/docmost)
2026/08/23 05:42:16 manager.go:1340: [DEBUG] Command completed: docker compose down (took 0.8s)
2026/08/23 05:42:16 manager.go:1129: [INFO] [stacks] Stack docmost stopped successfully (took 0.8s)
2026/08/23 05:42:16 manager.go:621: [INFO] [stacks] Status refresh: 16 containers across 56 stacks
2026/08/23 05:42:16 lifecycle.go:24: [DEBUG] [integrations] OnStackStop: stack=docmost integrationsFound=0
2026/08/23 05:42:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (802ms)
2026/08/23 05:42:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (663ms)
2026/08/23 05:42: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:42:20 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:42:20 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:42:20Z, active_sessions=52
2026/08/23 05:42:20 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:42:20 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:42:20 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:42:20 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:42:20 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:42:20 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:42:20 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:42:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:42:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:42:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:42:24 manager.go:621: [INFO] [stacks] Status refresh: 16 containers across 56 stacks
2026/08/23 05:42:28 auth.go:134: [DEBUG] [web] auth: valid session for POST /api/stacks/docmost/start
2026/08/23 05:42:28 router.go:80: [DEBUG] [api] POST /api/stacks/docmost/start (path=/stacks/docmost/start)
2026/08/23 05:42:28 router.go:566: [INFO] [api] start requested for stack: docmost
2026/08/23 05:42:28 router.go:80: [DEBUG] [api] actionStack: action=start name=docmost
2026/08/23 05:42:28 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3793MB avail≈22105MB
2026/08/23 05:42:28 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=26216216 → total=25898MB avail=22105MB used=3793MB (14.6%)
2026/08/23 05:42:28 [DEBUG] [stacks] SaveAppConfig: saving /opt/docker/stacks/docmost — 4 env vars, 0 encrypted, 2 sensitive fields
2026/08/23 05:42:28 [INFO] [stacks] SaveAppConfig: saved config for docmost
2026/08/23 05:42:28 desiredstate.go:81: [INFO] [stacks] desired state for docmost recorded as "running" (was "stopped")
2026/08/23 05:42:28 manager.go:1036: [DEBUG] [stacks] StartStack docmost: current state=stopped deployed=true
2026/08/23 05:42:28 manager.go:1039: [INFO] [stacks] Starting stack: docmost
2026/08/23 05:42:28 manager.go:1046: [DEBUG] [stacks] StartStack docmost: prepared 10 env vars for compose
2026/08/23 05:42:28 manager.go:1311: [DEBUG] Env vars for compose: [PATH, HOSTNAME, FELHOM_BOOTSTRAP_PATH, HOME, DOMAIN, APP_SECRET, DB_PASSWORD, DOMAIN, SUBDOMAIN, IMPORT_PATH] (10 app + 0 system)
2026/08/23 05:42:28 manager.go:1320: [DEBUG] Running: docker compose up -d (in /opt/docker/stacks/docmost)
2026/08/23 05:42:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:42:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:42:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:42:34 manager.go:703: [DEBUG] [stacks] restart-policy of down member "docmost" = "unless-stopped"
2026/08/23 05:42:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:42:39 manager.go:1340: [DEBUG] Command completed: docker compose up -d (took 11.2s)
2026/08/23 05:42:39 manager.go:1054: [INFO] [stacks] Stack docmost started successfully (took 11.2s)
2026/08/23 05:42:39 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:42:39 lifecycle.go:70: [DEBUG] [integrations] OnStackStart: stack=docmost, waiting 5s for state refresh
2026/08/23 05:42:42 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:42:42 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:42:42 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:42:42Z, active_sessions=53
2026/08/23 05:42:42 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:42:42 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:42:42 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:42:42 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:42:42 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:42:42 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:42:42 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:42:42 manager.go:1311: [DEBUG] Env vars for compose: [PATH, HOSTNAME, FELHOM_BOOTSTRAP_PATH, HOME, DOMAIN, APP_SECRET, DB_PASSWORD, DOMAIN, SUBDOMAIN, IMPORT_PATH] (10 app + 0 system)
2026/08/23 05:42:42 manager.go:1320: [DEBUG] Running: docker compose ps -a --format table {{.Name}}	{{.Image}}	{{.State}}	{{.Status}} (in /opt/docker/stacks/docmost)
2026/08/23 05:42:42 manager.go:1340: [DEBUG] Command completed: docker compose ps -a --format table {{.Name}}	{{.Image}}	{{.State}}	{{.Status}} (took 0.1s)
2026/08/23 05:42:42 manager.go:1400: [INFO] [stacks] Stack docmost post-start status:
2026/08/23 05:42:42 manager.go:1403: [INFO] [stacks]   docmost            docmost/docmost:0.95.0   running   Up 3 seconds (health: starting)
2026/08/23 05:42:42 manager.go:1403: [INFO] [stacks]   docmost-postgres   postgres:16-alpine       running   Up 14 seconds (healthy)
2026/08/23 05:42:42 manager.go:1403: [INFO] [stacks]   docmost-redis      redis:7-alpine           running   Up 14 seconds (healthy)
2026/08/23 05:42:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:42:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3940MB avail≈21958MB
2026/08/23 05:42:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=26041056 → total=25898MB avail=21958MB used=3940MB (15.2%)
2026/08/23 05:42: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:42: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:42:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.75 0.71 0.69 6/914 3589" → 1m=0.75 5m=0.71 15m=0.69
2026/08/23 05:42:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:42:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 55.0°C (hwmon2)
2026/08/23 05:42:44 info.go:13: [DEBUG] [system] GetInfo done in 83ms — mem=3940MB/25898MB (15.2%), rootDisk=10.2GB/68.7GB (14.8%), load=0.75/0.71/0.69, temp=55.0°C (hwmon2), cpu=4.3%
2026/08/23 05:42:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:42:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:42:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:42:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:42:44 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 05:42:44 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 05:42:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:42:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:42:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:42:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 05:42: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:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 05:42: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:42: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:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 05:42: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:42: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:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 05:42: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:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 05:42: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:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 05:42: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:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 05:42: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:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 05:42:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 05:42:44 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 05:42:44 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 05:42:44 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 05:42:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:42:44 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 74ms)
2026/08/23 05:42:44 lifecycle.go:86: [DEBUG] [integrations] OnStackStart: stack=docmost integrationsFound=0
2026/08/23 05:42:45 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (588ms)
2026/08/23 05:42:45 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 588ms)
2026/08/23 05:42:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (689ms)
2026/08/23 05:42:47 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (697ms)
2026/08/23 05:42:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:42:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:42:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:42:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:42:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:43:03 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:43:03 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:43:03 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:43:03Z, active_sessions=54
2026/08/23 05:43:03 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:43:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:43:03 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:43:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:43:03 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:43:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:43:03 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:43:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:43:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 1 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:43:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:43:04 healthprobe.go:153: [DEBUG] Health probe docmost: HTTP GET :3000/ → 200 (6ms)
2026/08/23 05:43:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:43:04 healthprobe.go:133: [INFO] Health probes: 1 ok (of 1 probed)
2026/08/23 05:43:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:43:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:43:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:43:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:43:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:43:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:43:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (682ms)
2026/08/23 05:43:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (705ms)
2026/08/23 05:43:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:43:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:43:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:43:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:43:24 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:43:24 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:43:24 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:43:24Z, active_sessions=55
2026/08/23 05:43:24 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:43:24 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:43:24 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:43:24 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:43:24 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:43:24 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:43:24 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:43:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:43:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:43:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:43:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:43:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:43:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4061MB avail≈21837MB
2026/08/23 05:43:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25897080 → total=25898MB avail=21837MB used=4061MB (15.7%)
2026/08/23 05:43: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:43: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:43:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.57 0.67 0.68 4/921 3709" → 1m=0.57 5m=0.67 15m=0.68
2026/08/23 05:43:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:43:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 05:43:44 info.go:13: [DEBUG] [system] GetInfo done in 65ms — mem=4061MB/25898MB (15.7%), rootDisk=10.2GB/68.7GB (14.8%), load=0.57/0.67/0.68, temp=52.9°C (hwmon1), cpu=1.8%
2026/08/23 05:43:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:43:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:43:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:43:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:43:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:43:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:43:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:43:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:43:45 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (590ms)
2026/08/23 05:43:45 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 591ms)
2026/08/23 05:43: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:43:45 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:43:45 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:43:45Z, active_sessions=56
2026/08/23 05:43:45 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:43:45 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:43:45 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:43:45 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:43:45 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:43:45 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:43:45 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:43:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (673ms)
2026/08/23 05:43:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (622ms)
2026/08/23 05:43:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:43:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:43:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:43:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:43:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:44:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:44:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:44:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:44:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:44: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:44:06 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:44:06 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:44:06Z, active_sessions=57
2026/08/23 05:44:06 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:44:06 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:44:06 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:44:06 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:44:06 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:44:07 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:44:07 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:44:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:44:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:44:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:44:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:44:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:44:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:44:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (613ms)
2026/08/23 05:44:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (641ms)
2026/08/23 05:44:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:44:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:44:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:44:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:44:28 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:44:28 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:44:28 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:44:28Z, active_sessions=58
2026/08/23 05:44:28 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:44:28 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:44:28 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:44:28 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:44:28 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:44:28 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:44:28 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:44:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:44:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:44:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:44:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:44:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:44:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4033MB avail≈21865MB
2026/08/23 05:44:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25931760 → total=25898MB avail=21865MB used=4033MB (15.6%)
2026/08/23 05:44: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:44: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:44:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.44 0.62 0.66 4/919 3825" → 1m=0.44 5m=0.62 15m=0.66
2026/08/23 05:44:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:44:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 05:44:44 info.go:13: [DEBUG] [system] GetInfo done in 59ms — mem=4033MB/25898MB (15.6%), rootDisk=10.2GB/68.7GB (14.8%), load=0.44/0.62/0.66, temp=52.9°C (hwmon1), cpu=4.4%
2026/08/23 05:44:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:44:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:44:44 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 05:44:44 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 05:44:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:44:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 05:44: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:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 05:44: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:44: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:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 05:44: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:44: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:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 05:44:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:44:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 05:44: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:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 05:44: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:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 05:44: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:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 05:44: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:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 05:44:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 05:44:44 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 05:44:44 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 05:44:44 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 05:44:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:44:44 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 49ms)
2026/08/23 05:44:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:44:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:44:44 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (541ms)
2026/08/23 05:44:44 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 541ms)
2026/08/23 05:44:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (617ms)
2026/08/23 05:44:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (669ms)
2026/08/23 05:44:49 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:44:49 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:44:49 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:44:49Z, active_sessions=59
2026/08/23 05:44:49 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:44:49 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:44:49 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:44:49 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:44:49 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:44:49 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:44:49 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:44:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:44:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:44:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:44:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:44:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:45:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:45:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:45:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:45:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:45:10 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:45:10 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:45:10 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:45:10Z, active_sessions=60
2026/08/23 05:45:10 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:45:10 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:45:10 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:45:10 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:45:10 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:45:10 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:45:10 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:45:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:45:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:45:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:45:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:45:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:45:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:45:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (684ms)
2026/08/23 05:45:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (678ms)
2026/08/23 05:45:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:45:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:45:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:45:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:45:31 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:45:31 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:45:31 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:45:31Z, active_sessions=61
2026/08/23 05:45:31 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:45:31 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:45:31 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:45:31 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:45:31 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:45:31 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:45:31 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:45:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:45:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:45:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:45:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:45:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:45:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4065MB avail≈21833MB
2026/08/23 05:45:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25893052 → total=25898MB avail=21833MB used=4065MB (15.7%)
2026/08/23 05:45: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:45: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:45:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.46 0.59 0.64 2/918 3946" → 1m=0.46 5m=0.59 15m=0.64
2026/08/23 05:45:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:45:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 53.6°C (hwmon2)
2026/08/23 05:45:44 info.go:13: [DEBUG] [system] GetInfo done in 60ms — mem=4065MB/25898MB (15.7%), rootDisk=10.2GB/68.7GB (14.8%), load=0.46/0.59/0.64, temp=53.6°C (hwmon2), cpu=1.5%
2026/08/23 05:45:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:45:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:45:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:45:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:45:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:45:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:45:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:45:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:45:44 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (528ms)
2026/08/23 05:45:44 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 529ms)
2026/08/23 05:45:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (592ms)
2026/08/23 05:45:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (603ms)
2026/08/23 05:45:52 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:45:52 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:45:52 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:45:52Z, active_sessions=62
2026/08/23 05:45:52 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:45:52 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:45:52 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:45:52 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:45:52 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:45:52 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:45:52 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:45:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:45:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:45:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:45:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:45:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:46:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:46:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:46:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:46:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:46:14 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:46:14 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:46:14 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:46:14Z, active_sessions=63
2026/08/23 05:46:14 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:46:14 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:46:14 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:46:14 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:46:14 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:46:14 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:46:14 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:46:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:46:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:46:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:46:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:46:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:46:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:46:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (694ms)
2026/08/23 05:46:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (662ms)
2026/08/23 05:46:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:46:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:46:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:46:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:46:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:46:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:46:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:46:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:46:35 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:46:35 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:46:35 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:46:35Z, active_sessions=64
2026/08/23 05:46:35 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:46:35 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:46:35 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:46:35 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:46:35 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:46:35 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:46:35 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:46:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:46:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4072MB avail≈21826MB
2026/08/23 05:46:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25884164 → total=25898MB avail=21826MB used=4072MB (15.7%)
2026/08/23 05:46: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:46: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:46:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.63 0.60 0.64 7/920 4054" → 1m=0.63 5m=0.60 15m=0.64
2026/08/23 05:46:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:46:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 51.9°C (hwmon1)
2026/08/23 05:46:44 info.go:13: [DEBUG] [system] GetInfo done in 62ms — mem=4072MB/25898MB (15.7%), rootDisk=10.2GB/68.7GB (14.8%), load=0.63/0.60/0.64, temp=51.9°C (hwmon1), cpu=6.5%
2026/08/23 05:46:44 scheduler.go:346: [INFO] [scheduler] Running job: backup-cache
2026/08/23 05:46:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:46:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:46:44 scheduler.go:346: [INFO] [scheduler] Running job: system-health
2026/08/23 05:46:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:46:44 scheduler.go:346: [INFO] [scheduler] Running job: offsite-credential-retry
2026/08/23 05:46:44 scheduler.go:67: [DEBUG] [scheduler] job offsite-credential-retry: execution starting
2026/08/23 05:46:44 scheduler.go:363: [INFO] [scheduler] Job offsite-credential-retry completed (took 0s)
2026/08/23 05:46:44 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 05:46:44 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 05:46:44 scheduler.go:67: [DEBUG] [scheduler] job system-health: execution starting
2026/08/23 05:46:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:46:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:46:44 scheduler.go:67: [DEBUG] [scheduler] job backup-cache: execution starting
2026/08/23 05:46:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:46:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:46:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:46:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 05:46: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:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 05:46: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:46: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:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 05:46: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:46: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:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 05:46: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:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 05:46: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:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 05:46: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:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 05:46: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:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 05:46:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 05:46:44 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 05:46:44 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 05:46:44 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 05:46:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4068MB avail≈21830MB
2026/08/23 05:46:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25889164 → total=25898MB avail=21830MB used=4068MB (15.7%)
2026/08/23 05:46: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:46: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:46:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.63 0.60 0.64 9/943 4107" → 1m=0.63 5m=0.60 15m=0.64
2026/08/23 05:46:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:46:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 51.9°C (hwmon1)
2026/08/23 05:46:44 info.go:13: [DEBUG] [system] GetInfo done in 75ms — mem=4068MB/25898MB (15.7%), rootDisk=10.2GB/68.7GB (14.8%), load=0.63/0.60/0.64, temp=51.9°C (hwmon1), cpu=6.5%
2026/08/23 05:46:44 healthcheck.go:42: [DEBUG] [monitor] Raw values: disk=14.8%, hdd=0.6% (configured=true), mem=15.7% (4068MB/25898MB), cpu=6.5%, temp=51.9°C (hwmon1)
2026/08/23 05:46:44 healthcheck.go:74: [DEBUG] [monitor] SSD disk: OK (15%)
2026/08/23 05:46:44 healthcheck.go:107: [DEBUG] [monitor] Memory: OK (16%)
2026/08/23 05:46:44 healthcheck.go:125: [DEBUG] [monitor] CPU: OK (7%)
2026/08/23 05:46:44 healthcheck.go:143: [DEBUG] [monitor] Temperature: OK (52°C)
2026/08/23 05:46:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:46:44 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 81ms)
2026/08/23 05:46:44 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/sys_drive → [bookstack, docmost, kimai, opengist, privatebin]
2026/08/23 05:46:44 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/felhom-drives/hdd_1 → [calibre-web, paperless-ngx, romm]
2026/08/23 05:46:44 backup.go:1063: [INFO] [backup] Found 13 DB dump files across drives
2026/08/23 05:46:44 dbdump.go:128: [DEBUG] DiscoverDatabases: running docker ps to find database containers
2026/08/23 05:46:44 dbdump.go:147: [DEBUG] DiscoverDatabases: docker ps output: 13cfb077ecf8	docmost	docmost	docmost/docmost:0.95.0
91041c89bd0d	docmost-postgres	docmost	postgres:16-alpine
41c830a66b1d	docmost-redis	docmost	redis:7-alpine
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-...
2026/08/23 05:46:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost (image=docmost/docmost:0.95.0, not a database)
2026/08/23 05:46:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: docmost-postgres (id=91041c89bd0d)
2026/08/23 05:46:44 dbdump.go:196: [DEBUG] DiscoverDatabases: docmost-postgres → stack=docmost, dbUser=docmost, dbName=docmost
2026/08/23 05:46:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost-redis (image=redis:7-alpine, not a database)
2026/08/23 05:46: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:46:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm (image=rommapp/romm:5.0.0, not a database)
2026/08/23 05:46:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm-redis (image=redis:7-alpine, not a database)
2026/08/23 05:46:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: romm-db (id=e076270a7d75)
2026/08/23 05:46:44 healthcheck.go:157: [DEBUG] [monitor] Docker daemon: OK
2026/08/23 05:46:44 healthcheck.go:165: [DEBUG] [monitor] Checking 4 protected containers: [traefik cloudflared felhom-controller filebrowser]
2026/08/23 05:46:44 dbdump.go:196: [DEBUG] DiscoverDatabases: romm-db → stack=romm, dbUser=root, dbName=romm
2026/08/23 05:46:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container privatebin (image=privatebin/pdo:2.0.5, not a database)
2026/08/23 05:46: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:46:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: paperless-postgres (id=e31aa0b09dbb)
2026/08/23 05:46: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:46:44 dbdump.go:196: [DEBUG] DiscoverDatabases: paperless-postgres → stack=paperless-ngx, dbUser=paperless, dbName=paperless
2026/08/23 05:46:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container paperless-redis (image=redis:7-alpine, not a database)
2026/08/23 05:46:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container opengist (image=ghcr.io/thomiceli/opengist:1.13, not a database)
2026/08/23 05:46:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container kimai (image=kimai/kimai2:apache-2.57.0, not a database)
2026/08/23 05:46:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: kimai-db (id=9849469a8b29)
2026/08/23 05:46:44 dbdump.go:196: [DEBUG] DiscoverDatabases: kimai-db → stack=kimai, dbUser=root, dbName=kimai
2026/08/23 05:46: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:46:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container bookstack (image=lscr.io/linuxserver/bookstack:26.05.2, not a database)
2026/08/23 05:46:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: bookstack-db (id=95dcda149d29)
2026/08/23 05:46:44 dbdump.go:196: [DEBUG] DiscoverDatabases: bookstack-db → stack=bookstack, dbUser=root, dbName=bookstack
2026/08/23 05:46:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container filebrowser (image=gtstef/filebrowser:1.3.3-stable, not a database)
2026/08/23 05:46:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container cloudflared (image=cloudflare/cloudflared:2026.6.0, not a database)
2026/08/23 05:46:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container traefik (image=traefik:v3.6.7, not a database)
2026/08/23 05:46:44 dbdump.go:203: [DEBUG] DiscoverDatabases: found 5 database(s), skipped 15 non-DB container(s)
2026/08/23 05:46:44 dbdump.go:206: [INFO] [backup] Discovered 5 databases
2026/08/23 05:46:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:46:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 05:46:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:46:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:46:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:46:44 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 05:46:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:46:44 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:46:44 healthcheck.go:175: [DEBUG] [monitor] All protected containers running
2026/08/23 05:46: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:46:44 healthcheck.go:192: [INFO] [monitor] Health check: status=ok
2026/08/23 05:46:44 healthcheck.go:196: [DEBUG] [monitor] Final status: ok (issues=0, warnings=0, info=5)
2026/08/23 05:46:44 scheduler.go:363: [INFO] [scheduler] Job system-health completed (took 218ms)
2026/08/23 05:46:44 [INFO] [backup] Discovered app data: 8 apps
2026/08/23 05:46: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:46: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:46: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:46: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:46: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:46: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:46: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:46: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:46:44 backup.go:1133: [INFO] [backup] Backup status cache refreshed
2026/08/23 05:46:44 scheduler.go:363: [INFO] [scheduler] Job backup-cache completed (took 232ms)
2026/08/23 05:46:45 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (586ms)
2026/08/23 05:46:45 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 587ms)
2026/08/23 05:46:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (629ms)
2026/08/23 05:46:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (654ms)
2026/08/23 05:46:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:46:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:46:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:46:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:46:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:46:56 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:46:56 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:46:56 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:46:56Z, active_sessions=65
2026/08/23 05:46:56 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:46:56 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:46:56 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:46:56 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:46:56 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:46:56 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:46:56 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:47:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:47:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:47:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:47:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:47:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:47:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:47:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:47:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:47:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:47:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 6 targets (1 skipped not due, 1 skipped no container)
2026/08/23 05:47:14 healthprobe.go:153: [DEBUG] Health probe romm: HTTP GET :8080/ → 200 (3ms)
2026/08/23 05:47:14 healthprobe.go:153: [DEBUG] Health probe opengist: API GET :6157/healthcheck → 200 (4ms)
2026/08/23 05:47:14 healthprobe.go:153: [DEBUG] Health probe privatebin: HTTP GET :8080/ → 200 (7ms)
2026/08/23 05:47:14 healthprobe.go:153: [DEBUG] Health probe calibre-web: HTTP GET :8083/ → 302 (8ms)
2026/08/23 05:47:14 healthprobe.go:153: [DEBUG] Health probe kimai: HTTP GET :8001/ → 302 (26ms)
2026/08/23 05:47:14 healthprobe.go:153: [DEBUG] Health probe bookstack: HTTP GET :80/ → 302 (52ms)
2026/08/23 05:47:14 healthprobe.go:133: [INFO] Health probes: 6 ok (of 6 probed)
2026/08/23 05:47:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (656ms)
2026/08/23 05:47:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (668ms)
2026/08/23 05:47:17 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:47:17 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:47:17 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:47:17Z, active_sessions=66
2026/08/23 05:47:17 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:47:17 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:47:17 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:47:17 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:47:17 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:47:17 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:47:17 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:47:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:47:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:47:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:47:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:47:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:47:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:47:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:47:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:47:38 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:47:38 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:47:38 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:47:38Z, active_sessions=67
2026/08/23 05:47:38 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:47:39 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:47:39 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:47:39 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:47:39 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:47:39 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:47:39 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:47:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:47:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4045MB avail≈21853MB
2026/08/23 05:47:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25917332 → total=25898MB avail=21853MB used=4045MB (15.6%)
2026/08/23 05:47: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:47: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:47:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.98 0.71 0.68 2/889 4374" → 1m=0.98 5m=0.71 15m=0.68
2026/08/23 05:47:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:47:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 51.9°C (hwmon1)
2026/08/23 05:47:44 info.go:13: [DEBUG] [system] GetInfo done in 60ms — mem=4045MB/25898MB (15.6%), rootDisk=10.2GB/68.7GB (14.8%), load=0.98/0.71/0.68, temp=51.9°C (hwmon1), cpu=8.3%
2026/08/23 05:47:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:47:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:47:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:47:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:47:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 05:47:44 main.go:1730: [INFO] [deadapp] check alive: 40 scans since boot, 8 deployed app(s) evaluated, 0 currently down
2026/08/23 05:47:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:47:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:47:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:47:44 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (555ms)
2026/08/23 05:47:44 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 555ms)
2026/08/23 05:47:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (610ms)
2026/08/23 05:47:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (611ms)
2026/08/23 05:47:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:47:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:47:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:47:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:47:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:48:00 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:48:00 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:48:00 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:48:00Z, active_sessions=68
2026/08/23 05:48:00 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:48:00 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:48:00 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:48:00 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:48:00 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:48:00 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:48:00 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:48:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:48:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:48:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 1 targets (5 skipped not due, 1 skipped no container)
2026/08/23 05:48:04 healthprobe.go:153: [DEBUG] Health probe docmost: HTTP GET :3000/ → 200 (3ms)
2026/08/23 05:48:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:48:04 healthprobe.go:133: [INFO] Health probes: 1 ok (of 1 probed)
2026/08/23 05:48:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:48:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:48:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:48:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:48:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:48:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:48:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (679ms)
2026/08/23 05:48:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (660ms)
2026/08/23 05:48:21 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:48:21 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:48:21 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:48:21Z, active_sessions=69
2026/08/23 05:48:21 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:48:21 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:48:21 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:48:21 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:48:21 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:48:21 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:48:21 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:48:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:48:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:48:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:48:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:48:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:48:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:48:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:48:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:48:42 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:48:42 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:48:42 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:48:42Z, active_sessions=70
2026/08/23 05:48:42 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:48:42 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:48:42 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:48:42 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:48:42 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:48:42 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:48:42 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:48:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:48:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4114MB avail≈21784MB
2026/08/23 05:48:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25835304 → total=25898MB avail=21784MB used=4114MB (15.9%)
2026/08/23 05:48: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:48: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:48:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.70 0.68 0.67 4/889 4485" → 1m=0.70 5m=0.68 15m=0.67
2026/08/23 05:48:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:48:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.0°C (hwmon0)
2026/08/23 05:48:44 info.go:13: [DEBUG] [system] GetInfo done in 56ms — mem=4114MB/25898MB (15.9%), rootDisk=10.2GB/68.7GB (14.8%), load=0.70/0.68/0.67, temp=52.0°C (hwmon0), cpu=1.4%
2026/08/23 05:48:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:48:44 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 05:48:44 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 05:48:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:48:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:48:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 05:48: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:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 05:48: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:48: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:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 05:48: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:48: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:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 05:48:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:48:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 05:48: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:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 05:48: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:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 05:48: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:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 05:48: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:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 05:48:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 05:48:44 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 05:48:44 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 05:48:44 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 05:48:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:48:44 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 47ms)
2026/08/23 05:48:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:48:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:48:44 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (556ms)
2026/08/23 05:48:44 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 557ms)
2026/08/23 05:48:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (635ms)
2026/08/23 05:48:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (599ms)
2026/08/23 05:48:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:48:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:48:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:48:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:48:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:49:03 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:49:03 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:49:03 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:49:03Z, active_sessions=71
2026/08/23 05:49:03 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:49:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:49:03 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:49:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:49:03 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:49:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:49:03 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:49:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:49:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:49:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:49:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:49:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:49:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:49:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:49:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:49:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:49:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:49:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (668ms)
2026/08/23 05:49:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (676ms)
2026/08/23 05:49:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:49:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:49:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:49:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:49:24 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:49:24 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:49:24 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:49:24Z, active_sessions=72
2026/08/23 05:49:24 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:49:25 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:49:25 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:49:25 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:49:25 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:49:25 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:49:25 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:49:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:49:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:49:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:49:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:49:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:49:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4006MB avail≈21892MB
2026/08/23 05:49:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25963276 → total=25898MB avail=21892MB used=4006MB (15.5%)
2026/08/23 05:49: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:49: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:49:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.55 0.63 0.65 4/888 4616" → 1m=0.55 5m=0.63 15m=0.65
2026/08/23 05:49:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:49:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 05:49:44 info.go:13: [DEBUG] [system] GetInfo done in 58ms — mem=4006MB/25898MB (15.5%), rootDisk=10.2GB/68.7GB (14.8%), load=0.55/0.63/0.65, temp=52.9°C (hwmon1), cpu=4.3%
2026/08/23 05:49:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:49:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:49:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:49:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:49:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:49:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:49:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:49:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:49:44 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (521ms)
2026/08/23 05:49:44 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 522ms)
2026/08/23 05:49:46 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:49:46 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:49:46 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:49:46Z, active_sessions=73
2026/08/23 05:49:46 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:49:46 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:49:46 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:49:46 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:49:46 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:49:46 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:49:46 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:49:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (664ms)
2026/08/23 05:49:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (590ms)
2026/08/23 05:49:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:49:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:49:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:49:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:49:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:50:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:50:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:50:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:50:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:50:07 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:50:07 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:50:07 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:50:07Z, active_sessions=74
2026/08/23 05:50:07 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:50:07 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:50:07 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:50:07 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:50:07 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:50:07 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:50:07 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:50:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:50:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:50:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:50:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:50:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:50:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:50:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (675ms)
2026/08/23 05:50:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (642ms)
2026/08/23 05:50:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:50:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:50:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:50:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:50:28 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:50:28 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:50:28 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:50:28Z, active_sessions=75
2026/08/23 05:50:28 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:50:28 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:50:28 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:50:28 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:50:28 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:50:28 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:50:28 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:50:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:50:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:50:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:50:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:50:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:50:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4046MB avail≈21852MB
2026/08/23 05:50:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25915532 → total=25898MB avail=21852MB used=4046MB (15.6%)
2026/08/23 05:50: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:50: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:50:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.33 0.56 0.62 5/896 4731" → 1m=0.33 5m=0.56 15m=0.62
2026/08/23 05:50:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:50:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 55.0°C (hwmon2)
2026/08/23 05:50:44 info.go:13: [DEBUG] [system] GetInfo done in 68ms — mem=4046MB/25898MB (15.6%), rootDisk=10.2GB/68.7GB (14.8%), load=0.33/0.56/0.62, temp=55.0°C (hwmon2), cpu=1.6%
2026/08/23 05:50:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:50:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:50:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:50:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:50:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:50:44 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 05:50:44 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 05:50:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:50:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:50:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 05:50: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:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 05:50: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:50: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:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 05:50: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:50: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:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 05:50: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:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 05:50: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:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 05:50: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:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 05:50: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:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 05:50:44 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 05:50:44 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 05:50:44 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 05:50:44 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 05:50:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:50:44 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 86ms)
2026/08/23 05:50:44 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (540ms)
2026/08/23 05:50:44 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 540ms)
2026/08/23 05:50:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (596ms)
2026/08/23 05:50:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (638ms)
2026/08/23 05:50:49 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:50:49 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:50:49 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:50:49Z, active_sessions=76
2026/08/23 05:50:49 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:50:49 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:50:49 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:50:49 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:50:49 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:50:49 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:50:49 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:50:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:50:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:50:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:50:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:50:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:51:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:51:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:51:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:51:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:51:10 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:51:10 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:51:10 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:51:10Z, active_sessions=77
2026/08/23 05:51:10 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:51:10 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:51:10 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:51:10 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:51:10 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:51:10 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:51:10 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:51:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:51:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:51:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:51:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:51:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:51:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:51:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (652ms)
2026/08/23 05:51:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (658ms)
2026/08/23 05:51:24 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:51:24 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:51:24 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:51:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:24 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:24 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:51:32 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:51:32 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:51:32 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:51:32Z, active_sessions=78
2026/08/23 05:51:32 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:51:32 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:51:32 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:51:32 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:51:32 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:51:32 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:51:32 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:51:34 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:51:34 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:51:34 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:51:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:34 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:34 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:51:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:51:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4059MB avail≈21839MB
2026/08/23 05:51:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25900700 → total=25898MB avail=21839MB used=4059MB (15.7%)
2026/08/23 05:51: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:51: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:51:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.63 0.60 0.64 8/891 4854" → 1m=0.63 5m=0.60 15m=0.64
2026/08/23 05:51:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:51:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 05:51:44 info.go:13: [DEBUG] [system] GetInfo done in 65ms — mem=4059MB/25898MB (15.7%), rootDisk=10.2GB/68.7GB (14.8%), load=0.63/0.60/0.64, temp=52.9°C (hwmon1), cpu=1.9%
2026/08/23 05:51:44 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:51:44 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:51:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:44 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:51:44 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:51:44 scheduler.go:346: [INFO] [scheduler] Running job: system-health
2026/08/23 05:51:44 scheduler.go:346: [INFO] [scheduler] Running job: offsite-credential-retry
2026/08/23 05:51:44 scheduler.go:67: [DEBUG] [scheduler] job offsite-credential-retry: execution starting
2026/08/23 05:51:44 scheduler.go:346: [INFO] [scheduler] Running job: backup-cache
2026/08/23 05:51:44 scheduler.go:67: [DEBUG] [scheduler] job backup-cache: execution starting
2026/08/23 05:51:44 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:44 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:51:44 scheduler.go:67: [DEBUG] [scheduler] job system-health: execution starting
2026/08/23 05:51:44 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:51:44 scheduler.go:363: [INFO] [scheduler] Job offsite-credential-retry completed (took 0s)
2026/08/23 05:51:44 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 05:51:44 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 05:51:44 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:51:44 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/sys_drive → [bookstack, docmost, kimai, opengist, privatebin]
2026/08/23 05:51:44 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/felhom-drives/hdd_1 → [calibre-web, paperless-ngx, romm]
2026/08/23 05:51:44 backup.go:1063: [INFO] [backup] Found 13 DB dump files across drives
2026/08/23 05:51:44 dbdump.go:128: [DEBUG] DiscoverDatabases: running docker ps to find database containers
2026/08/23 05:51:44 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4052MB avail≈21846MB
2026/08/23 05:51:44 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25907284 → total=25898MB avail=21846MB used=4052MB (15.6%)
2026/08/23 05:51: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:51: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:51:44 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.63 0.60 0.64 4/913 4902" → 1m=0.63 5m=0.60 15m=0.64
2026/08/23 05:51:44 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:51:44 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 55.0°C (hwmon2)
2026/08/23 05:51:44 info.go:13: [DEBUG] [system] GetInfo done in 58ms — mem=4052MB/25898MB (15.6%), rootDisk=10.2GB/68.7GB (14.8%), load=0.63/0.60/0.64, temp=55.0°C (hwmon2), cpu=1.9%
2026/08/23 05:51:44 healthcheck.go:42: [DEBUG] [monitor] Raw values: disk=14.8%, hdd=0.6% (configured=true), mem=15.6% (4052MB/25898MB), cpu=1.9%, temp=55.0°C (hwmon2)
2026/08/23 05:51:44 healthcheck.go:74: [DEBUG] [monitor] SSD disk: OK (15%)
2026/08/23 05:51:44 healthcheck.go:107: [DEBUG] [monitor] Memory: OK (16%)
2026/08/23 05:51:44 healthcheck.go:125: [DEBUG] [monitor] CPU: OK (2%)
2026/08/23 05:51:44 healthcheck.go:143: [DEBUG] [monitor] Temperature: OK (55°C)
2026/08/23 05:51:44 dbdump.go:147: [DEBUG] DiscoverDatabases: docker ps output: 13cfb077ecf8	docmost	docmost	docmost/docmost:0.95.0
91041c89bd0d	docmost-postgres	docmost	postgres:16-alpine
41c830a66b1d	docmost-redis	docmost	redis:7-alpine
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
1c704643bc4c	paperless-webserver	paperless-ngx	ghcr.io/paperless-ngx/paperless-ngx:2.20.15
e31aa0b09dbb	paperless-postgres	paperless-ng...
2026/08/23 05:51:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost (image=docmost/docmost:0.95.0, not a database)
2026/08/23 05:51:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: docmost-postgres (id=91041c89bd0d)
2026/08/23 05:51:44 dbdump.go:196: [DEBUG] DiscoverDatabases: docmost-postgres → stack=docmost, dbUser=docmost, dbName=docmost
2026/08/23 05:51:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost-redis (image=redis:7-alpine, not a database)
2026/08/23 05:51: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:51:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm (image=rommapp/romm:5.0.0, not a database)
2026/08/23 05:51:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm-redis (image=redis:7-alpine, not a database)
2026/08/23 05:51:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: romm-db (id=e076270a7d75)
2026/08/23 05:51:44 dbdump.go:196: [DEBUG] DiscoverDatabases: romm-db → stack=romm, dbUser=root, dbName=romm
2026/08/23 05:51: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:51:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: paperless-postgres (id=e31aa0b09dbb)
2026/08/23 05:51: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:51:44 healthcheck.go:157: [DEBUG] [monitor] Docker daemon: OK
2026/08/23 05:51:44 healthcheck.go:165: [DEBUG] [monitor] Checking 4 protected containers: [traefik cloudflared felhom-controller filebrowser]
2026/08/23 05:51:44 dbdump.go:196: [DEBUG] DiscoverDatabases: paperless-postgres → stack=paperless-ngx, dbUser=paperless, dbName=paperless
2026/08/23 05:51:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container paperless-redis (image=redis:7-alpine, not a database)
2026/08/23 05:51:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container opengist (image=ghcr.io/thomiceli/opengist:1.13, not a database)
2026/08/23 05:51:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container kimai (image=kimai/kimai2:apache-2.57.0, not a database)
2026/08/23 05:51:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: kimai-db (id=9849469a8b29)
2026/08/23 05:51:44 dbdump.go:196: [DEBUG] DiscoverDatabases: kimai-db → stack=kimai, dbUser=root, dbName=kimai
2026/08/23 05:51: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:51:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container bookstack (image=lscr.io/linuxserver/bookstack:26.05.2, not a database)
2026/08/23 05:51:44 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: bookstack-db (id=95dcda149d29)
2026/08/23 05:51:44 dbdump.go:196: [DEBUG] DiscoverDatabases: bookstack-db → stack=bookstack, dbUser=root, dbName=bookstack
2026/08/23 05:51:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container filebrowser (image=gtstef/filebrowser:1.3.3-stable, not a database)
2026/08/23 05:51:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container cloudflared (image=cloudflare/cloudflared:2026.6.0, not a database)
2026/08/23 05:51:44 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container traefik (image=traefik:v3.6.7, not a database)
2026/08/23 05:51:44 dbdump.go:203: [DEBUG] DiscoverDatabases: found 5 database(s), skipped 14 non-DB container(s)
2026/08/23 05:51:44 dbdump.go:206: [INFO] [backup] Discovered 5 databases
2026/08/23 05:51:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 05:51:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 05:51:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 05:51:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 05:51:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 05:51:44 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 05:51:44 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 05:51:44 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/romm/docker-compose.yml
2026/08/23 05:51:44 [INFO] [backup] Discovered app data: 8 apps
2026/08/23 05:51: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:51: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:51: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:51: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:51: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:51: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:51: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:51: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:51:44 backup.go:1133: [INFO] [backup] Backup status cache refreshed
2026/08/23 05:51:44 scheduler.go:363: [INFO] [scheduler] Job backup-cache completed (took 184ms)
2026/08/23 05:51:44 healthcheck.go:175: [DEBUG] [monitor] All protected containers running
2026/08/23 05:51: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:51:44 healthcheck.go:192: [INFO] [monitor] Health check: status=ok
2026/08/23 05:51:44 healthcheck.go:196: [DEBUG] [monitor] Final status: ok (issues=0, warnings=0, info=5)
2026/08/23 05:51:44 scheduler.go:363: [INFO] [scheduler] Job system-health completed (took 197ms)
2026/08/23 05:51:45 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (581ms)
2026/08/23 05:51:45 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 581ms)
2026/08/23 05:51:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (587ms)
2026/08/23 05:51:46 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (619ms)
2026/08/23 05:51:53 auth.go:146: [DEBUG] [web] login attempt from 172.17.0.1:46340 (X-Forwarded-For: )
2026/08/23 05:51:53 auth.go:194: [DEBUG] [web] login successful from 172.17.0.1, creating session
2026/08/23 05:51:53 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:51:53Z, active_sessions=79
2026/08/23 05:51:53 auth.go:214: [INFO] [web] Login from 172.17.0.1:46340
2026/08/23 05:51:53 auth.go:134: [DEBUG] [web] auth: valid session for GET /api/stacks
2026/08/23 05:51:53 router.go:80: [DEBUG] [api] GET /api/stacks (path=/stacks)
2026/08/23 05:51:53 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:51:53 auth.go:134: [DEBUG] [web] auth: valid session for GET /dashboard
2026/08/23 05:51:53 server.go:393: [DEBUG] [web] ServeHTTP: GET /dashboard from 172.17.0.1:46366
2026/08/23 05:51:53 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 05:51:53 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:51:53 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:51:53Z, active_sessions=80
2026/08/23 05:51:53 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:51:53 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:51:53 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:51:53 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:51:53 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:51:53 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4177MB avail≈21721MB
2026/08/23 05:51:53 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25760544 → total=25898MB avail=21721MB used=4177MB (16.1%)
2026/08/23 05:51:53 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.8%)
2026/08/23 05:51:53 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:51:53 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.54 0.58 0.63 2/901 5101" → 1m=0.54 5m=0.58 15m=0.63
2026/08/23 05:51:53 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 05:51:53 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 55.1°C (hwmon2)
2026/08/23 05:51:53 info.go:13: [DEBUG] [system] GetInfo done in 65ms — mem=4177MB/25898MB (16.1%), rootDisk=10.2GB/68.7GB (14.8%), load=0.54/0.58/0.63, temp=55.1°C (hwmon2), cpu=5.6%
2026/08/23 05:51:53 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:51:53 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:51:53 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:51:54 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (650ms)
2026/08/23 05:51:54 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:51:54 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:51:54 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:51:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:54 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 05:51:54 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:52:04 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:52:04 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:52:04 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:52:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:52:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:52:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:52:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:52:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:52:04 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 05:52:04 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:52:14 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 05:52:14 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 05:52:14 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 05:52:14 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 05:52:14 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 05:52:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:52:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:52:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:52:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:52:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 05:52:14 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 05:52:14 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 05:52:14 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:44494 (X-Forwarded-For: 172.18.0.1)
2026/08/23 05:52:14 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 05:52:14 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T05:52:14Z, active_sessions=81
2026/08/23 05:52:14 auth.go:214: [INFO] [web] Login from 172.18.0.4:44494
2026/08/23 05:52:14 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 05:52:14 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:44494
2026/08/23 05:52:14 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 05:52:14 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:44494
2026/08/23 05:52:14 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 05:52:14 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:44494
2026/08/23 05:52:16 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (860ms)
2026/08/23 05:52:17 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (823ms)
