diff --git a/runtime/history/NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117.json b/runtime/history/NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117.json new file mode 100644 index 00000000..62d133da --- /dev/null +++ b/runtime/history/NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "change", + "component": "newfi-newfdom-articles206-pack4-regional-community-final", + "started_at_utc": "2026-09-18T22:31:54Z", + "finished_at_utc": "2026-09-18T22:32:17Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "7503f5de0d32696c6d1f7bf8b39d30115f04c566548e7856a1a63cdb68d08bff", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": true, + "result_contract_valid": true, + "result_contract_status": "OK", + "result_contract_error": null, + "command_rc": 0, + "changes_made": true, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "MUTATED", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "1cac8ebdfd6487c301a20eaf2638f94a35f84687bfbd90463a412b546da71e78", + "sanitized_output_sha256": "1cac8ebdfd6487c301a20eaf2638f94a35f84687bfbd90463a412b546da71e78", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "NEWFI117_BEGIN\nCOMMAND_ID=NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117\nNEWFI117_PREMUTATION_CONTRACT={\"services\": [{\"category\": \"\\u041e \\u043f\\u043e\\u0440\\u043e\\u0434\\u0435 \\u0438 \\u0441\\u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u0435\", \"class\": \"XFRM\\\\Service\\\\ResourceItem\\\\Create\", \"getResource\": true, \"getTagChanger\": false, \"save\": true, \"setContent\": true, \"versionProperty\": true}]}\nNEWFI117_BACKUPS_2OF2=PASS\nNEWFI117_STAGING_REVIEW=PASS\nNEWFI117_STAGING_PUBLISH=PASS\nNEWFI117_STAGING_ROLLBACK=PASS\nNEWFI117_STAGING_REAPPLY=PASS\nNEWFI117_PRODUCTION=PASS\nNEWFI117_PUBLIC={\"community-participation\": {\"body_bytes\": 72697, \"http\": 200, \"id\": 18, \"sha256\": \"df1e171d39abf63da68782d1534aeb98184bd45c3224a426dda1167417212d36\", \"url\": \"https://newfi.ru/resources/18/\"}}\nNEWFI117_GIT_PROMOTION={\"old_head\": \"48b7182a00709c921ea2b71b6f4a1a748e706dc5\", \"new_head\": \"bcd970b0fa5d0f140aad4a3246773f44409ffe46\", \"remote_head\": \"bcd970b0fa5d0f140aad4a3246773f44409ffe46\"}\nNEWFI117_DECISION=PASS_ARTICLES206_PACK4_GIT_LAST_CLOSE_STAGE\nNEWFI117_NEXT_GATE=CONTENT207\nHOMELAB_RESULT_CONTRACT={\"version\": 1, \"command_id\": \"NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117\", \"status\": \"OK\", \"changes_made\": true, \"rollback_started\": false, \"rollback_restored\": null}\n" +} diff --git a/runtime/history/NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117.txt b/runtime/history/NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117.txt new file mode 100644 index 00000000..81d228c2 --- /dev/null +++ b/runtime/history/NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117.txt @@ -0,0 +1,46 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117 +STATUS=OK +RC=0 +HOST=pve01 +MODE=change +COMPONENT=newfi-newfdom-articles206-pack4-regional-community-final +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=7503f5de0d32696c6d1f7bf8b39d30115f04c566548e7856a1a63cdb68d08bff +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=true +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=OK +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=0 +CHANGES_MADE=true +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=MUTATED +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=1cac8ebdfd6487c301a20eaf2638f94a35f84687bfbd90463a412b546da71e78 +SANITIZED_OUTPUT_SHA256=1cac8ebdfd6487c301a20eaf2638f94a35f84687bfbd90463a412b546da71e78 +OUTPUT_BEGIN +NEWFI117_BEGIN +COMMAND_ID=NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117 +NEWFI117_PREMUTATION_CONTRACT={"services": [{"category": "\u041e \u043f\u043e\u0440\u043e\u0434\u0435 \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435", "class": "XFRM\\Service\\ResourceItem\\Create", "getResource": true, "getTagChanger": false, "save": true, "setContent": true, "versionProperty": true}]} +NEWFI117_BACKUPS_2OF2=PASS +NEWFI117_STAGING_REVIEW=PASS +NEWFI117_STAGING_PUBLISH=PASS +NEWFI117_STAGING_ROLLBACK=PASS +NEWFI117_STAGING_REAPPLY=PASS +NEWFI117_PRODUCTION=PASS +NEWFI117_PUBLIC={"community-participation": {"body_bytes": 72697, "http": 200, "id": 18, "sha256": "df1e171d39abf63da68782d1534aeb98184bd45c3224a426dda1167417212d36", "url": "https://newfi.ru/resources/18/"}} +NEWFI117_GIT_PROMOTION={"old_head": "48b7182a00709c921ea2b71b6f4a1a748e706dc5", "new_head": "bcd970b0fa5d0f140aad4a3246773f44409ffe46", "remote_head": "bcd970b0fa5d0f140aad4a3246773f44409ffe46"} +NEWFI117_DECISION=PASS_ARTICLES206_PACK4_GIT_LAST_CLOSE_STAGE +NEWFI117_NEXT_GATE=CONTENT207 +HOMELAB_RESULT_CONTRACT={"version": 1, "command_id": "NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117", "status": "OK", "changes_made": true, "rollback_started": false, "rollback_restored": null} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index d9f64e45..62d133da 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,38 +1,38 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SUPPORT-260919-HOME-GRAM1-CARD-GAP-CLASSIFY-READONLY-569R1", + "command_id": "NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117", "status": "OK", "rc": 0, "host": "pve01", - "mode": "read-only", - "component": "home-gram1-card-gap-classify-readonly", - "started_at_utc": "2026-09-18T22:30:30Z", - "finished_at_utc": "2026-09-18T22:30:33Z", + "mode": "change", + "component": "newfi-newfdom-articles206-pack4-regional-community-final", + "started_at_utc": "2026-09-18T22:31:54Z", + "finished_at_utc": "2026-09-18T22:32:17Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "9e6559a47c5578d2fbe02570b0f050d4a0471e35c2948fc3b114db0197838bbe", + "command_sha256": "7503f5de0d32696c6d1f7bf8b39d30115f04c566548e7856a1a63cdb68d08bff", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, - "change_declared": false, + "change_declared": true, "result_contract_valid": true, - "result_contract_status": null, + "result_contract_status": "OK", "result_contract_error": null, "command_rc": 0, - "changes_made": false, + "changes_made": true, "rollback_started": false, "rollback_restored": null, - "mutation_outcome": "NO_MUTATION", + "mutation_outcome": "MUTATED", "sanitized": true, "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "0e12900a906b4428f2b0d4b2ecc05294e9c5e4f8201a7c3dd527ea89ea3dfa44", - "sanitized_output_sha256": "90ff5ff2bba88531e66a15ed6daf53f5fda0bc3cb53bf111f58d9f7e2273f447", + "raw_evidence_sha256": "1cac8ebdfd6487c301a20eaf2638f94a35f84687bfbd90463a412b546da71e78", + "sanitized_output_sha256": "1cac8ebdfd6487c301a20eaf2638f94a35f84687bfbd90463a412b546da71e78", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "ERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nHEALTH_FILE_LIST_RC=0\nHEALTH_FILE_LIST_BEGIN\ncluster-admin-homepage-card.txt\ncluster-admin-inventory-sync.txt\ncluster-admin-public-route.txt\ncluster-admin-service-readiness.txt\ncluster-admin-stage0-readiness-fix.txt\ndockge-user-hash-agent-install-readiness.txt\nexternal-link-aleisaevn-netcraze-5083.txt\nexternal-probe-runner-decision.txt\nexternal-probe-vps.txt\nfailed-unit-legacy-inventory.txt\nfinal-readiness-cycle-break.txt\nfinal-readiness.txt\nhomepage-card-recommendations.txt\nhomepage-final-status.txt\nhomepage-missing-card-proposals-final.txt\nhomepage-missing-card-proposals.txt\nindependent-external-runner-audit.txt\nindependent-external-runner.txt\nnode-loss-readiness.txt\npower-loss-readiness.txt\nremote-git-sops-age-readiness.txt\nrouter-hard-power.txt\nrouter-running-config-mail-cloud.txt\nrouter-startup-config-mail-cloud.txt\nrouter-watchdog.txt\nservice-inventory-leftovers-phase00.txt\nservice-inventory-matrix-phase00.tsv\nservice-inventory-summary-phase00.txt\nservice-readiness-actual-budget.txt\nservice-readiness-alertmanager.txt\nservice-readiness-audiobookshelf.txt\nservice-readiness-authentik.txt\nservice-readiness-backup-health.txt\nservice-readiness-beszel.txt\nservice-readiness-blackbox-exporter.txt\nservice-readiness-bookstack.txt\nservice-readiness-cadvisor.txt\nservice-readiness-calibre-web.txt\nservice-readiness-cluster-admin-incident-engine.txt\nservice-readiness-cluster-admin-webpanel.txt\nservice-readiness-crypto-portfolio.txt\nservice-readiness-dns1.txt\nservice-readiness-dns2.txt\nservice-readiness-dockge.txt\nservice-readiness-dozzle.txt\nservice-readiness-filebrowser.txt\nservice-readiness-gitea.txt\nservice-readiness-gotify.txt\nservice-readiness-grafana.txt\nservice-readiness-healthchecks.txt\nservice-readiness-homeassistant.txt\nservice-readiness-homebox.txt\nservice-readiness-homepage.txt\nservice-readiness-immich.txt\nservice-readiness-it-tools.txt\nservice-readiness-jellyfin.txt\nservice-readiness-karakeep.txt\nservice-readiness-linkding.txt\nservice-readiness-mealie.txt\nservice-readiness-memos.txt\nservice-readiness-minio.txt\nservice-readiness-n8n.txt\nservice-readiness-netbox.txt\nservice-readiness-node-exporter.txt\nservice-readiness-node-red.txt\nservice-readiness-npmplus.txt\nservice-readiness-ntfy.txt\nservice-readiness-paperless.txt\nservice-readiness-prometheus.txt\nservice-readiness-proxmox-pve01.txt\nservice-readiness-searxng.txt\nservice-readiness-stirling-pdf.txt\nservice-readiness-syncthing.txt\nservice-readiness-uptime-kuma.txt\nservice-readiness-vaultwarden.txt\nservice-readiness-vikunja.txt\nHEALTH_FILE_LIST_END\nFILE_CHECK=/var/lib/homelab-health/homepage-missing-card-proposals-final.txt|exists=True\nFILE_BEGIN=/var/lib/homelab-health/homepage-missing-card-proposals-final.txt\nSTATUS=OK TS=2026-07-08T06:23:11Z TYPE=registered-planning-surface-info BAD=0 WARN=0 MODE=REGISTERED_PLANNING_SURFACE_INFO REGISTERED_SURFACE=YES ORIGINAL_STATE=review ORIGINAL_CLASS=UNGATED_REVIEW_ITEM HARD_GATE=no ACTION=not_a_health_failure ARCHIVE=/var/lib/homelab-review-surface-registry/original-health-20260708T062311Z REPORT=/var/lib/homelab-review-surface-registry/apply-latest.md\n\nFILE_END=/var/lib/homelab-health/homepage-missing-card-proposals-final.txt\nFILE_CHECK=/var/lib/homelab-health/homepage-service-catalog-slo.txt|exists=False\nFILE_CHECK=/var/lib/homelab-health/homepage-final-status.txt|exists=True\nFILE_BEGIN=/var/lib/homelab-health/homepage-final-status.txt\nSTATUS=OK\nTS=20260702T210118Z\nTYPE=homepage-final-status\nSUMMARY=Homepage groups/descriptions normalized to Russian; layout set to row/6-columns; monitors preserved and repaired; Cloudflare left untouched by user request.\nCURRENT_CARD_COUNT=61\nCURRENT_LAYOUT=row/6-columns\nCLOUDFLARE_POLICY=do_not_touch\nPROPOSALS=/var/lib/homelab-health/homepage-missing-card-proposals-final.txt\nSECRET_PRINTED=NO\n\nFILE_END=/var/lib/homelab-health/homepage-final-status.txt\nREFERENCE_CARD_CONTEXT_RC=0\nREFERENCE_CARD_CONTEXT_BEGIN\n- Primary exit routing peer: relay.netbird.selfhosted / 100.100.19.1 / Moldova.\n- Backup egress peer present: mail.netbird.selfhosted / 100.100.147.204 / USA.\n- NetBird exit route proof on edge-vm: wg allowed-ips includes 0.0.0.0/0 via relay; ip route get 1.1.1.1 uses wt0 table 7120.\n- External trace after route: 85.121.4.192 / OTP, not home 95.84.154.183 / ARN.\n- CrowdSec proof: cscli lapi status OK, cscli capi status OK, CAPI sharing/blocklist pull enabled, no DISABLE_ONLINE_API or -no-capi flags in active compose.\n- WARP is intentionally absent and must not be reintroduced for this path.\n- Unauthenticated https://api.crowdsec.net/v3/watchers/login returning HTTP 403 is expected network reachability proof.\n- Final proof: /root/evidence/771AD_FINAL_CROWDSEC_CAPI_NETBIRD_CLOSURE_20260702T191057Z_PROOF.txt\n\n## HOMEPAGE_RU_LAYOUT_MONITORING_PROPOSALS_20260702\n- Homepage live config is on core-apps VM [PRIVATE_IP] under /opt/stacks/homepage/config.\n- Groups/descriptions were normalized to Russian.\n- Layout is row/6-columns for all active groups.\n- siteMonitor fields are preserved; monitors must be repaired, not removed.\n- Cloudflare card must be left untouched by explicit operator request.\n- Red badges after migration were primarily caused by Homepage container resolving *.vpn.gram1.ru to edge NetBird IP and timing out; fixed by mapping vpn hostnames to edge LAN [PRIVATE_IP] in Homepage compose extra_hosts.\n- Router Moscow monitor uses edge health endpoint http://[PRIVATE_IP]:18091/router-moscow.\n- NPMplus monitor uses edge health endpoint http://[PRIVATE_IP]:18091/npmplus.\n- Missing-card proposal report: /var/lib/homelab-health/homepage-missing-card-proposals-final.txt.\n\n## UPTIME_KUMA_MISSING_MONITOR_AND_PROPOSALS_20260702\n- Uptime Kuma lives on monitoring VM [PRIVATE_IP].\n- Added one missing monitor: NPMplus Edge Health -> http://[PRIVATE_IP]:18091/npmplus.\n- Uptime Kuma DB backup was created before DB mutation under /root/uptime-kuma-manual-backups/773a-* on monitoring VM.\n- DB integrity after insertion was OK.\n- Deep monitoring proposal report: /var/lib/homelab-health/uptime-kuma-monitoring-proposals.txt.\n- Cloudflare must not be touched by operator request.\n- Recommended next monitors are P0 only after operator approval: Router Moscow Health, Backup/Restore Dashboard, Restore Drill Index, NetBird Peers, CrowdSec CAPI, Paperless Restore.\n\n## UPTIME_KUMA_NPMPLUS_ADMIN_REPAIR_20260702\n- Existing Uptime Kuma monitor \"NPMplus Admin\" was red because it checked https://[PRIVATE_IP]:81/.\n- NPMplus admin is intentionally localhost-bound on edge-vm, so monitoring VM should not check the admin UI directly.\n- Fixed monitor target to edge health endpoint: http://[PRIVATE_IP]:18091/npmplus.\n- Monitor was repaired, not deleted.\n- Cloudflare was not touched.\n\n## UPTIME_KUMA_APPROVED_MONITOR_BATCH_20260702\n- Approved Uptime Kuma monitor batch installed after Homepage/Kuma analysis.\n- Existing NPMplus Admin monitor was repaired to http://[PRIVATE_IP]:18091/npmplus, not deleted.\n- Edge health wrapper /usr/local/sbin/router-moscow-health provides safe endpoints on [PRIVATE_IP]:18091 for router-moscow, npmplus, loki, alloy, cadvisor, registry-cache, socket-proxy, diun, kopia and crowdsec.\n- Cloudflare was not touched by explicit operator request.\n- Uptime Kuma DB backups are under /root/uptime-kuma-manual-backups/773d-approved-batch-* on monitoring VM before the DB mutation.\n\n## UPTIME_KUMA_PENDING_HEALTH_MONITORS_FIX_20260702\n- Four pending Uptime Kuma keyword monitors were repaired by using local pve01 health endpoint paths instead of public backup.gram1.ru paths:\n - Backup Restore Dashboard -> http://[PRIVATE_IP]:9101/backup-restore-dashboard.txt\n - Restore Drill Index -> http://[PRIVATE_IP]:9101/restore-drill-index.txt\n - Paperless Restore -> http://[PRIVATE_IP]:9101/paperless-restore.txt\n - AdGuard Rewrite Sync -> http://[PRIVATE_IP]:9101/adguard-rewrite-sync.txt\n- Cloudflare was not touched.\n- Monitors were repaired, not deleted.\n\n## UPTIME_KUMA_FOUR_HEALTH_SOURCES_REPAIRED_20260702\n- Four Uptime Kuma monitors were still unavailable because three health endpoints returned 404 and Paperless Restore had STATUS=ERROR.\n- Repaired pve01 health source files under /var/lib/homelab-health:\n - backup-restore-dashboard.txt\n - restore-drill-index.txt\n - paperless-restore.txt\n - adguard-rewrite-sync.txt\n- Kuma monitors point to local pve01 health endpoints on http://[PRIVATE_IP]:9101/.\n- Cloudflare was not touched.\n- Monitors were repaired, not deleted.\n\n## DOCKGE_DISCONNECTED_HOSTS_AND_STALE_STACKS_20260702\n- Dockge is currently present only on edge-vm.\n- core-apps and monitoring run Docker containers but have no Dockge/Dockge-agent detected.\nREFERENCE_CARD_CONTEXT_END\nVM_BEGIN=170\nVM_STATUS=status: running|rc=0\nVM_EXEC_RC=0\nVM_EXEC_RAW_BEGIN\n{\n \"exitcode\" : 0,\n \"exited\" : 1,\n \"out-data\" : \"HOST=core-apps\\nDOCKER_PS_RC=0\\nDOCKER_PS_BEGIN\\ndemonov-shadow-8020-shadow-1|8020-demonov-shadow:signalbot-050r6-749073ae0f89|Up 29 hours (healthy)|127.0.0.1:18020->8020/tcp\\ndemonov-shadow-8020-relay-1|8020-demonov-shadow:signalbot-050r6-749073ae0f89|Up 29 hours|\\ndemonov-shadow-8020-collector-1|8020-demonov-shadow:signalbot-050r6-749073ae0f89|Up 29 hours|\\ndemonov-shadow-8020-worker-1|8020-demonov-shadow:signalbot-050r6-749073ae0f89|Up 29 hours|\\nimmich_machine_learning|ghcr.io/immich-app/immich-machine-learning:v2|Up 2 weeks (healthy)|\\ncrypto-portfolio|crypto-portfolio:gram-trade-entry-14415368fa52-c1398|Up 3 weeks|[PRIVATE_IP]:8030->8000/tcp\\ncrypto-portfolio-worker|crypto-portfolio:gram-trade-entry-14415368fa52-c1398|Up 3 weeks|\\nhbarhub-scheduler-1|hbarhub-scheduler|Up 2 days|8040/tcp\\nhbarhub-web-1|hbarhub-web|Up 2 days (healthy)|0.0.0.0:8040->8040/tcp, :::8040->8040/tcp\\nhbarhub-worker-1|hbarhub-worker|Up 2 days|8040/tcp\\nhbarhub-postgres-1|postgres:17-alpine|Up 3 weeks (healthy)|5432/tcp\\nhbarhub-redis-1|redis:8-alpine|Up 3 weeks (healthy)|6379/tcp\\nhomelab-gitea-context-mcp|homelab/gitea-context-mcp:1.0.0|Up 3 weeks (healthy)|127.0.0.1:8765->8765/tcp\\ngitea|docker.gitea.com/gitea:1.26.2|Up 3 weeks (healthy)|22/tcp, 0.0.0.0:3002->3000/tcp\\nauthentik-worker-1|ghcr.io/goauthentik/server:2026.5.3|Up 3 weeks (healthy)|\\nauthentik-server-1|ghcr.io/goauthentik/server:2026.5.3|Up 3 weeks (healthy)|0.0.0.0:9000->9000/tcp, 0.0.0.0:9443->9443/tcp\\nvaultwarden|vaultwarden/server:1.36.0-alpine|Up 3 weeks (healthy)|0.0.0.0:8083->80/tcp\\nhomepage|ghcr.io/gethomepage/homepage:latest|Up 3 weeks (healthy)|0.0.0.0:3000->3000/tcp\\nminio|minio/minio:latest|Up 3 weeks|0.0.0.0:9002->9000/tcp, 0.0.0.0:9003->9001/tcp\\nauthentik-postgresql-1|postgres:16-alpine|Up 3 weeks (healthy)|5432/tcp\\nimmich_server|ghcr.io/immich-app/immich-server:v2|Up 2 days (healthy)|0.0.0.0:2283->2283/tcp\\nimmich_postgres|ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0|Up 3 weeks (healthy)|5432/tcp\\nimmich_redis|valkey/valkey:9|Up 3 weeks (healthy)|6379/tcp\\nfilebrowser|filebrowser/filebrowser:latest|Up 2 days (healthy)|0.0.0.0:8085->80/tcp\\n\\nDOCKER_PS_END\\nSTACKS_RC=0\\nSTACKS_BEGIN\\n/opt/stacks/8020-demonov-shadow/compose.yaml\\n/opt/stacks/authentik/compose.yml\\n/opt/stacks/crypto-portfolio/compose.yaml\\n/opt/stacks/filebrowser/compose.yaml\\n/opt/stacks/gitea/compose.yaml\\n/opt/stacks/hbarhub/compose.yaml\\n/opt/stacks/homelab-gitea-context-mcp/compose.yaml\\n/opt/stacks/homepage/compose.yaml\\n/opt/stacks/immich/docker-compose.yml\\n/opt/stacks/minio/compose.yaml\\n/opt/stacks/vaultwarden-compose/compose.yaml\\n\\nSTACKS_END\\nLISTEN_RC=0\\nLISTEN_BEGIN\\nudp UNCONN 0 0 0.0.0.0:5355 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=360,fd=11))\\nudp UNCONN 0 0 127.0.0.54:53 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=360,fd=20))\\nudp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=360,fd=18))\\nudp UNCONN 0 0 [::]:5355 [::]:* users:((\\\"systemd-resolve\\\",pid=360,fd=13))\\ntcp LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=360,fd=19))\\ntcp LISTEN 0 4096 127.0.0.1:18020 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=2470167,fd=4))\\ntcp LISTEN 0 4096 0.0.0.0:2283 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=3554366,fd=4))\\ntcp LISTEN 0 4096 127.0.0.1:8765 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1321,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:3000 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1276,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:3002 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1275,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:9443 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1379,fd=4)) \\ntcp LISTEN 0 4096 127.0.0.1:44453 0.0.0.0:* users:((\\\"containerd\\\",pid=716,fd=9)) \\ntcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((\\\"sshd\\\",pid=706,fd=6)) \\ntcp LISTEN 0 5 0.0.0.0:8787 0.0.0.0:* users:((\\\"python3\\\",pid=686,fd=3)) \\ntcp LISTEN 0 5 0.0.0.0:8788 0.0.0.0:* users:((\\\"python3\\\",pid=684,fd=3)) \\ntcp LISTEN 0 4096 127.0.0.54:53 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=360,fd=21))\\ntcp LISTEN 0 4096 0.0.0.0:9000 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1397,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:9003 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1347,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:9002 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1360,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:8040 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=3558706,fd=4))\\ntcp LISTEN 0 4096 0.0.0.0:8083 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1304,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:8085 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=3551865,fd=4))\\ntcp LISTEN 0 4096 [PRIVATE_IP]:8030 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1398,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:5355 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=360,fd=12))\\ntcp LISTEN 0 128 [::]:22 [::]:* users:((\\\"sshd\\\",pid=706,fd=7)) \\ntcp LISTEN 0 4096 [::]:8040 [::]:* users:((\\\"docker-proxy\\\",pid=3558711,fd=4))\\ntcp LISTEN 0 4096 [::]:5355 [::]:* users:((\\\"systemd-resolve\\\",pid=360,fd=14))\\n\\nLISTEN_END\\nGUEST569_END\\n\",\n \"out-truncated\" : 0\n}\n\nVM_EXEC_RAW_END\nVM_END=170\nVM_BEGIN=130\nVM_STATUS=|rc=2\nVM_EXEC_RC=2\nVM_EXEC_ERR=Configuration file 'nodes/pve01/qemu-server/130.conf' does not exist \nVM_END=130\nVM_BEGIN=171\nVM_STATUS=status: running|rc=0\nVM_EXEC_RC=0\nVM_EXEC_RAW_BEGIN\n{\n \"exitcode\" : 0,\n \"exited\" : 1,\n \"out-data\" : \"HOST=monitoring\\nDOCKER_PS_RC=0\\nDOCKER_PS_BEGIN\\nuptime-kuma|louislam/uptime-kuma:2-slim|Up 2 weeks (healthy)|0.0.0.0:3001->3001/tcp\\ngotify|gotify/server:latest|Up 3 weeks (healthy)|0.0.0.0:8082->80/tcp\\nblackbox-exporter|prom/blackbox-exporter:latest|Up 3 weeks|0.0.0.0:9115->9115/tcp\\ngrafana|grafana/grafana:latest|Up 3 weeks|0.0.0.0:3003->3000/tcp\\nnode-exporter|prom/node-exporter:latest|Up 3 weeks|0.0.0.0:9100->9100/tcp\\nprometheus|prom/prometheus:latest|Up 3 weeks|0.0.0.0:9090->9090/tcp\\nalertmanager|prom/alertmanager:v0.33.0|Up 3 weeks|0.0.0.0:9093->9093/tcp\\nntfy|binwiederhier/ntfy:latest|Up 3 weeks|0.0.0.0:8055->80/tcp\\nhealthchecks|healthchecks/healthchecks:latest|Up 3 weeks (healthy)|0.0.0.0:8015->8000/tcp\\n\\nDOCKER_PS_END\\nSTACKS_RC=0\\nSTACKS_BEGIN\\n/opt/stacks/blackbox-exporter/compose.yaml\\n/opt/stacks/gotify-compose/compose.yaml\\n/opt/stacks/healthchecks/compose.yaml\\n/opt/stacks/ntfy/compose.yaml\\n/opt/stacks/observability-lite/compose.yaml\\n/opt/stacks/uptime-kuma-compose/compose.yaml\\n\\nSTACKS_END\\nLISTEN_RC=0\\nLISTEN_BEGIN\\nudp UNCONN 0 0 127.0.0.54:53 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=359,fd=20))\\nudp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=359,fd=18))\\nudp UNCONN 0 0 0.0.0.0:5355 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=359,fd=11))\\nudp UNCONN 0 0 [::]:5355 [::]:* users:((\\\"systemd-resolve\\\",pid=359,fd=13))\\ntcp LISTEN 0 4096 0.0.0.0:8015 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1085,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:8055 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1060,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:8082 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1035,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:3003 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1037,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:3001 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1574846,fd=4))\\ntcp LISTEN 0 4096 127.0.0.1:46219 0.0.0.0:* users:((\\\"containerd\\\",pid=717,fd=9)) \\ntcp LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=359,fd=19))\\ntcp LISTEN 0 4096 127.0.0.54:53 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=359,fd=21))\\ntcp LISTEN 0 4096 0.0.0.0:5355 0.0.0.0:* users:((\\\"systemd-resolve\\\",pid=359,fd=12))\\ntcp LISTEN 0 4096 0.0.0.0:9115 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1100,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:9100 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1126,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:9090 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1193,fd=4)) \\ntcp LISTEN 0 4096 0.0.0.0:9093 0.0.0.0:* users:((\\\"docker-proxy\\\",pid=1149,fd=4)) \\ntcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((\\\"sshd\\\",pid=700,fd=6)) \\ntcp LISTEN 0 4096 [::]:5355 [::]:* users:((\\\"systemd-resolve\\\",pid=359,fd=14))\\ntcp LISTEN 0 128 [::]:22 [::]:* users:((\\\"sshd\\\",pid=700,fd=7)) \\n\\nLISTEN_END\\nGUEST569_END\\n\",\n \"out-truncated\" : 0\n}\n\nVM_EXEC_RAW_END\nVM_END=171\nHOME569R1_DECISION=CARD_GAP_CLASSIFICATION_EVIDENCE_COLLECTED\nHOME569R1_NEXT_GATE=APPLY_MINIMAL_CARD_SET_CHANGES\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-260919-HOME-GRAM1-CARD-GAP-CLASSIFY-READONLY-569R1\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" + "output": "NEWFI117_BEGIN\nCOMMAND_ID=NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117\nNEWFI117_PREMUTATION_CONTRACT={\"services\": [{\"category\": \"\\u041e \\u043f\\u043e\\u0440\\u043e\\u0434\\u0435 \\u0438 \\u0441\\u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u0435\", \"class\": \"XFRM\\\\Service\\\\ResourceItem\\\\Create\", \"getResource\": true, \"getTagChanger\": false, \"save\": true, \"setContent\": true, \"versionProperty\": true}]}\nNEWFI117_BACKUPS_2OF2=PASS\nNEWFI117_STAGING_REVIEW=PASS\nNEWFI117_STAGING_PUBLISH=PASS\nNEWFI117_STAGING_ROLLBACK=PASS\nNEWFI117_STAGING_REAPPLY=PASS\nNEWFI117_PRODUCTION=PASS\nNEWFI117_PUBLIC={\"community-participation\": {\"body_bytes\": 72697, \"http\": 200, \"id\": 18, \"sha256\": \"df1e171d39abf63da68782d1534aeb98184bd45c3224a426dda1167417212d36\", \"url\": \"https://newfi.ru/resources/18/\"}}\nNEWFI117_GIT_PROMOTION={\"old_head\": \"48b7182a00709c921ea2b71b6f4a1a748e706dc5\", \"new_head\": \"bcd970b0fa5d0f140aad4a3246773f44409ffe46\", \"remote_head\": \"bcd970b0fa5d0f140aad4a3246773f44409ffe46\"}\nNEWFI117_DECISION=PASS_ARTICLES206_PACK4_GIT_LAST_CLOSE_STAGE\nNEWFI117_NEXT_GATE=CONTENT207\nHOMELAB_RESULT_CONTRACT={\"version\": 1, \"command_id\": \"NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117\", \"status\": \"OK\", \"changes_made\": true, \"rollback_started\": false, \"rollback_restored\": null}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index e6e04730..81d228c2 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,236 +1,46 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=SUPPORT-260919-HOME-GRAM1-CARD-GAP-CLASSIFY-READONLY-569R1 +COMMAND_ID=NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117 STATUS=OK RC=0 HOST=pve01 -MODE=read-only -COMPONENT=home-gram1-card-gap-classify-readonly +MODE=change +COMPONENT=newfi-newfdom-articles206-pack4-regional-community-final REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=9e6559a47c5578d2fbe02570b0f050d4a0471e35c2948fc3b114db0197838bbe +COMMAND_SHA256=7503f5de0d32696c6d1f7bf8b39d30115f04c566548e7856a1a63cdb68d08bff DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true -CHANGE_DECLARED=false +CHANGE_DECLARED=true RESULT_CONTRACT_VALID=true -RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_STATUS=OK RESULT_CONTRACT_ERROR=NONE COMMAND_RC=0 -CHANGES_MADE=false +CHANGES_MADE=true ROLLBACK_STARTED=false ROLLBACK_RESTORED=null -MUTATION_OUTCOME=NO_MUTATION +MUTATION_OUTCOME=MUTATED SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=0e12900a906b4428f2b0d4b2ecc05294e9c5e4f8201a7c3dd527ea89ea3dfa44 -SANITIZED_OUTPUT_SHA256=90ff5ff2bba88531e66a15ed6daf53f5fda0bc3cb53bf111f58d9f7e2273f447 +RAW_EVIDENCE_SHA256=1cac8ebdfd6487c301a20eaf2638f94a35f84687bfbd90463a412b546da71e78 +SANITIZED_OUTPUT_SHA256=1cac8ebdfd6487c301a20eaf2638f94a35f84687bfbd90463a412b546da71e78 OUTPUT_BEGIN -ERROR_REGISTER_CHECK=OK -REFERENCE_CHECK=OK -AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED -HEALTH_FILE_LIST_RC=0 -HEALTH_FILE_LIST_BEGIN -cluster-admin-homepage-card.txt -cluster-admin-inventory-sync.txt -cluster-admin-public-route.txt -cluster-admin-service-readiness.txt -cluster-admin-stage0-readiness-fix.txt -dockge-user-hash-agent-install-readiness.txt -external-link-aleisaevn-netcraze-5083.txt -external-probe-runner-decision.txt -external-probe-vps.txt -failed-unit-legacy-inventory.txt -final-readiness-cycle-break.txt -final-readiness.txt -homepage-card-recommendations.txt -homepage-final-status.txt -homepage-missing-card-proposals-final.txt -homepage-missing-card-proposals.txt -independent-external-runner-audit.txt -independent-external-runner.txt -node-loss-readiness.txt -power-loss-readiness.txt -remote-git-sops-age-readiness.txt -router-hard-power.txt -router-running-config-mail-cloud.txt -router-startup-config-mail-cloud.txt -router-watchdog.txt -service-inventory-leftovers-phase00.txt -service-inventory-matrix-phase00.tsv -service-inventory-summary-phase00.txt -service-readiness-actual-budget.txt -service-readiness-alertmanager.txt -service-readiness-audiobookshelf.txt -service-readiness-authentik.txt -service-readiness-backup-health.txt -service-readiness-beszel.txt -service-readiness-blackbox-exporter.txt -service-readiness-bookstack.txt -service-readiness-cadvisor.txt -service-readiness-calibre-web.txt -service-readiness-cluster-admin-incident-engine.txt -service-readiness-cluster-admin-webpanel.txt -service-readiness-crypto-portfolio.txt -service-readiness-dns1.txt -service-readiness-dns2.txt -service-readiness-dockge.txt -service-readiness-dozzle.txt -service-readiness-filebrowser.txt -service-readiness-gitea.txt -service-readiness-gotify.txt -service-readiness-grafana.txt -service-readiness-healthchecks.txt -service-readiness-homeassistant.txt -service-readiness-homebox.txt -service-readiness-homepage.txt -service-readiness-immich.txt -service-readiness-it-tools.txt -service-readiness-jellyfin.txt -service-readiness-karakeep.txt -service-readiness-linkding.txt -service-readiness-mealie.txt -service-readiness-memos.txt -service-readiness-minio.txt -service-readiness-n8n.txt -service-readiness-netbox.txt -service-readiness-node-exporter.txt -service-readiness-node-red.txt -service-readiness-npmplus.txt -service-readiness-ntfy.txt -service-readiness-paperless.txt -service-readiness-prometheus.txt -service-readiness-proxmox-pve01.txt -service-readiness-searxng.txt -service-readiness-stirling-pdf.txt -service-readiness-syncthing.txt -service-readiness-uptime-kuma.txt -service-readiness-vaultwarden.txt -service-readiness-vikunja.txt -HEALTH_FILE_LIST_END -FILE_CHECK=/var/lib/homelab-health/homepage-missing-card-proposals-final.txt|exists=True -FILE_BEGIN=/var/lib/homelab-health/homepage-missing-card-proposals-final.txt -STATUS=OK TS=2026-07-08T06:23:11Z TYPE=registered-planning-surface-info BAD=0 WARN=0 MODE=REGISTERED_PLANNING_SURFACE_INFO REGISTERED_SURFACE=YES ORIGINAL_STATE=review ORIGINAL_CLASS=UNGATED_REVIEW_ITEM HARD_GATE=no ACTION=not_a_health_failure ARCHIVE=/var/lib/homelab-review-surface-registry/original-health-20260708T062311Z REPORT=/var/lib/homelab-review-surface-registry/apply-latest.md - -FILE_END=/var/lib/homelab-health/homepage-missing-card-proposals-final.txt -FILE_CHECK=/var/lib/homelab-health/homepage-service-catalog-slo.txt|exists=False -FILE_CHECK=/var/lib/homelab-health/homepage-final-status.txt|exists=True -FILE_BEGIN=/var/lib/homelab-health/homepage-final-status.txt -STATUS=OK -TS=20260702T210118Z -TYPE=homepage-final-status -SUMMARY=Homepage groups/descriptions normalized to Russian; layout set to row/6-columns; monitors preserved and repaired; Cloudflare left untouched by user request. -CURRENT_CARD_COUNT=61 -CURRENT_LAYOUT=row/6-columns -CLOUDFLARE_POLICY=do_not_touch -PROPOSALS=/var/lib/homelab-health/homepage-missing-card-proposals-final.txt -SECRET_PRINTED=NO - -FILE_END=/var/lib/homelab-health/homepage-final-status.txt -REFERENCE_CARD_CONTEXT_RC=0 -REFERENCE_CARD_CONTEXT_BEGIN -- Primary exit routing peer: relay.netbird.selfhosted / 100.100.19.1 / Moldova. -- Backup egress peer present: mail.netbird.selfhosted / 100.100.147.204 / USA. -- NetBird exit route proof on edge-vm: wg allowed-ips includes 0.0.0.0/0 via relay; ip route get 1.1.1.1 uses wt0 table 7120. -- External trace after route: 85.121.4.192 / OTP, not home 95.84.154.183 / ARN. -- CrowdSec proof: cscli lapi status OK, cscli capi status OK, CAPI sharing/blocklist pull enabled, no DISABLE_ONLINE_API or -no-capi flags in active compose. -- WARP is intentionally absent and must not be reintroduced for this path. -- Unauthenticated https://api.crowdsec.net/v3/watchers/login returning HTTP 403 is expected network reachability proof. -- Final proof: /root/evidence/771AD_FINAL_CROWDSEC_CAPI_NETBIRD_CLOSURE_20260702T191057Z_PROOF.txt - -## HOMEPAGE_RU_LAYOUT_MONITORING_PROPOSALS_20260702 -- Homepage live config is on core-apps VM [PRIVATE_IP] under /opt/stacks/homepage/config. -- Groups/descriptions were normalized to Russian. -- Layout is row/6-columns for all active groups. -- siteMonitor fields are preserved; monitors must be repaired, not removed. -- Cloudflare card must be left untouched by explicit operator request. -- Red badges after migration were primarily caused by Homepage container resolving *.vpn.gram1.ru to edge NetBird IP and timing out; fixed by mapping vpn hostnames to edge LAN [PRIVATE_IP] in Homepage compose extra_hosts. -- Router Moscow monitor uses edge health endpoint http://[PRIVATE_IP]:18091/router-moscow. -- NPMplus monitor uses edge health endpoint http://[PRIVATE_IP]:18091/npmplus. -- Missing-card proposal report: /var/lib/homelab-health/homepage-missing-card-proposals-final.txt. - -## UPTIME_KUMA_MISSING_MONITOR_AND_PROPOSALS_20260702 -- Uptime Kuma lives on monitoring VM [PRIVATE_IP]. -- Added one missing monitor: NPMplus Edge Health -> http://[PRIVATE_IP]:18091/npmplus. -- Uptime Kuma DB backup was created before DB mutation under /root/uptime-kuma-manual-backups/773a-* on monitoring VM. -- DB integrity after insertion was OK. -- Deep monitoring proposal report: /var/lib/homelab-health/uptime-kuma-monitoring-proposals.txt. -- Cloudflare must not be touched by operator request. -- Recommended next monitors are P0 only after operator approval: Router Moscow Health, Backup/Restore Dashboard, Restore Drill Index, NetBird Peers, CrowdSec CAPI, Paperless Restore. - -## UPTIME_KUMA_NPMPLUS_ADMIN_REPAIR_20260702 -- Existing Uptime Kuma monitor "NPMplus Admin" was red because it checked https://[PRIVATE_IP]:81/. -- NPMplus admin is intentionally localhost-bound on edge-vm, so monitoring VM should not check the admin UI directly. -- Fixed monitor target to edge health endpoint: http://[PRIVATE_IP]:18091/npmplus. -- Monitor was repaired, not deleted. -- Cloudflare was not touched. - -## UPTIME_KUMA_APPROVED_MONITOR_BATCH_20260702 -- Approved Uptime Kuma monitor batch installed after Homepage/Kuma analysis. -- Existing NPMplus Admin monitor was repaired to http://[PRIVATE_IP]:18091/npmplus, not deleted. -- Edge health wrapper /usr/local/sbin/router-moscow-health provides safe endpoints on [PRIVATE_IP]:18091 for router-moscow, npmplus, loki, alloy, cadvisor, registry-cache, socket-proxy, diun, kopia and crowdsec. -- Cloudflare was not touched by explicit operator request. -- Uptime Kuma DB backups are under /root/uptime-kuma-manual-backups/773d-approved-batch-* on monitoring VM before the DB mutation. - -## UPTIME_KUMA_PENDING_HEALTH_MONITORS_FIX_20260702 -- Four pending Uptime Kuma keyword monitors were repaired by using local pve01 health endpoint paths instead of public backup.gram1.ru paths: - - Backup Restore Dashboard -> http://[PRIVATE_IP]:9101/backup-restore-dashboard.txt - - Restore Drill Index -> http://[PRIVATE_IP]:9101/restore-drill-index.txt - - Paperless Restore -> http://[PRIVATE_IP]:9101/paperless-restore.txt - - AdGuard Rewrite Sync -> http://[PRIVATE_IP]:9101/adguard-rewrite-sync.txt -- Cloudflare was not touched. -- Monitors were repaired, not deleted. - -## UPTIME_KUMA_FOUR_HEALTH_SOURCES_REPAIRED_20260702 -- Four Uptime Kuma monitors were still unavailable because three health endpoints returned 404 and Paperless Restore had STATUS=ERROR. -- Repaired pve01 health source files under /var/lib/homelab-health: - - backup-restore-dashboard.txt - - restore-drill-index.txt - - paperless-restore.txt - - adguard-rewrite-sync.txt -- Kuma monitors point to local pve01 health endpoints on http://[PRIVATE_IP]:9101/. -- Cloudflare was not touched. -- Monitors were repaired, not deleted. - -## DOCKGE_DISCONNECTED_HOSTS_AND_STALE_STACKS_20260702 -- Dockge is currently present only on edge-vm. -- core-apps and monitoring run Docker containers but have no Dockge/Dockge-agent detected. -REFERENCE_CARD_CONTEXT_END -VM_BEGIN=170 -VM_STATUS=status: running|rc=0 -VM_EXEC_RC=0 -VM_EXEC_RAW_BEGIN -{ - "exitcode" : 0, - "exited" : 1, - "out-data" : "HOST=core-apps\nDOCKER_PS_RC=0\nDOCKER_PS_BEGIN\ndemonov-shadow-8020-shadow-1|8020-demonov-shadow:signalbot-050r6-749073ae0f89|Up 29 hours (healthy)|127.0.0.1:18020->8020/tcp\ndemonov-shadow-8020-relay-1|8020-demonov-shadow:signalbot-050r6-749073ae0f89|Up 29 hours|\ndemonov-shadow-8020-collector-1|8020-demonov-shadow:signalbot-050r6-749073ae0f89|Up 29 hours|\ndemonov-shadow-8020-worker-1|8020-demonov-shadow:signalbot-050r6-749073ae0f89|Up 29 hours|\nimmich_machine_learning|ghcr.io/immich-app/immich-machine-learning:v2|Up 2 weeks (healthy)|\ncrypto-portfolio|crypto-portfolio:gram-trade-entry-14415368fa52-c1398|Up 3 weeks|[PRIVATE_IP]:8030->8000/tcp\ncrypto-portfolio-worker|crypto-portfolio:gram-trade-entry-14415368fa52-c1398|Up 3 weeks|\nhbarhub-scheduler-1|hbarhub-scheduler|Up 2 days|8040/tcp\nhbarhub-web-1|hbarhub-web|Up 2 days (healthy)|0.0.0.0:8040->8040/tcp, :::8040->8040/tcp\nhbarhub-worker-1|hbarhub-worker|Up 2 days|8040/tcp\nhbarhub-postgres-1|postgres:17-alpine|Up 3 weeks (healthy)|5432/tcp\nhbarhub-redis-1|redis:8-alpine|Up 3 weeks (healthy)|6379/tcp\nhomelab-gitea-context-mcp|homelab/gitea-context-mcp:1.0.0|Up 3 weeks (healthy)|127.0.0.1:8765->8765/tcp\ngitea|docker.gitea.com/gitea:1.26.2|Up 3 weeks (healthy)|22/tcp, 0.0.0.0:3002->3000/tcp\nauthentik-worker-1|ghcr.io/goauthentik/server:2026.5.3|Up 3 weeks (healthy)|\nauthentik-server-1|ghcr.io/goauthentik/server:2026.5.3|Up 3 weeks (healthy)|0.0.0.0:9000->9000/tcp, 0.0.0.0:9443->9443/tcp\nvaultwarden|vaultwarden/server:1.36.0-alpine|Up 3 weeks (healthy)|0.0.0.0:8083->80/tcp\nhomepage|ghcr.io/gethomepage/homepage:latest|Up 3 weeks (healthy)|0.0.0.0:3000->3000/tcp\nminio|minio/minio:latest|Up 3 weeks|0.0.0.0:9002->9000/tcp, 0.0.0.0:9003->9001/tcp\nauthentik-postgresql-1|postgres:16-alpine|Up 3 weeks (healthy)|5432/tcp\nimmich_server|ghcr.io/immich-app/immich-server:v2|Up 2 days (healthy)|0.0.0.0:2283->2283/tcp\nimmich_postgres|ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0|Up 3 weeks (healthy)|5432/tcp\nimmich_redis|valkey/valkey:9|Up 3 weeks (healthy)|6379/tcp\nfilebrowser|filebrowser/filebrowser:latest|Up 2 days (healthy)|0.0.0.0:8085->80/tcp\n\nDOCKER_PS_END\nSTACKS_RC=0\nSTACKS_BEGIN\n/opt/stacks/8020-demonov-shadow/compose.yaml\n/opt/stacks/authentik/compose.yml\n/opt/stacks/crypto-portfolio/compose.yaml\n/opt/stacks/filebrowser/compose.yaml\n/opt/stacks/gitea/compose.yaml\n/opt/stacks/hbarhub/compose.yaml\n/opt/stacks/homelab-gitea-context-mcp/compose.yaml\n/opt/stacks/homepage/compose.yaml\n/opt/stacks/immich/docker-compose.yml\n/opt/stacks/minio/compose.yaml\n/opt/stacks/vaultwarden-compose/compose.yaml\n\nSTACKS_END\nLISTEN_RC=0\nLISTEN_BEGIN\nudp UNCONN 0 0 0.0.0.0:5355 0.0.0.0:* users:((\"systemd-resolve\",pid=360,fd=11))\nudp UNCONN 0 0 127.0.0.54:53 0.0.0.0:* users:((\"systemd-resolve\",pid=360,fd=20))\nudp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:* users:((\"systemd-resolve\",pid=360,fd=18))\nudp UNCONN 0 0 [::]:5355 [::]:* users:((\"systemd-resolve\",pid=360,fd=13))\ntcp LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:((\"systemd-resolve\",pid=360,fd=19))\ntcp LISTEN 0 4096 127.0.0.1:18020 0.0.0.0:* users:((\"docker-proxy\",pid=2470167,fd=4))\ntcp LISTEN 0 4096 0.0.0.0:2283 0.0.0.0:* users:((\"docker-proxy\",pid=3554366,fd=4))\ntcp LISTEN 0 4096 127.0.0.1:8765 0.0.0.0:* users:((\"docker-proxy\",pid=1321,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:3000 0.0.0.0:* users:((\"docker-proxy\",pid=1276,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:3002 0.0.0.0:* users:((\"docker-proxy\",pid=1275,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:9443 0.0.0.0:* users:((\"docker-proxy\",pid=1379,fd=4)) \ntcp LISTEN 0 4096 127.0.0.1:44453 0.0.0.0:* users:((\"containerd\",pid=716,fd=9)) \ntcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((\"sshd\",pid=706,fd=6)) \ntcp LISTEN 0 5 0.0.0.0:8787 0.0.0.0:* users:((\"python3\",pid=686,fd=3)) \ntcp LISTEN 0 5 0.0.0.0:8788 0.0.0.0:* users:((\"python3\",pid=684,fd=3)) \ntcp LISTEN 0 4096 127.0.0.54:53 0.0.0.0:* users:((\"systemd-resolve\",pid=360,fd=21))\ntcp LISTEN 0 4096 0.0.0.0:9000 0.0.0.0:* users:((\"docker-proxy\",pid=1397,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:9003 0.0.0.0:* users:((\"docker-proxy\",pid=1347,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:9002 0.0.0.0:* users:((\"docker-proxy\",pid=1360,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:8040 0.0.0.0:* users:((\"docker-proxy\",pid=3558706,fd=4))\ntcp LISTEN 0 4096 0.0.0.0:8083 0.0.0.0:* users:((\"docker-proxy\",pid=1304,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:8085 0.0.0.0:* users:((\"docker-proxy\",pid=3551865,fd=4))\ntcp LISTEN 0 4096 [PRIVATE_IP]:8030 0.0.0.0:* users:((\"docker-proxy\",pid=1398,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:5355 0.0.0.0:* users:((\"systemd-resolve\",pid=360,fd=12))\ntcp LISTEN 0 128 [::]:22 [::]:* users:((\"sshd\",pid=706,fd=7)) \ntcp LISTEN 0 4096 [::]:8040 [::]:* users:((\"docker-proxy\",pid=3558711,fd=4))\ntcp LISTEN 0 4096 [::]:5355 [::]:* users:((\"systemd-resolve\",pid=360,fd=14))\n\nLISTEN_END\nGUEST569_END\n", - "out-truncated" : 0 -} - -VM_EXEC_RAW_END -VM_END=170 -VM_BEGIN=130 -VM_STATUS=|rc=2 -VM_EXEC_RC=2 -VM_EXEC_ERR=Configuration file 'nodes/pve01/qemu-server/130.conf' does not exist -VM_END=130 -VM_BEGIN=171 -VM_STATUS=status: running|rc=0 -VM_EXEC_RC=0 -VM_EXEC_RAW_BEGIN -{ - "exitcode" : 0, - "exited" : 1, - "out-data" : "HOST=monitoring\nDOCKER_PS_RC=0\nDOCKER_PS_BEGIN\nuptime-kuma|louislam/uptime-kuma:2-slim|Up 2 weeks (healthy)|0.0.0.0:3001->3001/tcp\ngotify|gotify/server:latest|Up 3 weeks (healthy)|0.0.0.0:8082->80/tcp\nblackbox-exporter|prom/blackbox-exporter:latest|Up 3 weeks|0.0.0.0:9115->9115/tcp\ngrafana|grafana/grafana:latest|Up 3 weeks|0.0.0.0:3003->3000/tcp\nnode-exporter|prom/node-exporter:latest|Up 3 weeks|0.0.0.0:9100->9100/tcp\nprometheus|prom/prometheus:latest|Up 3 weeks|0.0.0.0:9090->9090/tcp\nalertmanager|prom/alertmanager:v0.33.0|Up 3 weeks|0.0.0.0:9093->9093/tcp\nntfy|binwiederhier/ntfy:latest|Up 3 weeks|0.0.0.0:8055->80/tcp\nhealthchecks|healthchecks/healthchecks:latest|Up 3 weeks (healthy)|0.0.0.0:8015->8000/tcp\n\nDOCKER_PS_END\nSTACKS_RC=0\nSTACKS_BEGIN\n/opt/stacks/blackbox-exporter/compose.yaml\n/opt/stacks/gotify-compose/compose.yaml\n/opt/stacks/healthchecks/compose.yaml\n/opt/stacks/ntfy/compose.yaml\n/opt/stacks/observability-lite/compose.yaml\n/opt/stacks/uptime-kuma-compose/compose.yaml\n\nSTACKS_END\nLISTEN_RC=0\nLISTEN_BEGIN\nudp UNCONN 0 0 127.0.0.54:53 0.0.0.0:* users:((\"systemd-resolve\",pid=359,fd=20))\nudp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:* users:((\"systemd-resolve\",pid=359,fd=18))\nudp UNCONN 0 0 0.0.0.0:5355 0.0.0.0:* users:((\"systemd-resolve\",pid=359,fd=11))\nudp UNCONN 0 0 [::]:5355 [::]:* users:((\"systemd-resolve\",pid=359,fd=13))\ntcp LISTEN 0 4096 0.0.0.0:8015 0.0.0.0:* users:((\"docker-proxy\",pid=1085,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:8055 0.0.0.0:* users:((\"docker-proxy\",pid=1060,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:8082 0.0.0.0:* users:((\"docker-proxy\",pid=1035,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:3003 0.0.0.0:* users:((\"docker-proxy\",pid=1037,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:3001 0.0.0.0:* users:((\"docker-proxy\",pid=1574846,fd=4))\ntcp LISTEN 0 4096 127.0.0.1:46219 0.0.0.0:* users:((\"containerd\",pid=717,fd=9)) \ntcp LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:((\"systemd-resolve\",pid=359,fd=19))\ntcp LISTEN 0 4096 127.0.0.54:53 0.0.0.0:* users:((\"systemd-resolve\",pid=359,fd=21))\ntcp LISTEN 0 4096 0.0.0.0:5355 0.0.0.0:* users:((\"systemd-resolve\",pid=359,fd=12))\ntcp LISTEN 0 4096 0.0.0.0:9115 0.0.0.0:* users:((\"docker-proxy\",pid=1100,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:9100 0.0.0.0:* users:((\"docker-proxy\",pid=1126,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:9090 0.0.0.0:* users:((\"docker-proxy\",pid=1193,fd=4)) \ntcp LISTEN 0 4096 0.0.0.0:9093 0.0.0.0:* users:((\"docker-proxy\",pid=1149,fd=4)) \ntcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((\"sshd\",pid=700,fd=6)) \ntcp LISTEN 0 4096 [::]:5355 [::]:* users:((\"systemd-resolve\",pid=359,fd=14))\ntcp LISTEN 0 128 [::]:22 [::]:* users:((\"sshd\",pid=700,fd=7)) \n\nLISTEN_END\nGUEST569_END\n", - "out-truncated" : 0 -} - -VM_EXEC_RAW_END -VM_END=171 -HOME569R1_DECISION=CARD_GAP_CLASSIFICATION_EVIDENCE_COLLECTED -HOME569R1_NEXT_GATE=APPLY_MINIMAL_CARD_SET_CHANGES -HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260919-HOME-GRAM1-CARD-GAP-CLASSIFY-READONLY-569R1","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null} +NEWFI117_BEGIN +COMMAND_ID=NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117 +NEWFI117_PREMUTATION_CONTRACT={"services": [{"category": "\u041e \u043f\u043e\u0440\u043e\u0434\u0435 \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435", "class": "XFRM\\Service\\ResourceItem\\Create", "getResource": true, "getTagChanger": false, "save": true, "setContent": true, "versionProperty": true}]} +NEWFI117_BACKUPS_2OF2=PASS +NEWFI117_STAGING_REVIEW=PASS +NEWFI117_STAGING_PUBLISH=PASS +NEWFI117_STAGING_ROLLBACK=PASS +NEWFI117_STAGING_REAPPLY=PASS +NEWFI117_PRODUCTION=PASS +NEWFI117_PUBLIC={"community-participation": {"body_bytes": 72697, "http": 200, "id": 18, "sha256": "df1e171d39abf63da68782d1534aeb98184bd45c3224a426dda1167417212d36", "url": "https://newfi.ru/resources/18/"}} +NEWFI117_GIT_PROMOTION={"old_head": "48b7182a00709c921ea2b71b6f4a1a748e706dc5", "new_head": "bcd970b0fa5d0f140aad4a3246773f44409ffe46", "remote_head": "bcd970b0fa5d0f140aad4a3246773f44409ffe46"} +NEWFI117_DECISION=PASS_ARTICLES206_PACK4_GIT_LAST_CLOSE_STAGE +NEWFI117_NEXT_GATE=CONTENT207 +HOMELAB_RESULT_CONTRACT={"version": 1, "command_id": "NEWFI-260919-NEWFDOM-ARTICLES206-PACK4-117", "status": "OK", "changes_made": true, "rollback_started": false, "rollback_restored": null} OUTPUT_END CHAT_OUTPUT_END