From 103a7c20d80799f30efbe0b9da6885339e459ea6 Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Mon, 3 Aug 2026 12:17:03 +0000 Subject: [PATCH] runtime: publish CONTEXT-AUTO-20260803T121701Z --- .../CONTEXT-AUTO-20260803T121701Z.json | 1 + .../history/CONTEXT-AUTO-20260803T121701Z.txt | 164 +++++++++++++++ runtime/latest.json | 39 +--- runtime/latest.txt | 186 +++++++++++++++--- 4 files changed, 324 insertions(+), 66 deletions(-) create mode 100644 runtime/history/CONTEXT-AUTO-20260803T121701Z.json create mode 100644 runtime/history/CONTEXT-AUTO-20260803T121701Z.txt diff --git a/runtime/history/CONTEXT-AUTO-20260803T121701Z.json b/runtime/history/CONTEXT-AUTO-20260803T121701Z.json new file mode 100644 index 0000000..ce5b734 --- /dev/null +++ b/runtime/history/CONTEXT-AUTO-20260803T121701Z.json @@ -0,0 +1 @@ +{"schema_version":1,"channel":"homelab-runtime","command_id":"CONTEXT-AUTO-20260803T121701Z","status":"OK","rc":0,"host":"pve01","mode":"read-only","component":"cluster-context","started_at_utc":"2026-08-03T12:17:01Z","finished_at_utc":"2026-08-03T12:17:02Z","reference_register_checked":true,"reference_sha256":"5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e","error_register_checked":true,"error_register_sha256":"24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83","changes_made":false,"sanitized":true,"secrets_included":false,"private_addresses_included":false,"output":"AUTOMATIC_CLUSTER_CONTEXT_REFRESH=OK"} diff --git a/runtime/history/CONTEXT-AUTO-20260803T121701Z.txt b/runtime/history/CONTEXT-AUTO-20260803T121701Z.txt new file mode 100644 index 0000000..cb0bacd --- /dev/null +++ b/runtime/history/CONTEXT-AUTO-20260803T121701Z.txt @@ -0,0 +1,164 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=CONTEXT-AUTO-[PRIVATE_IP]701Z +STATUS=OK +RC=0 +HOST=pve01 +COMPONENT=cluster-context +REFERENCE_SHA[PRIVATE_IP]f8edc75fcf[PRIVATE_IP]c[PRIVATE_IP]cc112ceccb6cf[PRIVATE_IP]a4deb8e +ERROR_REGISTER_SHA[PRIVATE_IP]c7fa[PRIVATE_IP]583c4aefac[PRIVATE_IP]1736ed[PRIVATE_IP]ab83 +OUTPUT_BEGIN +GENERATED_AT_UTC=[PRIVATE_IP]T12:17:01Z +Cluster information +------------------- +Name: homelab +Config Version: 3 +Transport: knet +Secure auth: on + +Quorum information +------------------ +Date: Mon Aug [PRIVATE_IP] 2026 +Quorum provider: corosync_votequorum +Nodes: 3 +Node ID: [PRIVATE_IP] +Ring ID: 1.db +Quorate: Yes + +Votequorum information +---------------------- +Expected votes: 3 +Highest expected: 3 +Total votes: 3 +Quorum: 2 +Flags: Quorate + +Membership information +---------------------- + Nodeid Votes Name +[PRIVATE_IP] [PRIVATE_IP].11 (local) +[PRIVATE_IP] [PRIVATE_IP].13 +[PRIVATE_IP] [PRIVATE_IP].12 + +Membership information +---------------------- + Nodeid Votes Name + 1 1 pve01 (local) + 2 1 pve03 + 3 1 pve02 +[{"cpu":[PRIVATE_IP]191e-05,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/110","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":522600,"vmid":110},{"cpu":[PRIVATE_IP]801075,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/111","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":522684,"vmid":111},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/112","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":522645,"vmid":112},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/113","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":522688,"vmid":113},{"cpu":[PRIVATE_IP]36009,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"edge-vm","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":522629,"vmid":130},{"cpu":[PRIVATE_IP]69816,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/150","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"nextcloud","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":522597,"vmid":150},{"cpu":[PRIVATE_IP]775453,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/160","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"forum-prod","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":522680,"vmid":160},{"cpu":[PRIVATE_IP]00144,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/170","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"core-apps","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":522593,"vmid":170},{"cpu":[PRIVATE_IP]76795,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/171","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"monitoring","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":522590,"vmid":171},{"cpu":[PRIVATE_IP]12877,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/180","maxcpu":2,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"cluster-admin","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":522678,"vmid":180},{"cpu":[PRIVATE_IP]12667,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/190","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"homelab-ops-worker","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":522625,"vmid":190},{"cpu":0,"disk":0,"diskread":0,"diskwrite":0,"id":"qemu/9130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":0,"memhost":0,"name":"edge-cold-standby","netin":0,"netout":0,"node":"pve02","status":"stopped","template":0,"type":"qemu","uptime":0,"vmid":9130},{"cgroup-mode":2,"cpu":[PRIVATE_IP]94215,"disk":[PRIVATE_IP],"id":"node/pve01","level":"","maxcpu":24,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve01","status":"online","type":"node","uptime":522702},{"cgroup-mode":2,"cpu":[PRIVATE_IP]35886,"disk":[PRIVATE_IP],"id":"node/pve02","level":"","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve02","status":"online","type":"node","uptime":522721},{"cgroup-mode":2,"cpu":[PRIVATE_IP]62371,"disk":[PRIVATE_IP],"id":"node/pve03","level":"","maxcpu":8,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve03","status":"online","type":"node","uptime":522647},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve01/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve02/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve03/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"iso,import,backup,vztmpl","disk":[PRIVATE_IP],"id":"storage/pve01/local","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"iso,import,backup,vztmpl","disk":[PRIVATE_IP],"id":"storage/pve02/local","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"iso,import,backup,vztmpl","disk":[PRIVATE_IP],"id":"storage/pve03/local","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"id":"network/pve01/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve01","status":"ok","type":"network"},{"id":"network/pve02/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve02","status":"ok","type":"network"},{"id":"network/pve03/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve03","status":"ok","type":"network"}] +Name Type Status Total (KiB) Used (KiB) Available (KiB) % +local dir active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 13.99% +local-lvm lvmthin active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 27.34% + UNIT LOAD ACTIVE SUB DESCRIPTION +● homelab-backup-matrix-refresh.service loaded failed failed Generate unified homelab backup matrix state +● homelab-crypto-portfolio-chart-health.service loaded failed failed Crypto portfolio chart health check +● skladchik-reports-monitor-supervisor.service loaded failed failed Skladchik reports monitor full supervisor + +Legend: LOAD → Reflects whether the unit definition was properly loaded. + ACTIVE → The high-level unit activation state, i.e. generalization of SUB. + SUB → The low-level unit activation state, values depend on unit type. + +3 loaded units listed. +NEXT LEFT LAST PASSED UNIT ACTIVATES +Mon [PRIVATE_IP] 15:17:20 MSK 17s Mon [PRIVATE_IP] 15:12:20 MSK 4min 42s ago netbird-peers-health.timer netbird-peers-health.service +Mon [PRIVATE_IP] 15:17:26 MSK 23s Mon [PRIVATE_IP] 15:16:26 MSK 36s ago homelab-cluster-admin-webpanel-sync.timer homelab-cluster-admin-webpanel-sync.service +Mon [PRIVATE_IP] 15:17:26 MSK 23s Mon [PRIVATE_IP] 15:16:26 MSK 36s ago homelab-private-vpn-hosts-health.timer homelab-private-vpn-hosts-health.service +Mon [PRIVATE_IP] 15:17:27 MSK 24s Mon [PRIVATE_IP] 15:16:26 MSK 36s ago homelab-router-watchdog.timer homelab-router-watchdog.service +Mon [PRIVATE_IP] 15:18:24 MSK 1min 21s Mon [PRIVATE_IP] 15:16:14 MSK 47s ago homelab-cluster-admin-inventory-sync.timer homelab-cluster-admin-inventory-sync.service +Mon [PRIVATE_IP] 15:19:19 MSK 2min 16s Mon [PRIVATE_IP] 15:14:07 MSK 2min 55s ago homelab-health-metrics.timer homelab-health-metrics.service +Mon [PRIVATE_IP] 15:19:26 MSK 2min 23s Mon [PRIVATE_IP] 15:04:26 MSK 12min ago homelab-disk-space-health.timer homelab-disk-space-health.service +Mon [PRIVATE_IP] 15:20:14 MSK 3min 12s Mon [PRIVATE_IP] 15:15:14 MSK 1min 47s ago homelab-smartctl-textfile.timer homelab-smartctl-textfile.service +Mon [PRIVATE_IP] 15:20:32 MSK 3min 29s Mon [PRIVATE_IP] 15:05:32 MSK 11min ago homelab-pve03-staging-capacity-health.timer homelab-pve03-staging-capacity-health.service +Mon [PRIVATE_IP] 15:20:32 MSK 3min 29s Mon [PRIVATE_IP] 15:05:32 MSK 11min ago prometheus-node-exporter-nvme.timer prometheus-node-exporter-nvme.service +Mon [PRIVATE_IP] 15:21:04 MSK 4min 1s Mon [PRIVATE_IP] 15:15:53 MSK 1min 8s ago homelab-crypto-portfolio-chart-health.timer homelab-crypto-portfolio-chart-health.service +Mon [PRIVATE_IP] 15:26:26 MSK 9min Mon [PRIVATE_IP] 15:16:26 MSK 36s ago skladchik-reports-monitor-supervisor.timer skladchik-reports-monitor-supervisor.service +Mon [PRIVATE_IP] 15:30:00 MSK 12min Mon [PRIVATE_IP] 15:15:14 MSK 1min 47s ago homelab-incident-journal.timer homelab-incident-journal.service +Mon [PRIVATE_IP] 15:30:26 MSK 13min Mon [PRIVATE_IP] 15:15:50 MSK 1min 12s ago homelab-forum-snuffleupagus-health.timer homelab-forum-snuffleupagus-health.service +Mon [PRIVATE_IP] 15:31:07 MSK 14min Mon [PRIVATE_IP] 15:16:05 MSK 57s ago homelab-external-probe-vps-health.timer homelab-external-probe-vps-health.service +Mon [PRIVATE_IP] 15:31:20 MSK 14min Mon [PRIVATE_IP] 15:15:50 MSK 1min 12s ago homelab-duty-admin-v2.timer homelab-duty-admin-v2.service +Mon [PRIVATE_IP] 15:31:26 MSK 14min Mon [PRIVATE_IP] 15:16:26 MSK 36s ago prometheus-node-exporter-apt.timer prometheus-node-exporter-apt.service +Mon [PRIVATE_IP] 15:33:09 MSK 16min Mon [PRIVATE_IP] 15:00:50 MSK 16min ago homelab-mkdocs-auto-refresh.timer homelab-mkdocs-auto-refresh.service +Mon [PRIVATE_IP] 15:45:52 MSK 28min Mon [PRIVATE_IP] 15:14:47 MSK 2min 15s ago homelab-reference-refresh.timer homelab-reference-refresh.service +Mon [PRIVATE_IP] 20:08:26 MSK 4h 51min Mon [PRIVATE_IP] 14:08:26 MSK 1h 8min ago homelab-vps-identity-audit.timer homelab-vps-identity-audit.service +Tue [PRIVATE_IP] 00:00:00 MSK 8h Mon [PRIVATE_IP] 00:00:06 MSK 15h ago dpkg-db-backup.timer dpkg-db-backup.service +Tue [PRIVATE_IP] 00:05:03 MSK 8h Mon [PRIVATE_IP] 00:15:28 MSK 15h ago homelab-storage-capacity.timer homelab-storage-capacity.service +Tue [PRIVATE_IP] 00:07:51 MSK 8h Mon [PRIVATE_IP] 00:02:07 MSK 15h ago homelab-evidence-catalog.timer homelab-evidence-catalog.service +Tue [PRIVATE_IP] 00:08:11 MSK 8h Mon [PRIVATE_IP] 00:11:14 MSK 15h ago homelab-quality-gate.timer homelab-quality-gate.service +Tue [PRIVATE_IP] 00:08:26 MSK 8h Mon [PRIVATE_IP] 00:49:14 MSK 14h ago logrotate.timer logrotate.service +Tue [PRIVATE_IP] 00:13:28 MSK 8h Mon [PRIVATE_IP] 00:05:50 MSK 15h ago homelab-docker-health.timer homelab-docker-health.service +Tue [PRIVATE_IP] 00:14:17 MSK 8h Mon [PRIVATE_IP] 10:50:38 MSK 4h 26min ago man-db.timer man-db.service +Tue [PRIVATE_IP] 01:23:37 MSK 10h Mon [PRIVATE_IP] 01:28:07 MSK 13h ago pve-daily-update.timer pve-daily-update.service +Tue [PRIVATE_IP] 02:32:43 MSK 11h Mon [PRIVATE_IP] 12:38:50 MSK 2h 38min ago apt-daily.timer apt-daily.service +Tue [PRIVATE_IP] 03:50:00 MSK 12h Mon [PRIVATE_IP] 03:50:07 MSK 11h ago filebrowser-offhost-sync.timer filebrowser-offhost-sync.service +Tue [PRIVATE_IP] 04:41:55 MSK 13h Mon [PRIVATE_IP] 04:50:29 MSK 10h ago homelab-edge-vm-offhost-freshness.timer homelab-edge-vm-offhost-freshness.service +Tue [PRIVATE_IP] 05:14:52 MSK 13h Mon [PRIVATE_IP] 05:06:55 MSK 10h ago homelab-sops-edge-secret-coverage.timer homelab-sops-edge-secret-coverage.service +Tue [PRIVATE_IP] 06:52:59 MSK 15h Mon [PRIVATE_IP] 06:53:14 MSK 8h ago apt-daily-upgrade.timer apt-daily-upgrade.service +Tue [PRIVATE_IP] 07:03:42 MSK 15h Mon [PRIVATE_IP] 07:05:50 MSK 8h ago homelab-drift-check.timer homelab-drift-check.service +Tue [PRIVATE_IP] 07:39:24 MSK 16h Mon [PRIVATE_IP] 07:21:25 MSK 7h ago homelab-service-registry-check.timer homelab-service-registry-check.service +Tue [PRIVATE_IP] 07:45:52 MSK 16h Mon [PRIVATE_IP] 07:50:14 MSK 7h ago homelab-alerting-health.timer homelab-alerting-health.service +Tue [PRIVATE_IP] 07:54:16 MSK 16h Mon [PRIVATE_IP] 07:52:50 MSK 7h ago homelab-desired-state-sync.timer homelab-desired-state-sync.service +Tue [PRIVATE_IP] 07:55:52 MSK 16h Mon [PRIVATE_IP] 07:50:25 MSK 7h ago homelab-dependency-map-check.timer homelab-dependency-map-check.service +Tue [PRIVATE_IP] 07:56:48 MSK 16h Mon [PRIVATE_IP] 07:46:38 MSK 7h ago homelab-runbook-generate.timer homelab-runbook-generate.service +Tue [PRIVATE_IP] 07:59:39 MSK 16h Mon [PRIVATE_IP] 08:11:07 MSK 7h ago homelab-duty-admin-report.timer homelab-duty-admin-report.service +Tue [PRIVATE_IP] 08:03:48 MSK 16h Mon [PRIVATE_IP] 08:19:07 MSK 6h ago homelab-overall-health.timer homelab-overall-health.service +Tue [PRIVATE_IP] 08:12:24 MSK 16h Mon [PRIVATE_IP] 08:23:50 MSK 6h ago homelab-final-readiness-gate.timer homelab-final-readiness-gate.service +Tue [PRIVATE_IP] 08:16:32 MSK 16h Mon [PRIVATE_IP] 08:21:25 MSK 6h ago homelab-kuma-monitor-policy.timer homelab-kuma-monitor-policy.service +Tue [PRIVATE_IP] 08:36:17 MSK 17h Mon [PRIVATE_IP] 08:42:03 MSK 6h ago homelab-secret-exposure-guard.timer homelab-secret-exposure-guard.service +Tue [PRIVATE_IP] 08:36:39 MSK 17h Mon [PRIVATE_IP] 08:32:47 MSK 6h ago homelab-capacity-risk.timer homelab-capacity-risk.service +Tue [PRIVATE_IP] 08:50:00 MSK 17h Mon [PRIVATE_IP] 08:47:23 MSK 6h ago homelab-golden-state-index.timer homelab-golden-state-index.service +Tue [PRIVATE_IP] 08:52:29 MSK 17h Mon [PRIVATE_IP] 08:53:07 MSK 6h ago homelab-cluster-passport.timer homelab-cluster-passport.service +Tue [PRIVATE_IP] 08:54:34 MSK 17h Mon [PRIVATE_IP] 08:51:27 MSK 6h ago immich-media-offhost-sync.timer immich-media-offhost-sync.service +Tue [PRIVATE_IP] 09:06:42 MSK 17h Mon [PRIVATE_IP] 09:20:50 MSK 5h 56min ago memos-offhost-sync.timer memos-offhost-sync.service +Tue [PRIVATE_IP] 10:15:00 MSK 18h Mon [PRIVATE_IP] 10:15:05 MSK 5h 1min ago skladchik-reports-monitor-monthly-selftest-watch.timer skladchik-reports-monitor-monthly-selftest-watch.service +Tue [PRIVATE_IP] 14:20:26 MSK 23h Mon [PRIVATE_IP] 14:20:26 MSK 56min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service +Sun [PRIVATE_IP] 03:10:38 MSK 5 days Sun [PRIVATE_IP] 03:10:25 MSK 1 day 12h ago xfs_scrub_all.timer xfs_scrub_all.service +Sun [PRIVATE_IP] 03:10:48 MSK 5 days Sun [PRIVATE_IP] 03:10:50 MSK 1 day 12h ago e2scrub_all.timer e2scrub_all.service +Mon [PRIVATE_IP] 00:03:56 MSK 6 days Mon [PRIVATE_IP] 00:11:50 MSK 15h ago homelab-secret-sanity.timer homelab-secret-sanity.service +Mon [PRIVATE_IP] 01:11:21 MSK 6 days Mon [PRIVATE_IP] 01:17:56 MSK 13h ago fstrim.timer fstrim.service +- - - - prometheus-node-exporter-ipmitool-sensor.timer prometheus-node-exporter-ipmitool-sensor.service +- - - - prometheus-node-exporter-mellanox-hca-temp.timer prometheus-node-exporter-mellanox-hca-temp.service +- - - - prometheus-node-exporter-smartmon.timer prometheus-node-exporter-smartmon.service + +58 timers listed. +- Обрезанная, повреждённая или частично вставленная команда считается невыполненной; сначала проводится side-effect audit. +- Хвост parse-ошибки закрывается только после доказательства отсутствия изменений и временных артефактов. +- Proof: /var/lib/homelab-change-sets/operator-command-size-guard-v[PRIVATE_IP]T182653Z/report.txt + +## HOMELAB_ADMIN_CLI_CONTRACT_[PRIVATE_IP] +- Поддерживаемые команды: version, status, lint TASK_DIR, validate TASK_DIR, run TASK_DIR PHASE. +- Отдельная команда --help отсутствует. Неизвестный аргумент печатает usage и штатно возвращает RC=64. +- Нельзя трактовать RC=64 от --help как неисправность runner. +- Для проверки доступности runner использовать homelab-admin version; для структуры CLI использовать зафиксированную usage-строку. +- Proof: /var/lib/homelab-change-sets/homelab-admin-cli-contract-fix-v[PRIVATE_IP]T183338Z/report.txt + +AUTOMATIC_CLUSTER_CONTEXT_REFRESH_[PRIVATE_IP] +Collector: /usr/local/sbin/homelab-context-collect +Scheduler: hourly at minute 17 via /etc/cron.d/homelab-context-refresh +Destination: immutable Gitea runtime history with CONTEXT-AUTO UTC command IDs. + +AUTOMATIC_CLUSTER_CONTEXT_REFRESH_DIRECT_[PRIVATE_IP] +Publisher: /usr/local/sbin/homelab-context-refresh-direct +Schedule: hourly at minute 17. +Destination: immutable assistant-runtime history with CONTEXT-AUTO UTC IDs. +ANTI_REGRESSION_TOKEN=HOMELAB_VM_2CLOUD_444_OUTER_LAUNCHER_BOUNDARY_REQUIRED +- Anti-regression: validate the complete outer launcher with a shell syntax check and verify the wrapper argument boundary before issuing it. +- Infrastructure action executed: none. +- Backup payload impact: none. +- Production impact: none. +- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. +- Registered at: [PRIVATE_IP]T11:20:32Z + +## ERROR_[PRIVATE_IP]_HOMELAB_VM_2CLOUD_DRAIN_CLOSURE_PREFLIGHT_446 +COMMAND_ID=HOMELAB-VM-2CLOUD-DRAIN-CLOSURE-PREFLIGHT-446 +- Symptom: homelab-chat-run-linked printed Usage and skipped result-feed publication as invalid input. +- Root cause: the diagnostic script was piped to wrapper stdin and the mandatory double-dash command separator was omitted. +- Correction: invoke homelab-chat-run-linked as COMMAND_ID MODE COMPONENT -- command arguments; stdin is not its command interface. +ANTI_REGRESSION_TOKEN=HOMELAB_CHAT_RUN_COMMAND_REQUIRES_DOUBLE_DASH +- Anti-regression: treat wrapper Usage as the authoritative CLI contract and syntax-check the complete launcher, not only its inner payload. +- Infrastructure action executed: none. +- Backup payload impact: none. +- Production impact: none. +- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. +- Registered at: [PRIVATE_IP]T11:20:32Z +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 6bf2389..ce5b734 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,38 +1 @@ -{ - "schema_version": 1, - "channel": "homelab-runtime", - "command_id": "HBARHUB-PUBLIC-TLS-CERTIFICATE-READ-ONLY-PLAN-FIX1-V11-20260803T114516Z", - "status": "FAIL", - "rc": 1, - "host": "pve01", - "mode": "verify", - "component": "hbarhub-public-tls-certificate-read-only-plan-fix1-v11", - "started_at_utc": "2026-08-03T11:56:08Z", - "finished_at_utc": "2026-08-03T11:58:43Z", - "reference_register_checked": true, - "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", - "error_register_checked": true, - "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", - "command_sha256": "5a4a13b381fea78ed1d1db414fbc07d831414572257e41fc7e4763a83ef43f50", - "duplicate_failed_command_blocked": false, - "block_reason": null, - "execution_started": true, - "change_declared": false, - "result_contract_valid": true, - "result_contract_status": null, - "result_contract_error": null, - "command_rc": 1, - "changes_made": false, - "rollback_started": false, - "rollback_restored": null, - "mutation_outcome": "NO_MUTATION", - "sanitized": true, - "secrets_included": false, - "private_addresses_included": false, - "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "820f700946b606445fcd6c8434cb1eec184bfd0a284719b16b6e38a62f1c284f", - "sanitized_output_sha256": "820f700946b606445fcd6c8434cb1eec184bfd0a284719b16b6e38a62f1c284f", - "output_truncated_in_json": false, - "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"HBARHUB-PUBLIC-TLS-CERTIFICATE-READ-ONLY-PLAN-FIX1-V11-20260803T114516Z\",\"mutation_outcome\":\"NO_MUTATION\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL\",\"version\":1}\n{\"PLAN_SHA256\":null,\"action\":null,\"blockers\":[\"ACME_WEBROOT_NOT_READY\",\"CERTBOT_ACCOUNT_MISSING\",\"CERTBOT_CONFIG_NOT_READY\",\"CERTBOT_NOT_AVAILABLE\",\"CERTBOT_ROOT_NOT_READY\",\"EDGE_PREFLIGHT_NOT_READY\",\"EDGE_PROXY_MATCH_EVIDENCE_INVALID\"],\"certificate_ready\":false,\"changes_made\":false,\"command_id\":\"HBARHUB-PUBLIC-TLS-CERTIFICATE-READ-ONLY-PLAN-FIX1-V11-20260803T114516Z\",\"control_plane_error\":null,\"core\":{\"checks\":{\"compose_services_exact\":true,\"health_live_exact\":true,\"health_ready_exact\":true,\"hostname_exact\":true,\"listener_scan_complete\":true,\"port_8040_listening\":true,\"private_upstream_address_found\":true,\"secret_env_metadata_exact\":true,\"source_full_v10_manifest_lock_exact\":true,\"source_manifest_exact\":true,\"source_safe_manifest_exact\":true,\"stack_root_exact\":true},\"command_audit\":[{\"duration_ms\":14,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-server-version\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":13,\"stdout_sha256\":\"8484e7b831ba500ccf015246dc0a7b3f98de3c11519b347437ff8e91db018257\",\"tool\":\"docker\"},{\"duration_ms\":25,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-compose-version\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":9,\"stdout_sha256\":\"9a98539f27de5f629edafed2968b89d8ca06b9b39c9469ed2c22f3ca265bb6f9\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-project-container-ids\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":325,\"stdout_sha256\":\"6d84f472fb79c807adb530b9f79ebb0749ac975622d7555824b4b917eaca03a2\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-labels-1\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":632,\"stdout_sha256\":\"e24bd90ac8059559671f7a9d9a1e7cd67e8d0254b743150a96ab6d583d268bda\",\"tool\":\"docker\"},{\"duration_ms\":6,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-state-1\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":220,\"stdout_sha256\":\"5d144158704e223dabade0d8cc9c1c6f8eec7ffb1e45f254566ef15328a06abc\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-image-1\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":72,\"stdout_sha256\":\"8dc69b48fdcbfe88fd010b96687d11cbfad16283ca2289e5ccfdc5a097169fd7\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-labels-2\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":626,\"stdout_sha256\":\"f52c80f2d8a20310a02c3d8b72270f36881da04571fc2d919f3c230f1fcc46a6\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-state-2\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":859,\"stdout_sha256\":\"b187d4bb2f63edbb22a3f7bb1d0ad1ea9745a3f0bb22676b4baeed696bb5b900\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-image-2\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":72,\"stdout_sha256\":\"f82edaeefb4ec42a765d89b068fdccff8882a590420e3e92fbe26ebcf88b189d\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-labels-3\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":573,\"stdout_sha256\":\"9a91fd70030125f69a3231f99ef1797fc1c418aaa69b557107a9054cf7d39aad\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-state-3\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":1111,\"stdout_sha256\":\"c03f4bf42d6814d4b896f9ca91ca4f6a1279c627c018a8696f0c466a67aaa388\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-image-3\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":72,\"stdout_sha256\":\"38f8a7799d11034cea98a143e31b3bb9940cb1e410bb4e8c89b311392ef6ca10\",\"tool\":\"docker\"},{\"duration_ms\":11,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-labels-4\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":629,\"stdout_sha256\":\"fcfbcad44f416b563582a6cc7f900ae05924d5e873e7cb170aecaa688b582b12\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-state-4\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":219,\"stdout_sha256\":\"de9980819ca69651087e201c2905b9a170f9d99c4abd401a28d53c35c01f7b70\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-image-4\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":72,\"stdout_sha256\":\"f352091620dd4be72728388faa07744a154f38746d6bd34f1b49c0870f1894c0\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-labels-5\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":570,\"stdout_sha256\":\"46c3e5912fc93d8ac36f63b917c5cdb5e1bfa0cab4d668ae454055eb81a47bcd\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-state-5\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":890,\"stdout_sha256\":\"a0fd33d6bd25af57a2482d86516b2550e44ac3d16bbc2cfaf1b47bb9ada58b8f\",\"tool\":\"docker\"},{\"duration_ms\":7,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-container-image-5\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":72,\"stdout_sha256\":\"df127b89c24dcea8fd7e3524c02ef2f966fef765f7214157e321fe588b4f8bcd\",\"tool\":\"docker\"},{\"duration_ms\":8,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-web-published-port\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":23,\"stdout_sha256\":\"1e0e0006067490d2cb2d336666406885edec5084b5c9af4908bb80f92557cc62\",\"tool\":\"docker\"}],\"command_id\":\"HBARHUB-PUBLIC-TLS-CERTIFICATE-READ-ONLY-PLAN-FIX1-V11-20260803T114516Z\",\"contains_private_dispatch_material\":false,\"diagnosis\":\"HBARHUB_LOCAL_STACK_EXACT_AND_HEALTHY\",\"duration_ms\":177,\"failed_checks\":[],\"health\":{\"/health/live\":{\"bytes\":42,\"exact\":true,\"path\":\"/health/live\",\"sha256\":\"ded205e4a440a59a212dd2645e5b3b8f72751a03b50d5f134ee62154ffb0009a\",\"status\":200},\"/health/ready\":{\"bytes\":65,\"exact\":true,\"path\":\"/health/ready\",\"sha256\":\"0a16d6323a495f863eb73fecfd33846560d57b7073572824175542db46e17db0\",\"status\":200}},\"hostname\":{\"matches\":true,\"short\":\"core-apps\"},\"listener\":{\"addresses_returned\":false,\"errors\":[],\"kernel_tables_read\":2,\"listener_entry_count\":2,\"listener_present\":true,\"port\":8040},\"network\":{\"address_returned_in_final_report\":false,\"default_route_interface_sha256\":\"9c32a8c7e59e7935b1e5d3eea04ed8e08c41c1d3da88b98a8ad15d38cfc55b00\",\"upstream_address_sha256\":\"3eb2319e39eac307b3c7bd11f67663c0a0c814fd603989f5965083f9d1c80fb0\"},\"ok\":true,\"read_only\":true,\"role\":\"core-apps\",\"schema\":1,\"secret_file_read\":false,\"secrets_included\":false,\"stack\":{\"containers\":{\"all_running\":true,\"container_count\":5,\"exact\":true,\"identity_set_sha256\":\"7aa40be398ee8326cec37bfde6e994c65f45ae88e49c00776145e2c61fc586ac\",\"published_port\":{\"address_material_returned\":false,\"checked\":true,\"entry_count\":2,\"port_8040_present\":true},\"required_health_healthy\":true,\"services\":{\"postgres\":{\"container_id_sha256\":\"1c6c1869bc144ef114d1a18bbc2384d451d5c3e1b4b9b142b79599ab621fa69a\",\"health\":\"healthy\",\"image_id_sha256\":\"018ecdbb7d3b74e7cf885054d6999fee2a87d1b7dedd81664888250b480c8fa5\",\"present\":true,\"running\":true,\"started_at_sha256\":\"4a46ad5779bbf3e2a611c06dbbdd22e6a4cd97d03fa421852869e92842fa19ec\",\"status\":\"running\"},\"redis\":{\"container_id_sha256\":\"7f717a5e2c030eb8437b96f5929b979e7d2284b1c00d9b002bc0c954ad2a5a36\",\"health\":\"healthy\",\"image_id_sha256\":\"9ed2eadf21d42de86a4cf95421113de250435a35e9361c28ff766bba8d867b31\",\"present\":true,\"running\":true,\"started_at_sha256\":\"5d3dd4fac7be56d0f4943efdd21b25f22725d276f62d64893a69e24bca765c22\",\"status\":\"running\"},\"scheduler\":{\"container_id_sha256\":\"ba2069474967a75583f2858954c70bc387e7fc1694f40f1c43826253f17865ea\",\"health\":null,\"image_id_sha256\":\"5fd1ceacc1e68ca5e4ee0f02bdd35a7d59344f8b8f499c6be85b90850685222a\",\"present\":true,\"running\":true,\"started_at_sha256\":\"4b73a358dc689b166526d10630d196056cccc5931b1ddead4ac637793c9e02d7\",\"status\":\"running\"},\"web\":{\"container_id_sha256\":\"24eaa3eaab7dd29e5077b67f856877bb961905b4e0d4517a90cc54a85db013bf\",\"health\":\"healthy\",\"image_id_sha256\":\"51cb6a10f975e81fea7425bfad4cb862806b14d5603f5a8d84759be8138bc9bb\",\"present\":true,\"running\":true,\"started_at_sha256\":\"b17ac5de59813e482723cf9c332b1a9ebdbda1154768aef2acf1869715e33429\",\"status\":\"running\"},\"worker\":{\"container_id_sha256\":\"7e43d94d02fa5bc9611061e60d86ab0097b09fdd4ed82ed60f8259b61ed15bb6\",\"health\":null,\"image_id_sha256\":\"e30edc34281839f786af87a82db366fc0d798c48a6842bf6abf7e4dde67daa61\",\"present\":true,\"running\":true,\"started_at_sha256\":\"6d0a3e9bc9163ba41d3f1e8dc80c524d2ff4af80c9076d9701aaeea3c8b37385\",\"status\":\"running\"}},\"services_exact\":true},\"root\":{\"bytes\":4096,\"exists\":true,\"gid\":0,\"kind\":\"directory\",\"mode\":\"0750\",\"path\":\"/opt/stacks/hbarhub\",\"uid\":0},\"secret_env\":{\"bytes\":465,\"content_read\":false,\"content_returned\":false,\"exists\":true,\"gid\":0,\"kind\":\"regular\",\"mode\":\"0600\",\"path\":\"/opt/stacks/hbarhub/.env\",\"uid\":0},\"source\":{\"bad_hash_count\":0,\"compact_path_set_sha256\":\"245c3f22584759bed02f493855facb68662333953100f036716afffc1f65e83f\",\"exact\":true,\"file_count\":27,\"full_manifest_exact\":true,\"manifest_sha256\":\"f8df79773e1be959331490dcaa24381d81b1ae3ccece686e2f2c6834fdc72822\",\"missing_count\":0,\"non_public_tracked_count\":4,\"path_set_sha256\":\"4879ced73aaa6cbbdf254656206ef166785d1b06e62854b0f46332445a6a3cd9\",\"safe_manifest_exact\":true,\"symlink_count\":0,\"total_bytes\":26067,\"unexpected_kind_count\":0}},\"status\":\"OK\",\"versions\":{\"docker_compose\":\"2.26.1-4\",\"docker_server\":\"26.1.5+dfsg1\"}},\"diagnosis\":\"HBARHUB_PUBLIC_TLS_CERTIFICATE_PLAN_BLOCKED\",\"duration_ms\":154705,\"edge\":{\"command_audit\":[{\"duration_ms\":19,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-server-version\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":7,\"stdout_sha256\":\"ff21e5cfb54b956ea1c5129ae06b4ff0c36f6ef6bf8f942ed2eb20754cdc3032\",\"tool\":\"docker\"},{\"duration_ms\":22,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-npmplus-container-id\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":65,\"stdout_sha256\":\"1f96971dd02f064b3dd237c12df5e0a775cfdfe0beb7ae89d10f117d621efd9a\",\"tool\":\"docker\"},{\"duration_ms\":13,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-npmplus-image\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":40,\"stdout_sha256\":\"32a5ed377794dca6358376702d66e0220c5c7806e00db9032f042cb7d978b2ed\",\"tool\":\"docker\"},{\"duration_ms\":14,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-npmplus-state\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":887,\"stdout_sha256\":\"7f3ac1fbebf04b6acf14623e81e9db879f7a8912fbdf5b56299c521af15d25d2\",\"tool\":\"docker\"},{\"duration_ms\":15,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-npmplus-mounts\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":111,\"stdout_sha256\":\"055df3682d61d7ce0391d335a7948d81cba5de4823c2ed41d8218df8ef62c163\",\"tool\":\"docker\"},{\"duration_ms\":13,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-npmplus-network-mode\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":5,\"stdout_sha256\":\"d329be9e3aea365ba02a318d9392e22abd64076bb7e33eaaacd8b3f29b7f6de8\",\"tool\":\"docker\"},{\"duration_ms\":186,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-npmplus-nginx-test\",\"stderr_bytes\":154,\"stderr_sha256\":\"9cb221b6993277a11765b15bdded4e9b090f1c2a8f5ed573e907ae3b6921f27c\",\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"tool\":\"docker\"},{\"duration_ms\":799,\"output_within_limit\":true,\"rc\":0,\"stage\":\"docker-npmplus-certbot-version\",\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":14,\"stdout_sha256\":\"3995518a280a1b0eb81d1a5109e6207939c1fa75a1fdfc21709c756009aa02fd\",\"tool\":\"docker\"},{\"duration_ms\":77,\"output_within_limit\":true,\"rc\":1,\"stage\":\"docker-npmplus-acme-webroot-stat\",\"stderr_bytes\":68,\"stderr_sha256\":\"cc274d2263556e58eb68b37dd0bf350896eebc810eedb715c83eb33c6c10565e\",\"stdout_bytes\":0,\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"tool\":\"docker\"}],\"command_id\":\"HBARHUB-PUBLIC-TLS-CERTIFICATE-READ-ONLY-PLAN-FIX1-V11-20260803T114516Z\",\"diagnosis\":\"EDGE_PREFLIGHT_EXCEPTION\",\"duration_ms\":153292,\"failure_evidence\":{\"errno\":null,\"message_bytes\":48,\"message_sha256\":\"2857eba4227053506a669b2f920dc73ae871b2eb7715a73df45ebc5d24116902\",\"type\":\"ValueError\"},\"ok\":false,\"private_addresses_included\":false,\"read_only\":true,\"role\":\"edge-vm\",\"schema\":1,\"secret_files_read\":false,\"secrets_included\":false,\"status\":\"FAIL\"},\"failed_plan_evidence\":{\"blockers\":[\"CORE_PREFLIGHT_NOT_READY\"],\"capsule_sha256\":\"a825a4b1e0621884ebb24cbe71ff605b9b363c7c6a8c819cda241c16fdbf1ea1\",\"changes_made\":false,\"command_id\":\"HBARHUB-PUBLIC-PROXY-READ-ONLY-PLAN-V10-20260803T110948Z\",\"core_failed_checks\":[\"source_manifest_exact\"],\"core_full_manifest_sha256\":\"f8df79773e1be959331490dcaa24381d81b1ae3ccece686e2f2c6834fdc72822\",\"diagnosis\":\"HBARHUB_PUBLIC_PROXY_PLAN_BLOCKED\",\"domain_certificate_count\":0,\"domain_proxy_match_count\":0,\"edge_ready\":true,\"gate\":\"BLOCKED\",\"mutation_outcome\":\"NO_MUTATION\",\"next_stage\":\"PUBLIC_PROXY_PLAN_FIX\",\"output_bytes\":21586,\"output_sha256\":\"cbd94430d024278ffe4bee0c6ceee1909a7d1080da000ff6d99286bc5356ef3b\",\"rollback_restored\":null,\"rollback_started\":false,\"runner_document_rc\":1,\"runner_json_sha256\":\"53c1c76981781cbde9770927387ac2114e465a9ff0b6f8a3e0c01870d854021a\",\"runner_rc\":1,\"status\":\"FAIL\"},\"gate\":\"BLOCKED\",\"gitea_changed\":false,\"local_stack_changed\":false,\"mutation_outcome\":\"NO_MUTATION\",\"next_stage\":\"PUBLIC_TLS_CERTIFICATE_PLAN_FIX\",\"parent_evidence\":{\"PLAN_SHA256\":\"7c5e7eed51a9c2de733631c21063714423ac3f4a692549958d4b4807140b6684\",\"capsule_sha256\":\"aaf3f5a4192b58d2775d0f7efef978c3c87de44aab71b59ce37b38a164ab14e9\",\"changes_made\":true,\"command_id\":\"HBARHUB-STANDARD-LOCAL-DEPLOYMENT-APPLY-FIX2-V9-20260803T104154Z\",\"diagnosis\":\"HBARHUB_STANDARD_LOCAL_DEPLOYMENT_APPLIED\",\"gate\":\"READY_FOR_PUBLIC_PROXY_READ_ONLY_PLAN\",\"mutation_outcome\":\"MUTATED\",\"next_stage\":\"PUBLIC_PROXY_READ_ONLY_PLAN\",\"output_bytes\":44167,\"output_sha256\":\"98690d3ba18cfedf9cc7052cb93ffde6ec28fd836bbc7f0af87379cc41496db0\",\"rollback_restored\":null,\"rollback_started\":false,\"runner_document_rc\":0,\"runner_json_sha256\":\"22be6f27ea361a23f1e51cfbc4c00e60483c57dd8d79cea5824e9f1820257435\",\"runner_rc\":0,\"status\":\"OK\"},\"plan\":{\"action\":null,\"apply_scope\":{\"certificate_issuance_external_ca\":true,\"certificate_name_max\":1,\"container_restart_forbidden\":true,\"core_app_changes\":false,\"dns_changes\":false,\"gitea_changes\":false,\"npmplus_reload_forbidden\":true,\"private_addresses_in_output\":false,\"proxy_config_changes\":false},\"certificate_lock\":{\"account_count\":null,\"account_path_set_sha256\":null,\"candidate_paths_absent\":null,\"cert_name\":null,\"cert_name_sha256\":null,\"certbot_config_stat_sha256\":null,\"existing_domain_certificate_count\":null,\"strategy\":null,\"webroot_stat_sha256\":null},\"core_lock\":{\"container_identity_set_sha256\":\"7aa40be398ee8326cec37bfde6e994c65f45ae88e49c00776145e2c61fc586ac\",\"health_live_sha256\":\"ded205e4a440a59a212dd2645e5b3b8f72751a03b50d5f134ee62154ffb0009a\",\"health_ready_sha256\":\"0a16d6323a495f863eb73fecfd33846560d57b7073572824175542db46e17db0\",\"source_manifest_sha256\":\"f8df79773e1be959331490dcaa24381d81b1ae3ccece686e2f2c6834fdc72822\",\"upstream_address_sha256\":\"3eb2319e39eac307b3c7bd11f67663c0a0c814fd603989f5965083f9d1c80fb0\"},\"domain\":\"hbarhub.ru\",\"edge_lock\":{\"domain_match_count\":-1,\"nginx_test_stderr_sha256\":null,\"npmplus_container_id_sha256\":null,\"npmplus_image_sha256\":null,\"npmplus_started_at_sha256\":null,\"proxy_tree_sha256\":null},\"failed_plan_evidence\":{\"blockers\":[\"CORE_PREFLIGHT_NOT_READY\"],\"capsule_sha256\":\"a825a4b1e0621884ebb24cbe71ff605b9b363c7c6a8c819cda241c16fdbf1ea1\",\"changes_made\":false,\"command_id\":\"HBARHUB-PUBLIC-PROXY-READ-ONLY-PLAN-V10-20260803T110948Z\",\"core_failed_checks\":[\"source_manifest_exact\"],\"core_full_manifest_sha256\":\"f8df79773e1be959331490dcaa24381d81b1ae3ccece686e2f2c6834fdc72822\",\"diagnosis\":\"HBARHUB_PUBLIC_PROXY_PLAN_BLOCKED\",\"domain_certificate_count\":0,\"domain_proxy_match_count\":0,\"edge_ready\":true,\"gate\":\"BLOCKED\",\"mutation_outcome\":\"NO_MUTATION\",\"next_stage\":\"PUBLIC_PROXY_PLAN_FIX\",\"output_bytes\":21586,\"output_sha256\":\"cbd94430d024278ffe4bee0c6ceee1909a7d1080da000ff6d99286bc5356ef3b\",\"rollback_restored\":null,\"rollback_started\":false,\"runner_document_rc\":1,\"runner_json_sha256\":\"53c1c76981781cbde9770927387ac2114e465a9ff0b6f8a3e0c01870d854021a\",\"runner_rc\":1,\"status\":\"FAIL\"},\"operation\":\"HBARHUB_PUBLIC_TLS_CERTIFICATE_APPLY\",\"parent_evidence\":{\"PLAN_SHA256\":\"7c5e7eed51a9c2de733631c21063714423ac3f4a692549958d4b4807140b6684\",\"capsule_sha256\":\"aaf3f5a4192b58d2775d0f7efef978c3c87de44aab71b59ce37b38a164ab14e9\",\"changes_made\":true,\"command_id\":\"HBARHUB-STANDARD-LOCAL-DEPLOYMENT-APPLY-FIX2-V9-20260803T104154Z\",\"diagnosis\":\"HBARHUB_STANDARD_LOCAL_DEPLOYMENT_APPLIED\",\"gate\":\"READY_FOR_PUBLIC_PROXY_READ_ONLY_PLAN\",\"mutation_outcome\":\"MUTATED\",\"next_stage\":\"PUBLIC_PROXY_READ_ONLY_PLAN\",\"output_bytes\":44167,\"output_sha256\":\"98690d3ba18cfedf9cc7052cb93ffde6ec28fd836bbc7f0af87379cc41496db0\",\"rollback_restored\":null,\"rollback_started\":false,\"runner_document_rc\":0,\"runner_json_sha256\":\"22be6f27ea361a23f1e51cfbc4c00e60483c57dd8d79cea5824e9f1820257435\",\"runner_rc\":0,\"status\":\"OK\"},\"postconditions\":[\"npmplus container identity and StartedAt remain unchanged\",\"certificate covers hbarhub.ru and has at least 72 hours validity\",\"certificate private key exists but its content is never read\",\"renewal configuration exists for only the selected certificate name\",\"local HBAR Hub source, containers and health remain exact\"],\"public_lock\":{\"dns_address_set_sha256\":\"c76b6b888b15b83623f3fc36fe6617dc24550f6b09b0d8f73c92ea22016e3a13\",\"dns_record_count\":1,\"http_redirects_to_expected_https\":true,\"http_status\":301},\"rollback\":{\"container_restart_forbidden\":true,\"core_stack_untouched\":true,\"delete_only_the_selected_candidate_certificate\":true,\"proxy_config_untouched\":true},\"schema\":1},\"private_addresses_included\":false,\"production_site_changed\":false,\"public\":{\"addresses_returned\":false,\"dns\":{\"address_set_sha256\":\"c76b6b888b15b83623f3fc36fe6617dc24550f6b09b0d8f73c92ea22016e3a13\",\"addresses_returned\":false,\"families\":[\"IPv4\"],\"record_count\":1,\"resolved\":true},\"http\":{\"body_bytes\":140,\"body_sha256\":\"367cbd2bd4bb3ccdbff9b81ad94e4c1d9c66ee80e9df3ffcd7080f2000cbac6a\",\"completed\":true,\"header_values_returned\":false,\"redirects_to_expected_https\":true,\"server_header_sha256\":null,\"status\":301},\"https\":{\"unverified_fallback\":{\"body_bytes\":2056,\"body_sha256\":\"808dfeea0cf787d85e03645e62ab18b97ab8138924420966413edcfe22ef4879\",\"certificate_sha256\":null,\"certificate_verified\":false,\"completed\":true,\"header_values_returned\":false,\"server_header_sha256\":null,\"status\":200},\"verified\":{\"certificate_verified\":false,\"completed\":false,\"error\":{\"errno\":1,\"message_bytes\":122,\"message_sha256\":\"4cbab0545ff989953a0087607b1db17b4ca88e632720bc889ffc6ba4d6babc5f\",\"type\":\"SSLCertVerificationError\"}}}},\"public_proxy_changed\":false,\"rc\":1,\"read_only\":true,\"ready_for_apply\":false,\"rollback_restored\":null,\"rollback_started\":false,\"sanitized\":true,\"schema\":1,\"secret_files_read\":false,\"secrets_included\":false,\"status\":\"FAIL\",\"transport\":{\"core\":{\"config_view\":\"service-view\",\"mode\":\"DIRECT_QGA\",\"private_addresses_returned\":false,\"qga_step_count\":7,\"qga_step_set_sha256\":\"097a32612738ab29329bb956f4d7318ffe3d0394440c9cef6bcb48c6cc4edd44\",\"remote_rc\":0,\"remote_stdout_bytes\":10181,\"remote_stdout_sha256\":\"1a20127e17802f71107079592ef31f155436290a8e5da739ed13bc1f2a2141b5\",\"socket_view\":\"service-view\",\"vm_name\":\"core-apps\",\"vmid\":170},\"edge\":{\"batch_mode\":true,\"config_view\":\"service-view\",\"duration_ms\":154142,\"mode\":\"STRICT_SSH_TO_OWNING_NODE_THEN_DIRECT_QGA\",\"node\":\"pve03\",\"private_addresses_returned\":false,\"qga_step_count\":313,\"qga_step_set_sha256\":\"9f94bb20ffd4425529963b2854ab6ea3f7b217605064626d00b5e6cc590a6479\",\"remote_argv_shell_quoted\":true,\"remote_rc\":1,\"remote_stdout_bytes\":3237,\"remote_stdout_sha256\":\"8ee9cf11a8a3ca8951b6d3d47a4ec497ed02d65e0f1aa1fbae9050a64562c6b4\",\"socket_view\":\"service-view\",\"ssh_rc\":0,\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":4742,\"stdout_sha256\":\"07d172bcc20d3fc5986d4a065031b4d27cd2708a3e99a5a86e1d1c13eb9faa46\",\"strict_host_key_checking\":true,\"vm_name\":\"edge-vm\",\"vmid\":130}}}\n" -} +{"schema_version":1,"channel":"homelab-runtime","command_id":"CONTEXT-AUTO-20260803T121701Z","status":"OK","rc":0,"host":"pve01","mode":"read-only","component":"cluster-context","started_at_utc":"2026-08-03T12:17:01Z","finished_at_utc":"2026-08-03T12:17:02Z","reference_register_checked":true,"reference_sha256":"5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e","error_register_checked":true,"error_register_sha256":"24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83","changes_made":false,"sanitized":true,"secrets_included":false,"private_addresses_included":false,"output":"AUTOMATIC_CLUSTER_CONTEXT_REFRESH=OK"} diff --git a/runtime/latest.txt b/runtime/latest.txt index 5e68b18..cb0bacd 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,34 +1,164 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=HBARHUB-PUBLIC-TLS-CERTIFICATE-READ-ONLY-PLAN-FIX1-V11-20260803T114516Z -STATUS=FAIL -RC=1 +COMMAND_ID=CONTEXT-AUTO-[PRIVATE_IP]701Z +STATUS=OK +RC=0 HOST=pve01 -MODE=verify -COMPONENT=hbarhub-public-tls-certificate-read-only-plan-fix1-v11 -REFERENCE_REGISTER_CHECK=OK -REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e -ERROR_REGISTER_CHECK=OK -ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 -COMMAND_SHA256=5a4a13b381fea78ed1d1db414fbc07d831414572257e41fc7e4763a83ef43f50 -DUPLICATE_FAILED_COMMAND_BLOCKED=false -EXECUTION_STARTED=true -CHANGE_DECLARED=false -RESULT_CONTRACT_VALID=true -RESULT_CONTRACT_STATUS=NOT_APPLICABLE -RESULT_CONTRACT_ERROR=NONE -COMMAND_RC=1 -CHANGES_MADE=false -ROLLBACK_STARTED=false -ROLLBACK_RESTORED=null -MUTATION_OUTCOME=NO_MUTATION -SANITIZED=yes -SECRETS_INCLUDED=no -PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=820f700946b606445fcd6c8434cb1eec184bfd0a284719b16b6e38a62f1c284f -SANITIZED_OUTPUT_SHA256=820f700946b606445fcd6c8434cb1eec184bfd0a284719b16b6e38a62f1c284f +COMPONENT=cluster-context +REFERENCE_SHA[PRIVATE_IP]f8edc75fcf[PRIVATE_IP]c[PRIVATE_IP]cc112ceccb6cf[PRIVATE_IP]a4deb8e +ERROR_REGISTER_SHA[PRIVATE_IP]c7fa[PRIVATE_IP]583c4aefac[PRIVATE_IP]1736ed[PRIVATE_IP]ab83 OUTPUT_BEGIN -HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HBARHUB-PUBLIC-TLS-CERTIFICATE-READ-ONLY-PLAN-FIX1-V11-20260803T114516Z","mutation_outcome":"NO_MUTATION","rollback_restored":null,"rollback_started":false,"status":"FAIL","version":1} -{"PLAN_SHA256":null,"action":null,"blockers":["ACME_WEBROOT_NOT_READY","CERTBOT_ACCOUNT_MISSING","CERTBOT_CONFIG_NOT_READY","CERTBOT_NOT_AVAILABLE","CERTBOT_ROOT_NOT_READY","EDGE_PREFLIGHT_NOT_READY","EDGE_PROXY_MATCH_EVIDENCE_INVALID"],"certificate_ready":false,"changes_made":false,"command_id":"HBARHUB-PUBLIC-TLS-CERTIFICATE-READ-ONLY-PLAN-FIX1-V11-20260803T114516Z","control_plane_error":null,"core":{"checks":{"compose_services_exact":true,"health_live_exact":true,"health_ready_exact":true,"hostname_exact":true,"listener_scan_complete":true,"port_8040_listening":true,"private_upstream_address_found":true,"secret_env_metadata_exact":true,"source_full_v10_manifest_lock_exact":true,"source_manifest_exact":true,"source_safe_manifest_exact":true,"stack_root_exact":true},"command_audit":[{"duration_ms":14,"output_within_limit":true,"rc":0,"stage":"docker-server-version","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":13,"stdout_sha256":"8484e7b831ba500ccf015246dc0a7b3f98de3c11519b347437ff8e91db018257","tool":"docker"},{"duration_ms":25,"output_within_limit":true,"rc":0,"stage":"docker-compose-version","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":9,"stdout_sha256":"9a98539f27de5f629edafed2968b89d8ca06b9b39c9469ed2c22f3ca265bb6f9","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-project-container-ids","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":325,"stdout_sha256":"6d84f472fb79c807adb530b9f79ebb0749ac975622d7555824b4b917eaca03a2","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-container-labels-1","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":632,"stdout_sha256":"e24bd90ac8059559671f7a9d9a1e7cd67e8d0254b743150a96ab6d583d268bda","tool":"docker"},{"duration_ms":6,"output_within_limit":true,"rc":0,"stage":"docker-container-state-1","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":220,"stdout_sha256":"5d144158704e223dabade0d8cc9c1c6f8eec7ffb1e45f254566ef15328a06abc","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-container-image-1","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":72,"stdout_sha256":"8dc69b48fdcbfe88fd010b96687d11cbfad16283ca2289e5ccfdc5a097169fd7","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-container-labels-2","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":626,"stdout_sha256":"f52c80f2d8a20310a02c3d8b72270f36881da04571fc2d919f3c230f1fcc46a6","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-container-state-2","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":859,"stdout_sha256":"b187d4bb2f63edbb22a3f7bb1d0ad1ea9745a3f0bb22676b4baeed696bb5b900","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-container-image-2","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":72,"stdout_sha256":"f82edaeefb4ec42a765d89b068fdccff8882a590420e3e92fbe26ebcf88b189d","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-container-labels-3","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":573,"stdout_sha256":"9a91fd70030125f69a3231f99ef1797fc1c418aaa69b557107a9054cf7d39aad","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-container-state-3","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":1111,"stdout_sha256":"c03f4bf42d6814d4b896f9ca91ca4f6a1279c627c018a8696f0c466a67aaa388","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-container-image-3","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":72,"stdout_sha256":"38f8a7799d11034cea98a143e31b3bb9940cb1e410bb4e8c89b311392ef6ca10","tool":"docker"},{"duration_ms":11,"output_within_limit":true,"rc":0,"stage":"docker-container-labels-4","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":629,"stdout_sha256":"fcfbcad44f416b563582a6cc7f900ae05924d5e873e7cb170aecaa688b582b12","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-container-state-4","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":219,"stdout_sha256":"de9980819ca69651087e201c2905b9a170f9d99c4abd401a28d53c35c01f7b70","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-container-image-4","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":72,"stdout_sha256":"f352091620dd4be72728388faa07744a154f38746d6bd34f1b49c0870f1894c0","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-container-labels-5","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":570,"stdout_sha256":"46c3e5912fc93d8ac36f63b917c5cdb5e1bfa0cab4d668ae454055eb81a47bcd","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-container-state-5","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":890,"stdout_sha256":"a0fd33d6bd25af57a2482d86516b2550e44ac3d16bbc2cfaf1b47bb9ada58b8f","tool":"docker"},{"duration_ms":7,"output_within_limit":true,"rc":0,"stage":"docker-container-image-5","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":72,"stdout_sha256":"df127b89c24dcea8fd7e3524c02ef2f966fef765f7214157e321fe588b4f8bcd","tool":"docker"},{"duration_ms":8,"output_within_limit":true,"rc":0,"stage":"docker-web-published-port","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":23,"stdout_sha256":"1e0e0006067490d2cb2d336666406885edec5084b5c9af4908bb80f92557cc62","tool":"docker"}],"command_id":"HBARHUB-PUBLIC-TLS-CERTIFICATE-READ-ONLY-PLAN-FIX1-V11-20260803T114516Z","contains_private_dispatch_material":false,"diagnosis":"HBARHUB_LOCAL_STACK_EXACT_AND_HEALTHY","duration_ms":177,"failed_checks":[],"health":{"/health/live":{"bytes":42,"exact":true,"path":"/health/live","sha256":"ded205e4a440a59a212dd2645e5b3b8f72751a03b50d5f134ee62154ffb0009a","status":200},"/health/ready":{"bytes":65,"exact":true,"path":"/health/ready","sha256":"0a16d6323a495f863eb73fecfd33846560d57b7073572824175542db46e17db0","status":200}},"hostname":{"matches":true,"short":"core-apps"},"listener":{"addresses_returned":false,"errors":[],"kernel_tables_read":2,"listener_entry_count":2,"listener_present":true,"port":8040},"network":{"address_returned_in_final_report":false,"default_route_interface_sha256":"9c32a8c7e59e7935b1e5d3eea04ed8e08c41c1d3da88b98a8ad15d38cfc55b00","upstream_address_sha256":"3eb2319e39eac307b3c7bd11f67663c0a0c814fd603989f5965083f9d1c80fb0"},"ok":true,"read_only":true,"role":"core-apps","schema":1,"secret_file_read":false,"secrets_included":false,"stack":{"containers":{"all_running":true,"container_count":5,"exact":true,"identity_set_sha256":"7aa40be398ee8326cec37bfde6e994c65f45ae88e49c00776145e2c61fc586ac","published_port":{"address_material_returned":false,"checked":true,"entry_count":2,"port_8040_present":true},"required_health_healthy":true,"services":{"postgres":{"container_id_sha256":"1c6c1869bc144ef114d1a18bbc2384d451d5c3e1b4b9b142b79599ab621fa69a","health":"healthy","image_id_sha256":"018ecdbb7d3b74e7cf885054d6999fee2a87d1b7dedd81664888250b480c8fa5","present":true,"running":true,"started_at_sha256":"4a46ad5779bbf3e2a611c06dbbdd22e6a4cd97d03fa421852869e92842fa19ec","status":"running"},"redis":{"container_id_sha256":"7f717a5e2c030eb8437b96f5929b979e7d2284b1c00d9b002bc0c954ad2a5a36","health":"healthy","image_id_sha256":"9ed2eadf21d42de86a4cf95421113de250435a35e9361c28ff766bba8d867b31","present":true,"running":true,"started_at_sha256":"5d3dd4fac7be56d0f4943efdd21b25f22725d276f62d64893a69e24bca765c22","status":"running"},"scheduler":{"container_id_sha256":"ba2069474967a75583f2858954c70bc387e7fc1694f40f1c43826253f17865ea","health":null,"image_id_sha256":"5fd1ceacc1e68ca5e4ee0f02bdd35a7d59344f8b8f499c6be85b90850685222a","present":true,"running":true,"started_at_sha256":"4b73a358dc689b166526d10630d196056cccc5931b1ddead4ac637793c9e02d7","status":"running"},"web":{"container_id_sha256":"24eaa3eaab7dd29e5077b67f856877bb961905b4e0d4517a90cc54a85db013bf","health":"healthy","image_id_sha256":"51cb6a10f975e81fea7425bfad4cb862806b14d5603f5a8d84759be8138bc9bb","present":true,"running":true,"started_at_sha256":"b17ac5de59813e482723cf9c332b1a9ebdbda1154768aef2acf1869715e33429","status":"running"},"worker":{"container_id_sha256":"7e43d94d02fa5bc9611061e60d86ab0097b09fdd4ed82ed60f8259b61ed15bb6","health":null,"image_id_sha256":"e30edc34281839f786af87a82db366fc0d798c48a6842bf6abf7e4dde67daa61","present":true,"running":true,"started_at_sha256":"6d0a3e9bc9163ba41d3f1e8dc80c524d2ff4af80c9076d9701aaeea3c8b37385","status":"running"}},"services_exact":true},"root":{"bytes":4096,"exists":true,"gid":0,"kind":"directory","mode":"0750","path":"/opt/stacks/hbarhub","uid":0},"secret_env":{"bytes":465,"content_read":false,"content_returned":false,"exists":true,"gid":0,"kind":"regular","mode":"0600","path":"/opt/stacks/hbarhub/.env","uid":0},"source":{"bad_hash_count":0,"compact_path_set_sha256":"245c3f22584759bed02f493855facb68662333953100f036716afffc1f65e83f","exact":true,"file_count":27,"full_manifest_exact":true,"manifest_sha256":"f8df79773e1be959331490dcaa24381d81b1ae3ccece686e2f2c6834fdc72822","missing_count":0,"non_public_tracked_count":4,"path_set_sha256":"4879ced73aaa6cbbdf254656206ef166785d1b06e62854b0f46332445a6a3cd9","safe_manifest_exact":true,"symlink_count":0,"total_bytes":26067,"unexpected_kind_count":0}},"status":"OK","versions":{"docker_compose":"2.26.1-4","docker_server":"26.1.5+dfsg1"}},"diagnosis":"HBARHUB_PUBLIC_TLS_CERTIFICATE_PLAN_BLOCKED","duration_ms":154705,"edge":{"command_audit":[{"duration_ms":19,"output_within_limit":true,"rc":0,"stage":"docker-server-version","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":7,"stdout_sha256":"ff21e5cfb54b956ea1c5129ae06b4ff0c36f6ef6bf8f942ed2eb20754cdc3032","tool":"docker"},{"duration_ms":22,"output_within_limit":true,"rc":0,"stage":"docker-npmplus-container-id","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":65,"stdout_sha256":"1f96971dd02f064b3dd237c12df5e0a775cfdfe0beb7ae89d10f117d621efd9a","tool":"docker"},{"duration_ms":13,"output_within_limit":true,"rc":0,"stage":"docker-npmplus-image","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":40,"stdout_sha256":"32a5ed377794dca6358376702d66e0220c5c7806e00db9032f042cb7d978b2ed","tool":"docker"},{"duration_ms":14,"output_within_limit":true,"rc":0,"stage":"docker-npmplus-state","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":887,"stdout_sha256":"7f3ac1fbebf04b6acf14623e81e9db879f7a8912fbdf5b56299c521af15d25d2","tool":"docker"},{"duration_ms":15,"output_within_limit":true,"rc":0,"stage":"docker-npmplus-mounts","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":111,"stdout_sha256":"055df3682d61d7ce0391d335a7948d81cba5de4823c2ed41d8218df8ef62c163","tool":"docker"},{"duration_ms":13,"output_within_limit":true,"rc":0,"stage":"docker-npmplus-network-mode","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":5,"stdout_sha256":"d329be9e3aea365ba02a318d9392e22abd64076bb7e33eaaacd8b3f29b7f6de8","tool":"docker"},{"duration_ms":186,"output_within_limit":true,"rc":0,"stage":"docker-npmplus-nginx-test","stderr_bytes":154,"stderr_sha256":"9cb221b6993277a11765b15bdded4e9b090f1c2a8f5ed573e907ae3b6921f27c","stdout_bytes":0,"stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","tool":"docker"},{"duration_ms":799,"output_within_limit":true,"rc":0,"stage":"docker-npmplus-certbot-version","stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":14,"stdout_sha256":"3995518a280a1b0eb81d1a5109e6207939c1fa75a1fdfc21709c756009aa02fd","tool":"docker"},{"duration_ms":77,"output_within_limit":true,"rc":1,"stage":"docker-npmplus-acme-webroot-stat","stderr_bytes":68,"stderr_sha256":"cc274d2263556e58eb68b37dd0bf350896eebc810eedb715c83eb33c6c10565e","stdout_bytes":0,"stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","tool":"docker"}],"command_id":"HBARHUB-PUBLIC-TLS-CERTIFICATE-READ-ONLY-PLAN-FIX1-V11-20260803T114516Z","diagnosis":"EDGE_PREFLIGHT_EXCEPTION","duration_ms":153292,"failure_evidence":{"errno":null,"message_bytes":48,"message_sha256":"2857eba4227053506a669b2f920dc73ae871b2eb7715a73df45ebc5d24116902","type":"ValueError"},"ok":false,"private_addresses_included":false,"read_only":true,"role":"edge-vm","schema":1,"secret_files_read":false,"secrets_included":false,"status":"FAIL"},"failed_plan_evidence":{"blockers":["CORE_PREFLIGHT_NOT_READY"],"capsule_sha256":"a825a4b1e0621884ebb24cbe71ff605b9b363c7c6a8c819cda241c16fdbf1ea1","changes_made":false,"command_id":"HBARHUB-PUBLIC-PROXY-READ-ONLY-PLAN-V10-20260803T110948Z","core_failed_checks":["source_manifest_exact"],"core_full_manifest_sha256":"f8df79773e1be959331490dcaa24381d81b1ae3ccece686e2f2c6834fdc72822","diagnosis":"HBARHUB_PUBLIC_PROXY_PLAN_BLOCKED","domain_certificate_count":0,"domain_proxy_match_count":0,"edge_ready":true,"gate":"BLOCKED","mutation_outcome":"NO_MUTATION","next_stage":"PUBLIC_PROXY_PLAN_FIX","output_bytes":21586,"output_sha256":"cbd94430d024278ffe4bee0c6ceee1909a7d1080da000ff6d99286bc5356ef3b","rollback_restored":null,"rollback_started":false,"runner_document_rc":1,"runner_json_sha256":"53c1c76981781cbde9770927387ac2114e465a9ff0b6f8a3e0c01870d854021a","runner_rc":1,"status":"FAIL"},"gate":"BLOCKED","gitea_changed":false,"local_stack_changed":false,"mutation_outcome":"NO_MUTATION","next_stage":"PUBLIC_TLS_CERTIFICATE_PLAN_FIX","parent_evidence":{"PLAN_SHA256":"7c5e7eed51a9c2de733631c21063714423ac3f4a692549958d4b4807140b6684","capsule_sha256":"aaf3f5a4192b58d2775d0f7efef978c3c87de44aab71b59ce37b38a164ab14e9","changes_made":true,"command_id":"HBARHUB-STANDARD-LOCAL-DEPLOYMENT-APPLY-FIX2-V9-20260803T104154Z","diagnosis":"HBARHUB_STANDARD_LOCAL_DEPLOYMENT_APPLIED","gate":"READY_FOR_PUBLIC_PROXY_READ_ONLY_PLAN","mutation_outcome":"MUTATED","next_stage":"PUBLIC_PROXY_READ_ONLY_PLAN","output_bytes":44167,"output_sha256":"98690d3ba18cfedf9cc7052cb93ffde6ec28fd836bbc7f0af87379cc41496db0","rollback_restored":null,"rollback_started":false,"runner_document_rc":0,"runner_json_sha256":"22be6f27ea361a23f1e51cfbc4c00e60483c57dd8d79cea5824e9f1820257435","runner_rc":0,"status":"OK"},"plan":{"action":null,"apply_scope":{"certificate_issuance_external_ca":true,"certificate_name_max":1,"container_restart_forbidden":true,"core_app_changes":false,"dns_changes":false,"gitea_changes":false,"npmplus_reload_forbidden":true,"private_addresses_in_output":false,"proxy_config_changes":false},"certificate_lock":{"account_count":null,"account_path_set_sha256":null,"candidate_paths_absent":null,"cert_name":null,"cert_name_sha256":null,"certbot_config_stat_sha256":null,"existing_domain_certificate_count":null,"strategy":null,"webroot_stat_sha256":null},"core_lock":{"container_identity_set_sha256":"7aa40be398ee8326cec37bfde6e994c65f45ae88e49c00776145e2c61fc586ac","health_live_sha256":"ded205e4a440a59a212dd2645e5b3b8f72751a03b50d5f134ee62154ffb0009a","health_ready_sha256":"0a16d6323a495f863eb73fecfd33846560d57b7073572824175542db46e17db0","source_manifest_sha256":"f8df79773e1be959331490dcaa24381d81b1ae3ccece686e2f2c6834fdc72822","upstream_address_sha256":"3eb2319e39eac307b3c7bd11f67663c0a0c814fd603989f5965083f9d1c80fb0"},"domain":"hbarhub.ru","edge_lock":{"domain_match_count":-1,"nginx_test_stderr_sha256":null,"npmplus_container_id_sha256":null,"npmplus_image_sha256":null,"npmplus_started_at_sha256":null,"proxy_tree_sha256":null},"failed_plan_evidence":{"blockers":["CORE_PREFLIGHT_NOT_READY"],"capsule_sha256":"a825a4b1e0621884ebb24cbe71ff605b9b363c7c6a8c819cda241c16fdbf1ea1","changes_made":false,"command_id":"HBARHUB-PUBLIC-PROXY-READ-ONLY-PLAN-V10-20260803T110948Z","core_failed_checks":["source_manifest_exact"],"core_full_manifest_sha256":"f8df79773e1be959331490dcaa24381d81b1ae3ccece686e2f2c6834fdc72822","diagnosis":"HBARHUB_PUBLIC_PROXY_PLAN_BLOCKED","domain_certificate_count":0,"domain_proxy_match_count":0,"edge_ready":true,"gate":"BLOCKED","mutation_outcome":"NO_MUTATION","next_stage":"PUBLIC_PROXY_PLAN_FIX","output_bytes":21586,"output_sha256":"cbd94430d024278ffe4bee0c6ceee1909a7d1080da000ff6d99286bc5356ef3b","rollback_restored":null,"rollback_started":false,"runner_document_rc":1,"runner_json_sha256":"53c1c76981781cbde9770927387ac2114e465a9ff0b6f8a3e0c01870d854021a","runner_rc":1,"status":"FAIL"},"operation":"HBARHUB_PUBLIC_TLS_CERTIFICATE_APPLY","parent_evidence":{"PLAN_SHA256":"7c5e7eed51a9c2de733631c21063714423ac3f4a692549958d4b4807140b6684","capsule_sha256":"aaf3f5a4192b58d2775d0f7efef978c3c87de44aab71b59ce37b38a164ab14e9","changes_made":true,"command_id":"HBARHUB-STANDARD-LOCAL-DEPLOYMENT-APPLY-FIX2-V9-20260803T104154Z","diagnosis":"HBARHUB_STANDARD_LOCAL_DEPLOYMENT_APPLIED","gate":"READY_FOR_PUBLIC_PROXY_READ_ONLY_PLAN","mutation_outcome":"MUTATED","next_stage":"PUBLIC_PROXY_READ_ONLY_PLAN","output_bytes":44167,"output_sha256":"98690d3ba18cfedf9cc7052cb93ffde6ec28fd836bbc7f0af87379cc41496db0","rollback_restored":null,"rollback_started":false,"runner_document_rc":0,"runner_json_sha256":"22be6f27ea361a23f1e51cfbc4c00e60483c57dd8d79cea5824e9f1820257435","runner_rc":0,"status":"OK"},"postconditions":["npmplus container identity and StartedAt remain unchanged","certificate covers hbarhub.ru and has at least 72 hours validity","certificate private key exists but its content is never read","renewal configuration exists for only the selected certificate name","local HBAR Hub source, containers and health remain exact"],"public_lock":{"dns_address_set_sha256":"c76b6b888b15b83623f3fc36fe6617dc24550f6b09b0d8f73c92ea22016e3a13","dns_record_count":1,"http_redirects_to_expected_https":true,"http_status":301},"rollback":{"container_restart_forbidden":true,"core_stack_untouched":true,"delete_only_the_selected_candidate_certificate":true,"proxy_config_untouched":true},"schema":1},"private_addresses_included":false,"production_site_changed":false,"public":{"addresses_returned":false,"dns":{"address_set_sha256":"c76b6b888b15b83623f3fc36fe6617dc24550f6b09b0d8f73c92ea22016e3a13","addresses_returned":false,"families":["IPv4"],"record_count":1,"resolved":true},"http":{"body_bytes":140,"body_sha256":"367cbd2bd4bb3ccdbff9b81ad94e4c1d9c66ee80e9df3ffcd7080f2000cbac6a","completed":true,"header_values_returned":false,"redirects_to_expected_https":true,"server_header_sha256":null,"status":301},"https":{"unverified_fallback":{"body_bytes":2056,"body_sha256":"808dfeea0cf787d85e03645e62ab18b97ab8138924420966413edcfe22ef4879","certificate_sha256":null,"certificate_verified":false,"completed":true,"header_values_returned":false,"server_header_sha256":null,"status":200},"verified":{"certificate_verified":false,"completed":false,"error":{"errno":1,"message_bytes":122,"message_sha256":"4cbab0545ff989953a0087607b1db17b4ca88e632720bc889ffc6ba4d6babc5f","type":"SSLCertVerificationError"}}}},"public_proxy_changed":false,"rc":1,"read_only":true,"ready_for_apply":false,"rollback_restored":null,"rollback_started":false,"sanitized":true,"schema":1,"secret_files_read":false,"secrets_included":false,"status":"FAIL","transport":{"core":{"config_view":"service-view","mode":"DIRECT_QGA","private_addresses_returned":false,"qga_step_count":7,"qga_step_set_sha256":"097a32612738ab29329bb956f4d7318ffe3d0394440c9cef6bcb48c6cc4edd44","remote_rc":0,"remote_stdout_bytes":10181,"remote_stdout_sha256":"1a20127e17802f71107079592ef31f155436290a8e5da739ed13bc1f2a2141b5","socket_view":"service-view","vm_name":"core-apps","vmid":170},"edge":{"batch_mode":true,"config_view":"service-view","duration_ms":154142,"mode":"STRICT_SSH_TO_OWNING_NODE_THEN_DIRECT_QGA","node":"pve03","private_addresses_returned":false,"qga_step_count":313,"qga_step_set_sha256":"9f94bb20ffd4425529963b2854ab6ea3f7b217605064626d00b5e6cc590a6479","remote_argv_shell_quoted":true,"remote_rc":1,"remote_stdout_bytes":3237,"remote_stdout_sha256":"8ee9cf11a8a3ca8951b6d3d47a4ec497ed02d65e0f1aa1fbae9050a64562c6b4","socket_view":"service-view","ssh_rc":0,"stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":4742,"stdout_sha256":"07d172bcc20d3fc5986d4a065031b4d27cd2708a3e99a5a86e1d1c13eb9faa46","strict_host_key_checking":true,"vm_name":"edge-vm","vmid":130}}} +GENERATED_AT_UTC=[PRIVATE_IP]T12:17:01Z +Cluster information +------------------- +Name: homelab +Config Version: 3 +Transport: knet +Secure auth: on +Quorum information +------------------ +Date: Mon Aug [PRIVATE_IP] 2026 +Quorum provider: corosync_votequorum +Nodes: 3 +Node ID: [PRIVATE_IP] +Ring ID: 1.db +Quorate: Yes + +Votequorum information +---------------------- +Expected votes: 3 +Highest expected: 3 +Total votes: 3 +Quorum: 2 +Flags: Quorate + +Membership information +---------------------- + Nodeid Votes Name +[PRIVATE_IP] [PRIVATE_IP].11 (local) +[PRIVATE_IP] [PRIVATE_IP].13 +[PRIVATE_IP] [PRIVATE_IP].12 + +Membership information +---------------------- + Nodeid Votes Name + 1 1 pve01 (local) + 2 1 pve03 + 3 1 pve02 +[{"cpu":[PRIVATE_IP]191e-05,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/110","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":522600,"vmid":110},{"cpu":[PRIVATE_IP]801075,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/111","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":522684,"vmid":111},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/112","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":522645,"vmid":112},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/113","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":522688,"vmid":113},{"cpu":[PRIVATE_IP]36009,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"edge-vm","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":522629,"vmid":130},{"cpu":[PRIVATE_IP]69816,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/150","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"nextcloud","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":522597,"vmid":150},{"cpu":[PRIVATE_IP]775453,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/160","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"forum-prod","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":522680,"vmid":160},{"cpu":[PRIVATE_IP]00144,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/170","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"core-apps","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":522593,"vmid":170},{"cpu":[PRIVATE_IP]76795,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/171","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"monitoring","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":522590,"vmid":171},{"cpu":[PRIVATE_IP]12877,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/180","maxcpu":2,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"cluster-admin","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":522678,"vmid":180},{"cpu":[PRIVATE_IP]12667,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/190","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"homelab-ops-worker","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":522625,"vmid":190},{"cpu":0,"disk":0,"diskread":0,"diskwrite":0,"id":"qemu/9130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":0,"memhost":0,"name":"edge-cold-standby","netin":0,"netout":0,"node":"pve02","status":"stopped","template":0,"type":"qemu","uptime":0,"vmid":9130},{"cgroup-mode":2,"cpu":[PRIVATE_IP]94215,"disk":[PRIVATE_IP],"id":"node/pve01","level":"","maxcpu":24,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve01","status":"online","type":"node","uptime":522702},{"cgroup-mode":2,"cpu":[PRIVATE_IP]35886,"disk":[PRIVATE_IP],"id":"node/pve02","level":"","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve02","status":"online","type":"node","uptime":522721},{"cgroup-mode":2,"cpu":[PRIVATE_IP]62371,"disk":[PRIVATE_IP],"id":"node/pve03","level":"","maxcpu":8,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve03","status":"online","type":"node","uptime":522647},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve01/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve02/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve03/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"iso,import,backup,vztmpl","disk":[PRIVATE_IP],"id":"storage/pve01/local","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"iso,import,backup,vztmpl","disk":[PRIVATE_IP],"id":"storage/pve02/local","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"iso,import,backup,vztmpl","disk":[PRIVATE_IP],"id":"storage/pve03/local","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"id":"network/pve01/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve01","status":"ok","type":"network"},{"id":"network/pve02/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve02","status":"ok","type":"network"},{"id":"network/pve03/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve03","status":"ok","type":"network"}] +Name Type Status Total (KiB) Used (KiB) Available (KiB) % +local dir active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 13.99% +local-lvm lvmthin active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 27.34% + UNIT LOAD ACTIVE SUB DESCRIPTION +● homelab-backup-matrix-refresh.service loaded failed failed Generate unified homelab backup matrix state +● homelab-crypto-portfolio-chart-health.service loaded failed failed Crypto portfolio chart health check +● skladchik-reports-monitor-supervisor.service loaded failed failed Skladchik reports monitor full supervisor + +Legend: LOAD → Reflects whether the unit definition was properly loaded. + ACTIVE → The high-level unit activation state, i.e. generalization of SUB. + SUB → The low-level unit activation state, values depend on unit type. + +3 loaded units listed. +NEXT LEFT LAST PASSED UNIT ACTIVATES +Mon [PRIVATE_IP] 15:17:20 MSK 17s Mon [PRIVATE_IP] 15:12:20 MSK 4min 42s ago netbird-peers-health.timer netbird-peers-health.service +Mon [PRIVATE_IP] 15:17:26 MSK 23s Mon [PRIVATE_IP] 15:16:26 MSK 36s ago homelab-cluster-admin-webpanel-sync.timer homelab-cluster-admin-webpanel-sync.service +Mon [PRIVATE_IP] 15:17:26 MSK 23s Mon [PRIVATE_IP] 15:16:26 MSK 36s ago homelab-private-vpn-hosts-health.timer homelab-private-vpn-hosts-health.service +Mon [PRIVATE_IP] 15:17:27 MSK 24s Mon [PRIVATE_IP] 15:16:26 MSK 36s ago homelab-router-watchdog.timer homelab-router-watchdog.service +Mon [PRIVATE_IP] 15:18:24 MSK 1min 21s Mon [PRIVATE_IP] 15:16:14 MSK 47s ago homelab-cluster-admin-inventory-sync.timer homelab-cluster-admin-inventory-sync.service +Mon [PRIVATE_IP] 15:19:19 MSK 2min 16s Mon [PRIVATE_IP] 15:14:07 MSK 2min 55s ago homelab-health-metrics.timer homelab-health-metrics.service +Mon [PRIVATE_IP] 15:19:26 MSK 2min 23s Mon [PRIVATE_IP] 15:04:26 MSK 12min ago homelab-disk-space-health.timer homelab-disk-space-health.service +Mon [PRIVATE_IP] 15:20:14 MSK 3min 12s Mon [PRIVATE_IP] 15:15:14 MSK 1min 47s ago homelab-smartctl-textfile.timer homelab-smartctl-textfile.service +Mon [PRIVATE_IP] 15:20:32 MSK 3min 29s Mon [PRIVATE_IP] 15:05:32 MSK 11min ago homelab-pve03-staging-capacity-health.timer homelab-pve03-staging-capacity-health.service +Mon [PRIVATE_IP] 15:20:32 MSK 3min 29s Mon [PRIVATE_IP] 15:05:32 MSK 11min ago prometheus-node-exporter-nvme.timer prometheus-node-exporter-nvme.service +Mon [PRIVATE_IP] 15:21:04 MSK 4min 1s Mon [PRIVATE_IP] 15:15:53 MSK 1min 8s ago homelab-crypto-portfolio-chart-health.timer homelab-crypto-portfolio-chart-health.service +Mon [PRIVATE_IP] 15:26:26 MSK 9min Mon [PRIVATE_IP] 15:16:26 MSK 36s ago skladchik-reports-monitor-supervisor.timer skladchik-reports-monitor-supervisor.service +Mon [PRIVATE_IP] 15:30:00 MSK 12min Mon [PRIVATE_IP] 15:15:14 MSK 1min 47s ago homelab-incident-journal.timer homelab-incident-journal.service +Mon [PRIVATE_IP] 15:30:26 MSK 13min Mon [PRIVATE_IP] 15:15:50 MSK 1min 12s ago homelab-forum-snuffleupagus-health.timer homelab-forum-snuffleupagus-health.service +Mon [PRIVATE_IP] 15:31:07 MSK 14min Mon [PRIVATE_IP] 15:16:05 MSK 57s ago homelab-external-probe-vps-health.timer homelab-external-probe-vps-health.service +Mon [PRIVATE_IP] 15:31:20 MSK 14min Mon [PRIVATE_IP] 15:15:50 MSK 1min 12s ago homelab-duty-admin-v2.timer homelab-duty-admin-v2.service +Mon [PRIVATE_IP] 15:31:26 MSK 14min Mon [PRIVATE_IP] 15:16:26 MSK 36s ago prometheus-node-exporter-apt.timer prometheus-node-exporter-apt.service +Mon [PRIVATE_IP] 15:33:09 MSK 16min Mon [PRIVATE_IP] 15:00:50 MSK 16min ago homelab-mkdocs-auto-refresh.timer homelab-mkdocs-auto-refresh.service +Mon [PRIVATE_IP] 15:45:52 MSK 28min Mon [PRIVATE_IP] 15:14:47 MSK 2min 15s ago homelab-reference-refresh.timer homelab-reference-refresh.service +Mon [PRIVATE_IP] 20:08:26 MSK 4h 51min Mon [PRIVATE_IP] 14:08:26 MSK 1h 8min ago homelab-vps-identity-audit.timer homelab-vps-identity-audit.service +Tue [PRIVATE_IP] 00:00:00 MSK 8h Mon [PRIVATE_IP] 00:00:06 MSK 15h ago dpkg-db-backup.timer dpkg-db-backup.service +Tue [PRIVATE_IP] 00:05:03 MSK 8h Mon [PRIVATE_IP] 00:15:28 MSK 15h ago homelab-storage-capacity.timer homelab-storage-capacity.service +Tue [PRIVATE_IP] 00:07:51 MSK 8h Mon [PRIVATE_IP] 00:02:07 MSK 15h ago homelab-evidence-catalog.timer homelab-evidence-catalog.service +Tue [PRIVATE_IP] 00:08:11 MSK 8h Mon [PRIVATE_IP] 00:11:14 MSK 15h ago homelab-quality-gate.timer homelab-quality-gate.service +Tue [PRIVATE_IP] 00:08:26 MSK 8h Mon [PRIVATE_IP] 00:49:14 MSK 14h ago logrotate.timer logrotate.service +Tue [PRIVATE_IP] 00:13:28 MSK 8h Mon [PRIVATE_IP] 00:05:50 MSK 15h ago homelab-docker-health.timer homelab-docker-health.service +Tue [PRIVATE_IP] 00:14:17 MSK 8h Mon [PRIVATE_IP] 10:50:38 MSK 4h 26min ago man-db.timer man-db.service +Tue [PRIVATE_IP] 01:23:37 MSK 10h Mon [PRIVATE_IP] 01:28:07 MSK 13h ago pve-daily-update.timer pve-daily-update.service +Tue [PRIVATE_IP] 02:32:43 MSK 11h Mon [PRIVATE_IP] 12:38:50 MSK 2h 38min ago apt-daily.timer apt-daily.service +Tue [PRIVATE_IP] 03:50:00 MSK 12h Mon [PRIVATE_IP] 03:50:07 MSK 11h ago filebrowser-offhost-sync.timer filebrowser-offhost-sync.service +Tue [PRIVATE_IP] 04:41:55 MSK 13h Mon [PRIVATE_IP] 04:50:29 MSK 10h ago homelab-edge-vm-offhost-freshness.timer homelab-edge-vm-offhost-freshness.service +Tue [PRIVATE_IP] 05:14:52 MSK 13h Mon [PRIVATE_IP] 05:06:55 MSK 10h ago homelab-sops-edge-secret-coverage.timer homelab-sops-edge-secret-coverage.service +Tue [PRIVATE_IP] 06:52:59 MSK 15h Mon [PRIVATE_IP] 06:53:14 MSK 8h ago apt-daily-upgrade.timer apt-daily-upgrade.service +Tue [PRIVATE_IP] 07:03:42 MSK 15h Mon [PRIVATE_IP] 07:05:50 MSK 8h ago homelab-drift-check.timer homelab-drift-check.service +Tue [PRIVATE_IP] 07:39:24 MSK 16h Mon [PRIVATE_IP] 07:21:25 MSK 7h ago homelab-service-registry-check.timer homelab-service-registry-check.service +Tue [PRIVATE_IP] 07:45:52 MSK 16h Mon [PRIVATE_IP] 07:50:14 MSK 7h ago homelab-alerting-health.timer homelab-alerting-health.service +Tue [PRIVATE_IP] 07:54:16 MSK 16h Mon [PRIVATE_IP] 07:52:50 MSK 7h ago homelab-desired-state-sync.timer homelab-desired-state-sync.service +Tue [PRIVATE_IP] 07:55:52 MSK 16h Mon [PRIVATE_IP] 07:50:25 MSK 7h ago homelab-dependency-map-check.timer homelab-dependency-map-check.service +Tue [PRIVATE_IP] 07:56:48 MSK 16h Mon [PRIVATE_IP] 07:46:38 MSK 7h ago homelab-runbook-generate.timer homelab-runbook-generate.service +Tue [PRIVATE_IP] 07:59:39 MSK 16h Mon [PRIVATE_IP] 08:11:07 MSK 7h ago homelab-duty-admin-report.timer homelab-duty-admin-report.service +Tue [PRIVATE_IP] 08:03:48 MSK 16h Mon [PRIVATE_IP] 08:19:07 MSK 6h ago homelab-overall-health.timer homelab-overall-health.service +Tue [PRIVATE_IP] 08:12:24 MSK 16h Mon [PRIVATE_IP] 08:23:50 MSK 6h ago homelab-final-readiness-gate.timer homelab-final-readiness-gate.service +Tue [PRIVATE_IP] 08:16:32 MSK 16h Mon [PRIVATE_IP] 08:21:25 MSK 6h ago homelab-kuma-monitor-policy.timer homelab-kuma-monitor-policy.service +Tue [PRIVATE_IP] 08:36:17 MSK 17h Mon [PRIVATE_IP] 08:42:03 MSK 6h ago homelab-secret-exposure-guard.timer homelab-secret-exposure-guard.service +Tue [PRIVATE_IP] 08:36:39 MSK 17h Mon [PRIVATE_IP] 08:32:47 MSK 6h ago homelab-capacity-risk.timer homelab-capacity-risk.service +Tue [PRIVATE_IP] 08:50:00 MSK 17h Mon [PRIVATE_IP] 08:47:23 MSK 6h ago homelab-golden-state-index.timer homelab-golden-state-index.service +Tue [PRIVATE_IP] 08:52:29 MSK 17h Mon [PRIVATE_IP] 08:53:07 MSK 6h ago homelab-cluster-passport.timer homelab-cluster-passport.service +Tue [PRIVATE_IP] 08:54:34 MSK 17h Mon [PRIVATE_IP] 08:51:27 MSK 6h ago immich-media-offhost-sync.timer immich-media-offhost-sync.service +Tue [PRIVATE_IP] 09:06:42 MSK 17h Mon [PRIVATE_IP] 09:20:50 MSK 5h 56min ago memos-offhost-sync.timer memos-offhost-sync.service +Tue [PRIVATE_IP] 10:15:00 MSK 18h Mon [PRIVATE_IP] 10:15:05 MSK 5h 1min ago skladchik-reports-monitor-monthly-selftest-watch.timer skladchik-reports-monitor-monthly-selftest-watch.service +Tue [PRIVATE_IP] 14:20:26 MSK 23h Mon [PRIVATE_IP] 14:20:26 MSK 56min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service +Sun [PRIVATE_IP] 03:10:38 MSK 5 days Sun [PRIVATE_IP] 03:10:25 MSK 1 day 12h ago xfs_scrub_all.timer xfs_scrub_all.service +Sun [PRIVATE_IP] 03:10:48 MSK 5 days Sun [PRIVATE_IP] 03:10:50 MSK 1 day 12h ago e2scrub_all.timer e2scrub_all.service +Mon [PRIVATE_IP] 00:03:56 MSK 6 days Mon [PRIVATE_IP] 00:11:50 MSK 15h ago homelab-secret-sanity.timer homelab-secret-sanity.service +Mon [PRIVATE_IP] 01:11:21 MSK 6 days Mon [PRIVATE_IP] 01:17:56 MSK 13h ago fstrim.timer fstrim.service +- - - - prometheus-node-exporter-ipmitool-sensor.timer prometheus-node-exporter-ipmitool-sensor.service +- - - - prometheus-node-exporter-mellanox-hca-temp.timer prometheus-node-exporter-mellanox-hca-temp.service +- - - - prometheus-node-exporter-smartmon.timer prometheus-node-exporter-smartmon.service + +58 timers listed. +- Обрезанная, повреждённая или частично вставленная команда считается невыполненной; сначала проводится side-effect audit. +- Хвост parse-ошибки закрывается только после доказательства отсутствия изменений и временных артефактов. +- Proof: /var/lib/homelab-change-sets/operator-command-size-guard-v[PRIVATE_IP]T182653Z/report.txt + +## HOMELAB_ADMIN_CLI_CONTRACT_[PRIVATE_IP] +- Поддерживаемые команды: version, status, lint TASK_DIR, validate TASK_DIR, run TASK_DIR PHASE. +- Отдельная команда --help отсутствует. Неизвестный аргумент печатает usage и штатно возвращает RC=64. +- Нельзя трактовать RC=64 от --help как неисправность runner. +- Для проверки доступности runner использовать homelab-admin version; для структуры CLI использовать зафиксированную usage-строку. +- Proof: /var/lib/homelab-change-sets/homelab-admin-cli-contract-fix-v[PRIVATE_IP]T183338Z/report.txt + +AUTOMATIC_CLUSTER_CONTEXT_REFRESH_[PRIVATE_IP] +Collector: /usr/local/sbin/homelab-context-collect +Scheduler: hourly at minute 17 via /etc/cron.d/homelab-context-refresh +Destination: immutable Gitea runtime history with CONTEXT-AUTO UTC command IDs. + +AUTOMATIC_CLUSTER_CONTEXT_REFRESH_DIRECT_[PRIVATE_IP] +Publisher: /usr/local/sbin/homelab-context-refresh-direct +Schedule: hourly at minute 17. +Destination: immutable assistant-runtime history with CONTEXT-AUTO UTC IDs. +ANTI_REGRESSION_TOKEN=HOMELAB_VM_2CLOUD_444_OUTER_LAUNCHER_BOUNDARY_REQUIRED +- Anti-regression: validate the complete outer launcher with a shell syntax check and verify the wrapper argument boundary before issuing it. +- Infrastructure action executed: none. +- Backup payload impact: none. +- Production impact: none. +- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. +- Registered at: [PRIVATE_IP]T11:20:32Z + +## ERROR_[PRIVATE_IP]_HOMELAB_VM_2CLOUD_DRAIN_CLOSURE_PREFLIGHT_446 +COMMAND_ID=HOMELAB-VM-2CLOUD-DRAIN-CLOSURE-PREFLIGHT-446 +- Symptom: homelab-chat-run-linked printed Usage and skipped result-feed publication as invalid input. +- Root cause: the diagnostic script was piped to wrapper stdin and the mandatory double-dash command separator was omitted. +- Correction: invoke homelab-chat-run-linked as COMMAND_ID MODE COMPONENT -- command arguments; stdin is not its command interface. +ANTI_REGRESSION_TOKEN=HOMELAB_CHAT_RUN_COMMAND_REQUIRES_DOUBLE_DASH +- Anti-regression: treat wrapper Usage as the authoritative CLI contract and syntax-check the complete launcher, not only its inner payload. +- Infrastructure action executed: none. +- Backup payload impact: none. +- Production impact: none. +- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. +- Registered at: [PRIVATE_IP]T11:20:32Z OUTPUT_END CHAT_OUTPUT_END