Files
felhom.eu/documentation/audits/DRILL-cooldown-grain-2026-08-23/evidence/live-10-full-controller-log.txt
T
admin ebdc04601d
gates / gates (push) Successful in 15s
docs(hub v0.108.0): the delivery grain, the cooldown ruling, and gate 11's first subject
The alarm ladder gains §6.2 - which events are per-app, per-run, per-tier or
coarse, and why the default is coarse. CONTEXT records two rulings: the grain is
allow-listed rather than inferred from the payload, with crossdrive_failed as
the proof that a payload rule would have been wrong; and a finding recorded only
in REPORT.md has a lifetime of one session.

R-389 closed and compressed, keeping its rules and naming the commit whose
git show returns the full text. R-390 and R-391 left open.

REPORT.md is gate 11's first real subject and passes: six observations, two
FILED, four NOT-A-FINDING with their reasons. Three of those declarations are
things a tidier report would have omitted - the gate's own spec would have
passed the item it was built to catch, the burst has no ceiling, and ArgoCD
said "successfully rolled out" while still running the old image.

STATUS carries forward the one thing outstanding: the controller floor still
reads 0.222.0 while the golden reads 0.223.0.
2026-08-23 14:12:23 +02:00

1804 lines
220 KiB
Plaintext

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LC_NUMERIC = (unset),
LC_COLLATE = (unset),
LC_TIME = (unset),
LC_MESSAGES = (unset),
LC_MONETARY = (unset),
LC_ADDRESS = (unset),
LC_IDENTIFICATION = (unset),
LC_MEASUREMENT = (unset),
LC_PAPER = (unset),
LC_TELEPHONE = (unset),
LC_NAME = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
2026/08/23 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)