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 09:25:01 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:25:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:01 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:25:01 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:25:01 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:25:03 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:25:03 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:25:03 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:25:03Z, active_sessions=4
2026/08/23 09:25:03 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:25:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:25:03 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:25:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:25:03 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:25:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:25:03 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:25:11 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:25:11 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:25:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:11 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:25:11 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:25:20 info.go:13: [DEBUG] [system] GetDiskUsage: path="/" total=68.7 GB used=10.2 GB avail=55.0GB (14.9%)
2026/08/23 09:25:20 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 09:25:20 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.9%)
2026/08/23 09:25:20 fillwatch.go:256: [INFO] [fillwatch] checked 3 filesystem(s), 0 unreadable/skipped, 0 notification(s); bands: all ok
2026/08/23 09:25:21 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 09:25:21 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:25:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:21 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:25:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:21 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 09:25:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:21 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:25:21 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:25:23 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (733ms)
2026/08/23 09:25:23 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (688ms)
2026/08/23 09:25:24 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:25:24 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:25:24 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:25:24Z, active_sessions=5
2026/08/23 09:25:24 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:25:24 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:25:24 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:25:24 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:25:24 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:25:24 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:25:24 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:25:31 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:25:31 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:25:31 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:25:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:31 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:25:41 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:25:41 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:25:41 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:25:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:41 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:25:46 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:25:46 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:25:46 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:25:46Z, active_sessions=6
2026/08/23 09:25:46 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:25:46 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:25:46 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:25:46 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:25:46 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:25:46 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:25:46 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:25:50 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 09:25:50 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4163MB avail≈21735MB
2026/08/23 09:25:50 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25776616 → total=25898MB avail=21735MB used=4163MB (16.1%)
2026/08/23 09:25:50 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 09:25:50 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 09:25:50 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.78 0.55 0.54 5/919 915" → 1m=0.78 5m=0.55 15m=0.54
2026/08/23 09:25:50 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 09:25:50 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 09:25:50 info.go:13: [DEBUG] [system] GetInfo done in 60ms — mem=4163MB/25898MB (16.1%), rootDisk=10.2GB/68.7GB (14.9%), load=0.78/0.55/0.54, temp=52.9°C (hwmon1), cpu=2.0%
2026/08/23 09:25:51 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 09:25:51 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 09:25:51 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 09:25:51 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 09:25:51 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:25:51 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 09:25:51 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 09:25:51 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 09:25:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 09:25:51 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 09:25:51 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 09:25:51 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 09:25:51 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:25:51 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 45ms)
2026/08/23 09:25:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:25:51 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:25:51 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:25:51 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (543ms)
2026/08/23 09:25:51 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 544ms)
2026/08/23 09:25:52 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (655ms)
2026/08/23 09:25:53 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (608ms)
2026/08/23 09:26:01 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:26:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:01 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:26:01 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:26:01 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:26:07 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:26:07 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:26:07 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:26:07Z, active_sessions=7
2026/08/23 09:26:07 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:26:07 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:26:07 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:26:07 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:26:07 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:26:07 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:26:07 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:26:11 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:26:11 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:26:11 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:26:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:11 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:26:21 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 09:26:21 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:26:21 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 09:26:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:21 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:26:21 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:26:21 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:26:22 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (646ms)
2026/08/23 09:26:23 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (603ms)
2026/08/23 09:26:28 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:26:28 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:26:28 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:26:28Z, active_sessions=8
2026/08/23 09:26:28 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:26:28 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:26:28 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:26:28 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:26:28 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:26:28 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:26:28 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:26:31 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:26:31 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:26:31 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:26:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:31 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:26:41 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:26:41 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:26:41 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:26:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:41 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:26:49 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:26:49 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:26:49 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:26:49Z, active_sessions=9
2026/08/23 09:26:49 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:26:49 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:26:49 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:26:49 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:26:49 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:26:49 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:26:49 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:26:50 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 09:26:50 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4084MB avail≈21814MB
2026/08/23 09:26:50 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25870480 → total=25898MB avail=21814MB used=4084MB (15.8%)
2026/08/23 09:26:50 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 09:26:50 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 09:26:50 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.62 0.56 0.55 2/921 1042" → 1m=0.62 5m=0.56 15m=0.55
2026/08/23 09:26:50 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 09:26:50 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 09:26:50 info.go:13: [DEBUG] [system] GetInfo done in 62ms — mem=4084MB/25898MB (15.8%), rootDisk=10.2GB/68.7GB (14.9%), load=0.62/0.56/0.55, temp=52.9°C (hwmon1), cpu=4.4%
2026/08/23 09:26:51 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 09:26:51 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:26:51 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:26:51 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 09:26:51 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 09:26:51 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 09:26:51 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:26:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:26:51 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:26:51 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (515ms)
2026/08/23 09:26:51 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 516ms)
2026/08/23 09:26:52 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (664ms)
2026/08/23 09:26:53 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (630ms)
2026/08/23 09:27:01 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:27:01 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:27:01 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:27:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:01 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:27:10 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:27:10 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:27:10 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:27:10Z, active_sessions=10
2026/08/23 09:27:10 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:27:10 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:27:10 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:27:10 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:27:10 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:27:10 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:27:10 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:27:11 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:27:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:11 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:27:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:11 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:27:11 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:27:21 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:27:21 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 09:27:21 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 09:27:21 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:27:21 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:27:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:21 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:27:22 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (610ms)
2026/08/23 09:27:23 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (608ms)
2026/08/23 09:27:31 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:27:31 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:27:31 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:27:31 manager.go:703: [DEBUG] [stacks] restart-policy of down member "bookstack-db" = "unless-stopped"
2026/08/23 09:27:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:31 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:27:32 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:27:32 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:27:32 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:27:32Z, active_sessions=11
2026/08/23 09:27:32 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:27:32 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:27:32 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:27:32 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:27:32 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:27:32 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:27:32 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:27:41 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:27:41 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:27:41 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:27:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:41 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:27:50 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 09:27:50 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4018MB avail≈21880MB
2026/08/23 09:27:50 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25948320 → total=25898MB avail=21880MB used=4018MB (15.5%)
2026/08/23 09:27:50 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 09:27:50 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 09:27:50 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.68 0.61 0.57 3/898 1167" → 1m=0.68 5m=0.61 15m=0.57
2026/08/23 09:27:50 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 09:27:50 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 09:27:50 info.go:13: [DEBUG] [system] GetInfo done in 57ms — mem=4018MB/25898MB (15.5%), rootDisk=10.2GB/68.7GB (14.9%), load=0.68/0.61/0.57, temp=52.9°C (hwmon1), cpu=2.4%
2026/08/23 09:27:51 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:27:51 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 09:27:51 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 09:27:51 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 09:27:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:51 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 09:27:51 notifier.go:206: [DEBUG] PushEvent: type=app_start_failed severity=warning url=https://hub.felhom.eu/api/v1/event
2026/08/23 09:27:51 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:27:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:27:51 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 09:27:51 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 09:27:51 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 09:27:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 09:27:51 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 09:27:51 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 09:27:51 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 09:27:51 notifier.go:232: [DEBUG] PushEvent: app_start_failed pushed OK (HTTP 200)
2026/08/23 09:27:51 notifier.go:234: [INFO] Event pushed: app_start_failed (warning) — Telepített alkalmazás nem fut: BookStack
2026/08/23 09:27:51 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:27:51 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 48ms)
2026/08/23 09:27:51 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:27:51 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (563ms)
2026/08/23 09:27:51 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 564ms)
2026/08/23 09:27:52 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (688ms)
2026/08/23 09:27:53 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:27:53 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:27:53 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:27:53Z, active_sessions=12
2026/08/23 09:27:53 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:27:53 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:27:53 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:27:53 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:27:53 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:27:53 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:27:53 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:27:53 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (628ms)
2026/08/23 09:28:01 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:28:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:01 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:28:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:01 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:28:01 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:28:11 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:28:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:11 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:28:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:11 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:28:11 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:28:14 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:28:14 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:28:14 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:28:14Z, active_sessions=13
2026/08/23 09:28:14 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:28:14 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:28:14 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:28:14 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:28:14 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:28:14 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:28:14 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:28:21 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:28:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:21 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:28:21 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:28:21 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 09:28:21 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 09:28:21 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:28:22 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (613ms)
2026/08/23 09:28:23 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (663ms)
2026/08/23 09:28:31 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:28:31 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:28:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:31 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:28:31 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:28:35 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:28:35 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:28:35 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:28:35Z, active_sessions=14
2026/08/23 09:28:35 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:28:35 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:28:35 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:28:35 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:28:35 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:28:35 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:28:35 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:28:41 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:28:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:41 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:28:41 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:28:41 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:28:50 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 09:28:50 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3962MB avail≈21936MB
2026/08/23 09:28:50 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=26015448 → total=25898MB avail=21936MB used=3962MB (15.3%)
2026/08/23 09:28:50 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 09:28:50 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 09:28:50 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.68 0.64 0.58 6/899 1292" → 1m=0.68 5m=0.64 15m=0.58
2026/08/23 09:28:50 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 09:28:50 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 09:28:50 info.go:13: [DEBUG] [system] GetInfo done in 59ms — mem=3962MB/25898MB (15.3%), rootDisk=10.2GB/68.7GB (14.9%), load=0.68/0.64/0.58, temp=52.9°C (hwmon1), cpu=4.8%
2026/08/23 09:28:51 scheduler.go:346: [INFO] [scheduler] Running job: backup-cache
2026/08/23 09:28:51 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 09:28:51 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:28:51 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:28:51 scheduler.go:346: [INFO] [scheduler] Running job: system-health
2026/08/23 09:28:51 scheduler.go:67: [DEBUG] [scheduler] job system-health: execution starting
2026/08/23 09:28:51 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 09:28:51 scheduler.go:346: [INFO] [scheduler] Running job: offsite-credential-retry
2026/08/23 09:28:51 scheduler.go:67: [DEBUG] [scheduler] job offsite-credential-retry: execution starting
2026/08/23 09:28:51 scheduler.go:363: [INFO] [scheduler] Job offsite-credential-retry completed (took 0s)
2026/08/23 09:28:51 scheduler.go:67: [DEBUG] [scheduler] job backup-cache: execution starting
2026/08/23 09:28:51 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 09:28:51 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 09:28:51 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 09:28:51 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:28:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:28:51 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:28:51 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/sys_drive → [bookstack, docmost, kimai, opengist, privatebin]
2026/08/23 09:28:51 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/felhom-drives/hdd_1 → [calibre-web, paperless-ngx, romm]
2026/08/23 09:28:51 backup.go:1063: [INFO] [backup] Found 13 DB dump files across drives
2026/08/23 09:28:51 dbdump.go:128: [DEBUG] DiscoverDatabases: running docker ps to find database containers
2026/08/23 09:28:51 dbdump.go:147: [DEBUG] DiscoverDatabases: docker ps output: 1c05a812256b	felhom-controller		gitea.dooplex.hu/admin/felhom-controller:0.223.0
13cfb077ecf8	docmost	docmost	docmost/docmost:0.95.0
91041c89bd0d	docmost-postgres	docmost	postgres:16-alpine
41c830a66b1d	docmost-redis	docmost	redis:7-alpine
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 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container felhom-controller (image=gitea.dooplex.hu/admin/felhom-controller:0.223.0, not a database)
2026/08/23 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost (image=docmost/docmost:0.95.0, not a database)
2026/08/23 09:28:51 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: docmost-postgres (id=91041c89bd0d)
2026/08/23 09:28:51 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3951MB avail≈21947MB
2026/08/23 09:28:51 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=26027792 → total=25898MB avail=21947MB used=3951MB (15.3%)
2026/08/23 09:28:51 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 09:28:51 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 09:28:51 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.68 0.64 0.58 5/921 1341" → 1m=0.68 5m=0.64 15m=0.58
2026/08/23 09:28:51 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 09:28:51 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 09:28:51 info.go:13: [DEBUG] [system] GetInfo done in 74ms — mem=3951MB/25898MB (15.3%), rootDisk=10.2GB/68.7GB (14.9%), load=0.68/0.64/0.58, temp=52.9°C (hwmon1), cpu=2.0%
2026/08/23 09:28:51 healthcheck.go:42: [DEBUG] [monitor] Raw values: disk=14.9%, hdd=0.6% (configured=true), mem=15.3% (3951MB/25898MB), cpu=2.0%, temp=52.9°C (hwmon1)
2026/08/23 09:28:51 healthcheck.go:74: [DEBUG] [monitor] SSD disk: OK (15%)
2026/08/23 09:28:51 healthcheck.go:107: [DEBUG] [monitor] Memory: OK (15%)
2026/08/23 09:28:51 healthcheck.go:125: [DEBUG] [monitor] CPU: OK (2%)
2026/08/23 09:28:51 healthcheck.go:143: [DEBUG] [monitor] Temperature: OK (53°C)
2026/08/23 09:28:51 dbdump.go:196: [DEBUG] DiscoverDatabases: docmost-postgres → stack=docmost, dbUser=docmost, dbName=docmost
2026/08/23 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost-redis (image=redis:7-alpine, not a database)
2026/08/23 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm (image=rommapp/romm:5.0.0, not a database)
2026/08/23 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm-redis (image=redis:7-alpine, not a database)
2026/08/23 09:28:51 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: romm-db (id=e076270a7d75)
2026/08/23 09:28:51 dbdump.go:196: [DEBUG] DiscoverDatabases: romm-db → stack=romm, dbUser=root, dbName=romm
2026/08/23 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container privatebin (image=privatebin/pdo:2.0.5, not a database)
2026/08/23 09:28:51 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 09:28:51 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: paperless-postgres (id=e31aa0b09dbb)
2026/08/23 09:28:51 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 09:28:51 healthcheck.go:157: [DEBUG] [monitor] Docker daemon: OK
2026/08/23 09:28:51 healthcheck.go:165: [DEBUG] [monitor] Checking 4 protected containers: [traefik cloudflared felhom-controller filebrowser]
2026/08/23 09:28:51 dbdump.go:196: [DEBUG] DiscoverDatabases: paperless-postgres → stack=paperless-ngx, dbUser=paperless, dbName=paperless
2026/08/23 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container paperless-redis (image=redis:7-alpine, not a database)
2026/08/23 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container opengist (image=ghcr.io/thomiceli/opengist:1.13, not a database)
2026/08/23 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container kimai (image=kimai/kimai2:apache-2.57.0, not a database)
2026/08/23 09:28:51 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: kimai-db (id=9849469a8b29)
2026/08/23 09:28:51 dbdump.go:196: [DEBUG] DiscoverDatabases: kimai-db → stack=kimai, dbUser=root, dbName=kimai
2026/08/23 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container calibre-web (image=crocodilestick/calibre-web-automated:v4.0.6, not a database)
2026/08/23 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container bookstack (image=lscr.io/linuxserver/bookstack:26.05.2, not a database)
2026/08/23 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container filebrowser (image=gtstef/filebrowser:1.3.3-stable, not a database)
2026/08/23 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container cloudflared (image=cloudflare/cloudflared:2026.6.0, not a database)
2026/08/23 09:28:51 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container traefik (image=traefik:v3.6.7, not a database)
2026/08/23 09:28:51 dbdump.go:203: [DEBUG] DiscoverDatabases: found 4 database(s), skipped 15 non-DB container(s)
2026/08/23 09:28:51 dbdump.go:206: [INFO] [backup] Discovered 4 databases
2026/08/23 09:28:51 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 09:28:51 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 09:28:51 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 09:28:51 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 09:28:51 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 09:28:51 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 09:28:51 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 09:28:51 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/romm/docker-compose.yml
2026/08/23 09:28:51 [INFO] [backup] Discovered app data: 8 apps
2026/08/23 09:28:51 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.9%)
2026/08/23 09:28:51 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 09:28:51 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.9%)
2026/08/23 09:28:51 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.9%)
2026/08/23 09:28:51 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.9%)
2026/08/23 09:28:51 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 09:28:51 info.go:13: [DEBUG] [system] GetDiskUsage: path="/mnt/sys_drive" total=68.7 GB used=10.2 GB avail=55.0GB (14.9%)
2026/08/23 09:28:51 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 09:28:51 backup.go:1133: [INFO] [backup] Backup status cache refreshed
2026/08/23 09:28:51 scheduler.go:363: [INFO] [scheduler] Job backup-cache completed (took 174ms)
2026/08/23 09:28:51 healthcheck.go:175: [DEBUG] [monitor] All protected containers running
2026/08/23 09:28:51 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 09:28:51 healthcheck.go:192: [INFO] [monitor] Health check: status=ok
2026/08/23 09:28:51 healthcheck.go:196: [DEBUG] [monitor] Final status: ok (issues=0, warnings=0, info=5)
2026/08/23 09:28:51 scheduler.go:363: [INFO] [scheduler] Job system-health completed (took 215ms)
2026/08/23 09:28:51 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (569ms)
2026/08/23 09:28:51 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 570ms)
2026/08/23 09:28:52 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (608ms)
2026/08/23 09:28:53 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (593ms)
2026/08/23 09:28:56 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:28:56 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:28:56 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:28:56Z, active_sessions=15
2026/08/23 09:28:56 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:28:56 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:28:56 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:28:56 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:28:56 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:28:56 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:28:56 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:29:01 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:29:01 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:29:01 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:29:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:01 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:29:11 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:29:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:11 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:29:11 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 6 targets (1 skipped not due, 1 skipped no container)
2026/08/23 09:29:11 healthprobe.go:153: [DEBUG] Health probe romm: HTTP GET :8080/ → 200 (3ms)
2026/08/23 09:29:11 healthprobe.go:153: [DEBUG] Health probe opengist: API GET :6157/healthcheck → 200 (3ms)
2026/08/23 09:29:11 healthprobe.go:153: [DEBUG] Health probe privatebin: HTTP GET :8080/ → 200 (5ms)
2026/08/23 09:29:11 healthprobe.go:153: [DEBUG] Health probe calibre-web: HTTP GET :8083/ → 302 (8ms)
2026/08/23 09:29:11 healthprobe.go:153: [DEBUG] Health probe kimai: HTTP GET :8001/ → 302 (24ms)
2026/08/23 09:29:11 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:29:11 healthprobe.go:153: [DEBUG] Health probe bookstack: HTTP GET :80/ → 500 (52ms)
2026/08/23 09:29:11 healthprobe.go:133: [INFO] Health probes: 6 ok (of 6 probed)
2026/08/23 09:29:18 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:29:18 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:29:18 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:29:18Z, active_sessions=16
2026/08/23 09:29:18 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:29:18 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:29:18 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:29:18 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:29:18 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:29:18 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:29:18 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:29:21 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 09:29:21 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 09:29:21 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:29:21 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:29:21 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:29:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:21 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:29:23 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (783ms)
2026/08/23 09:29:23 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (788ms)
2026/08/23 09:29:31 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:29:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:31 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:29:31 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 1 targets (6 skipped not due, 1 skipped no container)
2026/08/23 09:29:31 healthprobe.go:153: [DEBUG] Health probe docmost: HTTP GET :3000/ → 200 (2ms)
2026/08/23 09:29:31 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:29:31 healthprobe.go:133: [INFO] Health probes: 1 ok (of 1 probed)
2026/08/23 09:29:39 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:29:39 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:29:39 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:29:39Z, active_sessions=17
2026/08/23 09:29:39 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:29:39 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:29:39 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:29:39 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:29:39 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:29:39 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:29:39 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:29:41 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:29:41 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:29:41 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:29:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:41 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:29:50 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 09:29:50 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4016MB avail≈21882MB
2026/08/23 09:29:50 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25950788 → total=25898MB avail=21882MB used=4016MB (15.5%)
2026/08/23 09:29:50 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 09:29:50 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 09:29:50 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.50 0.61 0.57 6/906 1602" → 1m=0.50 5m=0.61 15m=0.57
2026/08/23 09:29:50 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 09:29:50 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 54.8°C (hwmon2)
2026/08/23 09:29:50 info.go:13: [DEBUG] [system] GetInfo done in 69ms — mem=4016MB/25898MB (15.5%), rootDisk=10.2GB/68.7GB (14.9%), load=0.50/0.61/0.57, temp=54.8°C (hwmon2), cpu=1.9%
2026/08/23 09:29:51 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:29:51 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 09:29:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:51 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:29:51 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 09:29:51 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 09:29:51 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 09:29:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:29:51 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:29:51 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 09:29:51 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 09:29:51 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 09:29:51 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 09:29:51 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 09:29:51 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 09:29:51 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 09:29:51 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:29:51 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 84ms)
2026/08/23 09:29:51 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (544ms)
2026/08/23 09:29:51 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 545ms)
2026/08/23 09:29:52 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (606ms)
2026/08/23 09:29:53 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (595ms)
2026/08/23 09:30:00 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:30:00 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:30:00 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:30:00Z, active_sessions=18
2026/08/23 09:30:00 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:30:00 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:30:00 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:30:00 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:30:00 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:30:00 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:30:00 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:30:01 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:30:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:01 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:30:01 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:30:01 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:30:11 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:30:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:11 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:30:11 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:30:11 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:30:21 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:30:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:21 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:30:21 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:30:21 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 09:30:21 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 09:30:21 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:30:21 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:30:21 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:30:21 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:30:21Z, active_sessions=19
2026/08/23 09:30:21 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:30:21 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:30:21 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:30:21 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:30:21 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:30:21 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:30:21 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:30:22 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (623ms)
2026/08/23 09:30:23 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (614ms)
2026/08/23 09:30:31 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:30:31 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:30:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:31 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:31 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:30:31 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:30:41 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:30:41 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:30:41 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:30:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:41 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:41 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:30:42 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:30:42 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:30:42 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:30:42Z, active_sessions=20
2026/08/23 09:30:42 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:30:43 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:30:43 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:30:43 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:30:43 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:30:43 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:30:43 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:30:50 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 09:30:50 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4021MB avail≈21877MB
2026/08/23 09:30:50 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25945392 → total=25898MB avail=21877MB used=4021MB (15.5%)
2026/08/23 09:30:50 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 09:30:50 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 09:30:50 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.35 0.55 0.55 6/901 1725" → 1m=0.35 5m=0.55 15m=0.55
2026/08/23 09:30:50 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 09:30:50 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 09:30:50 info.go:13: [DEBUG] [system] GetInfo done in 59ms — mem=4021MB/25898MB (15.5%), rootDisk=10.2GB/68.7GB (14.9%), load=0.35/0.55/0.55, temp=52.9°C (hwmon1), cpu=4.9%
2026/08/23 09:30:51 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 09:30:51 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 09:30:51 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:30:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:51 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:30:51 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:30:51 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:30:51 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 09:30:51 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 09:30:51 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:30:51 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (545ms)
2026/08/23 09:30:51 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 545ms)
2026/08/23 09:30:52 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (592ms)
2026/08/23 09:30:53 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (602ms)
2026/08/23 09:31:01 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:31:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:01 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:01 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:31:01 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:31:01 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:31:04 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:45464 (X-Forwarded-For: 172.18.0.1)
2026/08/23 09:31:04 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 09:31:04 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T09:31:04Z, active_sessions=21
2026/08/23 09:31:04 auth.go:214: [INFO] [web] Login from 172.18.0.4:45464
2026/08/23 09:31:04 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 09:31:04 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:45464
2026/08/23 09:31:04 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 09:31:04 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:45464
2026/08/23 09:31:04 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 09:31:04 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:45464
2026/08/23 09:31:11 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:31:11 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:31:11 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 09:31:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:11 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:11 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:31:21 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 09:31:21 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 09:31:21 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 09:31:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:21 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 09:31:21 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 09:31:21 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 09:31:21 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
