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 11:56:00 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 11:56:00 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 11:56:00 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T11:56:00Z, active_sessions=390
2026/08/23 11:56:00 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 11:56:00 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 11:56:00 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 11:56:00 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 11:56:00 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 11:56:00 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 11:56:00 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 11:56:06 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:56:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:06 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:56:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:06 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 11:56:06 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:56:16 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:56:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:16 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:56:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:16 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 11:56:16 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:56:21 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 11:56:21 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 11:56:21 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T11:56:21Z, active_sessions=391
2026/08/23 11:56:21 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 11:56:21 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 11:56:21 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 11:56:21 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 11:56:21 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 11:56:21 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 11:56:21 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 11:56:26 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:56:26 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 11:56:26 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:56:26 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 11:56:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:26 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (7 skipped not due, 1 skipped no container)
2026/08/23 11:56:26 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:56:28 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (635ms)
2026/08/23 11:56:29 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (650ms)
2026/08/23 11:56:36 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:56:36 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:56:36 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:56:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:36 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:56:42 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 11:56:42 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 11:56:42 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T11:56:42Z, active_sessions=392
2026/08/23 11:56:42 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 11:56:42 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 11:56:42 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 11:56:42 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 11:56:42 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 11:56:42 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 11:56:42 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 11:56:46 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:56:46 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:56:46 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:56:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:46 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:56:56 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 11:56:56 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4104MB avail≈21794MB
2026/08/23 11:56:56 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25846420 → total=25898MB avail=21794MB used=4104MB (15.8%)
2026/08/23 11:56:56 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 11:56:56 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 11:56:56 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.47 0.60 0.73 4/899 26465" → 1m=0.47 5m=0.60 15m=0.73
2026/08/23 11:56:56 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 11:56:56 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 54.5°C (hwmon2)
2026/08/23 11:56:56 info.go:13: [DEBUG] [system] GetInfo done in 58ms — mem=4104MB/25898MB (15.8%), rootDisk=10.2GB/68.7GB (14.9%), load=0.47/0.60/0.73, temp=54.5°C (hwmon2), cpu=3.6%
2026/08/23 11:56:56 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 11:56:56 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 11:56:56 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 11:56:56 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 11:56:56 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:56:56 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 11:56:56 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 11:56:56 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 11:56:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 11:56:56 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 11:56:56 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 11:56:56 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 11:56:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:56:56 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 51ms)
2026/08/23 11:56:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:56:56 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:56:56 notifier.go:206: [DEBUG] PushEvent: type=app_start_failed severity=warning url=https://hub.felhom.eu/api/v1/event
2026/08/23 11:56:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:56:56 notifier.go:232: [DEBUG] PushEvent: app_start_failed pushed OK (HTTP 200)
2026/08/23 11:56:56 notifier.go:234: [INFO] Event pushed: app_start_failed (warning) — Telepített alkalmazás nem fut: OpenGist
2026/08/23 11:56:57 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (518ms)
2026/08/23 11:56:57 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 519ms)
2026/08/23 11:56:58 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (627ms)
2026/08/23 11:56:59 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (597ms)
2026/08/23 11:57:03 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 11:57:03 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 11:57:03 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T11:57:03Z, active_sessions=393
2026/08/23 11:57:03 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 11:57:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 11:57:03 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 11:57:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 11:57:03 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 11:57:03 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 11:57:03 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 11:57:06 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:57:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:06 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:57:06 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:57:06 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:57:16 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:57:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:16 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:57:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:16 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:57:16 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:57:24 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 11:57:24 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 11:57:24 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T11:57:24Z, active_sessions=394
2026/08/23 11:57:24 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 11:57:24 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 11:57:24 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 11:57:24 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 11:57:24 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 11:57:24 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 11:57:24 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 11:57:26 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 11:57:26 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:57:26 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 11:57:26 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:57:26 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:57:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:26 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:57:28 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (596ms)
2026/08/23 11:57:29 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (612ms)
2026/08/23 11:57:36 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:57:36 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:57:36 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:57:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:36 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:57:45 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 11:57:46 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 11:57:46 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T11:57:46Z, active_sessions=395
2026/08/23 11:57:46 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 11:57:46 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 11:57:46 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 11:57:46 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 11:57:46 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 11:57:46 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 11:57:46 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 11:57:46 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:57:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:46 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:57:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:46 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:57:46 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:57:56 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 11:57:56 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4099MB avail≈21799MB
2026/08/23 11:57:56 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25851968 → total=25898MB avail=21799MB used=4099MB (15.8%)
2026/08/23 11:57:56 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 11:57:56 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 11:57:56 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.62 0.63 0.73 3/897 26589" → 1m=0.62 5m=0.63 15m=0.73
2026/08/23 11:57:56 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 11:57:56 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 11:57:56 info.go:13: [DEBUG] [system] GetInfo done in 61ms — mem=4099MB/25898MB (15.8%), rootDisk=10.2GB/68.7GB (14.9%), load=0.62/0.63/0.73, temp=52.9°C (hwmon1), cpu=7.6%
2026/08/23 11:57:56 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 11:57:56 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 11:57:56 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:57:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:56 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:57:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:57:56 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:57:56 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 11:57:56 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 11:57:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:57:57 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (548ms)
2026/08/23 11:57:57 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 548ms)
2026/08/23 11:57:58 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (632ms)
2026/08/23 11:57:59 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (615ms)
2026/08/23 11:58:06 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:58:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:06 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:58:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:06 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:58:06 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:58:07 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 11:58:07 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 11:58:07 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T11:58:07Z, active_sessions=396
2026/08/23 11:58:07 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 11:58:07 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 11:58:07 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 11:58:07 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 11:58:07 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 11:58:07 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 11:58:07 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 11:58:16 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:58:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:16 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:58:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:16 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:58:16 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:58:26 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:58:26 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:58:26 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 11:58:26 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 11:58:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:26 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 4 targets (2 skipped not due, 1 skipped no container)
2026/08/23 11:58:26 healthprobe.go:153: [DEBUG] Health probe romm: HTTP GET :8080/ → 200 (3ms)
2026/08/23 11:58:26 healthprobe.go:153: [DEBUG] Health probe calibre-web: HTTP GET :8083/ → 302 (9ms)
2026/08/23 11:58:26 healthprobe.go:153: [DEBUG] Health probe kimai: HTTP GET :8001/ → 302 (25ms)
2026/08/23 11:58:26 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:58:26 healthprobe.go:153: [DEBUG] Health probe bookstack: HTTP GET :80/ → 302 (35ms)
2026/08/23 11:58:26 healthprobe.go:133: [INFO] Health probes: 4 ok (of 4 probed)
2026/08/23 11:58:28 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 11:58:28 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 11:58:28 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T11:58:28Z, active_sessions=397
2026/08/23 11:58:28 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 11:58:28 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 11:58:28 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 11:58:28 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 11:58:28 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 11:58:28 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 11:58:28 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 11:58:28 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (617ms)
2026/08/23 11:58:29 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (631ms)
2026/08/23 11:58:36 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:58:36 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:58:36 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:58:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:36 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 1 targets (5 skipped not due, 1 skipped no container)
2026/08/23 11:58:36 healthprobe.go:153: [DEBUG] Health probe docmost: HTTP GET :3000/ → 200 (2ms)
2026/08/23 11:58:36 healthprobe.go:133: [INFO] Health probes: 1 ok (of 1 probed)
2026/08/23 11:58:46 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:58:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:46 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:58:46 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:58:46 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:58:49 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 11:58:49 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 11:58:49 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T11:58:49Z, active_sessions=398
2026/08/23 11:58:49 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 11:58:50 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 11:58:50 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 11:58:50 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 11:58:50 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 11:58:50 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 11:58:50 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 11:58:56 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 11:58:56 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4078MB avail≈21820MB
2026/08/23 11:58:56 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25876492 → total=25898MB avail=21820MB used=4078MB (15.7%)
2026/08/23 11:58:56 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 11:58:56 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 11:58:56 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.49 0.59 0.71 3/898 26702" → 1m=0.49 5m=0.59 15m=0.71
2026/08/23 11:58:56 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 11:58:56 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 11:58:56 info.go:13: [DEBUG] [system] GetInfo done in 62ms — mem=4078MB/25898MB (15.7%), rootDisk=10.2GB/68.7GB (14.9%), load=0.49/0.59/0.71, temp=52.9°C (hwmon1), cpu=6.2%
2026/08/23 11:58:56 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 11:58:56 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 11:58:56 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 11:58:56 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:58:56 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 11:58:56 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 11:58:56 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 11:58:56 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 11:58:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 11:58:56 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 11:58:56 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 11:58:56 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 11:58:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:58:56 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 46ms)
2026/08/23 11:58:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:58:56 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:58:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:58:57 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (534ms)
2026/08/23 11:58:57 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 535ms)
2026/08/23 11:58:58 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (596ms)
2026/08/23 11:58:59 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (612ms)
2026/08/23 11:59:06 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:59:06 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:59:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:06 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:59:06 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:59:11 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 11:59:11 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 11:59:11 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T11:59:11Z, active_sessions=399
2026/08/23 11:59:11 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 11:59:11 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 11:59:11 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 11:59:11 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 11:59:11 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 11:59:11 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 11:59:11 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 11:59:16 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:59:16 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:59:16 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:59:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:16 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:59:26 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 11:59:26 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:59:26 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 11:59:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:26 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:59:26 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:59:26 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:59:28 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (595ms)
2026/08/23 11:59:29 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (597ms)
2026/08/23 11:59:32 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 11:59:32 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 11:59:32 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T11:59:32Z, active_sessions=400
2026/08/23 11:59:32 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 11:59:32 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 11:59:32 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 11:59:32 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 11:59:32 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 11:59:32 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 11:59:32 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 11:59:36 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:59:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:36 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:59:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:36 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:59:36 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:59:46 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:59:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:46 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:59:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:46 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 11:59:46 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:59:53 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 11:59:53 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 11:59:53 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T11:59:53Z, active_sessions=401
2026/08/23 11:59:53 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 11:59:53 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 11:59:53 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 11:59:53 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 11:59:53 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 11:59:53 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 11:59:53 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 11:59:56 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 11:59:56 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4111MB avail≈21787MB
2026/08/23 11:59:56 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25838180 → total=25898MB avail=21787MB used=4111MB (15.9%)
2026/08/23 11:59:56 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 11:59:56 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 11:59:56 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.50 0.58 0.70 7/898 26836" → 1m=0.50 5m=0.58 15m=0.70
2026/08/23 11:59:56 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 11:59:56 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 11:59:56 info.go:13: [DEBUG] [system] GetInfo done in 58ms — mem=4111MB/25898MB (15.9%), rootDisk=10.2GB/68.7GB (14.9%), load=0.50/0.58/0.70, temp=52.9°C (hwmon1), cpu=7.1%
2026/08/23 11:59:56 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 11:59:56 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 11:59:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 11:59:56 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 11:59:56 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 1 targets (5 skipped not due, 1 skipped no container)
2026/08/23 11:59:56 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 11:59:56 healthprobe.go:153: [DEBUG] Health probe privatebin: HTTP GET :8080/ → 200 (3ms)
2026/08/23 11:59:56 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 11:59:56 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 11:59:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 11:59:56 healthprobe.go:133: [INFO] Health probes: 1 ok (of 1 probed)
2026/08/23 11:59:57 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (569ms)
2026/08/23 11:59:57 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 569ms)
2026/08/23 11:59:58 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (627ms)
2026/08/23 11:59:59 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (621ms)
2026/08/23 12:00:06 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:00:06 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:00:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:06 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 12:00:06 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:00:14 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:00:14 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:00:14 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:00:14Z, active_sessions=402
2026/08/23 12:00:14 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:00:14 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:00:14 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:00:14 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:00:14 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:00:14 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:00:14 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:00:16 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:00:16 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:00:16 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:00:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:16 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 12:00:26 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:00:26 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:00:26 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:00:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:26 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:00:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:26 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 12:00:26 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:00:28 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (621ms)
2026/08/23 12:00:29 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (675ms)
2026/08/23 12:00:36 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:00:36 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:00:36 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:00:36Z, active_sessions=403
2026/08/23 12:00:36 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:00:36 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:00:36 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:00:36 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:00:36 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:00:36 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:00:36 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:00:36 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:00:36 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:00:36 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:00:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:36 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 12:00:46 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:00:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:46 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (6 skipped not due, 1 skipped no container)
2026/08/23 12:00:46 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:00:46 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4049MB avail≈21849MB
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25912148 → total=25898MB avail=21849MB used=4049MB (15.6%)
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 12:00:56 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 12:00:56 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.65 0.62 0.71 7/868 26950" → 1m=0.65 5m=0.62 15m=0.71
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] GetInfo done in 69ms — mem=4049MB/25898MB (15.6%), rootDisk=10.2GB/68.7GB (14.9%), load=0.65/0.62/0.71, temp=52.9°C (hwmon1), cpu=6.8%
2026/08/23 12:00:56 scheduler.go:346: [INFO] [scheduler] Running job: system-health
2026/08/23 12:00:56 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:00:56 scheduler.go:67: [DEBUG] [scheduler] job system-health: execution starting
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 12:00:56 scheduler.go:346: [INFO] [scheduler] Running job: offsite-credential-retry
2026/08/23 12:00:56 scheduler.go:67: [DEBUG] [scheduler] job offsite-credential-retry: execution starting
2026/08/23 12:00:56 scheduler.go:363: [INFO] [scheduler] Job offsite-credential-retry completed (took 0s)
2026/08/23 12:00:56 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 12:00:56 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 12:00:56 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:00:56 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:00:56 scheduler.go:346: [INFO] [scheduler] Running job: backup-cache
2026/08/23 12:00:56 scheduler.go:67: [DEBUG] [scheduler] job backup-cache: execution starting
2026/08/23 12:00:56 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:00:56 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 12:00:56 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 12:00:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:00:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:00:56 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:00:56 notifier.go:206: [DEBUG] PushEvent: type=app_start_failed severity=warning url=https://hub.felhom.eu/api/v1/event
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 12:00:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 12:00:56 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 12:00:56 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 12:00:56 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4050MB avail≈21848MB
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25911220 → total=25898MB avail=21848MB used=4050MB (15.6%)
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 12:00:56 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 12:00:56 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.65 0.62 0.71 5/884 26996" → 1m=0.65 5m=0.62 15m=0.71
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 12:00:56 info.go:13: [DEBUG] [system] GetInfo done in 73ms — mem=4050MB/25898MB (15.6%), rootDisk=10.2GB/68.7GB (14.9%), load=0.65/0.62/0.71, temp=52.9°C (hwmon1), cpu=6.8%
2026/08/23 12:00:56 healthcheck.go:42: [DEBUG] [monitor] Raw values: disk=14.9%, hdd=0.6% (configured=true), mem=15.6% (4050MB/25898MB), cpu=6.8%, temp=52.9°C (hwmon1)
2026/08/23 12:00:56 healthcheck.go:74: [DEBUG] [monitor] SSD disk: OK (15%)
2026/08/23 12:00:56 healthcheck.go:107: [DEBUG] [monitor] Memory: OK (16%)
2026/08/23 12:00:56 healthcheck.go:125: [DEBUG] [monitor] CPU: OK (7%)
2026/08/23 12:00:56 healthcheck.go:143: [DEBUG] [monitor] Temperature: OK (53°C)
2026/08/23 12:00:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:00:56 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 83ms)
2026/08/23 12:00:56 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/sys_drive → [bookstack, docmost, kimai, opengist, privatebin]
2026/08/23 12:00:56 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/felhom-drives/hdd_1 → [calibre-web, paperless-ngx, romm]
2026/08/23 12:00:56 backup.go:1063: [INFO] [backup] Found 13 DB dump files across drives
2026/08/23 12:00:56 dbdump.go:128: [DEBUG] DiscoverDatabases: running docker ps to find database containers
2026/08/23 12:00:56 dbdump.go:147: [DEBUG] DiscoverDatabases: docker ps output: f46744b40328	privatebin	privatebin	privatebin/pdo:2.0.5
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
1c704643bc4c	paperless-webserver	paperless-ngx	ghcr.io/paperless-ngx/paperless-...
2026/08/23 12:00:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container privatebin (image=privatebin/pdo:2.0.5, not a database)
2026/08/23 12:00:56 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 12:00:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost (image=docmost/docmost:0.95.0, not a database)
2026/08/23 12:00:56 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: docmost-postgres (id=91041c89bd0d)
2026/08/23 12:00:56 healthcheck.go:157: [DEBUG] [monitor] Docker daemon: OK
2026/08/23 12:00:56 healthcheck.go:165: [DEBUG] [monitor] Checking 4 protected containers: [traefik cloudflared felhom-controller filebrowser]
2026/08/23 12:00:56 dbdump.go:196: [DEBUG] DiscoverDatabases: docmost-postgres → stack=docmost, dbUser=docmost, dbName=docmost
2026/08/23 12:00:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost-redis (image=redis:7-alpine, not a database)
2026/08/23 12:00:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm (image=rommapp/romm:5.0.0, not a database)
2026/08/23 12:00:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container romm-redis (image=redis:7-alpine, not a database)
2026/08/23 12:00:56 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: romm-db (id=e076270a7d75)
2026/08/23 12:00:57 dbdump.go:196: [DEBUG] DiscoverDatabases: romm-db → stack=romm, dbUser=root, dbName=romm
2026/08/23 12:00:57 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 12:00:57 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: paperless-postgres (id=e31aa0b09dbb)
2026/08/23 12:00:57 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 12:00:57 dbdump.go:196: [DEBUG] DiscoverDatabases: paperless-postgres → stack=paperless-ngx, dbUser=paperless, dbName=paperless
2026/08/23 12:00:57 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container paperless-redis (image=redis:7-alpine, not a database)
2026/08/23 12:00:57 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container kimai (image=kimai/kimai2:apache-2.57.0, not a database)
2026/08/23 12:00:57 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: kimai-db (id=9849469a8b29)
2026/08/23 12:00:57 notifier.go:232: [DEBUG] PushEvent: app_start_failed pushed OK (HTTP 200)
2026/08/23 12:00:57 notifier.go:234: [INFO] Event pushed: app_start_failed (warning) — Telepített alkalmazás nem fut: Calibre-Web Automated
2026/08/23 12:00:57 dbdump.go:196: [DEBUG] DiscoverDatabases: kimai-db → stack=kimai, dbUser=root, dbName=kimai
2026/08/23 12:00:57 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container bookstack (image=lscr.io/linuxserver/bookstack:26.05.2, not a database)
2026/08/23 12:00:57 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: bookstack-db (id=95dcda149d29)
2026/08/23 12:00:57 healthcheck.go:175: [DEBUG] [monitor] All protected containers running
2026/08/23 12:00:57 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 12:00:57 healthcheck.go:192: [INFO] [monitor] Health check: status=ok
2026/08/23 12:00:57 healthcheck.go:196: [DEBUG] [monitor] Final status: ok (issues=0, warnings=0, info=5)
2026/08/23 12:00:57 scheduler.go:363: [INFO] [scheduler] Job system-health completed (took 221ms)
2026/08/23 12:00:57 dbdump.go:196: [DEBUG] DiscoverDatabases: bookstack-db → stack=bookstack, dbUser=root, dbName=bookstack
2026/08/23 12:00:57 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container filebrowser (image=gtstef/filebrowser:1.3.3-stable, not a database)
2026/08/23 12:00:57 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container cloudflared (image=cloudflare/cloudflared:2026.6.0, not a database)
2026/08/23 12:00:57 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container traefik (image=traefik:v3.6.7, not a database)
2026/08/23 12:00:57 dbdump.go:203: [DEBUG] DiscoverDatabases: found 5 database(s), skipped 13 non-DB container(s)
2026/08/23 12:00:57 dbdump.go:206: [INFO] [backup] Discovered 5 databases
2026/08/23 12:00:57 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 12:00:57 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 12:00:57 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 12:00:57 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 12:00:57 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 12:00:57 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 12:00:57 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 12:00:57 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/romm/docker-compose.yml
2026/08/23 12:00:57 [INFO] [backup] Discovered app data: 8 apps
2026/08/23 12:00:57 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 12:00:57 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 12:00:57 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 12:00:57 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 12:00:57 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 12:00:57 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 12:00:57 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 12:00:57 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 12:00:57 backup.go:1133: [INFO] [backup] Backup status cache refreshed
2026/08/23 12:00:57 scheduler.go:363: [INFO] [scheduler] Job backup-cache completed (took 257ms)
2026/08/23 12:00:57 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:00:57 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:00:57 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:00:57Z, active_sessions=404
2026/08/23 12:00:57 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:00:57 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:00:57 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:00:57 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:00:57 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:00:57 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:00:57 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:00:57 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (617ms)
2026/08/23 12:00:57 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 618ms)
2026/08/23 12:00:58 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (619ms)
2026/08/23 12:00:59 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (620ms)
2026/08/23 12:01:06 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:01:06 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:01:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:06 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:01:06 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:01:16 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:01:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:16 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:01:16 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:01:16 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:01:18 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:01:18 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:01:18 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:01:18Z, active_sessions=405
2026/08/23 12:01:18 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:01:18 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:01:18 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:01:18 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:01:18 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:01:18 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:01:18 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:01:26 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:01:26 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:01:26 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:01:26 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:01:26 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:01:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:26 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:01:28 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (669ms)
2026/08/23 12:01:29 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (653ms)
2026/08/23 12:01:36 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:01:36 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:01:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:36 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:01:36 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:01:39 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:01:39 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:01:39 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:01:39Z, active_sessions=406
2026/08/23 12:01:39 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:01:39 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:01:39 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:01:39 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:01:39 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:01:39 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:01:39 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:01:46 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:01:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:46 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:01:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:46 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:01:46 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:01:56 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 12:01:56 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3885MB avail≈22013MB
2026/08/23 12:01:56 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=26106328 → total=25898MB avail=22013MB used=3885MB (15.0%)
2026/08/23 12:01:56 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 12:01:56 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 12:01:56 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.53 0.60 0.70 5/860 27255" → 1m=0.53 5m=0.60 15m=0.70
2026/08/23 12:01:56 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 12:01:56 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 12:01:56 info.go:13: [DEBUG] [system] GetInfo done in 58ms — mem=3885MB/25898MB (15.0%), rootDisk=10.2GB/68.7GB (14.9%), load=0.53/0.60/0.70, temp=52.9°C (hwmon1), cpu=7.6%
2026/08/23 12:01:56 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:01:56 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:01:56 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:01:56 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:01:56 main.go:1731: [INFO] [deadapp] check alive: 280 scans since boot, 8 deployed app(s) evaluated, 2 currently down
2026/08/23 12:01:56 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 12:01:56 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 12:01:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:01:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:01:56 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:01:57 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (569ms)
2026/08/23 12:01:57 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 569ms)
2026/08/23 12:01:58 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (625ms)
2026/08/23 12:01:59 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (614ms)
2026/08/23 12:02:00 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:02:01 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:02:01 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:02:01Z, active_sessions=407
2026/08/23 12:02:01 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:02:01 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:02:01 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:02:01 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:02:01 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:02:01 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:02:01 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:02:06 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:02:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:06 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:02:06 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:02:06 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:02:16 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:02:16 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:02:16 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:02:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:16 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:02:22 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:02:22 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:02:22 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:02:22Z, active_sessions=408
2026/08/23 12:02:22 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:02:22 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:02:22 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:02:22 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:02:22 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:02:22 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:02:22 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:02:26 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:02:26 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:02:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:26 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:02:26 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:02:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:26 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:02:26 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:02:28 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (632ms)
2026/08/23 12:02:29 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (628ms)
2026/08/23 12:02:36 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:02:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:36 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:02:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:36 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:02:36 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:02:43 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:02:43 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:02:43 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:02:43Z, active_sessions=409
2026/08/23 12:02:43 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:02:43 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:02:43 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:02:43 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:02:43 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:02:43 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:02:43 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:02:46 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:02:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:46 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:02:46 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:02:46 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:02:56 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 12:02:56 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3926MB avail≈21972MB
2026/08/23 12:02:56 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=26058492 → total=25898MB avail=21972MB used=3926MB (15.2%)
2026/08/23 12:02:56 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 12:02:56 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 12:02:56 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.55 0.61 0.70 6/866 27366" → 1m=0.55 5m=0.61 15m=0.70
2026/08/23 12:02:56 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 12:02:56 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 12:02:56 info.go:13: [DEBUG] [system] GetInfo done in 61ms — mem=3926MB/25898MB (15.2%), rootDisk=10.2GB/68.7GB (14.9%), load=0.55/0.61/0.70, temp=52.9°C (hwmon1), cpu=4.0%
2026/08/23 12:02:56 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:02:56 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:02:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:56 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:02:56 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 12:02:56 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 12:02:56 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:02:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:02:56 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:02:56 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 12:02:56 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 12:02:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 12:02:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 12:02:56 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 12:02:56 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 12:02:56 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 12:02:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:02:56 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 76ms)
2026/08/23 12:02:57 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (570ms)
2026/08/23 12:02:57 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 571ms)
2026/08/23 12:02:58 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (654ms)
2026/08/23 12:02:59 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (623ms)
2026/08/23 12:03:04 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:03:04 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:03:04 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:03:04Z, active_sessions=410
2026/08/23 12:03:04 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:03:04 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:03:04 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:03:04 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:03:04 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:03:04 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:03:04 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:03:06 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:03:06 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:03:06 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:03:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:06 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:03:16 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:03:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:16 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:03:16 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:03:16 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:03:25 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:03:25 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:03:25 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:03:25Z, active_sessions=411
2026/08/23 12:03:25 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:03:25 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:03:25 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:03:25 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:03:25 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:03:25 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:03:25 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:03:26 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:03:26 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:03:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:26 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:03:26 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:03:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:26 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:03:26 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:03:28 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (624ms)
2026/08/23 12:03:29 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (602ms)
2026/08/23 12:03:36 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:03:36 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:03:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 5m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:36 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 3 targets (2 skipped not due, 1 skipped no container)
2026/08/23 12:03:36 healthprobe.go:153: [DEBUG] Health probe romm: HTTP GET :8080/ → 200 (2ms)
2026/08/23 12:03:36 healthprobe.go:153: [DEBUG] Health probe kimai: HTTP GET :8001/ → 302 (19ms)
2026/08/23 12:03:36 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:03:36 healthprobe.go:153: [DEBUG] Health probe bookstack: HTTP GET :80/ → 302 (35ms)
2026/08/23 12:03:36 healthprobe.go:133: [INFO] Health probes: 3 ok (of 3 probed)
2026/08/23 12:03:46 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:03:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:46 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 1 targets (4 skipped not due, 1 skipped no container)
2026/08/23 12:03:46 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:03:46 healthprobe.go:153: [DEBUG] Health probe docmost: HTTP GET :3000/ → 200 (2ms)
2026/08/23 12:03:46 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:03:46 healthprobe.go:133: [INFO] Health probes: 1 ok (of 1 probed)
2026/08/23 12:03:46 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:03:47 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:03:47 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:03:47Z, active_sessions=412
2026/08/23 12:03:47 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:03:47 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:03:47 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:03:47 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:03:47 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:03:47 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:03:47 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:03:56 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 12:03:56 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4014MB avail≈21884MB
2026/08/23 12:03:56 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25952600 → total=25898MB avail=21884MB used=4014MB (15.5%)
2026/08/23 12:03:56 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 12:03:56 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 12:03:56 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.93 0.71 0.73 3/857 27489" → 1m=0.93 5m=0.71 15m=0.73
2026/08/23 12:03:56 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 12:03:56 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon2)
2026/08/23 12:03:56 info.go:13: [DEBUG] [system] GetInfo done in 60ms — mem=4014MB/25898MB (15.5%), rootDisk=10.2GB/68.7GB (14.9%), load=0.93/0.71/0.73, temp=52.9°C (hwmon2), cpu=6.1%
2026/08/23 12:03:56 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:03:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:03:56 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:03:56 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:03:56 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:03:56 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:03:56 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 12:03:56 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 12:03:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:03:57 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (560ms)
2026/08/23 12:03:57 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 561ms)
2026/08/23 12:03:58 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (621ms)
2026/08/23 12:03:59 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (623ms)
2026/08/23 12:04:06 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:04:06 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:04:06 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:04:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:06 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:04:08 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:04:08 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:04:08 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:04:08Z, active_sessions=413
2026/08/23 12:04:08 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:04:08 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:04:08 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:04:08 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:04:08 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:04:08 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:04:08 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:04:16 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:04:16 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:04:16 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:04:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:16 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:04:26 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:04:26 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:04:26 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:04:26 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:04:26 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:04:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:26 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:04:28 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (756ms)
2026/08/23 12:04:29 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:04:29 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:04:29 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:04:29Z, active_sessions=414
2026/08/23 12:04:29 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:04:29 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:04:29 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:04:29 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:04:29 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:04:29 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:04:29 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:04:29 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (783ms)
2026/08/23 12:04:36 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:04:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:36 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:04:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:36 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:04:36 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:04:46 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:04:46 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:04:46 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:04:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 4m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:46 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 2 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:04:46 healthprobe.go:153: [DEBUG] Health probe opengist: API GET :6157/healthcheck → 200 (2ms)
2026/08/23 12:04:46 healthprobe.go:153: [DEBUG] Health probe calibre-web: HTTP GET :8083/ → 302 (5ms)
2026/08/23 12:04:46 healthprobe.go:133: [INFO] Health probes: 2 ok (of 2 probed)
2026/08/23 12:04:50 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:04:50 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:04:50 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:04:50Z, active_sessions=415
2026/08/23 12:04:50 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:04:50 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:04:50 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:04:50 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:04:50 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:04:50 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:04:50 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:04:56 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 12:04:56 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈4122MB avail≈21776MB
2026/08/23 12:04:56 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=25824400 → total=25898MB avail=21776MB used=4122MB (15.9%)
2026/08/23 12:04:56 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 12:04:56 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 12:04:56 info.go:13: [DEBUG] [system] readLoadAvg: raw="1.12 0.80 0.76 4/927 27610" → 1m=1.12 5m=0.80 15m=0.76
2026/08/23 12:04:56 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 12:04:56 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 12:04:56 info.go:13: [DEBUG] [system] GetInfo done in 57ms — mem=4122MB/25898MB (15.9%), rootDisk=10.2GB/68.7GB (14.9%), load=1.12/0.80/0.76, temp=52.9°C (hwmon1), cpu=10.0%
2026/08/23 12:04:56 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:04:56 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 12:04:56 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 12:04:56 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:04:56 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:04:56 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:04:56 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 12:04:56 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 12:04:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:04:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping kimai — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping romm — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:04:56 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 1 targets (6 skipped not due, 1 skipped no container)
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 12:04:56 healthprobe.go:153: [DEBUG] Health probe privatebin: HTTP GET :8080/ → 200 (3ms)
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 12:04:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 12:04:56 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 12:04:56 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 12:04:56 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 12:04:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:04:56 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 77ms)
2026/08/23 12:04:56 healthprobe.go:133: [INFO] Health probes: 1 ok (of 1 probed)
2026/08/23 12:04:57 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (572ms)
2026/08/23 12:04:57 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 572ms)
2026/08/23 12:04:58 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (622ms)
2026/08/23 12:04:59 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (595ms)
2026/08/23 12:05:06 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:05:06 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:05:06 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:05:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:06 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:05:11 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:05:11 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:05:11 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:05:11Z, active_sessions=416
2026/08/23 12:05:11 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:05:11 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:05:11 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:05:11 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:05:11 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:05:12 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:05:12 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:05:16 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:05:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:16 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 1 skipped no container)
2026/08/23 12:05:16 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:05:16 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:05:26 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:05:26 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:05:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:26 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:05:26 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:05:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:26 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 0 skipped no container)
2026/08/23 12:05:26 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:05:26 notifier.go:206: [DEBUG] PushEvent: type=app_start_failed severity=warning url=https://hub.felhom.eu/api/v1/event
2026/08/23 12:05:26 notifier.go:206: [DEBUG] PushEvent: type=app_start_failed severity=warning url=https://hub.felhom.eu/api/v1/event
2026/08/23 12:05:26 notifier.go:206: [DEBUG] PushEvent: type=app_start_failed severity=warning url=https://hub.felhom.eu/api/v1/event
2026/08/23 12:05:26 notifier.go:232: [DEBUG] PushEvent: app_start_failed pushed OK (HTTP 200)
2026/08/23 12:05:26 notifier.go:234: [INFO] Event pushed: app_start_failed (warning) — Telepített alkalmazás nem fut: Kimai
2026/08/23 12:05:26 notifier.go:232: [DEBUG] PushEvent: app_start_failed pushed OK (HTTP 200)
2026/08/23 12:05:26 notifier.go:234: [INFO] Event pushed: app_start_failed (warning) — Telepített alkalmazás nem fut: RomM
2026/08/23 12:05:26 notifier.go:232: [DEBUG] PushEvent: app_start_failed pushed OK (HTTP 200)
2026/08/23 12:05:26 notifier.go:234: [INFO] Event pushed: app_start_failed (warning) — Telepített alkalmazás nem fut: Paperless-ngx
2026/08/23 12:05:28 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (620ms)
2026/08/23 12:05:29 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (659ms)
2026/08/23 12:05:33 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:05:33 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:05:33 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:05:33Z, active_sessions=417
2026/08/23 12:05:33 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:05:33 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:05:33 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:05:33 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:05:33 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:05:33 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:05:33 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:05:36 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:05:36 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:05:36 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:05:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:36 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 0 skipped no container)
2026/08/23 12:05:46 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:05:46 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:05:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:46 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 0 skipped no container)
2026/08/23 12:05:46 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:05:54 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:05:54 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:05:54 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:05:54Z, active_sessions=418
2026/08/23 12:05:54 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:05:54 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:05:54 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:05:54 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:05:54 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:05:54 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:05:54 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3133MB avail≈22765MB
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=26998544 → total=25898MB avail=22765MB used=3133MB (12.1%)
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 12:05:56 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 12:05:56 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.74 0.77 0.75 3/742 27733" → 1m=0.74 5m=0.77 15m=0.75
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] GetInfo done in 60ms — mem=3133MB/25898MB (12.1%), rootDisk=10.2GB/68.7GB (14.9%), load=0.74/0.77/0.75, temp=52.9°C (hwmon1), cpu=5.5%
2026/08/23 12:05:56 scheduler.go:346: [INFO] [scheduler] Running job: system-health
2026/08/23 12:05:56 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:05:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:05:56 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 0 skipped no container)
2026/08/23 12:05:56 scheduler.go:67: [DEBUG] [scheduler] job system-health: execution starting
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 12:05:56 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:05:56 scheduler.go:346: [INFO] [scheduler] Running job: backup-cache
2026/08/23 12:05:56 scheduler.go:67: [DEBUG] [scheduler] job backup-cache: execution starting
2026/08/23 12:05:56 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:05:56 scheduler.go:346: [INFO] [scheduler] Running job: offsite-credential-retry
2026/08/23 12:05:56 scheduler.go:67: [DEBUG] [scheduler] job offsite-credential-retry: execution starting
2026/08/23 12:05:56 scheduler.go:363: [INFO] [scheduler] Job offsite-credential-retry completed (took 0s)
2026/08/23 12:05:56 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:05:56 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 12:05:56 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 12:05:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:05:56 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/sys_drive → [bookstack, docmost, kimai, opengist, privatebin]
2026/08/23 12:05:56 backup.go:434: [DEBUG] groupStacksByDrive: /mnt/felhom-drives/hdd_1 → [calibre-web, paperless-ngx, romm]
2026/08/23 12:05:56 backup.go:1063: [INFO] [backup] Found 13 DB dump files across drives
2026/08/23 12:05:56 dbdump.go:128: [DEBUG] DiscoverDatabases: running docker ps to find database containers
2026/08/23 12:05:56 dbdump.go:147: [DEBUG] DiscoverDatabases: docker ps output: f46744b40328	privatebin	privatebin	privatebin/pdo:2.0.5
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
df8ce46d665d	opengist	opengist	ghcr.io/thomiceli/opengist:1.13
7d142b0cc2c1	calibre-web	calibre-web	crocodilestick/calibre-web-automated:v4.0.6
ed79a29b8eb4	bookstack	bookstack	lscr.io/linuxserver/booksta...
2026/08/23 12:05:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container privatebin (image=privatebin/pdo:2.0.5, not a database)
2026/08/23 12:05:56 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 12:05:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost (image=docmost/docmost:0.95.0, not a database)
2026/08/23 12:05:56 dbdump.go:176: [DEBUG] DiscoverDatabases: found postgres container: docmost-postgres (id=91041c89bd0d)
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3123MB avail≈22775MB
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=27010932 → total=25898MB avail=22775MB used=3123MB (12.1%)
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 12:05:56 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 12:05:56 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.74 0.77 0.75 7/754 27786" → 1m=0.74 5m=0.77 15m=0.75
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 52.9°C (hwmon1)
2026/08/23 12:05:56 info.go:13: [DEBUG] [system] GetInfo done in 75ms — mem=3123MB/25898MB (12.1%), rootDisk=10.2GB/68.7GB (14.9%), load=0.74/0.77/0.75, temp=52.9°C (hwmon1), cpu=5.5%
2026/08/23 12:05:56 healthcheck.go:42: [DEBUG] [monitor] Raw values: disk=14.9%, hdd=0.6% (configured=true), mem=12.1% (3123MB/25898MB), cpu=5.5%, temp=52.9°C (hwmon1)
2026/08/23 12:05:56 healthcheck.go:74: [DEBUG] [monitor] SSD disk: OK (15%)
2026/08/23 12:05:56 healthcheck.go:107: [DEBUG] [monitor] Memory: OK (12%)
2026/08/23 12:05:56 healthcheck.go:125: [DEBUG] [monitor] CPU: OK (6%)
2026/08/23 12:05:56 healthcheck.go:143: [DEBUG] [monitor] Temperature: OK (53°C)
2026/08/23 12:05:56 dbdump.go:196: [DEBUG] DiscoverDatabases: docmost-postgres → stack=docmost, dbUser=docmost, dbName=docmost
2026/08/23 12:05:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container docmost-redis (image=redis:7-alpine, not a database)
2026/08/23 12:05:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container opengist (image=ghcr.io/thomiceli/opengist:1.13, not a database)
2026/08/23 12:05:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container calibre-web (image=crocodilestick/calibre-web-automated:v4.0.6, not a database)
2026/08/23 12:05:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container bookstack (image=lscr.io/linuxserver/bookstack:26.05.2, not a database)
2026/08/23 12:05:56 dbdump.go:176: [DEBUG] DiscoverDatabases: found mariadb container: bookstack-db (id=95dcda149d29)
2026/08/23 12:05:56 dbdump.go:196: [DEBUG] DiscoverDatabases: bookstack-db → stack=bookstack, dbUser=root, dbName=bookstack
2026/08/23 12:05:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container filebrowser (image=gtstef/filebrowser:1.3.3-stable, not a database)
2026/08/23 12:05:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container cloudflared (image=cloudflare/cloudflared:2026.6.0, not a database)
2026/08/23 12:05:56 dbdump.go:169: [DEBUG] DiscoverDatabases: skipping container traefik (image=traefik:v3.6.7, not a database)
2026/08/23 12:05:56 dbdump.go:203: [DEBUG] DiscoverDatabases: found 2 database(s), skipped 10 non-DB container(s)
2026/08/23 12:05:56 dbdump.go:206: [INFO] [backup] Discovered 2 databases
2026/08/23 12:05:56 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 12:05:56 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 12:05:56 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 12:05:56 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 12:05:56 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 12:05:56 [INFO] [stacks] ParseComposeHDDMounts: found 2 HDD mounts for /opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 12:05:56 [INFO] [stacks] ParseComposeHDDMounts: found 0 HDD mounts for /opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 12:05:56 [INFO] [stacks] ParseComposeHDDMounts: found 1 HDD mounts for /opt/docker/stacks/romm/docker-compose.yml
2026/08/23 12:05:56 [INFO] [backup] Discovered app data: 8 apps
2026/08/23 12:05:56 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 12:05:56 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 12:05:56 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 12:05:56 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 12:05:56 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 12:05:56 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 12:05:56 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 12:05:56 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 12:05:56 backup.go:1133: [INFO] [backup] Backup status cache refreshed
2026/08/23 12:05:56 scheduler.go:363: [INFO] [scheduler] Job backup-cache completed (took 131ms)
2026/08/23 12:05:56 healthcheck.go:157: [DEBUG] [monitor] Docker daemon: OK
2026/08/23 12:05:56 healthcheck.go:165: [DEBUG] [monitor] Checking 4 protected containers: [traefik cloudflared felhom-controller filebrowser]
2026/08/23 12:05:57 healthcheck.go:175: [DEBUG] [monitor] All protected containers running
2026/08/23 12:05:57 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 12:05:57 healthcheck.go:192: [INFO] [monitor] Health check: status=ok
2026/08/23 12:05:57 healthcheck.go:196: [DEBUG] [monitor] Final status: ok (issues=0, warnings=0, info=5)
2026/08/23 12:05:57 scheduler.go:363: [INFO] [scheduler] Job system-health completed (took 223ms)
2026/08/23 12:05:57 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (592ms)
2026/08/23 12:05:57 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 592ms)
2026/08/23 12:05:58 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (660ms)
2026/08/23 12:05:59 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (650ms)
2026/08/23 12:06:06 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:06:06 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:06:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:06 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 0 skipped no container)
2026/08/23 12:06:06 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:06:15 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:06:15 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:06:15 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:06:15Z, active_sessions=419
2026/08/23 12:06:15 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:06:15 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:06:15 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:06:15 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:06:15 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:06:15 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:06:15 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:06:16 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:06:16 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:06:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:16 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 0 skipped no container)
2026/08/23 12:06:16 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:06:26 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:06:26 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:06:26 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:06:26 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:06:26 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:06:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:26 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 0 skipped no container)
2026/08/23 12:06:28 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (588ms)
2026/08/23 12:06:29 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (588ms)
2026/08/23 12:06:36 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:06:36 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:06:36 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:06:36Z, active_sessions=420
2026/08/23 12:06:36 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:06:36 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:06:36 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:06:36 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:06:36 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:06:36 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:06:36 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:06:36 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:06:36 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:06:36 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:06:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 2m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:36 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:36 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 0 skipped no container)
2026/08/23 12:06:46 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:06:46 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:06:46 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:06:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 1m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:46 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:46 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 0 skipped no container)
2026/08/23 12:06:56 info.go:13: [DEBUG] [system] GetInfo starting (hddPath="/mnt/felhom-drives/hdd_1", hasCPUCollector=true)
2026/08/23 12:06:56 info.go:13: [DEBUG] [system] readMemInfo: guest cap=25898MB (host total was 30714460KB) → used≈3137MB avail≈22761MB
2026/08/23 12:06:56 info.go:13: [DEBUG] [system] readMemInfo: totalKB=30714460 availKB=26993228 → total=25898MB avail=22761MB used=3137MB (12.1%)
2026/08/23 12:06:56 info.go:13: [DEBUG] [system] readDiskUsage: path="/" bsize=4096 total=68.7GB used=10.2GB avail=55.0GB (14.9%)
2026/08/23 12:06:56 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 12:06:56 info.go:13: [DEBUG] [system] readLoadAvg: raw="0.90 0.81 0.76 3/742 28022" → 1m=0.90 5m=0.81 15m=0.76
2026/08/23 12:06:56 info.go:13: [DEBUG] [system] readThermalZones: /sys — found 1 zones
2026/08/23 12:06:56 info.go:13: [DEBUG] [system] readTemperature: found via hwmon at /sys — 56.4°C (hwmon2)
2026/08/23 12:06:56 info.go:13: [DEBUG] [system] GetInfo done in 57ms — mem=3137MB/25898MB (12.1%), rootDisk=10.2GB/68.7GB (14.9%), load=0.90/0.81/0.76, temp=56.4°C (hwmon2), cpu=2.4%
2026/08/23 12:06:56 scheduler.go:346: [INFO] [scheduler] Running job: stack-scan
2026/08/23 12:06:56 scheduler.go:67: [DEBUG] [scheduler] job stack-scan: execution starting
2026/08/23 12:06:56 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:06:56 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:06:56 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:06:56 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "actualbudget" deployed=false composePath=/opt/docker/stacks/actualbudget/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "adventurelog" deployed=false composePath=/opt/docker/stacks/adventurelog/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "audiobookshelf" deployed=false composePath=/opt/docker/stacks/audiobookshelf/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bentopdf" deployed=false composePath=/opt/docker/stacks/bentopdf/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "bookstack" deployed=true composePath=/opt/docker/stacks/bookstack/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calcom" deployed=false composePath=/opt/docker/stacks/calcom/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "calibre-web" deployed=true composePath=/opt/docker/stacks/calibre-web/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "claper" deployed=false composePath=/opt/docker/stacks/claper/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "cloudflared" deployed=false composePath=/opt/docker/stacks/cloudflared/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "code-server" deployed=false composePath=/opt/docker/stacks/code-server/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "crafty-controller" deployed=false composePath=/opt/docker/stacks/crafty-controller/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "docmost" deployed=true composePath=/opt/docker/stacks/docmost/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "emby" deployed=false composePath=/opt/docker/stacks/emby/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "ghost" deployed=false composePath=/opt/docker/stacks/ghost/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gitea" deployed=false composePath=/opt/docker/stacks/gitea/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "glance" deployed=false composePath=/opt/docker/stacks/glance/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gokapi" deployed=false composePath=/opt/docker/stacks/gokapi/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "grafana" deployed=false composePath=/opt/docker/stacks/grafana/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "gramps-web" deployed=false composePath=/opt/docker/stacks/gramps-web/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "home-assistant" deployed=false composePath=/opt/docker/stacks/home-assistant/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homebox" deployed=false composePath=/opt/docker/stacks/homebox/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "homepage" deployed=false composePath=/opt/docker/stacks/homepage/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "immich" deployed=false composePath=/opt/docker/stacks/immich/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "jellyfin" deployed=false composePath=/opt/docker/stacks/jellyfin/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "kimai" deployed=true composePath=/opt/docker/stacks/kimai/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "komga" deployed=false composePath=/opt/docker/stacks/komga/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "mealie" deployed=false composePath=/opt/docker/stacks/mealie/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "n8n" deployed=false composePath=/opt/docker/stacks/n8n/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "navidrome" deployed=false composePath=/opt/docker/stacks/navidrome/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "nextcloud" deployed=false composePath=/opt/docker/stacks/nextcloud/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "onlyoffice" deployed=false composePath=/opt/docker/stacks/onlyoffice/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "opengist" deployed=true composePath=/opt/docker/stacks/opengist/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "outline" deployed=false composePath=/opt/docker/stacks/outline/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "paperless-ngx" deployed=true composePath=/opt/docker/stacks/paperless-ngx/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "papra" deployed=false composePath=/opt/docker/stacks/papra/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plant-it" deployed=false composePath=/opt/docker/stacks/plant-it/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "plex" deployed=false composePath=/opt/docker/stacks/plex/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "privatebin" deployed=true composePath=/opt/docker/stacks/privatebin/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "radarr" deployed=false composePath=/opt/docker/stacks/radarr/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "rallly" deployed=false composePath=/opt/docker/stacks/rallly/docker-compose.yml
2026/08/23 12:06:56 scheduler.go:346: [INFO] [scheduler] Running job: agent-channel-health
2026/08/23 12:06:56 scheduler.go:67: [DEBUG] [scheduler] job agent-channel-health: execution starting
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "recipe-importer" deployed=false composePath=/opt/docker/stacks/recipe-importer/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "romm" deployed=true composePath=/opt/docker/stacks/romm/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "seerr" deployed=false composePath=/opt/docker/stacks/seerr/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sonarr" deployed=false composePath=/opt/docker/stacks/sonarr/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "sparkyfitness" deployed=false composePath=/opt/docker/stacks/sparkyfitness/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "tandoor" deployed=false composePath=/opt/docker/stacks/tandoor/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "termix" deployed=false composePath=/opt/docker/stacks/termix/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "traefik" deployed=false composePath=/opt/docker/stacks/traefik/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "uptime-kuma" deployed=false composePath=/opt/docker/stacks/uptime-kuma/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vaultwarden" deployed=false composePath=/opt/docker/stacks/vaultwarden/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "vikunja" deployed=false composePath=/opt/docker/stacks/vikunja/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wanderer" deployed=false composePath=/opt/docker/stacks/wanderer/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wger" deployed=false composePath=/opt/docker/stacks/wger/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "wishlist" deployed=false composePath=/opt/docker/stacks/wishlist/docker-compose.yml
2026/08/23 12:06:56 manager.go:502: [DEBUG] [stacks] ScanStacks: found stack "zipline" deployed=false composePath=/opt/docker/stacks/zipline/docker-compose.yml
2026/08/23 12:06:56 manager.go:1547: [DEBUG] [stacks] getCatalogTemplateSlugs: found 53 template slugs in /opt/docker/felhom-controller/data/catalog-cache/templates
2026/08/23 12:06:56 manager.go:539: [DEBUG] [stacks] ScanStacks: catalog has 53 template slugs for orphan detection
2026/08/23 12:06:56 manager.go:570: [INFO] [stacks] ScanStacks complete: 56 stacks found (8 deployed, 48 available)
2026/08/23 12:06:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:06:56 scheduler.go:363: [INFO] [scheduler] Job stack-scan completed (took 48ms)
2026/08/23 12:06:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m0s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:56 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:06:56 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 0 skipped no container)
2026/08/23 12:06:56 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:06:57 client.go:1142: [DEBUG] [agentapi] GET /storage -> 200 (603ms)
2026/08/23 12:06:57 scheduler.go:363: [INFO] [scheduler] Job agent-channel-health completed (took 604ms)
2026/08/23 12:06:57 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:06:57 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:06:57 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:06:57Z, active_sessions=421
2026/08/23 12:06:57 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:06:58 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:06:58 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:06:58 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:06:58 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:06:58 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:06:58 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:06:58 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (613ms)
2026/08/23 12:06:59 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (587ms)
2026/08/23 12:07:06 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:07:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m10s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:06 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:06 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 0 skipped no container)
2026/08/23 12:07:06 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:07:06 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:07:16 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:07:16 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:07:16 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:07:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m20s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:16 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:16 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 0 skipped no container)
2026/08/23 12:07:19 auth.go:146: [DEBUG] [web] login attempt from 172.18.0.4:59100 (X-Forwarded-For: 172.18.0.1)
2026/08/23 12:07:19 auth.go:194: [DEBUG] [web] login successful from 172.18.0.1, creating session
2026/08/23 12:07:19 auth.go:260: [DEBUG] [web] session created, expires=2026-08-30T12:07:19Z, active_sessions=422
2026/08/23 12:07:19 auth.go:214: [INFO] [web] Login from 172.18.0.4:59100
2026/08/23 12:07:19 auth.go:134: [DEBUG] [web] auth: valid session for GET /
2026/08/23 12:07:19 server.go:393: [DEBUG] [web] ServeHTTP: GET / from 172.18.0.4:59100
2026/08/23 12:07:19 auth.go:134: [DEBUG] [web] auth: valid session for GET /launcher
2026/08/23 12:07:19 server.go:393: [DEBUG] [web] ServeHTTP: GET /launcher from 172.18.0.4:59100
2026/08/23 12:07:19 auth.go:134: [DEBUG] [web] auth: valid session for GET /backup/offbox/status
2026/08/23 12:07:19 server.go:393: [DEBUG] [web] ServeHTTP: GET /backup/offbox/status from 172.18.0.4:59100
2026/08/23 12:07:26 scheduler.go:67: [DEBUG] [scheduler] job deadapp-check: execution starting
2026/08/23 12:07:26 scheduler.go:67: [DEBUG] [scheduler] job ring-spill: execution starting
2026/08/23 12:07:26 scheduler.go:67: [DEBUG] [scheduler] job health-probes: execution starting
2026/08/23 12:07:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping bookstack — last check 3m50s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping calibre-web — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping privatebin — last check 2m30s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping opengist — last check 2m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:26 healthprobe.go:53: [DEBUG] [stacks] RunHealthProbes: skipping docmost — last check 3m40s ago, effective interval 5m0s, healthy=true
2026/08/23 12:07:26 healthprobe.go:76: [DEBUG] [stacks] RunHealthProbes: collected 0 targets (5 skipped not due, 0 skipped no container)
2026/08/23 12:07:26 scheduler.go:67: [DEBUG] [scheduler] job status-refresh: execution starting
2026/08/23 12:07:26 manager.go:621: [INFO] [stacks] Status refresh: 19 containers across 56 stacks
2026/08/23 12:07:28 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (627ms)
2026/08/23 12:07:29 client.go:1142: [DEBUG] [agentapi] GET /disks -> 200 (639ms)
