From 21dbdaf3c933f08c9cf38eccb91b8cd2696c3241 Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Fri, 31 Jul 2026 08:43:55 +0000 Subject: [PATCH] runtime: publish GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z --- ...MPACT-VERIFIED-AUDIT-20260731T084000Z.json | 38 +++++++++++++++++++ ...OMPACT-VERIFIED-AUDIT-20260731T084000Z.txt | 34 +++++++++++++++++ runtime/latest.json | 18 ++++----- runtime/latest.txt | 14 +++---- 4 files changed, 88 insertions(+), 16 deletions(-) create mode 100644 runtime/history/GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z.json create mode 100644 runtime/history/GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z.txt diff --git a/runtime/history/GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z.json b/runtime/history/GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z.json new file mode 100644 index 0000000..72e6760 --- /dev/null +++ b/runtime/history/GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "verify", + "component": "gram1-site-baseline-compact-verified-audit", + "started_at_utc": "2026-07-31T08:43:53Z", + "finished_at_utc": "2026-07-31T08:43:54Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", + "command_sha256": "79e2b86a5c9714ebf4de028be29e044fd790edea2fdd78d15d86e06d7920bb69", + "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": 0, + "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": "480802d0ddf9e9994edd7f81d4edfc84a52b8037088441fa6ee891323351d84f", + "sanitized_output_sha256": "0b4b60c2e5b627ef412488b16903bf8ed516fc1d88bd85384eeee9308e033fad", + "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\":\"GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"baseline_integrity\":{\"capture_report_tree_matches_commit\":false,\"commit_identity_verified\":true,\"manifest_matches_commit\":false,\"repair_required_before_site_editing\":true,\"status\":\"DEGRADED\"},\"capture_coverage\":{\"hosts_attempted\":12,\"hosts_failed\":9,\"hosts_successful\":3,\"public_http_assets\":0,\"public_http_pages\":15,\"quarantined_file_count\":0,\"site_host_count\":3,\"snapshot_id\":\"20260731T071400Z\"},\"changes_made\":false,\"command_id\":\"GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z\",\"editing_candidates\":[{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":144,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":1510,\"snapshot\":{\"source_root\":\"/root/homelab-configs-worktree\",\"stored_bytes\":9347306,\"stored_files\":1322,\"truncated\":false},\"source_root\":\"/root/homelab-configs-worktree\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":129,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[],\"priority_score\":1360,\"snapshot\":{\"source_root\":\"/root/homelab-configs-worktree/docs\",\"stored_bytes\":6362627,\"stored_files\":764,\"truncated\":false},\"source_root\":\"/root/homelab-configs-worktree/docs\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":110,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[],\"priority_score\":1170,\"snapshot\":{\"source_root\":\"/root/homelab-configs-worktree/docs/operations\",\"stored_bytes\":5969079,\"stored_files\":699,\"truncated\":false},\"source_root\":\"/root/homelab-configs-worktree/docs/operations\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":95,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":1020,\"snapshot\":{\"source_root\":\"/srv/homelab-desired-state\",\"stored_bytes\":1274899,\"stored_files\":957,\"truncated\":false},\"source_root\":\"/srv/homelab-desired-state\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":63,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[],\"priority_score\":700,\"snapshot\":{\"source_root\":\"/srv/homelab-desired-state/health\",\"stored_bytes\":231477,\"stored_files\":493,\"truncated\":false},\"source_root\":\"/srv/homelab-desired-state/health\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":32,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":370,\"snapshot\":null,\"source_root\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":26,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[],\"priority_score\":310,\"snapshot\":null,\"source_root\":\"/srv/homelab-desired-state/sbin\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":23,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":280,\"snapshot\":null,\"source_root\":\"/srv/homelab-ops-worktrees/cr-2026-0015\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":19,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":240,\"snapshot\":null,\"source_root\":\"/root/homelab-ops-cr-2026-0004\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":17,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":220,\"snapshot\":null,\"source_root\":\"/root/homelab-ops-cr-2026-0012\"},{\"detected_frameworks\":[],\"discovery_score\":2,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":56,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"stored_bytes\":852,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-diag-20260629T032514Z\"},{\"detected_frameworks\":[],\"discovery_score\":2,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":56,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"stored_bytes\":14367,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\"},{\"detected_frameworks\":[],\"discovery_score\":1,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":46,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"stored_bytes\":242,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\"},{\"detected_frameworks\":[],\"discovery_score\":1,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":46,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"stored_bytes\":1438,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-recover-20260629T025511Z\"},{\"detected_frameworks\":[],\"discovery_score\":1,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":46,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"stored_bytes\":3490,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\"},{\"detected_frameworks\":[],\"discovery_score\":1,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":26,\"snapshot\":null,\"source_root\":\"/srv/homelab-desired-state/routerguard-tuya\"}],\"editing_start_here\":\"# Editing start: `gram1.ru`\\n\\nThis document lists the highest-confidence source and deployment roots discovered by the baseline.\\n\\n## Host `pve01`\\n\\n- Source candidate `/root/homelab-configs-worktree` — score 144; markers: .git.\\n- Source candidate `/root/homelab-configs-worktree/docs` — score 129; markers: none.\\n- Source candidate `/root/homelab-configs-worktree/docs/operations` — score 110; markers: none.\\n- Source candidate `/srv/homelab-desired-state` — score 95; markers: .git.\\n- Source candidate `/srv/homelab-desired-state/health` — score 63; markers: none.\\n- Source candidate `/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation` — score 32; markers: .git.\\n- Source candidate `/srv/homelab-desired-state/sbin` — score 26; markers: none.\\n- Source candidate `/srv/homelab-ops-worktrees/cr-2026-0015` — score 23; markers: .git.\\n- Source candidate `/root/homelab-ops-cr-2026-0004` — score 19; markers: .git.\\n- Source candidate `/root/homelab-ops-cr-2026-0012` — score 17; markers: .git.\\n- Snapshot `/root/homelab-configs-worktree`: 1322 files / 9347306 bytes; truncated=False.\\n- Snapshot `/root/homelab-configs-worktree/docs`: 764 files / 6362627 bytes; truncated=False.\\n- Snapshot `/root/homelab-configs-worktree/docs/operations`: 699 files / 5969079 bytes; truncated=False.\\n- Snapshot `/srv/homelab-desired-state`: 957 files / 1274899 bytes; truncated=False.\\n- Snapshot `/srv/homelab-desired-state/health`: 493 files / 231477 bytes; truncated=False.\\n\\n## Host `pve02`\\n\\n- Source candidate `/root/evidence/forum-prod-diag-20260629T032514Z` — score 2; markers: none.\\n- Source candidate `/root/evidence/forum-prod-os-baseline-20260629T034119Z` — score 2; markers: none.\\n- Source candidate `/root/evidence/forum-prod-offline-fix2-20260629T033832Z` — score 1; markers: none.\\n- Source candidate `/root/evidence/forum-prod-recover-20260629T025511Z` — score 1; markers: none.\\n- Source candidate `/root/evidence/forum-prod-recreate-20260629T030810Z` — score 1; markers: none.\\n- Source candidate `/srv/homelab-desired-state/routerguard-tuya` — score 1; markers: none.\\n- Snapshot `/root/evidence/forum-prod-diag-20260629T032514Z`: 3 files / 852 bytes; truncated=False.\\n- Snapshot `/root/evidence/forum-prod-os-baseline-20260629T034119Z`: 3 files / 14367 bytes; truncated=False.\\n- Snapshot `/root/evidence/forum-prod-offline-fix2-20260629T033832Z`: 3 files / 242 bytes; truncated=False.\\n- Snapshot `/root/evidence/forum-prod-recover-20260629T025511Z`: 3 files / 1438 bytes; truncated=False.\\n- Snapshot `/root/evidence/forum-prod-recreate-20260629T030810Z`: 3 files / 3490 bytes; truncated=False.\\n\\n## Host `pve03`\\n\\n- No source root, but domain/config evidence exists.\\n\\nBefore changing production, compare the selected source snapshot with the live source root and create a separate transactional change capsule with byte-for-byte backup and automatic rollback.\\n\",\"failed_hosts\":[{\"duration_seconds\":10.366,\"rc\":142,\"ssh_target\":\"root@[PRIVATE_IP]\",\"stderr_excerpt\":\"\",\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"target\":\"[PRIVATE_IP]\"},{\"duration_seconds\":10.262,\"rc\":142,\"ssh_target\":\"root@[PRIVATE_IP]\",\"stderr_excerpt\":\"\",\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"target\":\"[PRIVATE_IP]\"},{\"duration_seconds\":7.011,\"rc\":255,\"ssh_target\":\"root@95.84.154.183\",\"stderr_excerpt\":\"ssh: connect to host 95.84.154.183 port 22: Connection timed out\\n\",\"stderr_sha256\":\"822e7fe8675a92bba9ea2fa5be5e7f07fc1732fad6587e4a2782ab7aa3a13ab2\",\"target\":\"95.84.154.183\"},{\"duration_seconds\":0.043,\"rc\":255,\"ssh_target\":\"core-apps\",\"stderr_excerpt\":\"ssh: Could not resolve hostname core-apps: Name or service not known\\n\",\"stderr_sha256\":\"86bbe345e27c855214639ebf8b3720a3bf1c37b869ad752d716acc184c0d685a\",\"target\":\"core-apps\"},{\"duration_seconds\":0.045,\"rc\":255,\"ssh_target\":\"edge-vm\",\"stderr_excerpt\":\"No ED25519 host key is known for edge-vm and you have requested strict checking.\\nHost key verification failed.\\n\",\"stderr_sha256\":\"13687874591b23c2d4952604e4ab0452eddd1a96cb85f19569837efbc80c9252\",\"target\":\"edge-vm\"},{\"duration_seconds\":7.012,\"rc\":255,\"ssh_target\":\"gram1.ru\",\"stderr_excerpt\":\"ssh: connect to host gram1.ru port 22: Connection timed out\\n\",\"stderr_sha256\":\"ad807aa07abc5fbcc1f440ba12260b8b729eb6190945528d4a2b0a59356dcdf8\",\"target\":\"gram1.ru\"},{\"duration_seconds\":0.026,\"rc\":255,\"ssh_target\":\"pve02.gram1.ru\",\"stderr_excerpt\":\"No ED25519 host key is known for pve02.gram1.ru and you have requested strict checking.\\nHost key verification failed.\\n\",\"stderr_sha256\":\"d8e727c5cd664102acb30b4c0cb37af5821351638c2a8682b07e89b7981242ec\",\"target\":\"pve02.gram1.ru\"},{\"duration_seconds\":0.025,\"rc\":255,\"ssh_target\":\"pve03.gram1.ru\",\"stderr_excerpt\":\"No ED25519 host key is known for pve03.gram1.ru and you have requested strict checking.\\nHost key verification failed.\\n\",\"stderr_sha256\":\"5816dfdac31569bd9866c40dd0aeae58c8301f832c1cf07a5c9307250d3d570e\",\"target\":\"pve03.gram1.ru\"},{\"duration_seconds\":7.013,\"rc\":255,\"ssh_target\":\"www.gram1.ru\",\"stderr_excerpt\":\"ssh: connect to host www.gram1.ru port 22: Connection timed out\\n\",\"stderr_sha256\":\"f372535ea680bb6507bf04d94ab0ea76d7d6cd3ffe3948d8558550299211731b\",\"target\":\"www.gram1.ru\"}],\"gitea_changed\":false,\"hosts\":[{\"candidate_source_roots\":[{\"markers\":[\".git\"],\"path\":\"/root/homelab-configs-worktree\",\"reasons\":[\"domain_match_parent\"],\"score\":144},{\"markers\":[],\"path\":\"/root/homelab-configs-worktree/docs\",\"reasons\":[\"domain_match_parent\"],\"score\":129},{\"markers\":[],\"path\":\"/root/homelab-configs-worktree/docs/operations\",\"reasons\":[\"domain_match_parent\"],\"score\":110},{\"markers\":[\".git\"],\"path\":\"/srv/homelab-desired-state\",\"reasons\":[\"domain_match_parent\"],\"score\":95},{\"markers\":[],\"path\":\"/srv/homelab-desired-state/health\",\"reasons\":[\"domain_match_parent\"],\"score\":63},{\"markers\":[\".git\"],\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\",\"reasons\":[\"domain_match_parent\"],\"score\":32},{\"markers\":[],\"path\":\"/srv/homelab-desired-state/sbin\",\"reasons\":[\"domain_match_parent\"],\"score\":26},{\"markers\":[\".git\"],\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015\",\"reasons\":[\"domain_match_parent\"],\"score\":23},{\"markers\":[\".git\"],\"path\":\"/root/homelab-ops-cr-2026-0004\",\"reasons\":[\"domain_match_parent\"],\"score\":19},{\"markers\":[\".git\"],\"path\":\"/root/homelab-ops-cr-2026-0012\",\"reasons\":[\"domain_match_parent\"],\"score\":17}],\"container_count\":1,\"detected_frameworks\":[\"Docker Compose\"],\"directory\":\"hosts/local\",\"domain_match_count\":1000,\"fqdn\":\"pve01.gram1.ru\",\"hostname\":\"pve01\",\"packages\":[],\"source_inventory_totals\":{\"framework_marker_count\":1,\"package_count\":0,\"stored_bytes\":25135855,\"stored_files\":4163},\"source_snapshots\":[{\"source_root\":\"/root/homelab-configs-worktree\",\"stored_bytes\":9347306,\"stored_files\":1322,\"truncated\":false},{\"source_root\":\"/root/homelab-configs-worktree/docs\",\"stored_bytes\":6362627,\"stored_files\":764,\"truncated\":false},{\"source_root\":\"/root/homelab-configs-worktree/docs/operations\",\"stored_bytes\":5969079,\"stored_files\":699,\"truncated\":false},{\"source_root\":\"/srv/homelab-desired-state\",\"stored_bytes\":1274899,\"stored_files\":957,\"truncated\":false},{\"source_root\":\"/srv/homelab-desired-state/health\",\"stored_bytes\":231477,\"stored_files\":493,\"truncated\":false}],\"systemd_service_count\":12},{\"candidate_source_roots\":[{\"markers\":[],\"path\":\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"reasons\":[\"domain_match_parent\"],\"score\":2},{\"markers\":[],\"path\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"reasons\":[\"domain_match_parent\"],\"score\":2},{\"markers\":[],\"path\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"reasons\":[\"domain_match_parent\"],\"score\":1},{\"markers\":[],\"path\":\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"reasons\":[\"domain_match_parent\"],\"score\":1},{\"markers\":[],\"path\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"reasons\":[\"domain_match_parent\"],\"score\":1},{\"markers\":[],\"path\":\"/srv/homelab-desired-state/routerguard-tuya\",\"reasons\":[\"domain_match_parent\"],\"score\":1}],\"container_count\":0,\"detected_frameworks\":[],\"directory\":\"hosts/pve02\",\"domain_match_count\":16,\"fqdn\":\"pve02.gram1.ru\",\"hostname\":\"pve02\",\"packages\":[],\"source_inventory_totals\":{\"framework_marker_count\":0,\"package_count\":0,\"stored_bytes\":29322,\"stored_files\":17},\"source_snapshots\":[{\"source_root\":\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"stored_bytes\":852,\"stored_files\":3,\"truncated\":false},{\"source_root\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"stored_bytes\":14367,\"stored_files\":3,\"truncated\":false},{\"source_root\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"stored_bytes\":242,\"stored_files\":3,\"truncated\":false},{\"source_root\":\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"stored_bytes\":1438,\"stored_files\":3,\"truncated\":false},{\"source_root\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"stored_bytes\":3490,\"stored_files\":3,\"truncated\":false}],\"systemd_service_count\":10},{\"candidate_source_roots\":[],\"container_count\":0,\"detected_frameworks\":[],\"directory\":\"hosts/pve03\",\"domain_match_count\":6,\"fqdn\":\"pve03.gram1.ru\",\"hostname\":\"pve03\",\"packages\":[],\"source_inventory_totals\":{\"framework_marker_count\":0,\"package_count\":0,\"stored_bytes\":6,\"stored_files\":2},\"source_snapshots\":[],\"systemd_service_count\":10}],\"identity\":{\"branch\":\"site-gram1-ru-baseline-20260731\",\"capture_capsule_sha256\":\"a7ad06c722755f0398118f4e20383e339bf2dd48d24e26c451d8644a6be7f515\",\"capture_command_id\":\"GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z\",\"commit_sha\":\"f9d3ba8caf65005605aa8aee2ede7e4e7e94ee49\",\"contract_sha256\":\"25eda14e622fd33864289d1515b2d3c4a92de0a1073aae81093afaae5a98788e\",\"repo\":\"https://git.gram1.ru/homelab-admin/homelab-ops.git\",\"snapshot_path\":\"sites/gram1.ru/baseline/20260731T071400Z\"},\"mutation_outcome\":\"NO_MUTATION\",\"next_decision\":\"REPAIR_BASELINE_METADATA_BEFORE_EDITING\",\"output_json_bytes_before_size_field\":72880,\"output_json_sha256_before_hash_field\":\"41dcf79b1a601f1f065089fce34cd808986b98e4f568d0c5b19dea405e3c1cf3\",\"production_site_changed\":false,\"public_http\":{\"asset_count\":0,\"page_count\":15,\"pages\":[{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonical_count\":0,\"content_type\":\"text/html; charset=utf-8\",\"error\":\"\",\"final_url\":\"https://gram1.ru/login\",\"form_count\":1,\"heading_count\":1,\"requested_url\":\"http://gram1.ru/\",\"script_count\":0,\"status\":200,\"style_count\":0,\"title\":\"Gram Crypto\"},{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonical_count\":0,\"content_type\":\"text/html; charset=utf-8\",\"error\":\"\",\"final_url\":\"https://www.gram1.ru/login\",\"form_count\":1,\"heading_count\":1,\"requested_url\":\"http://www.gram1.ru/\",\"script_count\":0,\"status\":200,\"style_count\":0,\"title\":\"Gram Crypto\"},{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonical_count\":0,\"content_type\":\"text/html; charset=utf-8\",\"error\":\"\",\"final_url\":\"https://gram1.ru/login\",\"form_count\":1,\"heading_count\":1,\"requested_url\":\"https://gram1.ru/\",\"script_count\":0,\"status\":200,\"style_count\":0,\"title\":\"Gram Crypto\"},{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonical_count\":0,\"content_type\":\"text/html; charset=utf-8\",\"error\":\"\",\"final_url\":\"https://www.gram1.ru/login\",\"form_count\":1,\"heading_count\":1,\"requested_url\":\"https://www.gram1.ru/\",\"script_count\":0,\"status\":200,\"style_count\":0,\"title\":\"Gram Crypto\"},{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonical_count\":0,\"content_type\":\"text/html; charset=utf-8\",\"error\":\"\",\"final_url\":\"https://gram1.ru/login\",\"form_count\":1,\"heading_count\":1,\"requested_url\":\"https://gram1.ru/login\",\"script_count\":0,\"status\":200,\"style_count\":0,\"title\":\"Gram Crypto\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/robots.txt\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/robots.txt\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/sitemap.xml\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/sitemap.xml\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/.well-known/security.txt\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/.well-known/security.txt\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/favicon.ico\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/favicon.ico\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/manifest.json\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/manifest.json\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/site.webmanifest\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/site.webmanifest\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":66,\"body_sha256\":\"fd4986bd7a591f1af722b4ec29bedeb8b7137d0e296fe22f086a1122b61d94e0\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"\",\"final_url\":\"https://gram1.ru/health\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/health\",\"script_count\":0,\"status\":200,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/status\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/status\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/api\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/api\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/api/health\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/api/health\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"}],\"stored_asset_bytes\":0},\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"schema\":1,\"status\":\"OK\",\"verification\":{\"anomalies\":[{\"basename_length\":36,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"03f2ff4c2e76505c2381f369a4e377442a546153331cf9dae7cb43247394a8df\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"1831ab715f1a23930712ec363c2df210519d9a8e63ab21050af976806c462319\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":34,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"047676a85d8479d57bc3895ccfd651d02ee971b84338c80aab36bece3a52e3ee\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"c2068a915ab0f0cd8086e7251b2406b4de17cd813988229b179a71e6eea49a0c\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":20,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:1:*.env\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/APP05-monitoring.env\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"66b5259ef62561b83fb0a2303c912122cbf5c014e6c31d8a626f7ea5e09a6633\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"eb860700333344be2f70c57bfab9fcdb5fc959fc241019e0e55898793e2c530c\",\"sensitive_path\":true,\"suffix\":\".env\"},{\"basename_length\":30,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ03-shellcheck-repo-scan.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"1a221a76afc8ec4b5704e76e1108ac709b5ad35c55ec0a59e747ab77f81accb9\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"f1a246ef882c692f3e7676d2009a5a0738904f4aee2e5b23ac832e6442e23159\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":19,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ04-yaml-scan.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"5935691291c6ab9f8eca95314af9ea915a8bed577fae6d1e2df310518cdb3b4f\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"46c726ae03ab26e7d67c925492f53ea0fa143a2d93f9fc91f4766da8cadb865e\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":30,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:26:*.log\\tsites/gram1..log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"c99ff35147a0efb6f140e5b87bc960634c887ecc4218581429a5ef73976bd664\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"683a786ccd0903852c34e18b2ee47a3270fc44a8a174c7ae37d27260ed35d870\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":30,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"808fd4bfc3df94d117481ba3a3a8a630079251d1e76a3e7514c64b6995828e9a\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"d70b5961cf40d476336611938313bf4f984caa86367034f982e63f4f335ff9af\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":21,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ06-dotenv-scan.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"1c47dd82be44861aa786c9aa2589d9641c1126e6e1fbd44a54648c53f737b8b6\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"87fddbce4d9ee1002e548ca86665cb89db8d789c1df8ef3b0cc60ea183d7477e\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":40,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08-precommit-config-syntax-review.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"119530731ea7e805303a0998f971cf40bceba98d06ddaa8a4a18ec56b3721e13\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"206c0b2917281b76b3cc6113e55545a2d037982a20970eefdb7ae7bbbae71443\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":42,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08R2-precommit-config-syntax-review.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"67831af293e57808753270db02a81ca060194fcf195d87cf2fe7105427416395\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"89150ce2e53b3a822590fac08a069419a5fe087dadb20c07f54d7574935d3bd0\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":33,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08R3-precommit-yaml-repair.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"4e3e110774e148db6e2a0b25465caf1b4adf220ffe7fd258c9199ca2c79f0652\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"325d9502c86190630eb0c655b0c9d84c4bf098e6ba4a6f8faf93d0cc2bde5b40\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":42,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"aa4d5dd3a43785dbfad1e76726bcdee209cc4b96b39601d2135d0a9af8dcdbec\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"f192560f9e1fb9fad21ad81749d8f69aaecd79bb442735aa5c01d42d8f18f3d9\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":41,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"650c68d3d7f9c5237028a8c4966350b8e1b59ba1e7d4eeb39ad92d48661ac5ee\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"b76d9833fe6db3eacc435aa2903d5a66cc477cbcd49300bec1fdd4190eb0d66e\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":36,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"d9ede7c80ced2339333a1fe0eb7593387ba71fed69ce9c0e344d21b2c002e844\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"0a37f3428e86c3b86e72e2ff56aabd60e73f01f9970cf50962c1295636e805d8\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":29,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"7f59ba740e83a41db3384eae87e82169322bbee48ba12e1c7b4f56660bcaeea0\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"a2ac117952ccea622345bb6148acbff3ef5ed20a3e5ec4d9925190dac39f26f3\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":39,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"6cd44b62ad80d0f9338ac669ea5984b8d32ab261140e07cd2f6d9bf95470835e\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"262f0dc79b7997d36058b3937c925c85d21784c07ab6b5ba4043cb11e6a762f0\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":43,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"02514e588fc1d8bbf50242cb78c45cbfc23cd4508c4d65f6d7fbab1ff3806a89\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"55d7edc8a6446a60ce484b35c64c88647508903264c20a2188c959d4498620ce\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":41,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"8a03fa69b7bfe09c8b2c0e5f4defb12245ed51faf2bd2c03099ab13919cbd968\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"1f146757dd427ba94db10f8cb7a28b442f7dfbc3dc7db97738faa37bbd6cab64\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":42,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"9b282098628ad289a6f4bdea7ea04a28a473545ab44f5823faf1af34c0945355\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"b3b3d8296f1af449d288c2736bfbfa2accbcde10ae34b0efe8bde8375c9388ec\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":39,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:4:*SECRET*\\tsites/gram1..state\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"b0c5d1d773fa3f1844f1f3cfa309082cc8672c2c78289d5f1752f480242040a0\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"12f015430ad9424a19dfe30db5b95dad23ecf63e7815f10af4ceb815267d5cc9\",\"sensitive_path\":true,\"suffix\":\".state\"},{\"basename_length\":73,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:4:*SECRET*\\tsites/gram1..state.bak-20260626T172508Z-SEC02-4-to-3\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"d5b8b7ddf4135fe2e4a84563c2904c5108fed062c880d2ef7fd3d7ce0a25437e\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"f8e733dec894be535a3f55bec4243442f1b90fac15fef5356ebdf9c912d9923d\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172508z-sec02-4-to-3\"},{\"basename_length\":73,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:4:*SECRET*\\tsites/gram1..state.bak-20260626T172523Z-SEC03-3-to-2\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"3123820d65de7be54ccf53e5ccc4ea06f36cfe74772031c3ea2bf60785d5a90e\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"8c29698be41912729278dacb43ab65afecfd575c1b4f2e2b4c36b43da49c8247\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172523z-sec03-3-to-2\"},{\"basename_length\":73,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:4:*SECRET*\\tsites/gram1..state.bak-20260626T172535Z-SEC04-2-to-1\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"58390eebf40c037ad26ed36255abe05677080000eb99a32e9e61c4cf99e2a523\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"aaf18ffde71b6473596bb7c92040719cbfc119ecc93fa87487250a9d071fb301\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172535z-sec04-2-to-1\"},{\"basename_length\":73,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:4:*SECRET*\\tsites/gram1..state.bak-20260626T172547Z-SEC05-1-to-0\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"d6a967aa21691825de7e26409a894c8f9b4d33dd016cb1792ca12c38a23ee4e2\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"e62fcb5f18e96be2401274c6e4bfe4a00b083e06433909d6b39f4b20351476cb\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172547z-sec05-1-to-0\"},{\"basename_length\":29,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"26add47b447812492386a7841eaff1600964beb7d9ee32d8487ee0ccba7eca23\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"221cbee473501ee3e126b8e29602ad5fbf9842b9746137aff0a33eb30d6c2ed4\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":43,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"1c3b1c497c5b3f915a056adf6fc8057d251e4564a4c1bb84ac7bf9d184164846\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"99565b640d90eb8ddbd13d276ab6aa01aad1ea72771cd5a2b12e928723171ba6\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":30,\"depth\":9,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"8385fcbff8e32b20a491f241d44139451a2d01e42da23e02adc916206d718b81\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"315926ca6f4f110ee475ea3392cc3e34f03856f87fdd1e1c23b6c013f3f7ae20\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":38,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"95f3a9ad4434bae963aa8571d12482f456bf6e625c5d6a5bd2eea0f6ab5811b6\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"d0a1f552e44ee3cc70c58a889001f15abab3d5105c7392997bbfe052379c42c9\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":34,\"depth\":8,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"0b40be06fa1569553dfcb1268f259bc244e3e9749962c310c902ea585bf6aed6\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"72a8c29f3c2e8e99a038a3447e7f459881cafb9be6b59ccbdb87b5056613a21a\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":24,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p0-restore-drill-20260624T122122Z/edge-health-redacted.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"1d5c441b47ab4c8ce70ad3d8da8ad8e4f63b55ac276a68134aad17f915e81378\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"b5dba4d253ce4cfce27a99d1a2cc7aeeb4eb607bfc628c6e7d5e49498fa6eda1\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":29,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p0-restore-drill-20260624T122122Z/nextcloud-health-redacted.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"8ffa9e5091874e8dc2ab0ee11c77d4e0991f0e8968aa9276ab3c6bb1c45ee349\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"8b6160f09289bf95e9011d5d2532bdfdace7151018bf14cddc167f61f39a05eb\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":23,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-disk-retention-20260624T122906Z/edge-disk-retention.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"88184ac4e6712127751e95a372fea3c4a962dcbb1b6f337479d96d9fd80ab9ab\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"7491d29ffb10110b9780e4c7b17379e5c92cc8b3b13a4cec215977c362aa7d89\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":26,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-gotify-bind-local-20260624T142534Z/edge-gotify-bind-local.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"b539d8ab20e1c3d7ae183e62a758517970c84e1526eacd74ca52e16821c698c7\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"c7a26319f7ce7a28a5d2652b0971d750620337110fb656676c98c5ed76f2d9ae\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":23,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-gotify-bind-local-20260624T142534Z/pve01-gotify-checks.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"0f7f7148f79dd4ebb21c675c7148338706c14059f639f83635ac5adb9410c70f\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"a7bee84809250a23b6e273c1663691bb7aa08f1f6e41dc2241bf6fd664220dca\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":27,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-npmplus-admin-bind-20260624T141458Z/edge-npmplus-admin-bind.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"2282ec1067cddacb51705ed0ed31c14136871dd45abad0220a409aa4eee553d2\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"af4f654bca9d5e77acb1ac87dc25551aace1adc3a1530bbeb3dd201177034d3d\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":27,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-private-vpn-real-fix-20260624T140710Z/edge-private-vpn-health.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"edec1d3140869a10e9b292b7fc2160ad7635b535b7148a499cb9ab18d87ca3ba\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"0926fcd8278044b8e3e7ac54865790187ca3ba21c304055b9632f4e656bf0c66\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":28,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-private-vpn-real-fix-20260624T140710Z/pve01-private-vpn-health.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"66c2985c8bc9946d9c9a5e6933690564f0237b887f1e172b69897ddfa579fb72\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"df2357b50958070a518d8712dda0d0b0ff4dba9c56562ccc208b7e76e8fd9107\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":21,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-20260624T133115Z/edge-final-health.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"a85ae485f382cee6a2b0bb9aacc17a7efd24b47da313633cf927ba357a42ca7f\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"d5a2d14f9ee2d03202d4a9f9d75e4c09264e896aa470af23471a3e5a4c0e62c5\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":21,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-20260624T133115Z/pve01-final-state.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"019e69a626941daf634eda8a19d0456d017143f98db96091c4eeab77bc833ae0\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"536ebafe24b85ae222b2a5af56cb5cb5c876d5d73509bb938f7338d563e31ac8\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":15,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-kuma-fix-20260624T133456Z/edge-health.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"fd15af0ea3cbe0e2b3d6155b4900d95744ca386450aa388c03e321f097274fbf\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"c5684c73fe33566cba19bfc41131dd3794e305cfc3690e97ec47b83b802f6e55\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":27,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-kuma-fix-20260624T133456Z/pve01-private-vpn-hosts.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"025d903f5f632e06c2e383d5bf57b25ad34138b913e5ccda38f7ece8f8ab01be\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"9cfbd1460ca38ec3f446d9f3d0ee0cc596e930c3fad3296308b8516e2ba6d43c\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":22,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/edge-router-health.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"0942367c3059c732b0b573aa92f1953bf1a06264e5f8c2942ccb3e374a4a19c2\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"1a2815578e337b7334268bd26030da8ad67dab65e7b05995d3f2884d868f0c31\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":31,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/nextcloud-turn-router-state.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"4e00d28ba20e8271c7791515143b9d9d01a23e8ec54a4b1348dfdb5309a1a16a\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"ac066c46b9e0b9ea72d698ed93c6b54ae2471412551fd147e207df6cf863ba59\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":31,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/pve01-router-hairpin-probes.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"26116733b46159e8fd195f2b63902401234fffec19bd8d479933cd96d689f5b2\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"0dbd50676c80dca8ab0c5fda3529a2827908092d046fb6ae41413db3d7693fbc\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":28,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/targeted-udp-tag-summary.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"96efef84756c9eede803867db1385590f67db29052a2d761b345afffa21e0172\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"603499f9228d7bff75161418bd6edd568d5333e6406abd87915f2d6262329189\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":25,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-hardening-20260624T125534Z/edge-router-hardening.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"92ecf926a745ba9ba3417d86b19e7531683e82b223b20a4888521c4627834ca1\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"3b602efd8d7209b2fb372b830ebc57ab10647ed060b3538d35e44cb009c5fc39\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":31,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1..txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"720f06b9c143aa5b7c076b595302eee0e9c7b11e328c78220480112036f3f61f\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"aa93d47b4e8337b1eb74f195cb5fc25a51d821f0d4fbd17bebda61e25e645884\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":30,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1..txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"0a2e2b004aea530f98353fd1970302d7dbca63f45fc0e79b61069edd198e419d\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"5b40627afbcc850a12211e2c4486456b84075a3e45e2a16a96f94a6e817f427e\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":20,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-turn-3478-20260624T143023Z/edge-turn-health.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"0602b60258928991089d7c408309cc1b12386a1b9ca4744d0cbdaf2181a45755\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"aeb6473b0194be1ee5311743ff57e751d2a1e65377c1be7417c04937eea5ff9e\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":24,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-turn-3478-20260624T143023Z/nextcloud-turn-state.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"a4c1926f01dc80bd1995968ebedb218c86ba90d0ef44fb196bfcbea0f709e06b\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"2b6e5bfb31cce087b75cc373f2fe676d84a4e09a5de1028aa47c9a280fcddbd4\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":18,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/backup-summary.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"5b988574d368c653a905be750f9126d128c3693bc9b75f7f58faa2a8ed203924\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"911a07e99ec8925526151a0183830f33a6e183fbe3066ce6eb8140f4c89fff66\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":24,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/current-fingerprints.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"21aa40c6b652a0fe7e97d9ad89ad6291b1591de6f4368f085a33cb28732815df\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"11efcb2cdb6caa4bc0d7cf2f5082d511a60e203034c7838355f5544f227cdf74\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":24,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/current-known-hosts.scan\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"b896fc8c0ee39a86615c06725f20457f74c453fc7b93532af86dfcf4e2eeffe6\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"ea1bbc4d7326bf99f603aea2fc69219e183114138222164c1fa34425f701ae2b\",\"sensitive_path\":true,\"suffix\":\".scan\"},{\"basename_length\":25,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-alias-known-hosts.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"9d826962f206a6098a00be141ddfa1524b179e9f58449feceb16ce79af38d4d4\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"0a60da401257e8d3d62622d35675b0aeeaa5b0c9987ae470f389bb9a84f67107\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":20,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-fingerprints.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"cf597d287845f317164b4f3c4820f2bd66e5c0aeddae242ff237e7e7d583c7dd\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"4eae326a00f039ed3f44104064c4c2fdea14fe9d76e3af66e3379669d2916022\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":22,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-ip-known-hosts.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"c4dcbfa2ce0571f34143c736f4f9472ede1fdeb4919af4c3228bc2a9e26caa56\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"fe70268e02c773df3fbb87dba01c95c40da5d948585327ec65fd5290860aa913\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":19,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-known-hosts.raw\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"f5e2ae1ac3302e9947120b1e49e7365406c3495170767fe7c137197f5127ac06\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"639767b08819a36ef1d907e1934e6bbd354e621488194f75aa06ced3e854074d\",\"sensitive_path\":true,\"suffix\":\".raw\"},{\"basename_length\":22,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/vps-identity-audit.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"4ddb0c2029d99c580cc682650c6c79f7644b7d1b73d8ecbad8868e7288a7e122\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"fcf87d70165391a6f54c5d6b1fe815822c9469a81287680eaee9ebd1d832ea16\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":22,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-audit.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"2fd7bf68b51afd18f259fc90ba3895a9cae6ea843df35bdaafef822f03b588c8\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"4f4cdc4688bc2f146c33ec604a925e52063653b83ca317a59436b246b8694443\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":31,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-final-evidence.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"2c1b158668e4fe2672bac68ce1cb071e550cb4aec018c4f8ecc63f9d081372dd\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"d0aa3459b11ba93537c86181bee9d357fdec62098c580a6d1c0cea83d2852d75\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":31,\"depth\":7,\"display\":\"\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-peer-discovery.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"1b423c085d60c40f192b2678dbeb9d7782a5039bd2ff46ab2bac94c5803491a5\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"d1e501c34794fae94b0636e4df7638d766f5114ff2e5fcf5f7c0b52143368354\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":56,\"depth\":6,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:7:*token*\\tsites/gram1..md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"073ca6c91b04c783635be196a401f7b215611e8ea26e3d16996a5320c3099884\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"cf0a58341719e872b49bc4b02cd11e7d83b548e3581c8c8cd26cbd228b1e1d46\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":49,\"depth\":6,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:7:*token*\\tsites/gram1..md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"a41753864159c835e8400ef003eb23c1d539eb0b2868b68eb233c963adc5c126\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"e9d73c2c02c4b77e4d1a1e9ca03a3f5a29318aa80c4de6c5ac17763b36aa135d\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":57,\"depth\":6,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:7:*token*\\tsites/gram1..md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"c233f7881d2c4ca39f986a7e2d40b6bee169c8295ec1141ee62bef961cababdb\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"dab0b2de30b5cbe7ddb7c0af562cad07f3a08a463f77b7d7a3c464ef17c4b32d\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":51,\"depth\":6,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:7:*token*\\tsites/gram1..md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"470407ef09a236e66b2aa41a5b7bf3b923aae05baf7ea3e276e89046d2de1f6d\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"4db3c5f77435bc717163e8571e894eabf122de91be97b532ca5b93d322d82f62\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":43,\"depth\":6,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"330700b68162ec69d2c2984a09d8f4ecde481de627fbc2a2d2f4523682b01845\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"6a1ee1d3f3c2e845f44b24f8c4ebf1607aa47a7eaf7d7b51672e88a5b035e342\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":43,\"depth\":6,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"44d895e37c4d7efb5b2a940d8427d58f95ac085a5f47f0de32ae9f6a37095764\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"32416b898e71d162602268191d7cb0aed22e9d5788fd96945c496759ca555875\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":28,\"depth\":6,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"d82c5c23ede0b4952bf49c531772ce2c450eb5c32d1c3e1112632099c3cecc3c\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"6335de79a3ccf4b63c70083a7ad96b5654143ca78290afca3a40f836f4a199b4\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":26,\"depth\":6,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"6bed7eb9432a31b217f0e34b25fcb715631bc05f3e1949e7678f06cc6cc6e993\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"6a0f236132211b9633e1af76a22dc681b2a0a5c3127cff28fb273c23c696e9ba\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":33,\"depth\":6,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1.\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"03a40752aff61bc454e2087a0b32de4dfc8441d8dcf968d1a5ca726995e0e8df\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"d7a9c39ea6d0c8a7a32946ad5f6ea9d5c05f9d043fb2fac37d35fae7f7db2135\",\"sensitive_path\":true,\"suffix\":\"\"},{\"basename_length\":9,\"depth\":6,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:47:secrets/*\\tsites/gram1..md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"497890c3ee641ac24cb043e3d1c4d3097e785f90541fd6f46fc58a94cf1fad59\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"3c04304cd1f920c5da0b385e24e0c58089655809ecf01afdb4118da559a0bff0\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":16,\"depth\":8,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..sh\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"9658a5115eee789ce42083a24b49f428846e564cd8dc50efe3fdce5955b4f6cd\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"535e8fd31db685820b50c7d2b39ef39231de37a09ba5721896bfe93ef6e4caad\",\"sensitive_path\":true,\"suffix\":\".sh\"},{\"basename_length\":22,\"depth\":8,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..sh\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"65f40742fc1ec0d09a9acb6877eb0b147d7ade8ae13d54a35af65602f843096f\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"e7a87f3d36d8f47b6bb474e00c9a58d6559461add004344555b2dc54ae4a7712\",\"sensitive_path\":true,\"suffix\":\".sh\"},{\"basename_length\":36,\"depth\":6,\"display\":\"\",\"git_ignore\":{\"evidence\":\"sites/gram1..gitignore:3:*secret*\\tsites/gram1..py\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"09ee779100f326a11557a44c8046d16e2134c5d530e9ccb4c9c17b59ea6e9d3c\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"b9e6fb675276fcc5dd88fc842e96ccc14c53b610ed0cd9822864f686fc4eb03b\",\"sensitive_path\":true,\"suffix\":\".py\"}],\"anomalies_truncated\":0,\"commit_tree_matches_capture_report\":false,\"expected_file_count\":4383,\"expected_total_bytes\":28903906,\"expected_tree_sha256\":\"ee05dc5ea7ab8ad354a66a5c5ffee7a982734125719d94d351d677ca75674062\",\"file_count\":4309,\"file_count_matches_capture_report\":false,\"ignored_missing_count\":74,\"manifest_command_id\":\"GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z\",\"manifest_consistent_with_commit\":false,\"manifest_entries\":4382,\"manifest_invalid_paths\":0,\"manifest_missing_files\":74,\"manifest_only_count\":74,\"manifest_only_path_hashes\":[{\"basename_length\":36,\"depth\":9,\"display\":\"\",\"path_sha256\":\"1831ab715f1a23930712ec363c2df210519d9a8e63ab21050af976806c462319\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":34,\"depth\":9,\"display\":\"\",\"path_sha256\":\"c2068a915ab0f0cd8086e7251b2406b4de17cd813988229b179a71e6eea49a0c\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":20,\"depth\":9,\"display\":\"\",\"path_sha256\":\"eb860700333344be2f70c57bfab9fcdb5fc959fc241019e0e55898793e2c530c\",\"sensitive_path\":true,\"suffix\":\".env\"},{\"basename_length\":30,\"depth\":9,\"display\":\"\",\"path_sha256\":\"f1a246ef882c692f3e7676d2009a5a0738904f4aee2e5b23ac832e6442e23159\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":19,\"depth\":9,\"display\":\"\",\"path_sha256\":\"46c726ae03ab26e7d67c925492f53ea0fa143a2d93f9fc91f4766da8cadb865e\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":30,\"depth\":9,\"display\":\"\",\"path_sha256\":\"683a786ccd0903852c34e18b2ee47a3270fc44a8a174c7ae37d27260ed35d870\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":30,\"depth\":9,\"display\":\"\",\"path_sha256\":\"d70b5961cf40d476336611938313bf4f984caa86367034f982e63f4f335ff9af\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":21,\"depth\":9,\"display\":\"\",\"path_sha256\":\"87fddbce4d9ee1002e548ca86665cb89db8d789c1df8ef3b0cc60ea183d7477e\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":40,\"depth\":9,\"display\":\"\",\"path_sha256\":\"206c0b2917281b76b3cc6113e55545a2d037982a20970eefdb7ae7bbbae71443\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":42,\"depth\":9,\"display\":\"\",\"path_sha256\":\"89150ce2e53b3a822590fac08a069419a5fe087dadb20c07f54d7574935d3bd0\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":33,\"depth\":9,\"display\":\"\",\"path_sha256\":\"325d9502c86190630eb0c655b0c9d84c4bf098e6ba4a6f8faf93d0cc2bde5b40\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":42,\"depth\":9,\"display\":\"\",\"path_sha256\":\"f192560f9e1fb9fad21ad81749d8f69aaecd79bb442735aa5c01d42d8f18f3d9\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":41,\"depth\":9,\"display\":\"\",\"path_sha256\":\"b76d9833fe6db3eacc435aa2903d5a66cc477cbcd49300bec1fdd4190eb0d66e\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":36,\"depth\":9,\"display\":\"\",\"path_sha256\":\"0a37f3428e86c3b86e72e2ff56aabd60e73f01f9970cf50962c1295636e805d8\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":29,\"depth\":9,\"display\":\"\",\"path_sha256\":\"a2ac117952ccea622345bb6148acbff3ef5ed20a3e5ec4d9925190dac39f26f3\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":39,\"depth\":9,\"display\":\"\",\"path_sha256\":\"262f0dc79b7997d36058b3937c925c85d21784c07ab6b5ba4043cb11e6a762f0\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":43,\"depth\":9,\"display\":\"\",\"path_sha256\":\"55d7edc8a6446a60ce484b35c64c88647508903264c20a2188c959d4498620ce\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":41,\"depth\":9,\"display\":\"\",\"path_sha256\":\"1f146757dd427ba94db10f8cb7a28b442f7dfbc3dc7db97738faa37bbd6cab64\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":42,\"depth\":9,\"display\":\"\",\"path_sha256\":\"b3b3d8296f1af449d288c2736bfbfa2accbcde10ae34b0efe8bde8375c9388ec\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":39,\"depth\":9,\"display\":\"\",\"path_sha256\":\"12f015430ad9424a19dfe30db5b95dad23ecf63e7815f10af4ceb815267d5cc9\",\"sensitive_path\":true,\"suffix\":\".state\"},{\"basename_length\":73,\"depth\":9,\"display\":\"\",\"path_sha256\":\"f8e733dec894be535a3f55bec4243442f1b90fac15fef5356ebdf9c912d9923d\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172508z-sec02-4-to-3\"},{\"basename_length\":73,\"depth\":9,\"display\":\"\",\"path_sha256\":\"8c29698be41912729278dacb43ab65afecfd575c1b4f2e2b4c36b43da49c8247\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172523z-sec03-3-to-2\"},{\"basename_length\":73,\"depth\":9,\"display\":\"\",\"path_sha256\":\"aaf18ffde71b6473596bb7c92040719cbfc119ecc93fa87487250a9d071fb301\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172535z-sec04-2-to-1\"},{\"basename_length\":73,\"depth\":9,\"display\":\"\",\"path_sha256\":\"e62fcb5f18e96be2401274c6e4bfe4a00b083e06433909d6b39f4b20351476cb\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172547z-sec05-1-to-0\"},{\"basename_length\":29,\"depth\":9,\"display\":\"\",\"path_sha256\":\"221cbee473501ee3e126b8e29602ad5fbf9842b9746137aff0a33eb30d6c2ed4\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":43,\"depth\":9,\"display\":\"\",\"path_sha256\":\"99565b640d90eb8ddbd13d276ab6aa01aad1ea72771cd5a2b12e928723171ba6\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":30,\"depth\":9,\"display\":\"\",\"path_sha256\":\"315926ca6f4f110ee475ea3392cc3e34f03856f87fdd1e1c23b6c013f3f7ae20\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":38,\"depth\":7,\"display\":\"\",\"path_sha256\":\"d0a1f552e44ee3cc70c58a889001f15abab3d5105c7392997bbfe052379c42c9\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":34,\"depth\":8,\"display\":\"\",\"path_sha256\":\"72a8c29f3c2e8e99a038a3447e7f459881cafb9be6b59ccbdb87b5056613a21a\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":24,\"depth\":7,\"display\":\"\",\"path_sha256\":\"b5dba4d253ce4cfce27a99d1a2cc7aeeb4eb607bfc628c6e7d5e49498fa6eda1\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":29,\"depth\":7,\"display\":\"\",\"path_sha256\":\"8b6160f09289bf95e9011d5d2532bdfdace7151018bf14cddc167f61f39a05eb\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":23,\"depth\":7,\"display\":\"\",\"path_sha256\":\"7491d29ffb10110b9780e4c7b17379e5c92cc8b3b13a4cec215977c362aa7d89\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":26,\"depth\":7,\"display\":\"\",\"path_sha256\":\"c7a26319f7ce7a28a5d2652b0971d750620337110fb656676c98c5ed76f2d9ae\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":23,\"depth\":7,\"display\":\"\",\"path_sha256\":\"a7bee84809250a23b6e273c1663691bb7aa08f1f6e41dc2241bf6fd664220dca\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":27,\"depth\":7,\"display\":\"\",\"path_sha256\":\"af4f654bca9d5e77acb1ac87dc25551aace1adc3a1530bbeb3dd201177034d3d\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":27,\"depth\":7,\"display\":\"\",\"path_sha256\":\"0926fcd8278044b8e3e7ac54865790187ca3ba21c304055b9632f4e656bf0c66\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":28,\"depth\":7,\"display\":\"\",\"path_sha256\":\"df2357b50958070a518d8712dda0d0b0ff4dba9c56562ccc208b7e76e8fd9107\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":21,\"depth\":7,\"display\":\"\",\"path_sha256\":\"d5a2d14f9ee2d03202d4a9f9d75e4c09264e896aa470af23471a3e5a4c0e62c5\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":21,\"depth\":7,\"display\":\"\",\"path_sha256\":\"536ebafe24b85ae222b2a5af56cb5cb5c876d5d73509bb938f7338d563e31ac8\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":15,\"depth\":7,\"display\":\"\",\"path_sha256\":\"c5684c73fe33566cba19bfc41131dd3794e305cfc3690e97ec47b83b802f6e55\",\"sensitive_path\":true,\"suffix\":\".txt\"}],\"manifest_sha256\":\"e561f275b7d1c6656e1fa80ee77b6fe4858d1178b4d8a592450ac4036adec459\",\"manifest_sha_mismatches\":0,\"manifest_size_mismatches\":0,\"manifest_snapshot_id\":\"20260731T071400Z\",\"manifest_symlinks\":0,\"manifest_verified_files\":4308,\"nonignored_missing_count\":0,\"total_bytes\":28684549,\"total_bytes_matches_capture_report\":false,\"tracked_only_count\":1,\"tracked_only_path_hashes\":[{\"basename_length\":19,\"depth\":1,\"display\":\"manifest.final.json\",\"path_sha256\":\"7e4eafd21b9aade5cc9f63c802f08c1efee3bd6fb0e7225c0e69179e7ac31adb\",\"sensitive_path\":false,\"suffix\":\".json\"}],\"tree_sha256\":\"fdac2c317221e056500efb4c4750c5cf0b4325102f99f67bb566f818bca9d231\",\"tree_sha_matches_capture_report\":false,\"unexpected_tracked_only_count\":0}}\n" +} diff --git a/runtime/history/GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z.txt b/runtime/history/GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z.txt new file mode 100644 index 0000000..64ad434 --- /dev/null +++ b/runtime/history/GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z.txt @@ -0,0 +1,34 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z +STATUS=OK +RC=0 +HOST=pve01 +MODE=verify +COMPONENT=gram1-site-baseline-compact-verified-audit +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 +COMMAND_SHA256=79e2b86a5c9714ebf4de028be29e044fd790edea2fdd78d15d86e06d7920bb69 +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=0 +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=480802d0ddf9e9994edd7f81d4edfc84a52b8037088441fa6ee891323351d84f +SANITIZED_OUTPUT_SHA256=0b4b60c2e5b627ef412488b16903bf8ed516fc1d88bd85384eeee9308e033fad +OUTPUT_BEGIN +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +{"baseline_integrity":{"capture_report_tree_matches_commit":false,"commit_identity_verified":true,"manifest_matches_commit":false,"repair_required_before_site_editing":true,"status":"DEGRADED"},"capture_coverage":{"hosts_attempted":12,"hosts_failed":9,"hosts_successful":3,"public_http_assets":0,"public_http_pages":15,"quarantined_file_count":0,"site_host_count":3,"snapshot_id":"20260731T071400Z"},"changes_made":false,"command_id":"GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z","editing_candidates":[{"detected_frameworks":["Docker Compose"],"discovery_score":144,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":1510,"snapshot":{"source_root":"/root/homelab-configs-worktree","stored_bytes":9347306,"stored_files":1322,"truncated":false},"source_root":"/root/homelab-configs-worktree"},{"detected_frameworks":["Docker Compose"],"discovery_score":129,"domain_match_count":1000,"host":"pve01","markers":[],"priority_score":1360,"snapshot":{"source_root":"/root/homelab-configs-worktree/docs","stored_bytes":6362627,"stored_files":764,"truncated":false},"source_root":"/root/homelab-configs-worktree/docs"},{"detected_frameworks":["Docker Compose"],"discovery_score":110,"domain_match_count":1000,"host":"pve01","markers":[],"priority_score":1170,"snapshot":{"source_root":"/root/homelab-configs-worktree/docs/operations","stored_bytes":5969079,"stored_files":699,"truncated":false},"source_root":"/root/homelab-configs-worktree/docs/operations"},{"detected_frameworks":["Docker Compose"],"discovery_score":95,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":1020,"snapshot":{"source_root":"/srv/homelab-desired-state","stored_bytes":1274899,"stored_files":957,"truncated":false},"source_root":"/srv/homelab-desired-state"},{"detected_frameworks":["Docker Compose"],"discovery_score":63,"domain_match_count":1000,"host":"pve01","markers":[],"priority_score":700,"snapshot":{"source_root":"/srv/homelab-desired-state/health","stored_bytes":231477,"stored_files":493,"truncated":false},"source_root":"/srv/homelab-desired-state/health"},{"detected_frameworks":["Docker Compose"],"discovery_score":32,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":370,"snapshot":null,"source_root":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation"},{"detected_frameworks":["Docker Compose"],"discovery_score":26,"domain_match_count":1000,"host":"pve01","markers":[],"priority_score":310,"snapshot":null,"source_root":"/srv/homelab-desired-state/sbin"},{"detected_frameworks":["Docker Compose"],"discovery_score":23,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":280,"snapshot":null,"source_root":"/srv/homelab-ops-worktrees/cr-2026-0015"},{"detected_frameworks":["Docker Compose"],"discovery_score":19,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":240,"snapshot":null,"source_root":"/root/homelab-ops-cr-2026-0004"},{"detected_frameworks":["Docker Compose"],"discovery_score":17,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":220,"snapshot":null,"source_root":"/root/homelab-ops-cr-2026-0012"},{"detected_frameworks":[],"discovery_score":2,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":56,"snapshot":{"source_root":"/root/evidence/forum-prod-diag-20260629T032514Z","stored_bytes":852,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-diag-20260629T032514Z"},{"detected_frameworks":[],"discovery_score":2,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":56,"snapshot":{"source_root":"/root/evidence/forum-prod-os-baseline-20260629T034119Z","stored_bytes":14367,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-os-baseline-20260629T034119Z"},{"detected_frameworks":[],"discovery_score":1,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":46,"snapshot":{"source_root":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z","stored_bytes":242,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z"},{"detected_frameworks":[],"discovery_score":1,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":46,"snapshot":{"source_root":"/root/evidence/forum-prod-recover-20260629T025511Z","stored_bytes":1438,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-recover-20260629T025511Z"},{"detected_frameworks":[],"discovery_score":1,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":46,"snapshot":{"source_root":"/root/evidence/forum-prod-recreate-20260629T030810Z","stored_bytes":3490,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-recreate-20260629T030810Z"},{"detected_frameworks":[],"discovery_score":1,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":26,"snapshot":null,"source_root":"/srv/homelab-desired-state/routerguard-tuya"}],"editing_start_here":"# Editing start: `gram1.ru`\n\nThis document lists the highest-confidence source and deployment roots discovered by the baseline.\n\n## Host `pve01`\n\n- Source candidate `/root/homelab-configs-worktree` — score 144; markers: .git.\n- Source candidate `/root/homelab-configs-worktree/docs` — score 129; markers: none.\n- Source candidate `/root/homelab-configs-worktree/docs/operations` — score 110; markers: none.\n- Source candidate `/srv/homelab-desired-state` — score 95; markers: .git.\n- Source candidate `/srv/homelab-desired-state/health` — score 63; markers: none.\n- Source candidate `/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation` — score 32; markers: .git.\n- Source candidate `/srv/homelab-desired-state/sbin` — score 26; markers: none.\n- Source candidate `/srv/homelab-ops-worktrees/cr-2026-0015` — score 23; markers: .git.\n- Source candidate `/root/homelab-ops-cr-2026-0004` — score 19; markers: .git.\n- Source candidate `/root/homelab-ops-cr-2026-0012` — score 17; markers: .git.\n- Snapshot `/root/homelab-configs-worktree`: 1322 files / 9347306 bytes; truncated=False.\n- Snapshot `/root/homelab-configs-worktree/docs`: 764 files / 6362627 bytes; truncated=False.\n- Snapshot `/root/homelab-configs-worktree/docs/operations`: 699 files / 5969079 bytes; truncated=False.\n- Snapshot `/srv/homelab-desired-state`: 957 files / 1274899 bytes; truncated=False.\n- Snapshot `/srv/homelab-desired-state/health`: 493 files / 231477 bytes; truncated=False.\n\n## Host `pve02`\n\n- Source candidate `/root/evidence/forum-prod-diag-20260629T032514Z` — score 2; markers: none.\n- Source candidate `/root/evidence/forum-prod-os-baseline-20260629T034119Z` — score 2; markers: none.\n- Source candidate `/root/evidence/forum-prod-offline-fix2-20260629T033832Z` — score 1; markers: none.\n- Source candidate `/root/evidence/forum-prod-recover-20260629T025511Z` — score 1; markers: none.\n- Source candidate `/root/evidence/forum-prod-recreate-20260629T030810Z` — score 1; markers: none.\n- Source candidate `/srv/homelab-desired-state/routerguard-tuya` — score 1; markers: none.\n- Snapshot `/root/evidence/forum-prod-diag-20260629T032514Z`: 3 files / 852 bytes; truncated=False.\n- Snapshot `/root/evidence/forum-prod-os-baseline-20260629T034119Z`: 3 files / 14367 bytes; truncated=False.\n- Snapshot `/root/evidence/forum-prod-offline-fix2-20260629T033832Z`: 3 files / 242 bytes; truncated=False.\n- Snapshot `/root/evidence/forum-prod-recover-20260629T025511Z`: 3 files / 1438 bytes; truncated=False.\n- Snapshot `/root/evidence/forum-prod-recreate-20260629T030810Z`: 3 files / 3490 bytes; truncated=False.\n\n## Host `pve03`\n\n- No source root, but domain/config evidence exists.\n\nBefore changing production, compare the selected source snapshot with the live source root and create a separate transactional change capsule with byte-for-byte backup and automatic rollback.\n","failed_hosts":[{"duration_seconds":10.366,"rc":142,"ssh_target":"root@[PRIVATE_IP]","stderr_excerpt":"","stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","target":"[PRIVATE_IP]"},{"duration_seconds":10.262,"rc":142,"ssh_target":"root@[PRIVATE_IP]","stderr_excerpt":"","stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","target":"[PRIVATE_IP]"},{"duration_seconds":7.011,"rc":255,"ssh_target":"root@95.84.154.183","stderr_excerpt":"ssh: connect to host 95.84.154.183 port 22: Connection timed out\n","stderr_sha256":"822e7fe8675a92bba9ea2fa5be5e7f07fc1732fad6587e4a2782ab7aa3a13ab2","target":"95.84.154.183"},{"duration_seconds":0.043,"rc":255,"ssh_target":"core-apps","stderr_excerpt":"ssh: Could not resolve hostname core-apps: Name or service not known\n","stderr_sha256":"86bbe345e27c855214639ebf8b3720a3bf1c37b869ad752d716acc184c0d685a","target":"core-apps"},{"duration_seconds":0.045,"rc":255,"ssh_target":"edge-vm","stderr_excerpt":"No ED25519 host key is known for edge-vm and you have requested strict checking.\nHost key verification failed.\n","stderr_sha256":"13687874591b23c2d4952604e4ab0452eddd1a96cb85f19569837efbc80c9252","target":"edge-vm"},{"duration_seconds":7.012,"rc":255,"ssh_target":"gram1.ru","stderr_excerpt":"ssh: connect to host gram1.ru port 22: Connection timed out\n","stderr_sha256":"ad807aa07abc5fbcc1f440ba12260b8b729eb6190945528d4a2b0a59356dcdf8","target":"gram1.ru"},{"duration_seconds":0.026,"rc":255,"ssh_target":"pve02.gram1.ru","stderr_excerpt":"No ED25519 host key is known for pve02.gram1.ru and you have requested strict checking.\nHost key verification failed.\n","stderr_sha256":"d8e727c5cd664102acb30b4c0cb37af5821351638c2a8682b07e89b7981242ec","target":"pve02.gram1.ru"},{"duration_seconds":0.025,"rc":255,"ssh_target":"pve03.gram1.ru","stderr_excerpt":"No ED25519 host key is known for pve03.gram1.ru and you have requested strict checking.\nHost key verification failed.\n","stderr_sha256":"5816dfdac31569bd9866c40dd0aeae58c8301f832c1cf07a5c9307250d3d570e","target":"pve03.gram1.ru"},{"duration_seconds":7.013,"rc":255,"ssh_target":"www.gram1.ru","stderr_excerpt":"ssh: connect to host www.gram1.ru port 22: Connection timed out\n","stderr_sha256":"f372535ea680bb6507bf04d94ab0ea76d7d6cd3ffe3948d8558550299211731b","target":"www.gram1.ru"}],"gitea_changed":false,"hosts":[{"candidate_source_roots":[{"markers":[".git"],"path":"/root/homelab-configs-worktree","reasons":["domain_match_parent"],"score":144},{"markers":[],"path":"/root/homelab-configs-worktree/docs","reasons":["domain_match_parent"],"score":129},{"markers":[],"path":"/root/homelab-configs-worktree/docs/operations","reasons":["domain_match_parent"],"score":110},{"markers":[".git"],"path":"/srv/homelab-desired-state","reasons":["domain_match_parent"],"score":95},{"markers":[],"path":"/srv/homelab-desired-state/health","reasons":["domain_match_parent"],"score":63},{"markers":[".git"],"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation","reasons":["domain_match_parent"],"score":32},{"markers":[],"path":"/srv/homelab-desired-state/sbin","reasons":["domain_match_parent"],"score":26},{"markers":[".git"],"path":"/srv/homelab-ops-worktrees/cr-2026-0015","reasons":["domain_match_parent"],"score":23},{"markers":[".git"],"path":"/root/homelab-ops-cr-2026-0004","reasons":["domain_match_parent"],"score":19},{"markers":[".git"],"path":"/root/homelab-ops-cr-2026-0012","reasons":["domain_match_parent"],"score":17}],"container_count":1,"detected_frameworks":["Docker Compose"],"directory":"hosts/local","domain_match_count":1000,"fqdn":"pve01.gram1.ru","hostname":"pve01","packages":[],"source_inventory_totals":{"framework_marker_count":1,"package_count":0,"stored_bytes":25135855,"stored_files":4163},"source_snapshots":[{"source_root":"/root/homelab-configs-worktree","stored_bytes":9347306,"stored_files":1322,"truncated":false},{"source_root":"/root/homelab-configs-worktree/docs","stored_bytes":6362627,"stored_files":764,"truncated":false},{"source_root":"/root/homelab-configs-worktree/docs/operations","stored_bytes":5969079,"stored_files":699,"truncated":false},{"source_root":"/srv/homelab-desired-state","stored_bytes":1274899,"stored_files":957,"truncated":false},{"source_root":"/srv/homelab-desired-state/health","stored_bytes":231477,"stored_files":493,"truncated":false}],"systemd_service_count":12},{"candidate_source_roots":[{"markers":[],"path":"/root/evidence/forum-prod-diag-20260629T032514Z","reasons":["domain_match_parent"],"score":2},{"markers":[],"path":"/root/evidence/forum-prod-os-baseline-20260629T034119Z","reasons":["domain_match_parent"],"score":2},{"markers":[],"path":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z","reasons":["domain_match_parent"],"score":1},{"markers":[],"path":"/root/evidence/forum-prod-recover-20260629T025511Z","reasons":["domain_match_parent"],"score":1},{"markers":[],"path":"/root/evidence/forum-prod-recreate-20260629T030810Z","reasons":["domain_match_parent"],"score":1},{"markers":[],"path":"/srv/homelab-desired-state/routerguard-tuya","reasons":["domain_match_parent"],"score":1}],"container_count":0,"detected_frameworks":[],"directory":"hosts/pve02","domain_match_count":16,"fqdn":"pve02.gram1.ru","hostname":"pve02","packages":[],"source_inventory_totals":{"framework_marker_count":0,"package_count":0,"stored_bytes":29322,"stored_files":17},"source_snapshots":[{"source_root":"/root/evidence/forum-prod-diag-20260629T032514Z","stored_bytes":852,"stored_files":3,"truncated":false},{"source_root":"/root/evidence/forum-prod-os-baseline-20260629T034119Z","stored_bytes":14367,"stored_files":3,"truncated":false},{"source_root":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z","stored_bytes":242,"stored_files":3,"truncated":false},{"source_root":"/root/evidence/forum-prod-recover-20260629T025511Z","stored_bytes":1438,"stored_files":3,"truncated":false},{"source_root":"/root/evidence/forum-prod-recreate-20260629T030810Z","stored_bytes":3490,"stored_files":3,"truncated":false}],"systemd_service_count":10},{"candidate_source_roots":[],"container_count":0,"detected_frameworks":[],"directory":"hosts/pve03","domain_match_count":6,"fqdn":"pve03.gram1.ru","hostname":"pve03","packages":[],"source_inventory_totals":{"framework_marker_count":0,"package_count":0,"stored_bytes":6,"stored_files":2},"source_snapshots":[],"systemd_service_count":10}],"identity":{"branch":"site-gram1-ru-baseline-20260731","capture_capsule_sha256":"a7ad06c722755f0398118f4e20383e339bf2dd48d24e26c451d8644a6be7f515","capture_command_id":"GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z","commit_sha":"f9d3ba8caf65005605aa8aee2ede7e4e7e94ee49","contract_sha256":"25eda14e622fd33864289d1515b2d3c4a92de0a1073aae81093afaae5a98788e","repo":"https://git.gram1.ru/homelab-admin/homelab-ops.git","snapshot_path":"sites/gram1.ru/baseline/20260731T071400Z"},"mutation_outcome":"NO_MUTATION","next_decision":"REPAIR_BASELINE_METADATA_BEFORE_EDITING","output_json_bytes_before_size_field":72880,"output_json_sha256_before_hash_field":"41dcf79b1a601f1f065089fce34cd808986b98e4f568d0c5b19dea405e3c1cf3","production_site_changed":false,"public_http":{"asset_count":0,"page_count":15,"pages":[{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonical_count":0,"content_type":"text/html; charset=utf-8","error":"","final_url":"https://gram1.ru/login","form_count":1,"heading_count":1,"requested_url":"http://gram1.ru/","script_count":0,"status":200,"style_count":0,"title":"Gram Crypto"},{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonical_count":0,"content_type":"text/html; charset=utf-8","error":"","final_url":"https://www.gram1.ru/login","form_count":1,"heading_count":1,"requested_url":"http://www.gram1.ru/","script_count":0,"status":200,"style_count":0,"title":"Gram Crypto"},{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonical_count":0,"content_type":"text/html; charset=utf-8","error":"","final_url":"https://gram1.ru/login","form_count":1,"heading_count":1,"requested_url":"https://gram1.ru/","script_count":0,"status":200,"style_count":0,"title":"Gram Crypto"},{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonical_count":0,"content_type":"text/html; charset=utf-8","error":"","final_url":"https://www.gram1.ru/login","form_count":1,"heading_count":1,"requested_url":"https://www.gram1.ru/","script_count":0,"status":200,"style_count":0,"title":"Gram Crypto"},{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonical_count":0,"content_type":"text/html; charset=utf-8","error":"","final_url":"https://gram1.ru/login","form_count":1,"heading_count":1,"requested_url":"https://gram1.ru/login","script_count":0,"status":200,"style_count":0,"title":"Gram Crypto"},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/robots.txt","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/robots.txt","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/sitemap.xml","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/sitemap.xml","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/.well-known/security.txt","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/.well-known/security.txt","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/favicon.ico","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/favicon.ico","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/manifest.json","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/manifest.json","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/site.webmanifest","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/site.webmanifest","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":66,"body_sha256":"fd4986bd7a591f1af722b4ec29bedeb8b7137d0e296fe22f086a1122b61d94e0","canonical_count":0,"content_type":"application/json","error":"","final_url":"https://gram1.ru/health","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/health","script_count":0,"status":200,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/status","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/status","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/api","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/api","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/api/health","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/api/health","script_count":0,"status":404,"style_count":0,"title":""}],"stored_asset_bytes":0},"rc":0,"rollback_restored":null,"rollback_started":false,"schema":1,"status":"OK","verification":{"anomalies":[{"basename_length":36,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"03f2ff4c2e76505c2381f369a4e377442a546153331cf9dae7cb43247394a8df"},"kind":"missing_from_checkout","path_sha256":"1831ab715f1a23930712ec363c2df210519d9a8e63ab21050af976806c462319","sensitive_path":true,"suffix":".tsv"},{"basename_length":34,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"047676a85d8479d57bc3895ccfd651d02ee971b84338c80aab36bece3a52e3ee"},"kind":"missing_from_checkout","path_sha256":"c2068a915ab0f0cd8086e7251b2406b4de17cd813988229b179a71e6eea49a0c","sensitive_path":true,"suffix":".tsv"},{"basename_length":20,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:1:*.env\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/APP05-monitoring.env\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"66b5259ef62561b83fb0a2303c912122cbf5c014e6c31d8a626f7ea5e09a6633"},"kind":"missing_from_checkout","path_sha256":"eb860700333344be2f70c57bfab9fcdb5fc959fc241019e0e55898793e2c530c","sensitive_path":true,"suffix":".env"},{"basename_length":30,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ03-shellcheck-repo-scan.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1a221a76afc8ec4b5704e76e1108ac709b5ad35c55ec0a59e747ab77f81accb9"},"kind":"missing_from_checkout","path_sha256":"f1a246ef882c692f3e7676d2009a5a0738904f4aee2e5b23ac832e6442e23159","sensitive_path":true,"suffix":".log"},{"basename_length":19,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ04-yaml-scan.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"5935691291c6ab9f8eca95314af9ea915a8bed577fae6d1e2df310518cdb3b4f"},"kind":"missing_from_checkout","path_sha256":"46c726ae03ab26e7d67c925492f53ea0fa143a2d93f9fc91f4766da8cadb865e","sensitive_path":true,"suffix":".log"},{"basename_length":30,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:26:*.log\tsites/gram1..log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"c99ff35147a0efb6f140e5b87bc960634c887ecc4218581429a5ef73976bd664"},"kind":"missing_from_checkout","path_sha256":"683a786ccd0903852c34e18b2ee47a3270fc44a8a174c7ae37d27260ed35d870","sensitive_path":true,"suffix":".log"},{"basename_length":30,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"808fd4bfc3df94d117481ba3a3a8a630079251d1e76a3e7514c64b6995828e9a"},"kind":"missing_from_checkout","path_sha256":"d70b5961cf40d476336611938313bf4f984caa86367034f982e63f4f335ff9af","sensitive_path":true,"suffix":".tsv"},{"basename_length":21,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ06-dotenv-scan.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1c47dd82be44861aa786c9aa2589d9641c1126e6e1fbd44a54648c53f737b8b6"},"kind":"missing_from_checkout","path_sha256":"87fddbce4d9ee1002e548ca86665cb89db8d789c1df8ef3b0cc60ea183d7477e","sensitive_path":true,"suffix":".log"},{"basename_length":40,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08-precommit-config-syntax-review.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"119530731ea7e805303a0998f971cf40bceba98d06ddaa8a4a18ec56b3721e13"},"kind":"missing_from_checkout","path_sha256":"206c0b2917281b76b3cc6113e55545a2d037982a20970eefdb7ae7bbbae71443","sensitive_path":true,"suffix":".log"},{"basename_length":42,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08R2-precommit-config-syntax-review.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"67831af293e57808753270db02a81ca060194fcf195d87cf2fe7105427416395"},"kind":"missing_from_checkout","path_sha256":"89150ce2e53b3a822590fac08a069419a5fe087dadb20c07f54d7574935d3bd0","sensitive_path":true,"suffix":".log"},{"basename_length":33,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08R3-precommit-yaml-repair.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"4e3e110774e148db6e2a0b25465caf1b4adf220ffe7fd258c9199ca2c79f0652"},"kind":"missing_from_checkout","path_sha256":"325d9502c86190630eb0c655b0c9d84c4bf098e6ba4a6f8faf93d0cc2bde5b40","sensitive_path":true,"suffix":".log"},{"basename_length":42,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"aa4d5dd3a43785dbfad1e76726bcdee209cc4b96b39601d2135d0a9af8dcdbec"},"kind":"missing_from_checkout","path_sha256":"f192560f9e1fb9fad21ad81749d8f69aaecd79bb442735aa5c01d42d8f18f3d9","sensitive_path":true,"suffix":".tsv"},{"basename_length":41,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"650c68d3d7f9c5237028a8c4966350b8e1b59ba1e7d4eeb39ad92d48661ac5ee"},"kind":"missing_from_checkout","path_sha256":"b76d9833fe6db3eacc435aa2903d5a66cc477cbcd49300bec1fdd4190eb0d66e","sensitive_path":true,"suffix":".tsv"},{"basename_length":36,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d9ede7c80ced2339333a1fe0eb7593387ba71fed69ce9c0e344d21b2c002e844"},"kind":"missing_from_checkout","path_sha256":"0a37f3428e86c3b86e72e2ff56aabd60e73f01f9970cf50962c1295636e805d8","sensitive_path":true,"suffix":".tsv"},{"basename_length":29,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"7f59ba740e83a41db3384eae87e82169322bbee48ba12e1c7b4f56660bcaeea0"},"kind":"missing_from_checkout","path_sha256":"a2ac117952ccea622345bb6148acbff3ef5ed20a3e5ec4d9925190dac39f26f3","sensitive_path":true,"suffix":".tsv"},{"basename_length":39,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"6cd44b62ad80d0f9338ac669ea5984b8d32ab261140e07cd2f6d9bf95470835e"},"kind":"missing_from_checkout","path_sha256":"262f0dc79b7997d36058b3937c925c85d21784c07ab6b5ba4043cb11e6a762f0","sensitive_path":true,"suffix":".txt"},{"basename_length":43,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"02514e588fc1d8bbf50242cb78c45cbfc23cd4508c4d65f6d7fbab1ff3806a89"},"kind":"missing_from_checkout","path_sha256":"55d7edc8a6446a60ce484b35c64c88647508903264c20a2188c959d4498620ce","sensitive_path":true,"suffix":".tsv"},{"basename_length":41,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"8a03fa69b7bfe09c8b2c0e5f4defb12245ed51faf2bd2c03099ab13919cbd968"},"kind":"missing_from_checkout","path_sha256":"1f146757dd427ba94db10f8cb7a28b442f7dfbc3dc7db97738faa37bbd6cab64","sensitive_path":true,"suffix":".md"},{"basename_length":42,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"9b282098628ad289a6f4bdea7ea04a28a473545ab44f5823faf1af34c0945355"},"kind":"missing_from_checkout","path_sha256":"b3b3d8296f1af449d288c2736bfbfa2accbcde10ae34b0efe8bde8375c9388ec","sensitive_path":true,"suffix":".tsv"},{"basename_length":39,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:4:*SECRET*\tsites/gram1..state\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"b0c5d1d773fa3f1844f1f3cfa309082cc8672c2c78289d5f1752f480242040a0"},"kind":"missing_from_checkout","path_sha256":"12f015430ad9424a19dfe30db5b95dad23ecf63e7815f10af4ceb815267d5cc9","sensitive_path":true,"suffix":".state"},{"basename_length":73,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:4:*SECRET*\tsites/gram1..state.bak-20260626T172508Z-SEC02-4-to-3\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d5b8b7ddf4135fe2e4a84563c2904c5108fed062c880d2ef7fd3d7ce0a25437e"},"kind":"missing_from_checkout","path_sha256":"f8e733dec894be535a3f55bec4243442f1b90fac15fef5356ebdf9c912d9923d","sensitive_path":true,"suffix":".bak-20260626t172508z-sec02-4-to-3"},{"basename_length":73,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:4:*SECRET*\tsites/gram1..state.bak-20260626T172523Z-SEC03-3-to-2\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"3123820d65de7be54ccf53e5ccc4ea06f36cfe74772031c3ea2bf60785d5a90e"},"kind":"missing_from_checkout","path_sha256":"8c29698be41912729278dacb43ab65afecfd575c1b4f2e2b4c36b43da49c8247","sensitive_path":true,"suffix":".bak-20260626t172523z-sec03-3-to-2"},{"basename_length":73,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:4:*SECRET*\tsites/gram1..state.bak-20260626T172535Z-SEC04-2-to-1\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"58390eebf40c037ad26ed36255abe05677080000eb99a32e9e61c4cf99e2a523"},"kind":"missing_from_checkout","path_sha256":"aaf18ffde71b6473596bb7c92040719cbfc119ecc93fa87487250a9d071fb301","sensitive_path":true,"suffix":".bak-20260626t172535z-sec04-2-to-1"},{"basename_length":73,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:4:*SECRET*\tsites/gram1..state.bak-20260626T172547Z-SEC05-1-to-0\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d6a967aa21691825de7e26409a894c8f9b4d33dd016cb1792ca12c38a23ee4e2"},"kind":"missing_from_checkout","path_sha256":"e62fcb5f18e96be2401274c6e4bfe4a00b083e06433909d6b39f4b20351476cb","sensitive_path":true,"suffix":".bak-20260626t172547z-sec05-1-to-0"},{"basename_length":29,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"26add47b447812492386a7841eaff1600964beb7d9ee32d8487ee0ccba7eca23"},"kind":"missing_from_checkout","path_sha256":"221cbee473501ee3e126b8e29602ad5fbf9842b9746137aff0a33eb30d6c2ed4","sensitive_path":true,"suffix":".tsv"},{"basename_length":43,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1c3b1c497c5b3f915a056adf6fc8057d251e4564a4c1bb84ac7bf9d184164846"},"kind":"missing_from_checkout","path_sha256":"99565b640d90eb8ddbd13d276ab6aa01aad1ea72771cd5a2b12e928723171ba6","sensitive_path":true,"suffix":".tsv"},{"basename_length":30,"depth":9,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"8385fcbff8e32b20a491f241d44139451a2d01e42da23e02adc916206d718b81"},"kind":"missing_from_checkout","path_sha256":"315926ca6f4f110ee475ea3392cc3e34f03856f87fdd1e1c23b6c013f3f7ae20","sensitive_path":true,"suffix":".tsv"},{"basename_length":38,"depth":7,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"95f3a9ad4434bae963aa8571d12482f456bf6e625c5d6a5bd2eea0f6ab5811b6"},"kind":"missing_from_checkout","path_sha256":"d0a1f552e44ee3cc70c58a889001f15abab3d5105c7392997bbfe052379c42c9","sensitive_path":true,"suffix":".md"},{"basename_length":34,"depth":8,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0b40be06fa1569553dfcb1268f259bc244e3e9749962c310c902ea585bf6aed6"},"kind":"missing_from_checkout","path_sha256":"72a8c29f3c2e8e99a038a3447e7f459881cafb9be6b59ccbdb87b5056613a21a","sensitive_path":true,"suffix":".md"},{"basename_length":24,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p0-restore-drill-20260624T122122Z/edge-health-redacted.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1d5c441b47ab4c8ce70ad3d8da8ad8e4f63b55ac276a68134aad17f915e81378"},"kind":"missing_from_checkout","path_sha256":"b5dba4d253ce4cfce27a99d1a2cc7aeeb4eb607bfc628c6e7d5e49498fa6eda1","sensitive_path":true,"suffix":".txt"},{"basename_length":29,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p0-restore-drill-20260624T122122Z/nextcloud-health-redacted.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"8ffa9e5091874e8dc2ab0ee11c77d4e0991f0e8968aa9276ab3c6bb1c45ee349"},"kind":"missing_from_checkout","path_sha256":"8b6160f09289bf95e9011d5d2532bdfdace7151018bf14cddc167f61f39a05eb","sensitive_path":true,"suffix":".txt"},{"basename_length":23,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-disk-retention-20260624T122906Z/edge-disk-retention.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"88184ac4e6712127751e95a372fea3c4a962dcbb1b6f337479d96d9fd80ab9ab"},"kind":"missing_from_checkout","path_sha256":"7491d29ffb10110b9780e4c7b17379e5c92cc8b3b13a4cec215977c362aa7d89","sensitive_path":true,"suffix":".txt"},{"basename_length":26,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-gotify-bind-local-20260624T142534Z/edge-gotify-bind-local.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"b539d8ab20e1c3d7ae183e62a758517970c84e1526eacd74ca52e16821c698c7"},"kind":"missing_from_checkout","path_sha256":"c7a26319f7ce7a28a5d2652b0971d750620337110fb656676c98c5ed76f2d9ae","sensitive_path":true,"suffix":".txt"},{"basename_length":23,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-gotify-bind-local-20260624T142534Z/pve01-gotify-checks.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0f7f7148f79dd4ebb21c675c7148338706c14059f639f83635ac5adb9410c70f"},"kind":"missing_from_checkout","path_sha256":"a7bee84809250a23b6e273c1663691bb7aa08f1f6e41dc2241bf6fd664220dca","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-npmplus-admin-bind-20260624T141458Z/edge-npmplus-admin-bind.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"2282ec1067cddacb51705ed0ed31c14136871dd45abad0220a409aa4eee553d2"},"kind":"missing_from_checkout","path_sha256":"af4f654bca9d5e77acb1ac87dc25551aace1adc3a1530bbeb3dd201177034d3d","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-private-vpn-real-fix-20260624T140710Z/edge-private-vpn-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"edec1d3140869a10e9b292b7fc2160ad7635b535b7148a499cb9ab18d87ca3ba"},"kind":"missing_from_checkout","path_sha256":"0926fcd8278044b8e3e7ac54865790187ca3ba21c304055b9632f4e656bf0c66","sensitive_path":true,"suffix":".txt"},{"basename_length":28,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-private-vpn-real-fix-20260624T140710Z/pve01-private-vpn-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"66c2985c8bc9946d9c9a5e6933690564f0237b887f1e172b69897ddfa579fb72"},"kind":"missing_from_checkout","path_sha256":"df2357b50958070a518d8712dda0d0b0ff4dba9c56562ccc208b7e76e8fd9107","sensitive_path":true,"suffix":".txt"},{"basename_length":21,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-20260624T133115Z/edge-final-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"a85ae485f382cee6a2b0bb9aacc17a7efd24b47da313633cf927ba357a42ca7f"},"kind":"missing_from_checkout","path_sha256":"d5a2d14f9ee2d03202d4a9f9d75e4c09264e896aa470af23471a3e5a4c0e62c5","sensitive_path":true,"suffix":".txt"},{"basename_length":21,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-20260624T133115Z/pve01-final-state.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"019e69a626941daf634eda8a19d0456d017143f98db96091c4eeab77bc833ae0"},"kind":"missing_from_checkout","path_sha256":"536ebafe24b85ae222b2a5af56cb5cb5c876d5d73509bb938f7338d563e31ac8","sensitive_path":true,"suffix":".txt"},{"basename_length":15,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-kuma-fix-20260624T133456Z/edge-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"fd15af0ea3cbe0e2b3d6155b4900d95744ca386450aa388c03e321f097274fbf"},"kind":"missing_from_checkout","path_sha256":"c5684c73fe33566cba19bfc41131dd3794e305cfc3690e97ec47b83b802f6e55","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-kuma-fix-20260624T133456Z/pve01-private-vpn-hosts.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"025d903f5f632e06c2e383d5bf57b25ad34138b913e5ccda38f7ece8f8ab01be"},"kind":"missing_from_checkout","path_sha256":"9cfbd1460ca38ec3f446d9f3d0ee0cc596e930c3fad3296308b8516e2ba6d43c","sensitive_path":true,"suffix":".txt"},{"basename_length":22,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/edge-router-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0942367c3059c732b0b573aa92f1953bf1a06264e5f8c2942ccb3e374a4a19c2"},"kind":"missing_from_checkout","path_sha256":"1a2815578e337b7334268bd26030da8ad67dab65e7b05995d3f2884d868f0c31","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/nextcloud-turn-router-state.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"4e00d28ba20e8271c7791515143b9d9d01a23e8ec54a4b1348dfdb5309a1a16a"},"kind":"missing_from_checkout","path_sha256":"ac066c46b9e0b9ea72d698ed93c6b54ae2471412551fd147e207df6cf863ba59","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/pve01-router-hairpin-probes.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"26116733b46159e8fd195f2b63902401234fffec19bd8d479933cd96d689f5b2"},"kind":"missing_from_checkout","path_sha256":"0dbd50676c80dca8ab0c5fda3529a2827908092d046fb6ae41413db3d7693fbc","sensitive_path":true,"suffix":".txt"},{"basename_length":28,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/targeted-udp-tag-summary.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"96efef84756c9eede803867db1385590f67db29052a2d761b345afffa21e0172"},"kind":"missing_from_checkout","path_sha256":"603499f9228d7bff75161418bd6edd568d5333e6406abd87915f2d6262329189","sensitive_path":true,"suffix":".txt"},{"basename_length":25,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-hardening-20260624T125534Z/edge-router-hardening.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"92ecf926a745ba9ba3417d86b19e7531683e82b223b20a4888521c4627834ca1"},"kind":"missing_from_checkout","path_sha256":"3b602efd8d7209b2fb372b830ebc57ab10647ed060b3538d35e44cb009c5fc39","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1..txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"720f06b9c143aa5b7c076b595302eee0e9c7b11e328c78220480112036f3f61f"},"kind":"missing_from_checkout","path_sha256":"aa93d47b4e8337b1eb74f195cb5fc25a51d821f0d4fbd17bebda61e25e645884","sensitive_path":true,"suffix":".txt"},{"basename_length":30,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1..txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0a2e2b004aea530f98353fd1970302d7dbca63f45fc0e79b61069edd198e419d"},"kind":"missing_from_checkout","path_sha256":"5b40627afbcc850a12211e2c4486456b84075a3e45e2a16a96f94a6e817f427e","sensitive_path":true,"suffix":".txt"},{"basename_length":20,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-turn-3478-20260624T143023Z/edge-turn-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0602b60258928991089d7c408309cc1b12386a1b9ca4744d0cbdaf2181a45755"},"kind":"missing_from_checkout","path_sha256":"aeb6473b0194be1ee5311743ff57e751d2a1e65377c1be7417c04937eea5ff9e","sensitive_path":true,"suffix":".txt"},{"basename_length":24,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-turn-3478-20260624T143023Z/nextcloud-turn-state.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"a4c1926f01dc80bd1995968ebedb218c86ba90d0ef44fb196bfcbea0f709e06b"},"kind":"missing_from_checkout","path_sha256":"2b6e5bfb31cce087b75cc373f2fe676d84a4e09a5de1028aa47c9a280fcddbd4","sensitive_path":true,"suffix":".txt"},{"basename_length":18,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/backup-summary.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"5b988574d368c653a905be750f9126d128c3693bc9b75f7f58faa2a8ed203924"},"kind":"missing_from_checkout","path_sha256":"911a07e99ec8925526151a0183830f33a6e183fbe3066ce6eb8140f4c89fff66","sensitive_path":true,"suffix":".txt"},{"basename_length":24,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/current-fingerprints.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"21aa40c6b652a0fe7e97d9ad89ad6291b1591de6f4368f085a33cb28732815df"},"kind":"missing_from_checkout","path_sha256":"11efcb2cdb6caa4bc0d7cf2f5082d511a60e203034c7838355f5544f227cdf74","sensitive_path":true,"suffix":".txt"},{"basename_length":24,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/current-known-hosts.scan\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"b896fc8c0ee39a86615c06725f20457f74c453fc7b93532af86dfcf4e2eeffe6"},"kind":"missing_from_checkout","path_sha256":"ea1bbc4d7326bf99f603aea2fc69219e183114138222164c1fa34425f701ae2b","sensitive_path":true,"suffix":".scan"},{"basename_length":25,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-alias-known-hosts.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"9d826962f206a6098a00be141ddfa1524b179e9f58449feceb16ce79af38d4d4"},"kind":"missing_from_checkout","path_sha256":"0a60da401257e8d3d62622d35675b0aeeaa5b0c9987ae470f389bb9a84f67107","sensitive_path":true,"suffix":".txt"},{"basename_length":20,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-fingerprints.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"cf597d287845f317164b4f3c4820f2bd66e5c0aeddae242ff237e7e7d583c7dd"},"kind":"missing_from_checkout","path_sha256":"4eae326a00f039ed3f44104064c4c2fdea14fe9d76e3af66e3379669d2916022","sensitive_path":true,"suffix":".txt"},{"basename_length":22,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-ip-known-hosts.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"c4dcbfa2ce0571f34143c736f4f9472ede1fdeb4919af4c3228bc2a9e26caa56"},"kind":"missing_from_checkout","path_sha256":"fe70268e02c773df3fbb87dba01c95c40da5d948585327ec65fd5290860aa913","sensitive_path":true,"suffix":".txt"},{"basename_length":19,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-known-hosts.raw\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"f5e2ae1ac3302e9947120b1e49e7365406c3495170767fe7c137197f5127ac06"},"kind":"missing_from_checkout","path_sha256":"639767b08819a36ef1d907e1934e6bbd354e621488194f75aa06ced3e854074d","sensitive_path":true,"suffix":".raw"},{"basename_length":22,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/vps-identity-audit.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"4ddb0c2029d99c580cc682650c6c79f7644b7d1b73d8ecbad8868e7288a7e122"},"kind":"missing_from_checkout","path_sha256":"fcf87d70165391a6f54c5d6b1fe815822c9469a81287680eaee9ebd1d832ea16","sensitive_path":true,"suffix":".txt"},{"basename_length":22,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-audit.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"2fd7bf68b51afd18f259fc90ba3895a9cae6ea843df35bdaafef822f03b588c8"},"kind":"missing_from_checkout","path_sha256":"4f4cdc4688bc2f146c33ec604a925e52063653b83ca317a59436b246b8694443","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-final-evidence.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"2c1b158668e4fe2672bac68ce1cb071e550cb4aec018c4f8ecc63f9d081372dd"},"kind":"missing_from_checkout","path_sha256":"d0aa3459b11ba93537c86181bee9d357fdec62098c580a6d1c0cea83d2852d75","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-peer-discovery.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1b423c085d60c40f192b2678dbeb9d7782a5039bd2ff46ab2bac94c5803491a5"},"kind":"missing_from_checkout","path_sha256":"d1e501c34794fae94b0636e4df7638d766f5114ff2e5fcf5f7c0b52143368354","sensitive_path":true,"suffix":".txt"},{"basename_length":56,"depth":6,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:7:*token*\tsites/gram1..md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"073ca6c91b04c783635be196a401f7b215611e8ea26e3d16996a5320c3099884"},"kind":"missing_from_checkout","path_sha256":"cf0a58341719e872b49bc4b02cd11e7d83b548e3581c8c8cd26cbd228b1e1d46","sensitive_path":true,"suffix":".md"},{"basename_length":49,"depth":6,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:7:*token*\tsites/gram1..md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"a41753864159c835e8400ef003eb23c1d539eb0b2868b68eb233c963adc5c126"},"kind":"missing_from_checkout","path_sha256":"e9d73c2c02c4b77e4d1a1e9ca03a3f5a29318aa80c4de6c5ac17763b36aa135d","sensitive_path":true,"suffix":".md"},{"basename_length":57,"depth":6,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:7:*token*\tsites/gram1..md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"c233f7881d2c4ca39f986a7e2d40b6bee169c8295ec1141ee62bef961cababdb"},"kind":"missing_from_checkout","path_sha256":"dab0b2de30b5cbe7ddb7c0af562cad07f3a08a463f77b7d7a3c464ef17c4b32d","sensitive_path":true,"suffix":".md"},{"basename_length":51,"depth":6,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:7:*token*\tsites/gram1..md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"470407ef09a236e66b2aa41a5b7bf3b923aae05baf7ea3e276e89046d2de1f6d"},"kind":"missing_from_checkout","path_sha256":"4db3c5f77435bc717163e8571e894eabf122de91be97b532ca5b93d322d82f62","sensitive_path":true,"suffix":".md"},{"basename_length":43,"depth":6,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"330700b68162ec69d2c2984a09d8f4ecde481de627fbc2a2d2f4523682b01845"},"kind":"missing_from_checkout","path_sha256":"6a1ee1d3f3c2e845f44b24f8c4ebf1607aa47a7eaf7d7b51672e88a5b035e342","sensitive_path":true,"suffix":".md"},{"basename_length":43,"depth":6,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"44d895e37c4d7efb5b2a940d8427d58f95ac085a5f47f0de32ae9f6a37095764"},"kind":"missing_from_checkout","path_sha256":"32416b898e71d162602268191d7cb0aed22e9d5788fd96945c496759ca555875","sensitive_path":true,"suffix":".md"},{"basename_length":28,"depth":6,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d82c5c23ede0b4952bf49c531772ce2c450eb5c32d1c3e1112632099c3cecc3c"},"kind":"missing_from_checkout","path_sha256":"6335de79a3ccf4b63c70083a7ad96b5654143ca78290afca3a40f836f4a199b4","sensitive_path":true,"suffix":".md"},{"basename_length":26,"depth":6,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"6bed7eb9432a31b217f0e34b25fcb715631bc05f3e1949e7678f06cc6cc6e993"},"kind":"missing_from_checkout","path_sha256":"6a0f236132211b9633e1af76a22dc681b2a0a5c3127cff28fb273c23c696e9ba","sensitive_path":true,"suffix":".md"},{"basename_length":33,"depth":6,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1.\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"03a40752aff61bc454e2087a0b32de4dfc8441d8dcf968d1a5ca726995e0e8df"},"kind":"missing_from_checkout","path_sha256":"d7a9c39ea6d0c8a7a32946ad5f6ea9d5c05f9d043fb2fac37d35fae7f7db2135","sensitive_path":true,"suffix":""},{"basename_length":9,"depth":6,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:47:secrets/*\tsites/gram1..md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"497890c3ee641ac24cb043e3d1c4d3097e785f90541fd6f46fc58a94cf1fad59"},"kind":"missing_from_checkout","path_sha256":"3c04304cd1f920c5da0b385e24e0c58089655809ecf01afdb4118da559a0bff0","sensitive_path":true,"suffix":".md"},{"basename_length":16,"depth":8,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..sh\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"9658a5115eee789ce42083a24b49f428846e564cd8dc50efe3fdce5955b4f6cd"},"kind":"missing_from_checkout","path_sha256":"535e8fd31db685820b50c7d2b39ef39231de37a09ba5721896bfe93ef6e4caad","sensitive_path":true,"suffix":".sh"},{"basename_length":22,"depth":8,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..sh\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"65f40742fc1ec0d09a9acb6877eb0b147d7ade8ae13d54a35af65602f843096f"},"kind":"missing_from_checkout","path_sha256":"e7a87f3d36d8f47b6bb474e00c9a58d6559461add004344555b2dc54ae4a7712","sensitive_path":true,"suffix":".sh"},{"basename_length":36,"depth":6,"display":"","git_ignore":{"evidence":"sites/gram1..gitignore:3:*secret*\tsites/gram1..py\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"09ee779100f326a11557a44c8046d16e2134c5d530e9ccb4c9c17b59ea6e9d3c"},"kind":"missing_from_checkout","path_sha256":"b9e6fb675276fcc5dd88fc842e96ccc14c53b610ed0cd9822864f686fc4eb03b","sensitive_path":true,"suffix":".py"}],"anomalies_truncated":0,"commit_tree_matches_capture_report":false,"expected_file_count":4383,"expected_total_bytes":28903906,"expected_tree_sha256":"ee05dc5ea7ab8ad354a66a5c5ffee7a982734125719d94d351d677ca75674062","file_count":4309,"file_count_matches_capture_report":false,"ignored_missing_count":74,"manifest_command_id":"GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z","manifest_consistent_with_commit":false,"manifest_entries":4382,"manifest_invalid_paths":0,"manifest_missing_files":74,"manifest_only_count":74,"manifest_only_path_hashes":[{"basename_length":36,"depth":9,"display":"","path_sha256":"1831ab715f1a23930712ec363c2df210519d9a8e63ab21050af976806c462319","sensitive_path":true,"suffix":".tsv"},{"basename_length":34,"depth":9,"display":"","path_sha256":"c2068a915ab0f0cd8086e7251b2406b4de17cd813988229b179a71e6eea49a0c","sensitive_path":true,"suffix":".tsv"},{"basename_length":20,"depth":9,"display":"","path_sha256":"eb860700333344be2f70c57bfab9fcdb5fc959fc241019e0e55898793e2c530c","sensitive_path":true,"suffix":".env"},{"basename_length":30,"depth":9,"display":"","path_sha256":"f1a246ef882c692f3e7676d2009a5a0738904f4aee2e5b23ac832e6442e23159","sensitive_path":true,"suffix":".log"},{"basename_length":19,"depth":9,"display":"","path_sha256":"46c726ae03ab26e7d67c925492f53ea0fa143a2d93f9fc91f4766da8cadb865e","sensitive_path":true,"suffix":".log"},{"basename_length":30,"depth":9,"display":"","path_sha256":"683a786ccd0903852c34e18b2ee47a3270fc44a8a174c7ae37d27260ed35d870","sensitive_path":true,"suffix":".log"},{"basename_length":30,"depth":9,"display":"","path_sha256":"d70b5961cf40d476336611938313bf4f984caa86367034f982e63f4f335ff9af","sensitive_path":true,"suffix":".tsv"},{"basename_length":21,"depth":9,"display":"","path_sha256":"87fddbce4d9ee1002e548ca86665cb89db8d789c1df8ef3b0cc60ea183d7477e","sensitive_path":true,"suffix":".log"},{"basename_length":40,"depth":9,"display":"","path_sha256":"206c0b2917281b76b3cc6113e55545a2d037982a20970eefdb7ae7bbbae71443","sensitive_path":true,"suffix":".log"},{"basename_length":42,"depth":9,"display":"","path_sha256":"89150ce2e53b3a822590fac08a069419a5fe087dadb20c07f54d7574935d3bd0","sensitive_path":true,"suffix":".log"},{"basename_length":33,"depth":9,"display":"","path_sha256":"325d9502c86190630eb0c655b0c9d84c4bf098e6ba4a6f8faf93d0cc2bde5b40","sensitive_path":true,"suffix":".log"},{"basename_length":42,"depth":9,"display":"","path_sha256":"f192560f9e1fb9fad21ad81749d8f69aaecd79bb442735aa5c01d42d8f18f3d9","sensitive_path":true,"suffix":".tsv"},{"basename_length":41,"depth":9,"display":"","path_sha256":"b76d9833fe6db3eacc435aa2903d5a66cc477cbcd49300bec1fdd4190eb0d66e","sensitive_path":true,"suffix":".tsv"},{"basename_length":36,"depth":9,"display":"","path_sha256":"0a37f3428e86c3b86e72e2ff56aabd60e73f01f9970cf50962c1295636e805d8","sensitive_path":true,"suffix":".tsv"},{"basename_length":29,"depth":9,"display":"","path_sha256":"a2ac117952ccea622345bb6148acbff3ef5ed20a3e5ec4d9925190dac39f26f3","sensitive_path":true,"suffix":".tsv"},{"basename_length":39,"depth":9,"display":"","path_sha256":"262f0dc79b7997d36058b3937c925c85d21784c07ab6b5ba4043cb11e6a762f0","sensitive_path":true,"suffix":".txt"},{"basename_length":43,"depth":9,"display":"","path_sha256":"55d7edc8a6446a60ce484b35c64c88647508903264c20a2188c959d4498620ce","sensitive_path":true,"suffix":".tsv"},{"basename_length":41,"depth":9,"display":"","path_sha256":"1f146757dd427ba94db10f8cb7a28b442f7dfbc3dc7db97738faa37bbd6cab64","sensitive_path":true,"suffix":".md"},{"basename_length":42,"depth":9,"display":"","path_sha256":"b3b3d8296f1af449d288c2736bfbfa2accbcde10ae34b0efe8bde8375c9388ec","sensitive_path":true,"suffix":".tsv"},{"basename_length":39,"depth":9,"display":"","path_sha256":"12f015430ad9424a19dfe30db5b95dad23ecf63e7815f10af4ceb815267d5cc9","sensitive_path":true,"suffix":".state"},{"basename_length":73,"depth":9,"display":"","path_sha256":"f8e733dec894be535a3f55bec4243442f1b90fac15fef5356ebdf9c912d9923d","sensitive_path":true,"suffix":".bak-20260626t172508z-sec02-4-to-3"},{"basename_length":73,"depth":9,"display":"","path_sha256":"8c29698be41912729278dacb43ab65afecfd575c1b4f2e2b4c36b43da49c8247","sensitive_path":true,"suffix":".bak-20260626t172523z-sec03-3-to-2"},{"basename_length":73,"depth":9,"display":"","path_sha256":"aaf18ffde71b6473596bb7c92040719cbfc119ecc93fa87487250a9d071fb301","sensitive_path":true,"suffix":".bak-20260626t172535z-sec04-2-to-1"},{"basename_length":73,"depth":9,"display":"","path_sha256":"e62fcb5f18e96be2401274c6e4bfe4a00b083e06433909d6b39f4b20351476cb","sensitive_path":true,"suffix":".bak-20260626t172547z-sec05-1-to-0"},{"basename_length":29,"depth":9,"display":"","path_sha256":"221cbee473501ee3e126b8e29602ad5fbf9842b9746137aff0a33eb30d6c2ed4","sensitive_path":true,"suffix":".tsv"},{"basename_length":43,"depth":9,"display":"","path_sha256":"99565b640d90eb8ddbd13d276ab6aa01aad1ea72771cd5a2b12e928723171ba6","sensitive_path":true,"suffix":".tsv"},{"basename_length":30,"depth":9,"display":"","path_sha256":"315926ca6f4f110ee475ea3392cc3e34f03856f87fdd1e1c23b6c013f3f7ae20","sensitive_path":true,"suffix":".tsv"},{"basename_length":38,"depth":7,"display":"","path_sha256":"d0a1f552e44ee3cc70c58a889001f15abab3d5105c7392997bbfe052379c42c9","sensitive_path":true,"suffix":".md"},{"basename_length":34,"depth":8,"display":"","path_sha256":"72a8c29f3c2e8e99a038a3447e7f459881cafb9be6b59ccbdb87b5056613a21a","sensitive_path":true,"suffix":".md"},{"basename_length":24,"depth":7,"display":"","path_sha256":"b5dba4d253ce4cfce27a99d1a2cc7aeeb4eb607bfc628c6e7d5e49498fa6eda1","sensitive_path":true,"suffix":".txt"},{"basename_length":29,"depth":7,"display":"","path_sha256":"8b6160f09289bf95e9011d5d2532bdfdace7151018bf14cddc167f61f39a05eb","sensitive_path":true,"suffix":".txt"},{"basename_length":23,"depth":7,"display":"","path_sha256":"7491d29ffb10110b9780e4c7b17379e5c92cc8b3b13a4cec215977c362aa7d89","sensitive_path":true,"suffix":".txt"},{"basename_length":26,"depth":7,"display":"","path_sha256":"c7a26319f7ce7a28a5d2652b0971d750620337110fb656676c98c5ed76f2d9ae","sensitive_path":true,"suffix":".txt"},{"basename_length":23,"depth":7,"display":"","path_sha256":"a7bee84809250a23b6e273c1663691bb7aa08f1f6e41dc2241bf6fd664220dca","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"","path_sha256":"af4f654bca9d5e77acb1ac87dc25551aace1adc3a1530bbeb3dd201177034d3d","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"","path_sha256":"0926fcd8278044b8e3e7ac54865790187ca3ba21c304055b9632f4e656bf0c66","sensitive_path":true,"suffix":".txt"},{"basename_length":28,"depth":7,"display":"","path_sha256":"df2357b50958070a518d8712dda0d0b0ff4dba9c56562ccc208b7e76e8fd9107","sensitive_path":true,"suffix":".txt"},{"basename_length":21,"depth":7,"display":"","path_sha256":"d5a2d14f9ee2d03202d4a9f9d75e4c09264e896aa470af23471a3e5a4c0e62c5","sensitive_path":true,"suffix":".txt"},{"basename_length":21,"depth":7,"display":"","path_sha256":"536ebafe24b85ae222b2a5af56cb5cb5c876d5d73509bb938f7338d563e31ac8","sensitive_path":true,"suffix":".txt"},{"basename_length":15,"depth":7,"display":"","path_sha256":"c5684c73fe33566cba19bfc41131dd3794e305cfc3690e97ec47b83b802f6e55","sensitive_path":true,"suffix":".txt"}],"manifest_sha256":"e561f275b7d1c6656e1fa80ee77b6fe4858d1178b4d8a592450ac4036adec459","manifest_sha_mismatches":0,"manifest_size_mismatches":0,"manifest_snapshot_id":"20260731T071400Z","manifest_symlinks":0,"manifest_verified_files":4308,"nonignored_missing_count":0,"total_bytes":28684549,"total_bytes_matches_capture_report":false,"tracked_only_count":1,"tracked_only_path_hashes":[{"basename_length":19,"depth":1,"display":"manifest.final.json","path_sha256":"7e4eafd21b9aade5cc9f63c802f08c1efee3bd6fb0e7225c0e69179e7ac31adb","sensitive_path":false,"suffix":".json"}],"tree_sha256":"fdac2c317221e056500efb4c4750c5cf0b4325102f99f67bb566f818bca9d231","tree_sha_matches_capture_report":false,"unexpected_tracked_only_count":0}} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index fabe955..72e6760 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "GRAM1-SITE-BASELINE-EDITING-DOSSIER-V6-INTEGRITY-AUDIT-20260731T083000Z", + "command_id": "GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z", "status": "OK", "rc": 0, "host": "pve01", "mode": "verify", - "component": "gram1-site-baseline-integrity-audit", - "started_at_utc": "2026-07-31T08:32:45Z", - "finished_at_utc": "2026-07-31T08:32:46Z", + "component": "gram1-site-baseline-compact-verified-audit", + "started_at_utc": "2026-07-31T08:43:53Z", + "finished_at_utc": "2026-07-31T08:43:54Z", "reference_register_checked": true, "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", "error_register_checked": true, "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", - "command_sha256": "7ddb77a54bc2cfa4a70442acb26bb500fb7935c9e9ea20d4b7a300899163a533", + "command_sha256": "79e2b86a5c9714ebf4de028be29e044fd790edea2fdd78d15d86e06d7920bb69", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "fa76687f4f69125ebd086d16fb3fb4557a90d0f1574208b1e12a131672cb2795", - "sanitized_output_sha256": "e88e9c4ec4ed17c27e5aa30d0bc61ed9a0c0aec30145dda307a4718069698a4c", - "output_truncated_in_json": true, + "raw_evidence_sha256": "480802d0ddf9e9994edd7f81d4edfc84a52b8037088441fa6ee891323351d84f", + "sanitized_output_sha256": "0b4b60c2e5b627ef412488b16903bf8ed516fc1d88bd85384eeee9308e033fad", + "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\":\"GRAM1-SITE-BASELINE-EDITING-DOSSIER-V6-INTEGRITY-AUDIT-20260731T083000Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"baseline_integrity\":{\"capture_report_tree_matches_commit\":false,\"commit_identity_verified\":true,\"manifest_matches_commit\":false,\"repair_required_before_site_editing\":true,\"status\":\"DEGRADED\"},\"baseline_readme\":\"# `gram1.ru` initial technical baseline\\n\\n- Command: `GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z`\\n- Snapshot: `20260731T071400Z`\\n- Target branch: `site-gram1-ru-baseline-20260731`\\n- Hosts successfully inspected: **3**\\n- Hosts with site-related evidence: **3**\\n- Public URLs fetched: **15**\\n- Public assets inventoried: **0**\\n\\n## Start here\\n\\n1. `EDITING_START_HERE.md` — deployment/source candidates and the next editing entry points.\\n2. `external/` — live DNS, HTTP, TLS, public-page, header and search-engine baseline.\\n3. `hosts/` — per-host configuration, service, container, source and log inventory.\\n4. `manifest.json` — SHA256 for every stored file.\\n5. `collection/quarantined_files.json` — files excluded because the final secret scan was not clean.\\n\\n## Site-related hosts\\n\\n- `pve01`: 1000 domain matches; 10 candidate source roots.\\n- `pve02`: 16 domain matches; 6 candidate source roots.\\n- `pve03`: 6 domain matches; 0 candidate source roots.\\n\\n## Safety boundary\\n\\n- The production site was not modified.\\n- Only a dedicated Gitea branch was created or updated.\\n- Secret values, cookies, credentials, private keys and environment values were redacted or excluded.\\n- Raw access logs were not stored; only aggregate route/status information was retained.\\n\",\"capture_summary\":{\"command_id\":\"GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z\",\"discovered_hosts\":[{\"candidate_source_roots\":[{\"markers\":\"\",\"path\":\"/root/homelab-configs-worktree\",\"reasons\":\"\",\"score\":\"144\"},{\"markers\":\"\",\"path\":\"/root/homelab-configs-worktree/docs\",\"reasons\":\"\",\"score\":\"129\"},{\"markers\":\"\",\"path\":\"/root/homelab-configs-worktree/docs/operations\",\"reasons\":\"\",\"score\":\"110\"},{\"markers\":\"\",\"path\":\"/srv/homelab-desired-state\",\"reasons\":\"\",\"score\":\"95\"},{\"markers\":\"\",\"path\":\"/srv/homelab-desired-state/health\",\"reasons\":\"\",\"score\":\"63\"},{\"markers\":\"\",\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\",\"reasons\":\"\",\"score\":\"32\"},{\"markers\":\"\",\"path\":\"/srv/homelab-desired-state/sbin\",\"reasons\":\"\",\"score\":\"26\"},{\"markers\":\"\",\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015\",\"reasons\":\"\",\"score\":\"23\"},{\"markers\":\"\",\"path\":\"/root/homelab-ops-cr-2026-0004\",\"reasons\":\"\",\"score\":\"19\"},{\"markers\":\"\",\"path\":\"/root/homelab-ops-cr-2026-0012\",\"reasons\":\"\",\"score\":\"17\"}],\"container_count\":1,\"directory\":\"local\",\"domain_match_count\":1000,\"fqdn\":\"pve01.gram1.ru\",\"hostname\":\"pve01\",\"source_snapshots\":[{\"source_root\":\"/root/homelab-configs-worktree\",\"stored_bytes\":\"9347306\",\"stored_files\":\"1322\",\"truncated\":\"\"},{\"source_root\":\"/root/homelab-configs-worktree/docs\",\"stored_bytes\":\"6362627\",\"stored_files\":\"764\",\"truncated\":\"\"},{\"source_root\":\"/root/homelab-configs-worktree/docs/operations\",\"stored_bytes\":\"5969079\",\"stored_files\":\"699\",\"truncated\":\"\"},{\"source_root\":\"/srv/homelab-desired-state\",\"stored_bytes\":\"1274899\",\"stored_files\":\"957\",\"truncated\":\"\"},{\"source_root\":\"/srv/homelab-desired-state/health\",\"stored_bytes\":\"231477\",\"stored_files\":\"493\",\"truncated\":\"\"}]},{\"candidate_source_roots\":[{\"markers\":\"\",\"path\":\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"reasons\":\"\",\"score\":\"2\"},{\"markers\":\"\",\"path\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"reasons\":\"\",\"score\":\"2\"},{\"markers\":\"\",\"path\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"reasons\":\"\",\"score\":\"1\"},{\"markers\":\"\",\"path\":\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"reasons\":\"\",\"score\":\"1\"},{\"markers\":\"\",\"path\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"reasons\":\"\",\"score\":\"1\"},{\"markers\":\"\",\"path\":\"/srv/homelab-desired-state/routerguard-tuya\",\"reasons\":\"\",\"score\":\"1\"}],\"container_count\":0,\"directory\":\"pve02\",\"domain_match_count\":16,\"fqdn\":\"pve02.gram1.ru\",\"hostname\":\"pve02\",\"source_snapshots\":[{\"source_root\":\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"stored_bytes\":\"852\",\"stored_files\":\"3\",\"truncated\":\"\"},{\"source_root\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"stored_bytes\":\"14367\",\"stored_files\":\"3\",\"truncated\":\"\"},{\"source_root\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"stored_bytes\":\"242\",\"stored_files\":\"3\",\"truncated\":\"\"},{\"source_root\":\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"stored_bytes\":\"1438\",\"stored_files\":\"3\",\"truncated\":\"\"},{\"source_root\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"stored_bytes\":\"3490\",\"stored_files\":\"3\",\"truncated\":\"\"}]},{\"candidate_source_roots\":[],\"container_count\":0,\"directory\":\"pve03\",\"domain_match_count\":6,\"fqdn\":\"pve03.gram1.ru\",\"hostname\":\"pve03\",\"source_snapshots\":[]}],\"domain\":\"gram1.ru\",\"final_sanitation\":{\"processed_text_files\":4380,\"quarantined_file_count\":0},\"hosts_attempted\":12,\"hosts_failed\":9,\"hosts_successful\":3,\"public_http_assets\":0,\"public_http_pages\":15,\"resolved_ips\":[\"95.84.154.183\"],\"site_hosts\":[{\"candidate_source_roots\":[{\"markers\":\"\",\"path\":\"/root/homelab-configs-worktree\",\"reasons\":\"\",\"score\":\"144\"},{\"markers\":\"\",\"path\":\"/root/homelab-configs-worktree/docs\",\"reasons\":\"\",\"score\":\"129\"},{\"markers\":\"\",\"path\":\"/root/homelab-configs-worktree/docs/operations\",\"reasons\":\"\",\"score\":\"110\"},{\"markers\":\"\",\"path\":\"/srv/homelab-desired-state\",\"reasons\":\"\",\"score\":\"95\"},{\"markers\":\"\",\"path\":\"/srv/homelab-desired-state/health\",\"reasons\":\"\",\"score\":\"63\"},{\"markers\":\"\",\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\",\"reasons\":\"\",\"score\":\"32\"},{\"markers\":\"\",\"path\":\"/srv/homelab-desired-state/sbin\",\"reasons\":\"\",\"score\":\"26\"},{\"markers\":\"\",\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015\",\"reasons\":\"\",\"score\":\"23\"},{\"markers\":\"\",\"path\":\"/root/homelab-ops-cr-2026-0004\",\"reasons\":\"\",\"score\":\"19\"},{\"markers\":\"\",\"path\":\"/root/homelab-ops-cr-2026-0012\",\"reasons\":\"\",\"score\":\"17\"}],\"container_count\":1,\"directory\":\"local\",\"domain_match_count\":1000,\"fqdn\":\"pve01.gram1.ru\",\"hostname\":\"pve01\",\"source_snapshots\":[{\"source_root\":\"/root/homelab-configs-worktree\",\"stored_bytes\":\"9347306\",\"stored_files\":\"1322\",\"truncated\":\"\"},{\"source_root\":\"/root/homelab-configs-worktree/docs\",\"stored_bytes\":\"6362627\",\"stored_files\":\"764\",\"truncated\":\"\"},{\"source_root\":\"/root/homelab-configs-worktree/docs/operations\",\"stored_bytes\":\"5969079\",\"stored_files\":\"699\",\"truncated\":\"\"},{\"source_root\":\"/srv/homelab-desired-state\",\"stored_bytes\":\"1274899\",\"stored_files\":\"957\",\"truncated\":\"\"},{\"source_root\":\"/srv/homelab-desired-state/health\",\"stored_bytes\":\"231477\",\"stored_files\":\"493\",\"truncated\":\"\"}]},{\"candidate_source_roots\":[{\"markers\":\"\",\"path\":\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"reasons\":\"\",\"score\":\"2\"},{\"markers\":\"\",\"path\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"reasons\":\"\",\"score\":\"2\"},{\"markers\":\"\",\"path\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"reasons\":\"\",\"score\":\"1\"},{\"markers\":\"\",\"path\":\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"reasons\":\"\",\"score\":\"1\"},{\"markers\":\"\",\"path\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"reasons\":\"\",\"score\":\"1\"},{\"markers\":\"\",\"path\":\"/srv/homelab-desired-state/routerguard-tuya\",\"reasons\":\"\",\"score\":\"1\"}],\"container_count\":0,\"directory\":\"pve02\",\"domain_match_count\":16,\"fqdn\":\"pve02.gram1.ru\",\"hostname\":\"pve02\",\"source_snapshots\":[{\"source_root\":\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"stored_bytes\":\"852\",\"stored_files\":\"3\",\"truncated\":\"\"},{\"source_root\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"stored_bytes\":\"14367\",\"stored_files\":\"3\",\"truncated\":\"\"},{\"source_root\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"stored_bytes\":\"242\",\"stored_files\":\"3\",\"truncated\":\"\"},{\"source_root\":\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"stored_bytes\":\"1438\",\"stored_files\":\"3\",\"truncated\":\"\"},{\"source_root\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"stored_bytes\":\"3490\",\"stored_files\":\"3\",\"truncated\":\"\"}]},{\"candidate_source_roots\":[],\"container_count\":0,\"directory\":\"pve03\",\"domain_match_count\":6,\"fqdn\":\"pve03.gram1.ru\",\"hostname\":\"pve03\",\"source_snapshots\":[]}],\"snapshot_id\":\"20260731T071400Z\",\"tls_hosts\":[\"gram1.ru\",\"www.gram1.ru\"]},\"changes_made\":false,\"command_id\":\"GRAM1-SITE-BASELINE-EDITING-DOSSIER-V6-INTEGRITY-AUDIT-20260731T083000Z\",\"coverage_notes\":{\"dossier_is_a_projection\":true,\"failed_probe_count\":9,\"public_assets_zero\":true,\"raw_baseline_is_authoritative\":true},\"dns\":{\"_dmarc.gram1.ru\":{\"A\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"AAAA\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"CAA\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"CNAME\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"DNSKEY\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"DNSSEC_PROBE\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"\\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +dnssec +multiline _dmarc.gram1.ru A\\n;; global options: +cmd\\n;; Got answer:\\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37736\\n;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1\\n\\n;; OPT PSEUDOSECTION:\\n; EDNS: version: 0, flags: do; udp: 1212\\n;; QUESTION SECTION:\\n;_dmarc.gram1.ru.\\tIN A\\n\\n;; AUTHORITY SECTION:\\ngram1.ru.\\t\\t371 IN SOA sara.ns.cloudflare.com. dns.cloudflare.com. (\\n\\t\\t\\t\\t2410492416 ; serial\\n\\t\\t\\t\\t10000 ; refresh (2 hours 46 minutes 40 seconds)\\n\\t\\t\\t\\t2400 ; retry (40 minutes)\\n\\t\\t\\t\\t604800 ; expire (1 week)\\n\\t\\t\\t\\t1800 ; minimum (30 minutes)\\n\\t\\t\\t\\t)\\n\\n;; Query time: 1 msec\\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\\n;; WHEN: Fri Jul 31 10:37:17 MSK 2026\\n;; MSG SIZE rcvd: 128\\n\\n\"},\"DS\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"HTTPS\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"MX\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"NS\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"SOA\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"SVCB\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"TXT\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"_dmarc.gram1.ru.\\t300\\tIN\\tTXT\\t\\\"v=DMARC1; p=reject\\\"\\n\"}},\"gram1.ru\":{\"A\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t129\\tIN\\tA\\t95.84.154.183\\n\"},\"AAAA\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t258\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"CAA\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t374\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"CNAME\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t374\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"DNSKEY\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t374\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"DNSSEC_PROBE\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"\\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +dnssec +multiline gram1.ru A\\n;; global options: +cmd\\n;; Got answer:\\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4726\\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1\\n\\n;; OPT PSEUDOSECTION:\\n; EDNS: version: 0, flags: do; udp: 1212\\n;; QUESTION SECTION:\\n;gram1.ru.\\t\\tIN A\\n\\n;; ANSWER SECTION:\\ngram1.ru.\\t\\t129 IN A 95.84.154.183\\n\\n;; Query time: 0 msec\\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\\n;; WHEN: Fri Jul 31 10:37:14 MSK 2026\\n;; MSG SIZE rcvd: 61\\n\\n\"},\"DS\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"ru.\\t\\t\\t3101\\tIN\\tSOA\\ta.dns.ripn.net. hostmaster.ripn.net. 4069813 86400 14400 2592000 3600\\n\"},\"HTTPS\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t374\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"MX\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t374\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"NS\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t12670\\tIN\\tNS\\tsara.ns.cloudflare.com.\\ngram1.ru.\\t\\t12670\\tIN\\tNS\\tvern.ns.cloudflare.com.\\n\"},\"SOA\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t1800\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"SVCB\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t374\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"TXT\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t300\\tIN\\tTXT\\t\\\"v=spf1 -all\\\"\\n\"}},\"www.gram1.ru\":{\"A\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"www.gram1.ru.\\t\\t300\\tIN\\tA\\t95.84.154.183\\n\"},\"AAAA\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t374\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"CAA\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t372\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"CNAME\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t374\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"DNSKEY\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"DNSSEC_PROBE\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"\\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +dnssec +multiline www.gram1.ru A\\n;; global options: +cmd\\n;; Got answer:\\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48071\\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1\\n\\n;; OPT PSEUDOSECTION:\\n; EDNS: version: 0, flags: do; udp: 1212\\n;; QUESTION SECTION:\\n;www.gram1.ru.\\t\\tIN A\\n\\n;; ANSWER SECTION:\\nwww.gram1.ru.\\t\\t297 IN A 95.84.154.183\\n\\n;; Query time: 1 msec\\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\\n;; WHEN: Fri Jul 31 10:37:17 MSK 2026\\n;; MSG SIZE rcvd: 69\\n\\n\"},\"DS\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t372\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"HTTPS\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"MX\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t374\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"NS\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t374\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"SOA\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t372\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"SVCB\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t371\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"},\"TXT\":{\"rc\":0,\"stderr\":\"\",\"stdout\":\"gram1.ru.\\t\\t1691\\tIN\\tSOA\\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\\n\"}}},\"dossier_json_bytes_before_hash_field\":345137,\"dossier_json_sha256\":\"e7252d8d48b73bbe6eb4d6a8729ff3264ce30bca29193b533761987d2c0509a6\",\"dossier_markdown\":\"# Editing dossier: `gram1.ru`\\n\\n## Cryptographic identity\\n\\n- Branch: `site-gram1-ru-baseline-20260731`\\n- Commit: `f9d3ba8caf65005605aa8aee2ede7e4e7e94ee49`\\n- Snapshot tree SHA256: `fdac2c317221e056500efb4c4750c5cf0b4325102f99f67bb566f818bca9d231`\\n- Files / bytes: **4309 / 28684549**\\n- Capture-report tree match: **False**\\n- Manifest/commit consistency: **False**\\n- Missing manifest files: **74**\\n- Missing files matched by Git ignore rules: **74**\\n\\n## Collection coverage\\n\\n- Hosts attempted: **12**\\n- Hosts successful: **3**\\n- Hosts failed: **9**\\n- Site-related hosts: **3**\\n- Public pages: **15**\\n- Public assets: **0**\\n\\n## Highest-priority editable roots\\n\\n- `pve01` → `/root/homelab-configs-worktree`; score=144; frameworks=Docker Compose; snapshot=yes\\n- `pve01` → `/root/homelab-configs-worktree/docs`; score=129; frameworks=Docker Compose; snapshot=yes\\n- `pve01` → `/root/homelab-configs-worktree/docs/operations`; score=110; frameworks=Docker Compose; snapshot=yes\\n- `pve01` → `/srv/homelab-desired-state`; score=95; frameworks=Docker Compose; snapshot=yes\\n- `pve01` → `/srv/homelab-desired-state/health`; score=63; frameworks=Docker Compose; snapshot=yes\\n- `pve01` → `/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation`; score=32; frameworks=Docker Compose; snapshot=no\\n- `pve01` → `/srv/homelab-desired-state/sbin`; score=26; frameworks=Docker Compose; snapshot=no\\n- `pve01` → `/srv/homelab-ops-worktrees/cr-2026-0015`; score=23; frameworks=Docker Compose; snapshot=no\\n- `pve01` → `/root/homelab-ops-cr-2026-0004`; score=19; frameworks=Docker Compose; snapshot=no\\n- `pve01` → `/root/homelab-ops-cr-2026-0012`; score=17; frameworks=Docker Compose; snapshot=no\\n- `pve02` → `/root/evidence/forum-prod-diag-20260629T032514Z`; score=2; frameworks=not identified; snapshot=yes\\n- `pve02` → `/root/evidence/forum-prod-os-baseline-20260629T034119Z`; score=2; frameworks=not identified; snapshot=yes\\n- `pve02` → `/root/evidence/forum-prod-offline-fix2-20260629T033832Z`; score=1; frameworks=not identified; snapshot=yes\\n- `pve02` → `/root/evidence/forum-prod-recover-20260629T025511Z`; score=1; frameworks=not identified; snapshot=yes\\n- `pve02` → `/root/evidence/forum-prod-recreate-20260629T030810Z`; score=1; frameworks=not identified; snapshot=yes\\n- `pve02` → `/srv/homelab-desired-state/routerguard-tuya`; score=1; frameworks=not identified; snapshot=no\\n\\n## Failed host probes\\n\\n- `[PRIVATE_IP]`: rc=142; \\n- `[PRIVATE_IP]`: rc=142; \\n- `95.84.154.183`: rc=255; ssh: connect to host 95.84.154.183 port 22: Connection timed out\\n\\n- `core-apps`: rc=255; ssh: Could not resolve hostname core-apps: Name or service not known\\n\\n- `edge-vm`: rc=255; No ED25519 host key is known for edge-vm and you have requested strict checking.\\nHost key verification failed.\\n\\n- `gram1.ru`: rc=255; ssh: connect to host gram1.ru port 22: Connection timed out\\n\\n- `pve02.gram1.ru`: rc=255; No ED25519 host key is known for pve02.gram1.ru and you have requested strict checking.\\nHost key verification failed.\\n\\n- `pve03.gram1.ru`: rc=255; No ED25519 host key is known for pve03.gram1.ru and you have requested strict checking.\\nHost key verification failed.\\n\\n- `www.gram1.ru`: rc=255; ssh: connect to host www.gram1.ru port 22: Connection timed out\\n\\n\\n## Safety\\n\\n- This dossier operation only cloned and verified the existing Gitea branch.\\n- Production and Gitea were not modified.\\n- All returned text was sanitized again before publication.\\n\",\"editing_candidates\":[{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":144,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":1510,\"snapshot\":{\"source_root\":\"/root/homelab-configs-worktree\",\"stored_bytes\":9347306,\"stored_files\":1322,\"truncated\":false},\"source_root\":\"/root/homelab-configs-worktree\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":129,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[],\"priority_score\":1360,\"snapshot\":{\"source_root\":\"/root/homelab-configs-worktree/docs\",\"stored_bytes\":6362627,\"stored_files\":764,\"truncated\":false},\"source_root\":\"/root/homelab-configs-worktree/docs\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":110,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[],\"priority_score\":1170,\"snapshot\":{\"source_root\":\"/root/homelab-configs-worktree/docs/operations\",\"stored_bytes\":5969079,\"stored_files\":699,\"truncated\":false},\"source_root\":\"/root/homelab-configs-worktree/docs/operations\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":95,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":1020,\"snapshot\":{\"source_root\":\"/srv/homelab-desired-state\",\"stored_bytes\":1274899,\"stored_files\":957,\"truncated\":false},\"source_root\":\"/srv/homelab-desired-state\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":63,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[],\"priority_score\":700,\"snapshot\":{\"source_root\":\"/srv/homelab-desired-state/health\",\"stored_bytes\":231477,\"stored_files\":493,\"truncated\":false},\"source_root\":\"/srv/homelab-desired-state/health\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":32,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":370,\"snapshot\":null,\"source_root\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":26,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[],\"priority_score\":310,\"snapshot\":null,\"source_root\":\"/srv/homelab-desired-state/sbin\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":23,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":280,\"snapshot\":null,\"source_root\":\"/srv/homelab-ops-worktrees/cr-2026-0015\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":19,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":240,\"snapshot\":null,\"source_root\":\"/root/homelab-ops-cr-2026-0004\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":17,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":220,\"snapshot\":null,\"source_root\":\"/root/homelab-ops-cr-2026-0012\"},{\"detected_frameworks\":[],\"discovery_score\":2,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":56,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"stored_bytes\":852,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-diag-20260629T032514Z\"},{\"detected_frameworks\":[],\"discovery_score\":2,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":56,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"stored_bytes\":14367,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\"},{\"detected_frameworks\":[],\"discovery_score\":1,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":46,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"stored_bytes\":242,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\"},{\"detected_frameworks\":[],\"discovery_score\":1,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":46,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"stored_bytes\":1438,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-recover-20260629T025511Z\"},{\"detected_frameworks\":[],\"discovery_score\":1,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":46,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"stored_bytes\":3490,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\"},{\"detected_frameworks\":[],\"discovery_score\":1,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":26,\"snapshot\":null,\"source_root\":\"/srv/homelab-desired-state/routerguard-tuya\"}],\"editing_start_here\":\"# Editing start: `gram1.ru`\\n\\nThis document lists the highest-confidence source and deployment roots discovered by the baseline.\\n\\n## Host `pve01`\\n\\n- Source candidate `/root/homelab-configs-worktree` — score 144; markers: .git.\\n- Source candidate `/root/homelab-configs-worktree/docs` — score 129; markers: none.\\n- Source candidate `/root/homelab-configs-worktree/docs/operations` — score 110; markers: none.\\n- Source candidate `/srv/homelab-desired-state` — score 95; markers: .git.\\n- Source candidate `/srv/homelab-desired-state/health` — score 63; markers: none.\\n- Source candidate `/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation` — score 32; markers: .git.\\n- Source candidate `/srv/homelab-desired-state/sbin` — score 26; markers: none.\\n- Source candidate `/srv/homelab-ops-worktrees/cr-2026-0015` — score 23; markers: .git.\\n- Source candidate `/root/homelab-ops-cr-2026-0004` — score 19; markers: .git.\\n- Source candidate `/root/homelab-ops-cr-2026-0012` — score 17; markers: .git.\\n- Snapshot `/root/homelab-configs-worktree`: 1322 files / 9347306 bytes; truncated=False.\\n- Snapshot `/root/homelab-configs-worktree/docs`: 764 files / 6362627 bytes; truncated=False.\\n- Snapshot `/root/homelab-configs-worktree/docs/operations`: 699 files / 5969079 bytes; truncated=False.\\n- Snapshot `/srv/homelab-desired-state`: 957 files / 1274899 bytes; truncated=False.\\n- Snapshot `/srv/homelab-desired-state/health`: 493 files / 231477 bytes; truncated=False.\\n\\n## Host `pve02`\\n\\n- Source candidate `/root/evidence/forum-prod-diag-20260629T032514Z` — score 2; markers: none.\\n- Source candidate `/root/evidence/forum-prod-os-baseline-20260629T034119Z` — score 2; markers: none.\\n- Source candidate `/root/evidence/forum-prod-offline-fix2-20260629T033832Z` — score 1; markers: none.\\n- Source candidate `/root/evidence/forum-prod-recover-20260629T025511Z` — score 1; markers: none.\\n- Source candidate `/root/evidence/forum-prod-recreate-20260629T030810Z` — score 1; markers: none.\\n- Source candidate `/srv/homelab-desired-state/routerguard-tuya` — score 1; markers: none.\\n- Snapshot `/root/evidence/forum-prod-diag-20260629T032514Z`: 3 files / 852 bytes; truncated=False.\\n- Snapshot `/root/evidence/forum-prod-os-baseline-20260629T034119Z`: 3 files / 14367 bytes; truncated=False.\\n- Snapshot `/root/evidence/forum-prod-offline-fix2-20260629T033832Z`: 3 files / 242 bytes; truncated=False.\\n- Snapshot `/root/evidence/forum-prod-recover-20260629T025511Z`: 3 files / 1438 bytes; truncated=False.\\n- Snapshot `/root/evidence/forum-prod-recreate-20260629T030810Z`: 3 files / 3490 bytes; truncated=False.\\n\\n## Host `pve03`\\n\\n- No source root, but domain/config evidence exists.\\n\\nBefore changing production, compare the selected source snapshot with the live source root and create a separate transactional change capsule with byte-for-byte backup and automatic rollback.\\n\",\"failed_hosts\":[{\"duration_seconds\":10.366,\"rc\":142,\"ssh_target\":\"root@[PRIVATE_IP]\",\"stderr\":\"\",\"target\":\"[PRIVATE_IP]\"},{\"duration_seconds\":10.262,\"rc\":142,\"ssh_target\":\"root@[PRIVATE_IP]\",\"stderr\":\"\",\"target\":\"[PRIVATE_IP]\"},{\"duration_seconds\":7.011,\"rc\":255,\"ssh_target\":\"root@95.84.154.183\",\"stderr\":\"ssh: connect to host 95.84.154.183 port 22: Connection timed out\\n\",\"target\":\"95.84.154.183\"},{\"duration_seconds\":0.043,\"rc\":255,\"ssh_target\":\"core-apps\",\"stderr\":\"ssh: Could not resolve hostname core-apps: Name or service not known\\n\",\"target\":\"core-apps\"},{\"duration_seconds\":0.045,\"rc\":255,\"ssh_target\":\"edge-vm\",\"stderr\":\"No ED25519 host key is known for edge-vm and you have requested strict checking.\\nHost key verification failed.\\n\",\"target\":\"edge-vm\"},{\"duration_seconds\":7.012,\"rc\":255,\"ssh_target\":\"gram1.ru\",\"stderr\":\"ssh: connect to host gram1.ru port 22: Connection timed out\\n\",\"target\":\"gram1.ru\"},{\"duration_seconds\":0.026,\"rc\":255,\"ssh_target\":\"pve02.gram1.ru\",\"stderr\":\"No ED25519 host key is known for pve02.gram1.ru and you have requested strict checking.\\nHost key verification failed.\\n\",\"target\":\"pve02.gram1.ru\"},{\"duration_seconds\":0.025,\"rc\":255,\"ssh_target\":\"pve03.gram1.ru\",\"stderr\":\"No ED25519 host key is known for pve03.gram1.ru and you have requested strict checking.\\nHost key verification failed.\\n\",\"target\":\"pve03.gram1.ru\"},{\"duration_seconds\":7.013,\"rc\":255,\"ssh_target\":\"www.gram1.ru\",\"stderr\":\"ssh: connect to host www.gram1.ru port 22: Connection timed out\\n\",\"target\":\"www.gram1.ru\"}],\"gitea_changed\":false,\"hosts\":[{\"candidate_source_roots\":[{\"markers\":[\".git\"],\"path\":\"/root/homelab-configs-worktree\",\"reasons\":[\"domain_match_parent\"],\"score\":144},{\"markers\":[],\"path\":\"/root/homelab-configs-worktree/docs\",\"reasons\":[\"domain_match_parent\"],\"score\":129},{\"markers\":[],\"path\":\"/root/homelab-configs-worktree/docs/operations\",\"reasons\":[\"domain_match_parent\"],\"score\":110},{\"markers\":[\".git\"],\"path\":\"/srv/homelab-desired-state\",\"reasons\":[\"domain_match_parent\"],\"score\":95},{\"markers\":[],\"path\":\"/srv/homelab-desired-state/health\",\"reasons\":[\"domain_match_parent\"],\"score\":63},{\"markers\":[\".git\"],\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\",\"reasons\":[\"domain_match_parent\"],\"score\":32},{\"markers\":[],\"path\":\"/srv/homelab-desired-state/sbin\",\"reasons\":[\"domain_match_parent\"],\"score\":26},{\"markers\":[\".git\"],\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015\",\"reasons\":[\"domain_match_parent\"],\"score\":23},{\"markers\":[\".git\"],\"path\":\"/root/homelab-ops-cr-2026-0004\",\"reasons\":[\"domain_match_parent\"],\"score\":19},{\"markers\":[\".git\"],\"path\":\"/root/homelab-ops-cr-2026-0012\",\"reasons\":[\"domain_match_parent\"],\"score\":17}],\"certificate_reference_count\":0,\"container_count\":1,\"container_inventory\":{\"podman.json\":{\"containers\":[{\"command\":\"/init\",\"created\":\"2026-07-28T14:05:23.091587634+03:00\",\"domain_related\":false,\"engine\":\"podman\",\"entrypoint\":null,\"environment_keys\":[\"HOME\",\"HOSTNAME\",\"INFLUXD_CONFIG_PATH\",\"INFLUXVER\",\"PATH\",\"S6VER\",\"S6_SERVICES_READYTIME\",\"container\"],\"id\":\"aa350cac62aa\",\"image\":\"ghcr.io/analogj/scrutiny:latest-omnibus\",\"labels\":{\"org.opencontainers.image.created\":\"2026-04-28T01:10:28.851Z\",\"org.opencontainers.image.description\":\"Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds\",\"org.opencontainers.image.licenses\":\"MIT\",\"org.opencontainers.image.revision\":\"5928d68be79d91431afa937b3b233ed792187a1f\",\"org.opencontainers.image.source\":\"https://github.com/AnalogJ/scrutiny\",\"org.opencontainers.image.title\":\"scrutiny\",\"org.opencontainers.image.url\":\"https://github.com/AnalogJ/scrutiny\",\"org.opencontainers.image.version\":\"v0.9.2-omnibus\"},\"mounts\":[\"\",\"\",\"\"],\"name\":\"scrutiny\",\"ports\":{\"8080/tcp\":\"\"},\"restart_policy\":\"no\",\"state\":{\"CgroupPath\":\"/machine.slice/libpod-aa350cac62aa0235a41c70f8650092e69fa92e815c08c8e4e2aeea65a8accc46.scope\",\"CheckpointedAt\":\"0001-01-01T00:00:00Z\",\"ConmonPid\":\"1583\",\"Dead\":\"\",\"Error\":\"\",\"ExitCode\":\"\",\"FinishedAt\":\"0001-01-01T00:00:00Z\",\"OOMKilled\":\"\",\"OciVersion\":\"1.2.0\",\"Paused\":\"\",\"Pid\":\"1585\",\"Restarting\":\"\",\"RestoredAt\":\"0001-01-01T00:00:00Z\",\"Running\":\"True\",\"StartedAt\":\"2026-07-28T14:05:23.370292013+03:00\",\"Status\":\"running\"},\"user\":\"\",\"working_dir\":\"/opt/scrutiny\"}],\"errors\":[],\"ps_rc\":0}},\"deployment_evidence\":[{\"line\":1,\"path\":\"systemd/services.txt\",\"text\":\"* docker.service not-found inactive dead docker.service\"},{\"line\":2,\"path\":\"systemd/services.txt\",\"text\":\"homelab-docker-health.service loaded inactive dead Homelab Docker health readonly collector\"},{\"line\":2,\"path\":\"systemd/timers.txt\",\"text\":\"Sat 2026-08-01 00:08:53 MSK 13h Fri 2026-07-31 00:18:50 MSK 10h ago homelab-docker-health.timer homelab-docker-health.service\"},{\"line\":1,\"path\":\"systemd/units/homelab-docker-health.service.cat.txt\",\"text\":\"# /etc/systemd/system/homelab-docker-health.service\"},{\"line\":3,\"path\":\"systemd/units/homelab-docker-health.service.cat.txt\",\"text\":\"Description=Homelab Docker health readonly collector\"},{\"line\":5,\"path\":\"systemd/units/homelab-docker-health.service.cat.txt\",\"text\":\"After=local-fs.target docker.service\"},{\"line\":6,\"path\":\"systemd/units/homelab-docker-health.service.cat.txt\",\"text\":\"Wants=docker.service\"},{\"line\":10,\"path\":\"systemd/units/homelab-docker-health.service.cat.txt\",\"text\":\"EnvironmentFile=-/etc/default/homelab-docker-health\"},{\"line\":11,\"path\":\"systemd/units/homelab-docker-health.service.cat.txt\",\"text\":\"ExecStart=/usr/local/sbin/homelab-docker-health.sh\"},{\"line\":1,\"path\":\"systemd/units/homelab-docker-health.service.show.txt\",\"text\":\"ExecStart={ path=/usr/local/sbin/homelab-docker-health.sh ; argv[]=/usr/local/sbin/homelab-docker-health.sh ; ignore_errors=no ; start_time=[Fri 2026-07-31 00:18:50 MSK] ; stop_time=[Fri 2026-07-31 00:18:50 MSK] ; pid=2850307 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/homelab-docker-health.service.show.txt\",\"text\":\"EnvironmentFiles=/etc/default/homelab-docker-health (ignore_errors=yes)\"},{\"line\":3,\"path\":\"systemd/units/homelab-docker-health.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":4,\"path\":\"systemd/units/homelab-docker-health.service.show.txt\",\"text\":\"Id=homelab-docker-health.service\"},{\"line\":8,\"path\":\"systemd/units/homelab-docker-health.service.show.txt\",\"text\":\"FragmentPath=/etc/systemd/system/homelab-docker-health.service\"},{\"line\":22,\"path\":\"systemd/units/kmod-static-nodes.service.cat.txt\",\"text\":\"ExecStart=/usr/bin/kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/static-nodes.conf\"},{\"line\":1,\"path\":\"systemd/units/kmod-static-nodes.service.show.txt\",\"text\":\"ExecStart={ path=/usr/bin/kmod ; argv[]=/usr/bin/kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/static-nodes.conf ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/kmod-static-nodes.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":8,\"path\":\"systemd/units/prometheus-node-exporter-apt.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/share/prometheus-node-exporter-collectors/apt_info.py | sponge /var/lib/prometheus/node-exporter/apt.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-apt.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/apt_info.py | sponge /var/lib/prometheus/node-exporter/apt.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:26:24 MSK] ; stop_time=[Fri 2026-07-31 10:26:25 MSK] ; pid=542370 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-apt.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":10,\"path\":\"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/bin/ipmitool sensor | /usr/share/prometheus-node-exporter-collectors/ipmitool | sponge /var/lib/prometheus/node-exporter/ipmitool_sensor.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/bin/ipmitool sensor | /usr/share/prometheus-node-exporter-collectors/ipmitool | sponge /var/lib/prometheus/node-exporter/ipmitool_sensor.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":9,\"path\":\"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/share/prometheus-node-exporter-collectors/mellanox_hca_temp | sponge /var/lib/prometheus/node-exporter/mellanox_hca_temp.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/mellanox_hca_temp | sponge /var/lib/prometheus/node-exporter/mellanox_hca_temp.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":8,\"path\":\"systemd/units/prometheus-node-exporter-nvme.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/share/prometheus-node-exporter-collectors/nvme_metrics.py | sponge /var/lib/prometheus/node-exporter/nvme.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-nvme.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/nvme_metrics.py | sponge /var/lib/prometheus/node-exporter/nvme.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:28:14 MSK] ; stop_time=[Fri 2026-07-31 10:28:15 MSK] ; pid=543032 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-nvme.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":8,\"path\":\"systemd/units/prometheus-node-exporter-smartmon.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/share/prometheus-node-exporter-collectors/smartmon.sh | sponge /var/lib/prometheus/node-exporter/smartmon.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-smartmon.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/smartmon.sh | sponge /var/lib/prometheus/node-exporter/smartmon.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-smartmon.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":9,\"path\":\"systemd/units/prometheus-node-exporter.service.cat.txt\",\"text\":\"EnvironmentFile=/etc/default/prometheus-node-exporter\"},{\"line\":10,\"path\":\"systemd/units/prometheus-node-exporter.service.cat.txt\",\"text\":\"ExecStart=/usr/bin/prometheus-node-exporter $ARGS\"},{\"line\":20,\"path\":\"systemd/units/prometheus-node-exporter.service.cat.txt\",\"text\":\"ExecStart=\"},{\"line\":21,\"path\":\"systemd/units/prometheus-node-exporter.service.cat.txt\",\"text\":\"ExecStart=/usr/bin/prometheus-node-exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter.service.show.txt\",\"text\":\"ExecStart={ path=/usr/bin/prometheus-node-exporter ; argv[]=/usr/bin/prometheus-node-exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter.service.show.txt\",\"text\":\"EnvironmentFiles=/etc/default/prometheus-node-exporter (ignore_errors=no)\"},{\"line\":3,\"path\":\"systemd/units/prometheus-node-exporter.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":10,\"path\":\"systemd/units/proxmox-boot-cleanup.service.cat.txt\",\"text\":\"ExecStart=/usr/sbin/proxmox-boot-tool kernel unpin --next-boot\"},{\"line\":11,\"path\":\"systemd/units/proxmox-boot-cleanup.service.cat.txt\",\"text\":\"ExecStart=/usr/sbin/proxmox-boot-tool refresh\"},{\"line\":1,\"path\":\"systemd/units/proxmox-boot-cleanup.service.show.txt\",\"text\":\"ExecStart={ path=/usr/sbin/proxmox-boot-tool ; argv[]=/usr/sbin/proxmox-boot-tool kernel unpin --next-boot ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/proxmox-boot-cleanup.service.show.txt\",\"text\":\"ExecStart={ path=/usr/sbin/proxmox-boot-tool ; argv[]=/usr/sbin/proxmox-boot-tool refresh ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":3,\"path\":\"systemd/units/proxmox-boot-cleanup.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":24,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev-early.service.cat.txt\",\"text\":\"ExecStart=systemd-tmpfiles --prefix=/dev --create --boot --graceful\"},{\"line\":1,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev-early.service.show.txt\",\"text\":\"ExecStart={ path=systemd-tmpfiles ; argv[]=systemd-tmpfiles --prefix=/dev --create --boot --graceful ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev-early.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":25,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev.service.cat.txt\",\"text\":\"ExecStart=systemd-tmpfiles --prefix=/dev --create --boot\"},{\"line\":1,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev.service.show.txt\",\"text\":\"ExecStart={ path=systemd-tmpfiles ; argv[]=systemd-tmpfiles --prefix=/dev --create --boot ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":7,\"path\":\"containers/podman.json\",\"text\":\"\\\"engine\\\": \\\"podman\\\",\"},{\"line\":5,\"path\":\"source/01_homelab-configs-worktree/OPS_RULES.md\",\"text\":\"- Runtime, Docker, and /opt/stacks commands run only through EDGE SSH.\"},{\"line\":7,\"path\":\"source/01_homelab-configs-worktree/OPS_RULES.md\",\"text\":\"- On edge, never allow implicit Docker Compose default networks.\"},{\"line\":3,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"Документация восстановления homelab-кластера gram1.ru с нуля.\"},{\"line\":9,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Homepage: https://home.gram1.ru\"},{\"line\":10,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Gitea: https://git.gram1.ru\"},{\"line\":11,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Nextcloud: https://nc.gram1.ru\"},{\"line\":12,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Vaultwarden: https://vault.gram1.ru\"},{\"line\":13,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Dockge: https://dockge.gram1.ru\"},{\"line\":14,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Uptime Kuma: http://uptime.gram1.ru\"},{\"line\":15,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Gotify: http://gotify.gram1.ru\"},{\"line\":23,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"5. Не использовать webroot / HTTP-01, пока WAN TCP/80 даёт timeout.\"},{\"line\":41,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"`https://backup.gram1.ru/backup.txt`\"},{\"line\":45,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Dozzle: https://dozzle.gram1.ru\"},{\"line\":46,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Paperless-ngx: https://paper.gram1.ru\"},{\"line\":47,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Memos: https://memos.gram1.ru\"},{\"line\":48,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Immich: https://photos.gram1.ru\"},{\"line\":49,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Authentik: https://auth.gram1.ru\"},{\"line\":53,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- https://home.gram1.ru\"},{\"line\":54,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Backup Health link points to `https://backup.gram1.ru/backup.txt`.\"},{\"line\":58,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"Never commit or print Cloudflare tokens, certbot credentials, `.env`, private keys, passwords, or raw NPMplus `meta`.\"},{\"line\":64,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- URL: `https://backup.gram1.ru/backup.txt`\"},{\"line\":84,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Operational rule: for `systemctl enable/start`, `docker compose`, `apt-get`, and `git push`, judge success by exit code plus explicit verification; informational stderr must not be treated as failure.\"},{\"line\":122,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- Verification at this checkpoint: `photos.gram1.ru` returned 200 and off-host health returned `STATUS=OK`.\"},{\"line\":255,\"path\":\"source/01_homelab-configs-worktree/README.md\",\"text\":\"- `https://backup.gram1.ru/backup.txt`\"},{\"line\":21,\"path\":\"source/01_homelab-configs-worktree/SECURITY.md\",\"text\":\"Cloudflare API tokens, certbot credential files, private keys, `.env` files, passwords, and raw NPMplus `meta` are secrets.\"},{\"line\":9,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/dockge-compose.yaml\",\"text\":\"- /var/run/docker.sock:/var/run/docker.sock\"},{\"line\":3,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/gitea-compose.yaml\",\"text\":\"image: docker.gitea.com/gitea:1.26.2\"},{\"line\":13,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/gitea-compose.yaml\",\"text\":\"GITEA__server__DOMAIN: git.gram1.ru\"},{\"line\":14,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/gitea-compose.yaml\",\"text\":\"GITEA__server__ROOT_URL: https://git.gram1.ru/\"},{\"line\":9,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-compose.yaml\",\"text\":\"HOMEPAGE_ALLOWED_HOSTS: home.gram1.ru,homepage.vpn.gram1.ru\"},{\"line\":3,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://home.gram1.ru\"},{\"line\":7,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://homepage.vpn.gram1.ru\"},{\"line\":8,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"description: VPN alias for Homepage\"},{\"line\":11,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://auth.gram1.ru\"},{\"line\":15,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://auth.vpn.gram1.ru\"},{\"line\":16,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"description: VPN alias for Authentik\"},{\"line\":19,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://vault.gram1.ru\"},{\"line\":23,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://git.gram1.ru\"},{\"line\":27,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://gitea.vpn.gram1.ru\"},{\"line\":28,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"description: VPN alias for Gitea\"},{\"line\":31,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://backup.gram1.ru/backup.txt\"},{\"line\":36,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://uptime.gram1.ru\"},{\"line\":40,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://kuma.vpn.gram1.ru\"},{\"line\":41,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"description: VPN alias for Uptime Kuma\"},{\"line\":44,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://grafana.vpn.gram1.ru\"},{\"line\":48,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://prometheus.vpn.gram1.ru\"},{\"line\":52,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://alertmanager.vpn.gram1.ru\"},{\"line\":56,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://beszel.vpn.gram1.ru\"},{\"line\":60,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://dozzle.gram1.ru\"},{\"line\":61,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"description: Docker logs viewer\"},{\"line\":64,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://ntfy.vpn.gram1.ru\"},{\"line\":68,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://gotify.gram1.ru\"},{\"line\":73,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://checks.vpn.gram1.ru\"},{\"line\":77,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://npmplus.vpn.gram1.ru\"},{\"line\":81,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://dockge.gram1.ru\"},{\"line\":82,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"description: Compose stacks admin\"},{\"line\":85,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://netbox.vpn.gram1.ru\"},{\"line\":90,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://proxmox.vpn.gram1.ru\"},{\"line\":91,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"description: Proxmox node 1\"},{\"line\":94,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://minio.vpn.gram1.ru\"},{\"line\":98,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://filebrowser.vpn.gram1.ru\"},{\"line\":103,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://actual-budget.vpn.gram1.ru\"},{\"line\":107,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://homebox.vpn.gram1.ru\"},{\"line\":111,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://mealie.vpn.gram1.ru\"},{\"line\":115,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://paper.gram1.ru\"},{\"line\":119,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://memos.gram1.ru\"},{\"line\":123,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://linkding.vpn.gram1.ru\"},{\"line\":127,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://karakeep.vpn.gram1.ru\"},{\"line\":131,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://it-tools.vpn.gram1.ru\"},{\"line\":135,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://n8n.vpn.gram1.ru\"},{\"line\":139,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://node-red.vpn.gram1.ru\"},{\"line\":144,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://vikunja.vpn.gram1.ru\"},{\"line\":148,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://bookstack.vpn.gram1.ru\"},{\"line\":152,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://nc.gram1.ru\"},{\"line\":156,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://photos.gram1.ru\"},{\"line\":160,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://syncthing.vpn.gram1.ru\"},{\"line\":165,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://pdf.vpn.gram1.ru\"},{\"line\":169,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://jellyfin.vpn.gram1.ru\"},{\"line\":173,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://audiobooks.vpn.gram1.ru\"},{\"line\":177,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://books.vpn.gram1.ru\"},{\"line\":181,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://homeassistant.vpn.gram1.ru\"},{\"line\":186,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://searxng.vpn.gram1.ru\"},{\"line\":191,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://dns1.vpn.gram1.ru\"},{\"line\":195,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml\",\"text\":\"href: https://dns2.vpn.gram1.ru\"},{\"line\":10,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/renovate-config.js\",\"text\":\"gitAuthor: \\\"Renovate Bot \\\",\"},{\"line\":16,\"path\":\"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/renovate-config.js\",\"text\":\"enabledManagers: [\\\"docker-compose\\\",\\\"dockerfile\\\",\\\"github-actions\\\"],\"},{\"line\":3,\"path\":\"source/01_homelab-configs-worktree/docs/00-overview.md\",\"text\":\"Homelab gram1.ru построен вокруг Proxmox-кластера, внутреннего DNS, NPMplus reverse proxy, мониторинга, backup и набора self-hosted сервисов.\"},{\"line\":27,\"path\":\"source/01_homelab-configs-worktree/docs/01-network-and-dns.md\",\"text\":\"Use Cloudflare DNS challenge for internal/private services. Never print Cloudflare tokens, certbot credential files, or NPMplus raw `meta` in chat or logs.\"},{\"line\":29,\"path\":\"source/01_homelab-configs-worktree/docs/01-network-and-dns.md\",\"text\":\"Do not use webroot / HTTP-01 unless WAN TCP/80 reachability is intentionally fixed.\"},{\"line\":37,\"path\":\"source/01_homelab-configs-worktree/docs/01-network-and-dns.md\",\"text\":\"| dozzle.gram1.ru | [PRIVATE_IP] | Dozzle |\"},{\"line\":38,\"path\":\"source/01_homelab-configs-worktree/docs/01-network-and-dns.md\",\"text\":\"| paper.gram1.ru | [PRIVATE_IP] | Paperless-ngx |\"},{\"line\":39,\"path\":\"source/01_homelab-configs-worktree/docs/01-network-and-dns.md\",\"text\":\"| memos.gram1.ru | [PRIVATE_IP] | Memos |\"},{\"line\":40,\"path\":\"source/01_homelab-configs-worktree/docs/01-network-and-dns.md\",\"text\":\"| photos.gram1.ru | [PRIVATE_IP] | Immich |\"},{\"line\":41,\"path\":\"source/01_homelab-configs-worktree/docs/01-network-and-dns.md\",\"text\":\"| auth.gram1.ru | [PRIVATE_IP] | Authentik |\"},{\"line\":42,\"path\":\"source/01_homelab-configs-worktree/docs/01-network-and-dns.md\",\"text\":\"| backup.gram1.ru | [PRIVATE_IP] | Backup health proxy |\"},{\"line\":43,\"path\":\"source/01_homelab-configs-worktree/docs/01-network-and-dns.md\",\"text\":\"| turn.gram1.ru | [PRIVATE_IP] | TURN / Nextcloud-related exception |\"},{\"line\":45,\"path\":\"source/01_homelab-configs-worktree/docs/01-network-and-dns.md\",\"text\":\"Final verified state for `backup.gram1.ru`:\"},{\"line\":49,\"path\":\"source/01_homelab-configs-worktree/docs/01-network-and-dns.md\",\"text\":\"- HTTPS endpoint: `https://backup.gram1.ru/backup.txt`\"},{\"line\":29,\"path\":\"source/01_homelab-configs-worktree/docs/02-backup-and-restore.md\",\"text\":\"https://backup.gram1.ru/backup.txt\"},{\"line\":37,\"path\":\"source/01_homelab-configs-worktree/docs/02-backup-and-restore.md\",\"text\":\"Important: the root path `https://backup.gram1.ru/` may show the NPMplus Default Page. The correct health endpoint is `/backup.txt`.\"},{\"line\":93,\"path\":\"source/01_homelab-configs-worktree/docs/02-backup-and-restore.md\",\"text\":\"- Docker container state on edge-vm.\"},{\"line\":7,\"path\":\"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md\",\"text\":\"| Node | IP | Main role |\"},{\"line\":11,\"path\":\"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md\",\"text\":\"| pve03 | [PRIVATE_IP] | edge-vm with Docker services |\"},{\"line\":18,\"path\":\"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md\",\"text\":\"| 112 | unbound1 | LXC | pve01 | [PRIVATE_IP] | Unbound primary upstream |\"},{\"line\":20,\"path\":\"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md\",\"text\":\"| 113 | unbound2 | LXC | pve02 | [PRIVATE_IP] | Unbound secondary upstream |\"},{\"line\":21,\"path\":\"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md\",\"text\":\"| 130 | edge-vm | VM | pve03 | [PRIVATE_IP] | Docker edge services |\"},{\"line\":44,\"path\":\"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md\",\"text\":\"edge-vm hosts the main Docker service layer.\"},{\"line\":81,\"path\":\"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md\",\"text\":\"## Validation after node restore\"},{\"line\":85,\"path\":\"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md\",\"text\":\"- node is reachable by SSH;\"},{\"line\":107,\"path\":\"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md\",\"text\":\"The previous 4 GB / 2 core sizing was not enough for the expanded Docker service set.\"},{\"line\":124,\"path\":\"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md\",\"text\":\"## Node placement rules\"},{\"line\":15,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Compose path: /opt/npmplus-compose/compose.yaml\"},{\"line\":25,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Compose path: /opt/uptime-kuma-compose/compose.yaml\"},{\"line\":27,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Domain: https://uptime.gram1.ru\"},{\"line\":33,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Compose path: /opt/gotify-compose/compose.yaml\"},{\"line\":35,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Domain: https://gotify.gram1.ru\"},{\"line\":36,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Note: HEAD on root may return 404, so monitoring should accept the proper status range or endpoint.\"},{\"line\":41,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Compose path: /opt/vaultwarden-compose/compose.yaml\"},{\"line\":42,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Data path: /opt/vaultwarden-compose/data\"},{\"line\":44,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Domain: https://vault.gram1.ru\"},{\"line\":51,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Purpose: Docker Compose stack admin for future stacks.\"},{\"line\":52,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Compose path: /opt/dockge-compose/compose.yaml\"},{\"line\":53,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Data path: /opt/dockge-compose/data\"},{\"line\":56,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Domain: https://dockge.gram1.ru\"},{\"line\":58,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Warning: Docker socket access makes Dockge a privileged admin panel.\"},{\"line\":64,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Compose path: /opt/stacks/homepage/compose.yaml\"},{\"line\":67,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Domain: https://home.gram1.ru\"},{\"line\":68,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Docker socket integration disabled.\"},{\"line\":74,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Compose path: /opt/stacks/gitea/compose.yaml\"},{\"line\":77,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Domain: https://git.gram1.ru\"},{\"line\":90,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Domain: https://nc.gram1.ru\"},{\"line\":92,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- TURN: turn.gram1.ru:3478\"},{\"line\":105,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Backup health endpoint: https://backup.gram1.ru/backup.txt\"},{\"line\":115,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"| Dozzle | `/opt/stacks/dozzle` | `http://127.0.0.1:9999` | `https://dozzle.gram1.ru` | id 18 |\"},{\"line\":116,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"| Paperless-ngx | `/opt/stacks/paperless` | `http://127.0.0.1:8010` | `https://paper.gram1.ru` | id 19 |\"},{\"line\":117,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"| Memos | `/opt/stacks/memos` | `http://127.0.0.1:5230` | `https://memos.gram1.ru` | id 20 |\"},{\"line\":118,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"| Immich | `/opt/stacks/immich` | `http://127.0.0.1:2283` | `https://photos.gram1.ru` | id 21 |\"},{\"line\":119,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"| Authentik | `/opt/stacks/authentik` | `http://127.0.0.1:9000` | `https://auth.gram1.ru` | id 22 |\"},{\"line\":127,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- URL: `https://backup.gram1.ru/backup.txt`\"},{\"line\":136,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"`https://backup.gram1.ru/backup.txt`\"},{\"line\":148,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- root path may show the NPMplus Default Page and should not be used as the health check.\"},{\"line\":152,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- dns1 / `[PRIVATE_IP]`: `backup.gram1.ru -> [PRIVATE_IP]`\"},{\"line\":153,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- dns2 / `[PRIVATE_IP]`: `backup.gram1.ru -> [PRIVATE_IP]`\"},{\"line\":157,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"`edge-vm` was resized to 12 GB RAM and 4 CPU cores after the first 4 GB / 2 core sizing proved too small for the expanded Docker service set.\"},{\"line\":176,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Operational rule: for `systemctl enable/start`, `docker compose`, `apt-get`, and `git push`, judge success by exit code plus explicit verification; informational stderr must not be treated as failure.\"},{\"line\":214,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- Verification at this checkpoint: `photos.gram1.ru` returned 200 and off-host health returned `STATUS=OK`.\"},{\"line\":347,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"- `https://backup.gram1.ru/backup.txt`\"},{\"line\":368,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"Homepage was reorganized into operational groups and user-facing internal services were made clickable through VPN-only `*.vpn.gram1.ru` routes.\"},{\"line\":372,\"path\":\"source/01_homelab-configs-worktree/docs/05-service-catalog.md\",\"text\":\"The visible-only cards are intentionally limited to metrics/API/status-only services: Loki, Alloy, Node Exporter, Registry Cache, CrowdSec, and DIUN.\"},{\"line\":9,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"Do not use webroot or HTTP-01 unless WAN TCP 80 reachability is intentionally fixed and verified.\"},{\"line\":13,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"1. Make sure certbot is not already running.\"},{\"line\":22,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"10. Wait for certbot to finish.\"},{\"line\":27,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"## Check certbot process\"},{\"line\":31,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"Command idea: ssh to edge-vm and run pgrep -af certbot.\"},{\"line\":33,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"If certbot is running, do not click the NPMplus certificate button again.\"},{\"line\":37,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"Observed with dockge.gram1.ru.\"},{\"line\":48,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"Observed after DNS was fixed for dockge.gram1.ru.\"},{\"line\":54,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"## Error: Another instance of Certbot is already running\"},{\"line\":56,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"Observed when a certificate request was clicked again while another certbot process was still running.\"},{\"line\":62,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"Observed with home.gram1.ru and git.gram1.ru before certificate completion.\"},{\"line\":84,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"The Docker subnet used by Uptime Kuma may need to be allowed, for example [PRIVATE_IP]/16.\"},{\"line\":94,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"- vault.gram1.ru: Lets Encrypt via Cloudflare DNS challenge.\"},{\"line\":95,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"- dockge.gram1.ru: Lets Encrypt via Cloudflare DNS challenge.\"},{\"line\":96,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"- home.gram1.ru: Lets Encrypt via Cloudflare DNS challenge.\"},{\"line\":97,\"path\":\"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md\",\"text\":\"- git.gram1.ru: Lets Encrypt via Cloudflare DNS challenge.\"},{\"line\":7,\"path\":\"source/01_homelab-configs-worktree/docs/07-gitea-workflow.md\",\"text\":\"- URL: https://git.gram1.ru/homelab-admin/homelab-configs\"},{\"line\":16,\"path\":\"source/01_homelab-configs-worktree/docs/07-gitea-workflow.md\",\"text\":\"- Safe compose snapshots without secrets.\"},{\"line\":7,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- Remote: https://git.gram1.ru/homelab-admin/homelab-configs\"},{\"line\":17,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- Do not print secrets, tokens, private keys, `.env`, NPMplus raw `meta`, or certbot credential contents.\"},{\"line\":27,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- Public health URL: https://backup.gram1.ru/backup.txt\"},{\"line\":30,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- Important: `https://backup.gram1.ru/` may show the NPMplus Default Page and should not be used as the health check.\"},{\"line\":43,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| Node | IP | Role |\"},{\"line\":55,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| edge-vm | VM130 | pve03 | [PRIVATE_IP] | Docker edge, 12 GB RAM, 4 cores |\"},{\"line\":61,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- Compose path: /opt/npmplus-compose/compose.yaml\"},{\"line\":69,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- Domain: backup.gram1.ru\"},{\"line\":72,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- Certbot cert name: npm-31\"},{\"line\":74,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- Public URL: https://backup.gram1.ru/backup.txt\"},{\"line\":78,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- Certificate id 30 covers dozzle.gram1.ru, paper.gram1.ru, memos.gram1.ru, photos.gram1.ru, auth.gram1.ru.\"},{\"line\":87,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| dozzle.gram1.ru | [PRIVATE_IP] |\"},{\"line\":88,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| paper.gram1.ru | [PRIVATE_IP] |\"},{\"line\":89,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| memos.gram1.ru | [PRIVATE_IP] |\"},{\"line\":90,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| photos.gram1.ru | [PRIVATE_IP] |\"},{\"line\":91,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| auth.gram1.ru | [PRIVATE_IP] |\"},{\"line\":92,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| backup.gram1.ru | [PRIVATE_IP] |\"},{\"line\":93,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| turn.gram1.ru | [PRIVATE_IP] |\"},{\"line\":99,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- HTTPS https://backup.gram1.ru/backup.txt returns 200 and STATUS=OK\"},{\"line\":105,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| Dozzle | /opt/stacks/dozzle | http://127.0.0.1:9999 | https://dozzle.gram1.ru | id 18 |\"},{\"line\":106,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| Paperless-ngx | /opt/stacks/paperless | http://127.0.0.1:8010 | https://paper.gram1.ru | id 19 |\"},{\"line\":107,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| Memos | /opt/stacks/memos | http://127.0.0.1:5230 | https://memos.gram1.ru | id 20 |\"},{\"line\":108,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| Immich | /opt/stacks/immich | http://127.0.0.1:2283 | https://photos.gram1.ru | id 21 |\"},{\"line\":109,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"| Authentik | /opt/stacks/authentik | http://127.0.0.1:9000 | https://auth.gram1.ru | id 22 |\"},{\"line\":113,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- URL: https://home.gram1.ru\"},{\"line\":116,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- Backup Health link points to https://backup.gram1.ru/backup.txt.\"},{\"line\":121,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- Public/LAN URL: https://uptime.gram1.ru\"},{\"line\":129,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- 23: Backup Health / https://backup.gram1.ru/backup.txt\"},{\"line\":134,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- New token was installed in NPMplus DB meta and certbot credential files without printing token contents.\"},{\"line\":143,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- https://nc.gram1.ru\"},{\"line\":144,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- https://vault.gram1.ru\"},{\"line\":145,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\",\"text\":\"- https://dockge.gram1.ru\"}],\"detected_frameworks\":[\"Docker Compose\"],\"directory\":\"hosts/local\",\"domain_match_count\":1000,\"domain_matches\":[{\"lines\":[{\"line\":345,\"text\":\" \\\"target_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":463,\"text\":\" {\\\"host\\\": \\\"pve01.gram1.ru\\\", \\\"runtime\\\": \\\"python3\\\", \\\"compile\\\": \\\"python3 compile()\\\"}\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o750\",\"mtime_ns\":1785436778529839357,\"path\":\"/opt/homelab-admin/libexec/homelab-admin-lint\",\"sha256\":\"d5a56d702379c9834a103401147436b1243cc5e1c0fe961fb8d8c090db19ad2c\",\"size\":22756,\"uid\":0},\"path\":\"/opt/homelab-admin/libexec/homelab-admin-lint\"},{\"lines\":[{\"line\":11,\"text\":\"EXPECTED_HOST=\\\"${HOMELAB_EXPECTED_HOST:-pve01.gram1.ru}\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o750\",\"mtime_ns\":1784108548897502927,\"path\":\"/opt/homelab-admin/bin/homelab-admin\",\"sha256\":\"5398600c15b63f3872116e6d1ae6f65e2d7a5d1752349c9de0de07d801967bd1\",\"size\":9589,\"uid\":0},\"path\":\"/opt/homelab-admin/bin/homelab-admin\"},{\"lines\":[{\"line\":13,\"text\":\" \\\"pve01.gram1.ru\\\": \\\"pve01\\\",\"},{\"line\":14,\"text\":\" \\\"pve02.gram1.ru\\\": \\\"pve02\\\",\"},{\"line\":15,\"text\":\" \\\"pve03.gram1.ru\\\": \\\"pve03\\\",\"},{\"line\":16,\"text\":\" \\\"edge-vm.gram1.ru\\\": \\\"edge\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o750\",\"mtime_ns\":1784026163276834491,\"path\":\"/opt/cluster-admin-probe-target/responder.py\",\"sha256\":\"3e7585050d734ef0e3ccec7f98bde3626db31a6fd05e60dfb6f9976b371dea3c\",\"size\":2648,\"uid\":0},\"path\":\"/opt/cluster-admin-probe-target/responder.py\"},{\"lines\":[{\"line\":4,\"text\":\"Collector: `pve01.gram1.ru`\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784495133884419331,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/CURRENT_CONTEXT.md\",\"sha256\":\"9a772d6e8d6438e84b0d2459c69cd99dc51820dba46fae3897c94a661a43a993\",\"size\":1147,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/CURRENT_CONTEXT.md\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"collector_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":124,\"text\":\" \\\"remote\\\": \\\"https://git.gram1.ru/homelab-admin/homelab-ops.git\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784495133885547518,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/current-context.json\",\"sha256\":\"d2c7e06967fd76e09bb8ca694f5132aadd65a9eca35fca8ba92ac11c168d4ebb\",\"size\":6036,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/current-context.json\"},{\"lines\":[{\"line\":5,\"text\":\" \\\"collector_host\\\": \\\"pve01.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784495776231298902,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/live-verification-summary.json\",\"sha256\":\"6b9b7511cdae678efde036f0413c5fc26c3babf50ffd12c3777c39a20d9efe7e\",\"size\":787,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/live-verification-summary.json\"},{\"lines\":[{\"line\":217,\"text\":\" \\\"searchdomain\\\": \\\"gram1.ru\\\",\"},{\"line\":247,\"text\":\" \\\"searchdomain\\\": \\\"gram1.ru\\\",\"},{\"line\":282,\"text\":\" \\\"searchdomain\\\": \\\"gram1.ru\\\",\"},{\"line\":408,\"text\":\" \\\"searchdomain\\\": \\\"gram1.ru\\\",\"},{\"line\":922,\"text\":\" \\\"searchdomain\\\": \\\"gram1.ru\\\",\"},{\"line\":1374,\"text\":\" \\\"searchdomain\\\": \\\"gram1.ru\\\",\"},{\"line\":2952,\"text\":\" \\\"searchdomain\\\": \\\"gram1.ru\\\",\"},{\"line\":2982,\"text\":\" \\\"searchdomain\\\": \\\"gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784497022613291200,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/guests/management-discovery.json\",\"sha256\":\"fa7c99412123dbb529127644800b2527e16a86692fd54bda61c0a62dcb372548\",\"size\":86524,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/guests/management-discovery.json\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"collector_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":26,\"text\":\" \\\"url\\\": \\\"https://actual-budget.vpn.gram1.ru\\\",\"},{\"line\":36,\"text\":\" \\\"effective_url\\\": \\\"https://actual-budget.vpn.gram1.ru/\\\",\"},{\"line\":56,\"text\":\" \\\"url\\\": \\\"https://alertmanager.vpn.gram1.ru\\\",\"},{\"line\":66,\"text\":\" \\\"effective_url\\\": \\\"https://alertmanager.vpn.gram1.ru/\\\",\"},{\"line\":86,\"text\":\" \\\"url\\\": \\\"https://audiobooks.vpn.gram1.ru\\\",\"},{\"line\":96,\"text\":\" \\\"effective_url\\\": \\\"https://audiobooks.vpn.gram1.ru/\\\",\"},{\"line\":116,\"text\":\" \\\"url\\\": \\\"https://auth.gram1.ru\\\",\"},{\"line\":126,\"text\":\" \\\"effective_url\\\": \\\"https://auth.gram1.ru/if/flow/default-authentication-flow/?next=%2F\\\",\"},{\"line\":146,\"text\":\" \\\"url\\\": \\\"https://backup.gram1.ru/backup.txt\\\",\"},{\"line\":156,\"text\":\" \\\"effective_url\\\": \\\"https://backup.gram1.ru/backup.txt\\\",\"},{\"line\":163,\"text\":\" \\\"url\\\": \\\"https://backup.gram1.ru/overall.txt\\\",\"},{\"line\":173,\"text\":\" \\\"effective_url\\\": \\\"https://backup.gram1.ru/overall.txt\\\",\"},{\"line\":193,\"text\":\" \\\"url\\\": \\\"https://beszel.vpn.gram1.ru\\\",\"},{\"line\":203,\"text\":\" \\\"effective_url\\\": \\\"https://beszel.vpn.gram1.ru/\\\",\"},{\"line\":253,\"text\":\" \\\"url\\\": \\\"https://bookstack.vpn.gram1.ru\\\",\"},{\"line\":263,\"text\":\" \\\"effective_url\\\": \\\"https://bookstack.vpn.gram1.ru/login\\\",\"},{\"line\":313,\"text\":\" \\\"url\\\": \\\"https://books.vpn.gram1.ru\\\",\"},{\"line\":323,\"text\":\" \\\"effective_url\\\": \\\"https://books.vpn.gram1.ru/login?next=%2Fadmin%2Fdbconfig\\\",\"},{\"line\":373,\"text\":\" \\\"url\\\": \\\"https://cluster-admin.vpn.gram1.ru/status.txt\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784495776230298887,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/services/index.json\",\"sha256\":\"0046ef9897703f2462d7022a3236b7fa40070a625deca3f383eea90d01eca4a5\",\"size\":46003,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/services/index.json\"},{\"lines\":[{\"line\":48,\"text\":\" \\\"expected_hostname\\\": \\\"forum-prod.gram1.ru\\\",\"},{\"line\":62,\"text\":\" \\\"expected_hostname\\\": \\\"monitoring.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784497022644300719,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/findings/access-gaps.json\",\"sha256\":\"6358da671fbcfb7cc5d42eea6ba95c7056d6dda494d7e25f5b472bddaa0f0492\",\"size\":2925,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/findings/access-gaps.json\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"collector_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":19,\"text\":\" \\\"expected_hostname\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":20,\"text\":\" \\\"actual_hostname\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":34,\"text\":\" \\\"expected_hostname\\\": \\\"pve02.gram1.ru\\\",\"},{\"line\":35,\"text\":\" \\\"actual_hostname\\\": \\\"pve02.gram1.ru\\\",\"},{\"line\":49,\"text\":\" \\\"expected_hostname\\\": \\\"pve03.gram1.ru\\\",\"},{\"line\":50,\"text\":\" \\\"actual_hostname\\\": \\\"pve03.gram1.ru\\\",\"},{\"line\":64,\"text\":\" \\\"expected_hostname\\\": \\\"edge-vm.gram1.ru\\\",\"},{\"line\":65,\"text\":\" \\\"actual_hostname\\\": \\\"edge-vm.gram1.ru\\\",\"},{\"line\":79,\"text\":\" \\\"expected_hostname\\\": \\\"forum-prod.gram1.ru\\\",\"},{\"line\":92,\"text\":\" \\\"expected_hostname\\\": \\\"core-apps.gram1.ru\\\",\"},{\"line\":93,\"text\":\" \\\"actual_hostname\\\": \\\"core-apps.gram1.ru\\\",\"},{\"line\":107,\"text\":\" \\\"expected_hostname\\\": \\\"cluster-admin.gram1.ru\\\",\"},{\"line\":108,\"text\":\" \\\"actual_hostname\\\": \\\"cluster-admin.gram1.ru\\\",\"},{\"line\":137,\"text\":\" \\\"expected_hostname\\\": \\\"monitoring.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784495776229298871,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/access/index.json\",\"sha256\":\"3b2324041ed71e69407195809a383f45ab16e3e6056c5249ad71fe4ae142d237\",\"size\":4499,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/access/index.json\"},{\"lines\":[{\"line\":14,\"text\":\" \\\"expected_hostname\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":15,\"text\":\" \\\"actual_hostname\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":28,\"text\":\" \\\"expected_hostname\\\": \\\"pve02.gram1.ru\\\",\"},{\"line\":29,\"text\":\" \\\"actual_hostname\\\": \\\"pve02.gram1.ru\\\",\"},{\"line\":42,\"text\":\" \\\"expected_hostname\\\": \\\"pve03.gram1.ru\\\",\"},{\"line\":43,\"text\":\" \\\"actual_hostname\\\": \\\"pve03.gram1.ru\\\",\"},{\"line\":56,\"text\":\" \\\"expected_hostname\\\": \\\"edge-vm.gram1.ru\\\",\"},{\"line\":57,\"text\":\" \\\"actual_hostname\\\": \\\"edge-vm.gram1.ru\\\",\"},{\"line\":70,\"text\":\" \\\"expected_hostname\\\": \\\"forum-prod.gram1.ru\\\",\"},{\"line\":84,\"text\":\" \\\"expected_hostname\\\": \\\"core-apps.gram1.ru\\\",\"},{\"line\":85,\"text\":\" \\\"actual_hostname\\\": \\\"core-apps.gram1.ru\\\",\"},{\"line\":98,\"text\":\" \\\"expected_hostname\\\": \\\"cluster-admin.gram1.ru\\\",\"},{\"line\":99,\"text\":\" \\\"actual_hostname\\\": \\\"cluster-admin.gram1.ru\\\",\"},{\"line\":126,\"text\":\" \\\"expected_hostname\\\": \\\"monitoring.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784497022643731409,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/access-evidence.json\",\"sha256\":\"5568a9b1d5e29930b602a2345e5c44352e9fffa9ae9b57aaa14dcdd8052e1397\",\"size\":7540,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/access-evidence.json\"},{\"lines\":[{\"line\":6,\"text\":\" \\\"target\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":13,\"text\":\" \\\"target\\\": \\\"pve02.gram1.ru\\\",\"},{\"line\":20,\"text\":\" \\\"target\\\": \\\"pve03.gram1.ru\\\",\"},{\"line\":27,\"text\":\" \\\"target\\\": \\\"edge-vm.gram1.ru\\\",\"},{\"line\":34,\"text\":\" \\\"target\\\": \\\"forum-prod.gram1.ru\\\",\"},{\"line\":41,\"text\":\" \\\"target\\\": \\\"core-apps.gram1.ru\\\",\"},{\"line\":48,\"text\":\" \\\"target\\\": \\\"cluster-admin.gram1.ru\\\",\"},{\"line\":62,\"text\":\" \\\"target\\\": \\\"monitoring.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784495133885246039,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/access-paths.json\",\"sha256\":\"ac5dc881dcd9fcb72644bc893e866f463c9c2b9b4544e32434e21b5d34168fb5\",\"size\":1652,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/access-paths.json\"},{\"lines\":[{\"line\":9,\"text\":\" \\\"pve01.gram1.ru\\\"\"},{\"line\":12,\"text\":\" \\\"expected_hostname\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":31,\"text\":\" \\\"pve02.gram1.ru\\\"\"},{\"line\":34,\"text\":\" \\\"expected_hostname\\\": \\\"pve02.gram1.ru\\\",\"},{\"line\":53,\"text\":\" \\\"pve03.gram1.ru\\\"\"},{\"line\":56,\"text\":\" \\\"expected_hostname\\\": \\\"pve03.gram1.ru\\\",\"},{\"line\":135,\"text\":\" \\\"edge-vm.gram1.ru\\\"\"},{\"line\":138,\"text\":\" \\\"expected_hostname\\\": \\\"edge-vm.gram1.ru\\\",\"},{\"line\":174,\"text\":\" \\\"forum-prod.gram1.ru\\\"\"},{\"line\":177,\"text\":\" \\\"expected_hostname\\\": \\\"forum-prod.gram1.ru\\\",\"},{\"line\":198,\"text\":\" \\\"core-apps.gram1.ru\\\"\"},{\"line\":201,\"text\":\" \\\"expected_hostname\\\": \\\"core-apps.gram1.ru\\\",\"},{\"line\":222,\"text\":\" \\\"monitoring.gram1.ru\\\"\"},{\"line\":225,\"text\":\" \\\"expected_hostname\\\": \\\"monitoring.gram1.ru\\\",\"},{\"line\":246,\"text\":\" \\\"cluster-admin.gram1.ru\\\"\"},{\"line\":249,\"text\":\" \\\"expected_hostname\\\": \\\"cluster-admin.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1784495133909456622,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/hosts.json\",\"sha256\":\"c0fe9677e338f34db252dda89ffdcd28fd23986fb9c219fe8c8b419d3b0c3967\",\"size\":8502,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/hosts.json\"},{\"lines\":[{\"line\":10,\"text\":\" \\\"remote_url\\\": \\\"https://git.gram1.ru/homelab-admin/homelab-ops.git\\\",\"},{\"line\":21,\"text\":\" \\\"remote_url\\\": \\\"https://git.gram1.ru/homelab-admin/homelab-desired-state.git\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1784495133915442036,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/repositories.json\",\"sha256\":\"3a03a32a211559b3af512ba37ac503a5504631c22850a117cf0c34c611b69112\",\"size\":937,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/repositories.json\"},{\"lines\":[{\"line\":16,\"text\":\" \\\"url\\\": \\\"https://actual-budget.vpn.gram1.ru\\\",\"},{\"line\":46,\"text\":\" \\\"url\\\": \\\"https://alertmanager.vpn.gram1.ru\\\",\"},{\"line\":76,\"text\":\" \\\"url\\\": \\\"https://audiobooks.vpn.gram1.ru\\\",\"},{\"line\":106,\"text\":\" \\\"url\\\": \\\"https://auth.gram1.ru\\\",\"},{\"line\":141,\"text\":\" \\\"url\\\": \\\"https://backup.gram1.ru/backup.txt\\\",\"},{\"line\":145,\"text\":\" \\\"url\\\": \\\"https://backup.gram1.ru/overall.txt\\\",\"},{\"line\":175,\"text\":\" \\\"url\\\": \\\"https://beszel.vpn.gram1.ru\\\",\"},{\"line\":235,\"text\":\" \\\"url\\\": \\\"https://bookstack.vpn.gram1.ru\\\",\"},{\"line\":300,\"text\":\" \\\"url\\\": \\\"https://books.vpn.gram1.ru\\\",\"},{\"line\":360,\"text\":\" \\\"url\\\": \\\"https://cluster-admin.vpn.gram1.ru/status.txt\\\",\"},{\"line\":390,\"text\":\" \\\"url\\\": \\\"https://gram1.ru/\\\",\"},{\"line\":420,\"text\":\" \\\"url\\\": \\\"https://dns1.vpn.gram1.ru\\\",\"},{\"line\":450,\"text\":\" \\\"url\\\": \\\"https://dns2.vpn.gram1.ru\\\",\"},{\"line\":482,\"text\":\" \\\"url\\\": \\\"https://dockge.gram1.ru\\\",\"},{\"line\":540,\"text\":\" \\\"url\\\": \\\"https://dozzle.gram1.ru\\\",\"},{\"line\":570,\"text\":\" \\\"url\\\": \\\"https://filebrowser.vpn.gram1.ru\\\",\"},{\"line\":600,\"text\":\" \\\"url\\\": \\\"https://git.gram1.ru\\\",\"},{\"line\":635,\"text\":\" \\\"url\\\": \\\"https://gotify.gram1.ru\\\",\"},{\"line\":670,\"text\":\" \\\"url\\\": \\\"https://grafana.vpn.gram1.ru\\\",\"},{\"line\":725,\"text\":\" \\\"url\\\": \\\"https://checks.vpn.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1784495133918006174,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/services.json\",\"sha256\":\"189ab606f9de7b379b03510aef024def88ab91a1e2782d0c7d74fe93fa61509b\",\"size\":43565,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/services.json\"},{\"lines\":[{\"line\":13,\"text\":\" \\\"fqdn\\\": \\\"pve01.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1784497007814974332,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/execution-contexts.json\",\"sha256\":\"75e9716477032a09924d6b8f2bfe485b5a008119539ae10c315a6e306c57fc3b\",\"size\":1579,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/execution-contexts.json\"},{\"lines\":[{\"line\":19,\"text\":\" \\\"pve01.gram1.ru\\\"\"},{\"line\":28,\"text\":\" \\\"expected_hostname\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":53,\"text\":\" \\\"pve02.gram1.ru\\\"\"},{\"line\":62,\"text\":\" \\\"expected_hostname\\\": \\\"pve02.gram1.ru\\\",\"},{\"line\":87,\"text\":\" \\\"pve03.gram1.ru\\\"\"},{\"line\":96,\"text\":\" \\\"expected_hostname\\\": \\\"pve03.gram1.ru\\\",\"},{\"line\":121,\"text\":\" \\\"edge-vm.gram1.ru\\\"\"},{\"line\":130,\"text\":\" \\\"expected_hostname\\\": \\\"edge-vm.gram1.ru\\\",\"},{\"line\":155,\"text\":\" \\\"forum-prod.gram1.ru\\\"\"},{\"line\":164,\"text\":\" \\\"expected_hostname\\\": \\\"forum-prod.gram1.ru\\\",\"},{\"line\":190,\"text\":\" \\\"core-apps.gram1.ru\\\"\"},{\"line\":199,\"text\":\" \\\"expected_hostname\\\": \\\"core-apps.gram1.ru\\\",\"},{\"line\":224,\"text\":\" \\\"cluster-admin.gram1.ru\\\"\"},{\"line\":233,\"text\":\" \\\"expected_hostname\\\": \\\"cluster-admin.gram1.ru\\\",\"},{\"line\":300,\"text\":\" \\\"monitoring.gram1.ru\\\"\"},{\"line\":309,\"text\":\" \\\"expected_hostname\\\": \\\"monitoring.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1784495133907632717,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/access-registry.json\",\"sha256\":\"a3dd86cf081def8772b16ce798beb733825183466d46a3997b43aff250c68563\",\"size\":9641,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/access-registry.json\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"target_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":98,\"text\":\" \\\"host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":103,\"text\":\" \\\"host\\\": \\\"pve02.gram1.ru\\\",\"},{\"line\":108,\"text\":\" \\\"host\\\": \\\"pve03.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784495133886066538,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/cluster-cloud-quorum-vm160-canary-v1/task.json\",\"sha256\":\"636254d2526f0f62184d47cdb4c30c2831b11869c2000c557666f60b55d7691b\",\"size\":7440,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/cluster-cloud-quorum-vm160-canary-v1/task.json\"},{\"lines\":[{\"line\":14,\"text\":\"test \\\"$(hostname -f)\\\" = pve01.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1784495133886066538,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/cluster-cloud-quorum-vm160-canary-v1/phases/preflight.sh\",\"sha256\":\"a49bcb32ac7212d7fb9768db8a277cb5525c873c84dd6fb633edae35dc6de532\",\"size\":4667,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/cluster-cloud-quorum-vm160-canary-v1/phases/preflight.sh\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"target_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":122,\"text\":\" \\\"host\\\": \\\"pve01.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784495133886318234,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/homelab-logrotate-namespace-latch-clearance-v1/task.json\",\"sha256\":\"3a8fdfb6b4b64880012fcc3bc6fee4be6f101377310325541f9776de6d1623f7\",\"size\":6750,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/homelab-logrotate-namespace-latch-clearance-v1/task.json\"},{\"lines\":[{\"line\":8,\"text\":\"test \\\"$(hostname -f)\\\" = pve01.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1784495133886318234,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/homelab-logrotate-namespace-latch-clearance-v1/phases/preflight.sh\",\"sha256\":\"21802253966e8d94e8404fd6a217c8248004091dc9dd3b4c03193e3c81af4609\",\"size\":1869,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/homelab-logrotate-namespace-latch-clearance-v1/phases/preflight.sh\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"target_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":111,\"text\":\" \\\"host\\\": \\\"pve01.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784495133886993643,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/skladchik-reports-monitor-controlled-reauth-v1/task.json\",\"sha256\":\"d3108777e5094468aa3e633740ce8a56c90ca957a9a62932be896bbe784680b0\",\"size\":13579,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/skladchik-reports-monitor-controlled-reauth-v1/task.json\"},{\"lines\":[{\"line\":11,\"text\":\"test \\\"$(hostname -f)\\\" = pve01.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1784495133886993643,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/skladchik-reports-monitor-controlled-reauth-v1/phases/preflight.sh\",\"sha256\":\"f3e533ebd72ba2343a78797a8087c529c9fcfa2b3cabc45b3c0bd477356a8cc9\",\"size\":3076,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/skladchik-reports-monitor-controlled-reauth-v1/phases/preflight.sh\"},{\"lines\":[{\"line\":112,\"text\":\" if fqdn != \\\"pve01.gram1.ru\\\":\"},{\"line\":210,\"text\":\" \\\"remote\\\": \\\"https://git.gram1.ru/homelab-admin/homelab-ops.git\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784495133887204143,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/collect_context.py\",\"sha256\":\"4d42623567c9e30d46a78bccd30c754319712d64012c722c33265e7de62c017c\",\"size\":11071,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/collect_context.py\"},{\"lines\":[{\"line\":93,\"text\":\" assert_true(context.get(\\\"collector_host\\\") == \\\"pve01.gram1.ru\\\", \\\"unexpected collector host\\\")\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1784495133942768953,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/validate_repo.py\",\"sha256\":\"b187206b0d2cbcb9e9ea03522bae0f0097a7d9925d3d433ef3e7c15e9def73d1\",\"size\":6226,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/validate_repo.py\"},{\"lines\":[{\"line\":110,\"text\":\" require(repo[\\\"remote_url\\\"].startswith(\\\"https://git.gram1.ru/\\\"), f\\\"repository remote mismatch: {repo['id']}\\\")\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1784495764389647511,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/validate_inventory.py\",\"sha256\":\"b557babe3ca63de809be5793e88dfa8d5f4ae9f2d1834713d114ce802820fc5e\",\"size\":9527,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/validate_inventory.py\"},{\"lines\":[{\"line\":180,\"text\":\" \\\"detected_collector_context\\\": \\\"pve01-root\\\" if socket.getfqdn() == \\\"pve01.gram1.ru\\\" and os.geteuid() == 0 else \\\"unknown\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1784497007832257887,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/reconcile_access_contexts.py\",\"sha256\":\"59b37a01607fc8e7e53dd22fafa513450b1088a6cc5eca6edae9548e5d708e92\",\"size\":11655,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/reconcile_access_contexts.py\"},{\"lines\":[{\"line\":158,\"text\":\" if socket.getfqdn() != \\\"pve01.gram1.ru\\\" or os.geteuid() != 0:\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1784497007829357325,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/discover_guest_management.py\",\"sha256\":\"f25f417f3ce3234ac183f03aba22280f653943824286b267e8374f2fafa86720\",\"size\":12247,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/discover_guest_management.py\"},{\"lines\":[{\"line\":157,\"text\":\"test \\\"$(hostname -f)\\\" = pve01.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1784495133887716127,\"path\":\"\",\"sha256\":\"1e2f5323abf880f3e8b17bf1f2d0a844c402a9bbf5f24159ed39aaf1d79caef0\",\"size\":10086,\"uid\":0},\"path\":\"\"},{\"lines\":[{\"line\":31,\"text\":\" self.assertEqual(target[\\\"expected_hostname\\\"], \\\"pve03.gram1.ru\\\")\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1784495133937361990,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_inventory_foundation.py\",\"sha256\":\"2142fd35c4927b17d33aa35d584267b7b17430ddfe52ab85d0a49dc7c7ee8ed1\",\"size\":4026,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_inventory_foundation.py\"},{\"lines\":[{\"line\":24,\"text\":\" \\\"const\\\": \\\"pve01.gram1.ru\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784495133885820162,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/schemas/context.schema.json\",\"sha256\":\"84c3c29984402b25c102575b54bdb82544844e455d3d2e115fefc5f42021e043\",\"size\":539,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/schemas/context.schema.json\"},{\"lines\":[{\"line\":4,\"text\":\"Collector: `pve01.gram1.ru`\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784458148522837462,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/CURRENT_CONTEXT.md\",\"sha256\":\"9a772d6e8d6438e84b0d2459c69cd99dc51820dba46fae3897c94a661a43a993\",\"size\":1147,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/CURRENT_CONTEXT.md\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"collector_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":124,\"text\":\" \\\"remote\\\": \\\"https://git.gram1.ru/homelab-admin/homelab-ops.git\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784458148525128655,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/observed/current-context.json\",\"sha256\":\"d2c7e06967fd76e09bb8ca694f5132aadd65a9eca35fca8ba92ac11c168d4ebb\",\"size\":6036,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/observed/current-context.json\"},{\"lines\":[{\"line\":6,\"text\":\" \\\"target\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":13,\"text\":\" \\\"target\\\": \\\"pve02.gram1.ru\\\",\"},{\"line\":20,\"text\":\" \\\"target\\\": \\\"pve03.gram1.ru\\\",\"},{\"line\":27,\"text\":\" \\\"target\\\": \\\"edge-vm.gram1.ru\\\",\"},{\"line\":34,\"text\":\" \\\"target\\\": \\\"forum-prod.gram1.ru\\\",\"},{\"line\":41,\"text\":\" \\\"target\\\": \\\"core-apps.gram1.ru\\\",\"},{\"line\":48,\"text\":\" \\\"target\\\": \\\"cluster-admin.gram1.ru\\\",\"},{\"line\":62,\"text\":\" \\\"target\\\": \\\"monitoring.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784458148524623846,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/inventory/access-paths.json\",\"sha256\":\"ac5dc881dcd9fcb72644bc893e866f463c9c2b9b4544e32434e21b5d34168fb5\",\"size\":1652,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/inventory/access-paths.json\"},{\"lines\":[{\"line\":7,\"text\":\" \\\"target_node\\\": \\\"pve03.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1784473042934789545,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/changes/CR-2026-0015/plan.json\",\"sha256\":\"978093bb17d307cabadfb48ffc2d3f9458071528abb69100334cbbce72267d47\",\"size\":1338,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/changes/CR-2026-0015/plan.json\"},{\"lines\":[{\"line\":391,\"text\":\" \\\"required_control\\\": \\\"Preflight and the remote worker must require pve03.gram1.ru, interface nic1, driver r8152, link detected, quorum and exactly three nodes before mutation.\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1784473042945809454,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/errors/regression-cases.json\",\"sha256\":\"07c9854ab0232d1f2766cdab114d0d398a4dcc1a5b41ea7fde77646e5f42804e\",\"size\":38408,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/errors/regression-cases.json\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"target_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":98,\"text\":\" \\\"host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":103,\"text\":\" \\\"host\\\": \\\"pve02.gram1.ru\\\",\"},{\"line\":108,\"text\":\" \\\"host\\\": \\\"pve03.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784458148526295291,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/cluster-cloud-quorum-vm160-canary-v1/task.json\",\"sha256\":\"636254d2526f0f62184d47cdb4c30c2831b11869c2000c557666f60b55d7691b\",\"size\":7440,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/cluster-cloud-quorum-vm160-canary-v1/task.json\"},{\"lines\":[{\"line\":14,\"text\":\"test \\\"$(hostname -f)\\\" = pve01.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1784458148526295291,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/cluster-cloud-quorum-vm160-canary-v1/phases/preflight.sh\",\"sha256\":\"a49bcb32ac7212d7fb9768db8a277cb5525c873c84dd6fb633edae35dc6de532\",\"size\":4667,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/cluster-cloud-quorum-vm160-canary-v1/phases/preflight.sh\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"target_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":122,\"text\":\" \\\"host\\\": \\\"pve01.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784458148526834032,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/homelab-logrotate-namespace-latch-clearance-v1/task.json\",\"sha256\":\"3a8fdfb6b4b64880012fcc3bc6fee4be6f101377310325541f9776de6d1623f7\",\"size\":6750,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/homelab-logrotate-namespace-latch-clearance-v1/task.json\"},{\"lines\":[{\"line\":8,\"text\":\"test \\\"$(hostname -f)\\\" = pve01.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1784458148526834032,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/homelab-logrotate-namespace-latch-clearance-v1/phases/preflight.sh\",\"sha256\":\"21802253966e8d94e8404fd6a217c8248004091dc9dd3b4c03193e3c81af4609\",\"size\":1869,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/homelab-logrotate-namespace-latch-clearance-v1/phases/preflight.sh\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"target_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":111,\"text\":\" \\\"host\\\": \\\"pve01.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784458148528120612,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/skladchik-reports-monitor-controlled-reauth-v1/task.json\",\"sha256\":\"d3108777e5094468aa3e633740ce8a56c90ca957a9a62932be896bbe784680b0\",\"size\":13579,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/skladchik-reports-monitor-controlled-reauth-v1/task.json\"},{\"lines\":[{\"line\":11,\"text\":\"test \\\"$(hostname -f)\\\" = pve01.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1784458148528120612,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/skladchik-reports-monitor-controlled-reauth-v1/phases/preflight.sh\",\"sha256\":\"f3e533ebd72ba2343a78797a8087c529c9fcfa2b3cabc45b3c0bd477356a8cc9\",\"size\":3076,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/skladchik-reports-monitor-controlled-reauth-v1/phases/preflight.sh\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"target_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":86,\"text\":\" \\\"host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":91,\"text\":\" \\\"host\\\": \\\"pve03.gram1.ru\\\",\"},{\"line\":117,\"text\":\" \\\"target_node\\\": \\\"pve03.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1784473042968224809,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/task.json\",\"sha256\":\"c5f36cd51d38da66d5c2e517ff850f996b04b4be4ee9a5529f991687bb7bb429\",\"size\":7694,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/task.json\"},{\"lines\":[{\"line\":38,\"text\":\" case \\\"$(hostname -f 2>/dev/null || hostname)\\\" in pve03|pve03.gram1.ru) :;; *) return 66;; esac\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1784473042949900157,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/assets/pve03-r8152-rx-ring-canary.sh\",\"sha256\":\"b8a3a60b907ca8d021f1ddda84333349db1ce97e655b2b7a3d3222e3e8235c2c\",\"size\":9986,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/assets/pve03-r8152-rx-ring-canary.sh\"},{\"lines\":[{\"line\":10,\"text\":\"test \\\"$(hostname -f)\\\" = pve01.gram1.ru\"},{\"line\":12,\"text\":\"test \\\"$(ssh \\\"${SSH_BASE[@]}\\\" \\\"$REMOTE_HOST\\\" /bin/hostname -f)\\\" = pve03.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1784473042956561556,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/phases/preflight.sh\",\"sha256\":\"fe88e11652bdfeaabf0b24947c044985db265cb593dea201e07cd542842502a7\",\"size\":3441,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/phases/preflight.sh\"},{\"lines\":[{\"line\":112,\"text\":\" if fqdn != \\\"pve01.gram1.ru\\\":\"},{\"line\":210,\"text\":\" \\\"remote\\\": \\\"https://git.gram1.ru/homelab-admin/homelab-ops.git\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784458148528552412,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tools/collect_context.py\",\"sha256\":\"4d42623567c9e30d46a78bccd30c754319712d64012c722c33265e7de62c017c\",\"size\":11071,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tools/collect_context.py\"},{\"lines\":[{\"line\":77,\"text\":\" assert_true(context.get(\\\"collector_host\\\") == \\\"pve01.gram1.ru\\\", \\\"unexpected collector host\\\")\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784458148529443651,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tools/validate_repo.py\",\"sha256\":\"58fddb5f43f0668f70405ad09b5d79aa59d934329ed708f09b26692130781b35\",\"size\":4893,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tools/validate_repo.py\"},{\"lines\":[{\"line\":157,\"text\":\"test \\\"$(hostname -f)\\\" = pve01.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1784458148529443651,\"path\":\"\",\"sha256\":\"1e2f5323abf880f3e8b17bf1f2d0a844c402a9bbf5f24159ed39aaf1d79caef0\",\"size\":10086,\"uid\":0},\"path\":\"\"},{\"lines\":[{\"line\":31,\"text\":\" self.assertEqual(source[\\\"target_node\\\"], \\\"pve03.gram1.ru\\\")\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1784473042970360259,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0015_pve03_r8152_rx_ring_canary.py\",\"sha256\":\"91b7a0a01b0eaa1db6a726eb8b009726e75bad5e11959be9494d82c5b5bf00df\",\"size\":13506,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0015_pve03_r8152_rx_ring_canary.py\"},{\"lines\":[{\"line\":24,\"text\":\" \\\"const\\\": \\\"pve01.gram1.ru\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784458148525763885,\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/schemas/context.schema.json\",\"sha256\":\"84c3c29984402b25c102575b54bdb82544844e455d3d2e115fefc5f42021e043\",\"size\":539,\"uid\":0},\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015/schemas/context.schema.json\"},{\"lines\":[{\"line\":9,\"text\":\"external_url: https://prometheus.vpn.gram1.ru\"},{\"line\":12,\"text\":\"npmplus_route: prometheus.vpn.gram1.ru -> [PRIVATE_IP]:9090\"},{\"line\":18,\"text\":\"- curl https://prometheus.vpn.gram1.ru/-/ready\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783582853987353718,\"path\":\"/srv/homelab-desired-state/runbooks/prometheus.md\",\"sha256\":\"c72594b147418ae1eee39f7508bf9d0f5307b59b353273eaf798d9169e3c2b3b\",\"size\":1292,\"uid\":0},\"path\":\"/srv/homelab-desired-state/runbooks/prometheus.md\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T19:50:17Z TYPE=service-readiness-final BAD=0 SERVICE=node-red HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://node-red.vpn.gram1.ru STATE=running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783626618731757752,\"path\":\"/srv/homelab-desired-state/health/service-readiness-node-red.txt\",\"sha256\":\"261a8127018c171d5c34bc1a5bc9e04dc2aa97c6244d4213028e72130a8a00d9\",\"size\":270,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-node-red.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T12:33:46Z TYPE=service-readiness-final BAD=0 SERVICE=proxmox-pve01 HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK QUORUM=OK CLUSTER_NODES=OK STORAGE=OK GUESTS=OK UI=OK API_401=OK PUBLIC=OK CERTS=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://proxmox.vpn.gram1.ru STATE=pveproxy:active,pvedaemon:active,pvestatd:active,cluster:quorate\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783600432812890589,\"path\":\"/srv/homelab-desired-state/health/service-readiness-proxmox-pve01.txt\",\"sha256\":\"8f4b33c45c3aebc150ab26ffef11d8b8770fb36433dc893f642ab49f5bfb5d9c\",\"size\":397,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-proxmox-pve01.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T08:12:13Z TYPE=service-readiness-final BAD=0 SERVICE=crypto-portfolio HEALTH=OK PUBLIC=OK CHART_HEALTH=OK BROWSER_SMOKE=OK SHARP_MOVES_CENTERED=YES ALERT_CURRENCY_USD_RUB=OK GRT_REMOVED=YES BACKUP=OK OFFHOST=OK RESTORE=OK RUNBOOK=OK RETENTION=OK URL=https://gram1.ru/ STATE=web:running,worker:running\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783930333302397603,\"path\":\"/srv/homelab-desired-state/health/service-readiness-crypto-portfolio.txt\",\"sha256\":\"5d2ec1109c7e78730c58f6d650213bc14f3becd0eb49d9fd08cedb22834aa98c\",\"size\":325,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-crypto-portfolio.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T18:13:21Z TYPE=service-readiness-final BAD=0 SERVICE=stirling-pdf HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://pdf.vpn.gram1.ru STATE=running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783620802972090984,\"path\":\"/srv/homelab-desired-state/health/service-readiness-stirling-pdf.txt\",\"sha256\":\"7f46372e6a6f89fdc87e43435e6c9f1b6f3b725d952879399094cd9cfc1ab7e2\",\"size\":269,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-stirling-pdf.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T16:50:21Z TYPE=service-readiness-final BAD=0 SERVICE=memos HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://memos.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783615822598077480,\"path\":\"/srv/homelab-desired-state/health/service-readiness-memos.txt\",\"sha256\":\"5b076b0774e6a8b16df6d85fe7726a96966d3e18551de76a698d45b17f4b1919\",\"size\":261,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-memos.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T19:07:39Z TYPE=service-readiness-final BAD=0 SERVICE=homeassistant HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://homeassistant.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783624061222793180,\"path\":\"/srv/homelab-desired-state/health/service-readiness-homeassistant.txt\",\"sha256\":\"0c8e6c3d5cd1d96f67f663054479f3a3327d63cd2e4f5933b2691653b727a227\",\"size\":281,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-homeassistant.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T06:29:21Z TYPE=service-readiness-final BAD=0 SERVICE=authentik HOMEPAGE=OK NPMPLUS=OK KUMA=OK BACKUP=OK OFFHOST=OK RESTORE=OK RUNBOOK=OK HEALTH=OK SECURITY=PUBLIC_URL_SET_ANALYTICS_DISABLED EMAIL=NOT_CONFIGURED_NO_SECRET_CHANGE URL=https://auth.gram1.ru STATES=running/healthy,running/healthy,running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783578561978755827,\"path\":\"/srv/homelab-desired-state/health/service-readiness-authentik.txt\",\"sha256\":\"690f7dc699b3e75f5b46851d3973bfd44baafeba6ef93258d90f202e7ebb4c55\",\"size\":333,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-authentik.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T10:40:06Z TYPE=service-readiness-final BAD=0 SERVICE=netbox HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK API_UNAUTH_403=OK MANAGE_CHECK=OK COMPOSE=OK_LABEL BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://netbox.vpn.gram1.ru STATE=app:running/healthy,worker:running/healthy,postgres:running/healthy,redis:running/healthy,redis-cache:running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783593618904444100,\"path\":\"/srv/homelab-desired-state/health/service-readiness-netbox.txt\",\"sha256\":\"33895568487a26464942f218d24b529bfefde845bfd60ffc7eea04251481708a\",\"size\":419,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-netbox.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T19:59:09Z TYPE=service-readiness-final BAD=0 SERVICE=syncthing HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://syncthing.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783627150632032480,\"path\":\"/srv/homelab-desired-state/health/service-readiness-syncthing.txt\",\"sha256\":\"af794151ecea52e6876462895e7412c3d473ecbe650f05898b21a77ff9a9b3d9\",\"size\":273,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-syncthing.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T16:46:31Z TYPE=service-readiness-final BAD=0 SERVICE=paperless HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://paper.gram1.ru STATE=app:running/healthy,postgres:running,redis:running\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783615593351578029,\"path\":\"/srv/homelab-desired-state/health/service-readiness-paperless.txt\",\"sha256\":\"603fd21d8a9daf63d5e1c2e92fe18b7a15c4f84d25412f99786da48c8efa677a\",\"size\":299,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-paperless.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T05:10:13Z TYPE=crypto-portfolio-remove-grt-prechange-backup BAD=0 COMMAND_PHYSICAL_LINES=1 PRODUCTION_CHANGED=ROLLBACK_SNAPSHOT_AND_BACKUP_ONLY PRODUCTION_DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO_BY_THIS_COMMAND SERVICE_RESTARTED=NO PRODUCTION_CONTAINER_RECREATED=NO CLOUD_WRITE_RUN=YES_CONTROLLED_PRECHANGE_BACKUP RETENTION_RUN=NO PRODUCTION_APPLY=NO TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=80763a6c62b94cde4f3293f3b529980f76919d25 CANDIDATE_ROOT=/var/lib/homelab-change-sets/crypto-portfolio-remove-grt-candidate-v3/20260713T042046Z INPUT_APP_SHA256=684ad884119554503db0ed36252aeb017c0c04b54729f30c51e66a7ab293f8bd INPUT_WORKER_SHA256=40a1c81111d7097120125b140683a8604abcb4051db5073ab8af708a11854038 INPUT_INDEX_SHA256=2b1ab459cabf3050af1db4a7b293fff7c2a9ac18bf4a14faa1efc70a3a3f63e3 EXACT_LOCAL_ROLLBACK=OK ROLLBACK_PATH=/var/lib/homelab-incidents/crypto-remove-grt-prechange-20260713T051013Z ROLLBACK_MANIFEST_SHA256=6cc505f7e13a02b0ddfc9fd3a9700903d7aaf70d8\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783919444727781612,\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-prechange-backup.txt\",\"sha256\":\"59de8a4e38310ef8236d167be536aa2f0f1d0fa3dd0ad3ac7fd49e67ed6206f3\",\"size\":1647,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-prechange-backup.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T17:47:41Z TYPE=healthchecks-canonical-domain-repair BAD=0 SERVICE=healthchecks CANONICAL_URL=https://checks.vpn.gram1.ru OLD_ALIAS=https://healthchecks.vpn.gram1.ru OLD_ALIAS_DEFAULT_PAGE=1 HOMEPAGE=OK KUMA=OK BESZEL_NTFY_KUMA=OK LOGS=OK NOTE=service-readiness-count-unchanged\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783619261777467514,\"path\":\"/srv/homelab-desired-state/health/healthchecks-canonical-domain-repair.txt\",\"sha256\":\"deaba0aab509c20f7546d26011b7e651720c516ed37186edde56016db389c2b5\",\"size\":301,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/healthchecks-canonical-domain-repair.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:00:02Z TYPE=crypto-portfolio-remove-grt-current BAD=0 COMMAND_PHYSICAL_LINES=1 SOURCE_OF_TRUTH=HANDOFF REMOTE_STDIN_FIX=SSH_WITHOUT_N PRODUCTION_CHANGED=NO DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru TARGET_STACK=/opt/stacks/crypto-portfolio TARGET_DB=/opt/stacks/crypto-portfolio/data/portfolio.db DB_INTEGRITY=ok GRT_HOLDING_ROWS=1 GRT_ALERT_ROWS=1 GRT_HISTORY_ROWS=714 GRT_CACHE_KEYS=0 GRT_SOURCE_REFERENCES=9 GRT_MARKET_PRESENT=YES LOCAL_DESIRED_GRT_REFERENCES=3 GRT_TOTAL_CURRENT_REFERENCES=728 REMOVE_SCOPE=HOLDING_ALERTS_HISTORY_MARKET_CACHE_BACKEND_FRONTEND_CHART_HEALTH_DESIRED_STATE READY_FOR_GRT_PRECHANGE_BACKUP=YES CAPTURE_ROOT=/var/lib/homelab-change-sets/crypto-portfolio-remove-grt-current/20260713T040002Z\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783915202517048335,\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-current.txt\",\"sha256\":\"825d92b1650dd8867aad03fc2893a52677174cce54f1b853c23c88cec5d4d3bc\",\"size\":822,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-current.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T06:37:47Z TYPE=service-readiness-final BAD=0 SERVICE=gitea HOMEPAGE=OK NPMPLUS=OK KUMA=OK BACKUP=OK OFFHOST=OK RESTORE=OK RUNBOOK=OK HEALTHCHECK=OK SECURITY=REGISTRATION_LOCKED_SIGNIN_REQUIRED_SSH_DISABLED_LFS_DISABLED URL=https://git.gram1.ru STATE=running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783579067443436857,\"path\":\"/srv/homelab-desired-state/health/service-readiness-gitea.txt\",\"sha256\":\"68389cd9424921f46c067ca5fdb1b902dfde4e6623297f61ace74abd30c3190c\",\"size\":290,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-gitea.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=20260730T230822Z TYPE=vps-identity-audit VPS_IP=188.127.235.6 ALIAS=netbird.vpn.gram1.ru ALIAS_IP=100.100.60.182 SSH_TRUST=BLOCKED_NO_BACKED_UP_HOST_KEYS BACKUP_HOSTKEYS=NO KNOWN_HOSTS_UNCHANGED=YES SECRET_PRINTED=REDACTED\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1785452913011062217,\"path\":\"/srv/homelab-desired-state/health/vps-identity-audit.txt\",\"sha256\":\"b568cce4204dddaee3908dbbaa57aa6bba06c436d05609e2348664cc0b9b7e23\",\"size\":236,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/vps-identity-audit.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T07:40:53Z TYPE=service-readiness-final BAD=0 SERVICE=prometheus HOMEPAGE=OK NPMPLUS=OK KUMA=OK READY=OK HEALTHY=OK PROMTOOL=OK TARGETS=14 TARGETS_DOWN=0 ALERTS_FIRING=0 CADVISOR_PROXY=OK PVE_EXPORTER_PROXY=OK ALERTING=OK BACKUP_SLA=OK NPMPLUS_KUMA_LEGACY_SUPERSEDED=OK RUNBOOK=OK URL=https://prometheus.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783582855969973905,\"path\":\"/srv/homelab-desired-state/health/service-readiness-prometheus.txt\",\"sha256\":\"5e41320e81e4e98329bbf07c1205eb65174c934d071d58f57e03f1ce568381b6\",\"size\":363,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-prometheus.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T20:55:37Z TYPE=service-readiness-final BAD=0 SERVICE=dns1 HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK CONFIG_SYNC=OK BACKUP_SLA=OK ALERTING=OK URL=https://dns1.vpn.gram1.ru STATE=adguard-ui:monitored,dns-tcp:monitored,unbound:monitored\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783630538260037616,\"path\":\"/srv/homelab-desired-state/health/service-readiness-dns1.txt\",\"sha256\":\"58976a704a031c25d354992cc203a5ce91f1c54ba67d4bb9ba02e775c7b4fe35\",\"size\":277,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-dns1.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T20:55:37Z TYPE=service-readiness-final BAD=0 SERVICE=homepage HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK URL=https://home.gram1.ru STATE=container:running/healthy,config:backed-by-dockge-stacks\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783630538260037616,\"path\":\"/srv/homelab-desired-state/health/service-readiness-homepage.txt\",\"sha256\":\"183f5c0708439e1b1fbb544d22c7bc89eb3ac53390a92d5a6be768bad0396d22\",\"size\":284,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-homepage.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T20:12:53Z TYPE=service-readiness-final BAD=0 SERVICE=immich HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://photos.gram1.ru STATE=server:running/healthy,postgres:running/healthy,machine-learning:running/healthy,redis:running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783627975396808112,\"path\":\"/srv/homelab-desired-state/health/service-readiness-immich.txt\",\"sha256\":\"1bb7058b101dc91d7dae849f23a8f144efc83baff71a4af13bc248181efac259\",\"size\":349,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-immich.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T08:43:15Z TYPE=service-readiness-final BAD=0 SERVICE=beszel HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://beszel.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783586692168325745,\"path\":\"/srv/homelab-desired-state/health/service-readiness-beszel.txt\",\"sha256\":\"995e8754fef167d95ad9ab04e7c6bec54dbe6d4b99985ac99934140ddca3ea54\",\"size\":267,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-beszel.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T12:18:28Z TYPE=service-readiness-final BAD=0 SERVICE=minio HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK API=OK CONSOLE=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://minio.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783599509661864595,\"path\":\"/srv/homelab-desired-state/health/service-readiness-minio.txt\",\"sha256\":\"f5b9a25ffb5b03b9d53f658e4a3b4d683918832a4be3209cfc1ed028b9495c6f\",\"size\":283,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-minio.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:20:46Z TYPE=crypto-portfolio-remove-grt-candidate BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=KLINE_CACHE_FILTER_APPLIED_TO_TOP_LEVEL_INSTEAD_OF_ENTRIES EXCLUSIVE_ROOT_CAUSE_PROOF=OK PRODUCTION_CHANGED=NO DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=b974057b536ece861299d0b230c06cc0e6702c39 INPUT_APP_SHA256=684ad884119554503db0ed36252aeb017c0c04b54729f30c51e66a7ab293f8bd INPUT_WORKER_SHA256=40a1c81111d7097120125b140683a8604abcb4051db5073ab8af708a11854038 INPUT_INDEX_SHA256=2b1ab459cabf3050af1db4a7b293fff7c2a9ac18bf4a14faa1efc70a3a3f63e3 APP_CANDIDATE_SHA256=44df2b25183b7c5d87ff1516ec2d9cd1d169acde3031f7c2aa1fc4e0c7813cd2 WORKER_CANDIDATE_SHA256=174a14b86014535980d200a76d0057110c7af102c66f16c2e21fc3e74bb2e49e INDEX_CANDIDATE_SHA256=8bbe88f5f420fe429d479c598e1f3f904521eb166d4707e32e579851e84c205e MARKET_CANDIDATE_SHA256=eb6c21667d4a\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783916446916055776,\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-candidate.txt\",\"sha256\":\"13af0ac9918f8fbaee45ce196fa380b10a2e4c5773dedc432ab8a25e7181ee7c\",\"size\":1741,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-candidate.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T16:06:41Z TYPE=service-readiness-final BAD=0 SERVICE=homebox HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://homebox.vpn.gram1.ru STATE=running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783613203194105273,\"path\":\"/srv/homelab-desired-state/health/service-readiness-homebox.txt\",\"sha256\":\"b316e15bfdd9bbcd625079eee2c17f5b2560b2169057eb8ef182a101f82060ca\",\"size\":268,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-homebox.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T17:40:57Z TYPE=service-readiness-final BAD=0 SERVICE=linkding HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://linkding.vpn.gram1.ru STATE=running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783618858884346373,\"path\":\"/srv/homelab-desired-state/health/service-readiness-linkding.txt\",\"sha256\":\"0ff8e0deef0ed42e53e8ba442ce1cfec567803ce769b5eff5689e069464c612d\",\"size\":270,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-linkding.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T06:02:55Z TYPE=cluster-admin-homepage-card BAD=0 URL=https://cluster-admin.vpn.gram1.ru HOMEPAGE=OK VPN_ROUTE=OK DIRECT=OK\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783576975005627760,\"path\":\"/srv/homelab-desired-state/health/cluster-admin-homepage-card.txt\",\"sha256\":\"1c7d45a1762e8eb15cbcc8164eea990a68d2f91d4efbc7d2b4bb971c2ebe9da6\",\"size\":147,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/cluster-admin-homepage-card.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T06:22:58Z TYPE=service-readiness-final BAD=0 SERVICE=vaultwarden HOMEPAGE=OK NPMPLUS=OK KUMA=OK BACKUP=OK OFFHOST=OK RESTORE=OK RUNBOOK=OK SECURITY=LOCKED_SIGNUPS_INVITES_ADMIN_DISABLED_DOMAIN_SET URL=https://vault.gram1.ru STATE=running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783578178379924000,\"path\":\"/srv/homelab-desired-state/health/service-readiness-vaultwarden.txt\",\"sha256\":\"004f504fd822cfa9cdb876045051ce8d654ae34849409209bf056f306e5ee0ff\",\"size\":270,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-vaultwarden.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T16:23:37Z TYPE=service-readiness-final BAD=0 SERVICE=mealie HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK SIGNUP_LOCKED=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://mealie.vpn.gram1.ru STATE=running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783614219348604724,\"path\":\"/srv/homelab-desired-state/health/service-readiness-mealie.txt\",\"sha256\":\"c16fe90e3101b92f4ca3b95bfbad833e8d02ec4e42e44b41a9672cd8acc5793f\",\"size\":283,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-mealie.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T19:23:55Z TYPE=service-readiness-final BAD=0 SERVICE=it-tools HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://it-tools.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783625037335098315,\"path\":\"/srv/homelab-desired-state/health/service-readiness-it-tools.txt\",\"sha256\":\"554a191135c66f5a5382739e52cb160232b612afb7eea1bb829fdac51ce78654\",\"size\":271,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-it-tools.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T06:52:06Z TYPE=service-readiness-final BAD=0 SERVICE=gotify HOMEPAGE=OK NPMPLUS=OK KUMA=OK NOTIFICATION=OK ALERTING=OK DB=OK BACKUP=OK RESTORECHECK=OK_BY_PRECHECK RUNBOOK=OK HEALTH=GREEN URL=https://gotify.gram1.ru STATE=running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783579926099477865,\"path\":\"/srv/homelab-desired-state/health/service-readiness-gotify.txt\",\"sha256\":\"a632388e8898c60a402d18b2f67141c2393a1e9e42b86f8568f77818fc1a7c4b\",\"size\":261,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-gotify.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T09:57:55Z TYPE=service-readiness-final BAD=0 SERVICE=searxng HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK SEARCH=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK_FATAL_0 ENGINE_WARN_5MIN=8 URL=https://searxng.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783591080562933313,\"path\":\"/srv/homelab-desired-state/health/service-readiness-searxng.txt\",\"sha256\":\"41d7c88fba76d93449e5895014e2de9ffccd4b15e14a0b6e239baf4ce02565c9\",\"size\":306,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-searxng.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T07:42:53Z TYPE=crypto-portfolio-ui-preapply-backup BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=INLINE_PYTHON_QUOTE_ERROR_IN_NONESSENTIAL_HELPER_PROOF BACKUP_SERVICE_RERUN=NO MANUAL_REHYDRATE_RERUN=NO CANONICAL_RESTORE_CHECK_RERUN=YES_READ_ONLY PRODUCTION_CHANGED=NO PRODUCTION_DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CONTAINER_RECREATED=NO CLOUD_WRITE_RUN=NO_READ_ONLY_RESTORE_CHECK TARGET_HOST=core-apps.gram1.ru INPUT_INDEX_SHA256=8bbe88f5f420fe429d479c598e1f3f904521eb166d4707e32e579851e84c205e CANDIDATE_INDEX_SHA256=e497a36d8549654c6d451360a11a2ad714e19c23e6d384330a5436f7d32267cb BACKUP_JOB=homelab-pve01-app-crypto-portfolio-20260713T071127Z BACKUP_STATUS=success BACKUP_SCHEMA=homelab-app-backup-manifest-v2-flat BACKUP_LAYOUT=flat-v1 BACKUP_PATH_REL=hb/a/cp-260713-071127 BACKUP_DATABASE_INTEGRITY=ok BACKUP_FILE_COUNT=19 BACKUP_ARCHIVE_SIZE_BYTES=136632 BACKUP_ARCHIVE_SHA256=b29eb55820ec46c474f51e\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783928577148769166,\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-ui-preapply-backup.txt\",\"sha256\":\"7b4b3faf518b57a01b5bb1302377fc1fb13ad9a206f9e8211edfd8bbbc0bf395\",\"size\":1851,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-ui-preapply-backup.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-15T22:32:11Z TYPE=homelab-ops-bootstrap BAD=0 REPOSITORY=/srv/homelab-ops BRANCH=main COMMIT=14d8bb0467e5890a7166444afda90a0185552eba REMOTE=https://git.gram1.ru/homelab-admin/homelab-ops.git PVE01_PUSH_DISABLED=YES\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o640\",\"mtime_ns\":1784154731087612149,\"path\":\"/srv/homelab-desired-state/health/homelab-ops-bootstrap.txt\",\"sha256\":\"ffbd6012fdb16a415b5218c0a47bc26cc2946113e2a69fdde6f090bcbb53bc31\",\"size\":237,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/homelab-ops-bootstrap.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T08:33:53Z TYPE=service-readiness-final BAD=0 SERVICE=dozzle HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK LOCAL_BIND=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://dozzle.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783586034791337394,\"path\":\"/srv/homelab-desired-state/health/service-readiness-dozzle.txt\",\"sha256\":\"c13d689f67ac3dc4bd5afd825a54d89288d23bce5fd54c0ed91b07c4b8f8fc81\",\"size\":277,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-dozzle.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T18:25:21Z TYPE=service-readiness-final BAD=0 SERVICE=audiobookshelf HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://audiobooks.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783621522560223546,\"path\":\"/srv/homelab-desired-state/health/service-readiness-audiobookshelf.txt\",\"sha256\":\"af911c53597b0e1b5c16431392db9338b97a4d0e23be353cbadc0ba629ca0066\",\"size\":279,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-audiobookshelf.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T19:42:26Z TYPE=service-readiness-final BAD=0 SERVICE=n8n HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://n8n.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783626147812414504,\"path\":\"/srv/homelab-desired-state/health/service-readiness-n8n.txt\",\"sha256\":\"8f180c813dbc129525da7da537292ee4fb006ba90117dbdf6c2909514c5ec187\",\"size\":261,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-n8n.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T20:45:50Z TYPE=service-readiness-final BAD=0 SERVICE=nextcloud HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK URL=https://nc.gram1.ru STATE=vm150:running,nextcloud-status:installed-maintenance-false,turn:monitored\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783629951391156886,\"path\":\"/srv/homelab-desired-state/health/service-readiness-nextcloud.txt\",\"sha256\":\"fa0e3d005860b5f4d4bf7d7e28ff9927623cbe7ccb2e74ca2406d706ec9b9ba0\",\"size\":311,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-nextcloud.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T06:41:40Z TYPE=service-readiness-final BAD=0 SERVICE=backup-health HOMEPAGE=OK NPMPLUS=OK KUMA=OK ENDPOINTS=LOCAL_LAN_PUBLIC_OK CORE_GATES=OK LISTENERS=OK URL=https://backup.gram1.ru/backup.txt OVERALL=https://backup.gram1.ru/overall.txt\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783579300097970342,\"path\":\"/srv/homelab-desired-state/health/service-readiness-backup-health.txt\",\"sha256\":\"f8074ea30fd108c0db7c85caebaaaa4a3600ea49fbea717f372bf5e6218753b4\",\"size\":262,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-backup-health.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T10:16:45Z TYPE=service-readiness-final BAD=0 SERVICE=dockge HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK EDGE=OK CORE_AGENT=OK MONITORING_AGENT=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://dockge.gram1.ru STATE=edge:running/healthy,core-agent:running/healthy,monitoring-agent:running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783592208183045599,\"path\":\"/srv/homelab-desired-state/health/service-readiness-dockge.txt\",\"sha256\":\"804a6933e538cf0da0625d7908ede05586edc317c11035f3b3914c85d562bfd3\",\"size\":369,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-dockge.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T06:05:58Z TYPE=cluster-admin-service-readiness BAD=0 SERVICE=cluster-admin-webpanel HOMEPAGE=OK NPMPLUS_VPN_ROUTE=OK KUMA=OK HEALTH_GATES=OK BACKUP=MAIL_CLOUD_2COPY_VERIFY_OK URL=https://cluster-admin.vpn.gram1.ru/status.txt\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783577158699420766,\"path\":\"/srv/homelab-desired-state/health/cluster-admin-service-readiness.txt\",\"sha256\":\"d90dce13be5b4274dbbb288721852ad2331779e779aa79ba688371fc220e6ca0\",\"size\":249,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/cluster-admin-service-readiness.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:35:29Z TYPE=crypto-portfolio-remove-grt-runtime-verifier-prepared BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 DEEP_ANALYSIS_RESULT=DIRECT_ROUTE_JSONRESPONSE_CONTRACT_CORRECTED FAILURE_CLASS=VERIFIER_ONLY PRODUCTION_CHANGED=NO PRODUCTION_DATABASE_CHANGED=NO CANDIDATE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CONTAINER_STARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=b974057b536ece861299d0b230c06cc0e6702c39 INPUT_APP_SHA256=684ad884119554503db0ed36252aeb017c0c04b54729f30c51e66a7ab293f8bd INPUT_WORKER_SHA256=40a1c81111d7097120125b140683a8604abcb4051db5073ab8af708a11854038 INPUT_INDEX_SHA256=2b1ab459cabf3050af1db4a7b293fff7c2a9ac18bf4a14faa1efc70a3a3f63e3 CANDIDATE_ROOT=/var/lib/homelab-change-sets/crypto-portfolio-remove-grt-candidate-v3/20260713T042046Z RUNTIME_POLICY=CONTAINER_PYTHON_ONLY PYTHONPATH_APP_INJECTED=YES ROUTE_RETURN_DECODER=DICT_OR_RESPONSE_BODY STATE_RETURN_DECODED=YES CHART_HEALTH_RETURN_DECO\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783917330889546451,\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-verifier-prepared.txt\",\"sha256\":\"7d161370e3d79ff94529b8069e6876e3444e70054658d732d351ef1e3ed26466\",\"size\":1403,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-verifier-prepared.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T06:14:02Z TYPE=service-readiness-final BAD=0 SERVICE=cluster-admin-webpanel VMID=180 HOMEPAGE=OK NPMPLUS=OK KUMA=OK KUMA_CONTAINER_ROUTE=OK BACKEND=OK WEBPANEL=OK BACKUP=MAIL_CLOUD_2COPY_VERIFY_OK URL=https://cluster-admin.vpn.gram1.ru/status.txt KUMA_STATE=running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783577642636778863,\"path\":\"/srv/homelab-desired-state/health/service-readiness-cluster-admin-webpanel.txt\",\"sha256\":\"d82e7b1217b1e199fd7879944e9ef46dbab22d37537c9e2bf56b89e98bbe0b35\",\"size\":298,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-cluster-admin-webpanel.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T07:51:32Z TYPE=service-readiness-final BAD=0 SERVICE=alertmanager HOMEPAGE=OK NPMPLUS=OK KUMA=OK READY=OK HEALTHY=OK CONFIG=OK API=OK CLUSTER=ready PEERS=1 PROMETHEUS_LINK=OK PROM_FIRING_ALERTS=0 ALERTMANAGER_ALERTS=0 SILENCES_ACTIVE=0 GOTIFY_DEPENDENCY=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK RUNBOOK=OK LOGS=OK URL=https://alertmanager.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783583493513666300,\"path\":\"/srv/homelab-desired-state/health/service-readiness-alertmanager.txt\",\"sha256\":\"3bf9df80a61822884d6e07b4a9afba25326ebd8eae3142ae98b4721765950a76\",\"size\":407,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-alertmanager.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T06:11:23Z TYPE=crypto-portfolio-ui-center-alert-currency-candidate BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=EXPECTED_DIFF_RC_1_TRIGGERED_SET_E_PIPEFAIL PRODUCTION_CHANGED=NO PRODUCTION_DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=80763a6c62b94cde4f3293f3b529980f76919d25 INPUT_INDEX_SHA256=8bbe88f5f420fe429d479c598e1f3f904521eb166d4707e32e579851e84c205e CANDIDATE_INDEX_SHA256=e497a36d8549654c6d451360a11a2ad714e19c23e6d384330a5436f7d32267cb BUILDER_DOUBLE_CHECK=OK CANDIDATE_DOUBLE_CHECK=OK SHARP_MOVES_POSITION=CENTERED SHARP_MOVES_MAX_WIDTH_PX=860 SHARP_MOVES_COLUMNS_DESKTOP=2 SHARP_MOVES_COLUMNS_MOBILE=1 ALERT_RENDERER=V5 ALERT_CURRENCY_SOURCE=TOP_USD_RUB_SWITCH ALERT_EXCHANGE_RATE_SOURCE=STATE_MARKET_USD_RUB ALERT_PRICE_THRESHOLD_CONVERTED=YES ALERT_CAP_THRESHOLD_CONVERTED=YES ALERT_SALE_VALUE_CONVERTED=YES CURRENCY_SWITCH_REDRAW\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783923084154265049,\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-ui-center-alert-currency-candidate.txt\",\"sha256\":\"5bbb00a58d9d033a411890f2880c8a5831eb38a52ec299c891e6e6cfa0d4ca4f\",\"size\":1347,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-ui-center-alert-currency-candidate.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T18:01:02Z TYPE=service-readiness-final BAD=0 SERVICE=bookstack HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://bookstack.vpn.gram1.ru STATE=app:running/nohealth,db:running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783620063724715337,\"path\":\"/srv/homelab-desired-state/health/service-readiness-bookstack.txt\",\"sha256\":\"ff7d57382f780857cc0c84793264f26e247dee00024900f4ccd0f4d005d48f19\",\"size\":297,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-bookstack.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T12:47:17Z TYPE=service-readiness-final BAD=0 SERVICE=filebrowser HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://filebrowser.vpn.gram1.ru STATE=running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783601238831135091,\"path\":\"/srv/homelab-desired-state/health/service-readiness-filebrowser.txt\",\"sha256\":\"ac04b01ed5c63f05f02e9610bdc2b6f311b8adb879656f36762800dddc2c3407\",\"size\":276,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-filebrowser.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T20:55:37Z TYPE=service-readiness-final BAD=0 SERVICE=dns2 HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK CONFIG_SYNC=OK BACKUP_SLA=OK ALERTING=OK URL=https://dns2.vpn.gram1.ru STATE=adguard-ui:monitored,dns-tcp:monitored,unbound:monitored\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783630538260037616,\"path\":\"/srv/homelab-desired-state/health/service-readiness-dns2.txt\",\"sha256\":\"f013a395e99807f39c9a3f08ac58f6b03c255f636283eb9daba2db333de40e23\",\"size\":277,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-dns2.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T06:47:55Z TYPE=service-readiness-final BAD=0 SERVICE=uptime-kuma HOMEPAGE=OK NPMPLUS=OK KUMA_SELF=OK DB=OK MONITORS_ACTIVE=91 HEARTBEAT_BAD=0 NOTIFICATION=OK BACKUP=OK RESTORECHECK=OK_BY_PRECHECK POLICY=OK ALERTING=OK RUNBOOK=OK EXTRA_HOST_CLUSTER_ADMIN=OK URL=https://uptime.gram1.ru STATE=running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783579675563672808,\"path\":\"/srv/homelab-desired-state/health/service-readiness-uptime-kuma.txt\",\"sha256\":\"f9e8b1f3e6a319ab629f03f1126a8cd011adc6bf3171fe10c2e04642558e580c\",\"size\":331,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-uptime-kuma.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T18:19:10Z TYPE=service-readiness-final BAD=0 SERVICE=jellyfin HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://jellyfin.vpn.gram1.ru STATE=running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783621151781487323,\"path\":\"/srv/homelab-desired-state/health/service-readiness-jellyfin.txt\",\"sha256\":\"2e35c908acfdb9f85db0bb2cb0395c4f8b629d7ed6a7d0e9e836459bf08389db\",\"size\":270,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-jellyfin.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T07:04:45Z TYPE=crypto-portfolio-ui-center-alert-currency-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=UNPRIVILEGED_REMOTE_RM_AFTER_SUDO_HARNESS PRODUCTION_CHANGED=NO_BROWSER_EVIDENCE_FINALIZATION_ONLY PRODUCTION_DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru CANDIDATE_INDEX_SHA256=e497a36d8549654c6d451360a11a2ad714e19c23e6d384330a5436f7d32267cb CANDIDATE_STATIC_GRT_DOUBLE_CHECK=OK BROWSER_ENGINE=CHROMIUM BROWSER_RUNS=2 BROWSER_RUNS_IDENTICAL=YES MOVES=2 SHARP_MOVES_CENTERED=YES SHARP_MOVES_MAX_WIDTH_OK=YES SHARP_MOVES_COLUMNS=2 ALERT_ROWS=2 USD_ALERT_RENDER=OK RUB_ALERT_RENDER=OK TOP_CURRENCY_SWITCH_REDRAW=OK RUB_PRICE_THRESHOLD=OK RUB_CAP_THRESHOLD=OK RUB_SALE_VALUE=OK ALERT_USD_RESIDUE_IN_RUB_MODE=ABSENT CHART_CARDS=2 CHART_CANVASES=14 CHARTS_BOTTOM=YES BROWSER_ERRORS=0 GRT_VISIBLE=NO RESULT_SHA256=b566f492cd80c8f99bc6b24cbef6d5f326c04f4d\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783926287230037708,\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-ui-center-alert-currency-browser-smoke.txt\",\"sha256\":\"4f08e0d48c42dc5a33b50166382ad70b0ef55b6dd332f834ab5917624bd2286f\",\"size\":1490,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-ui-center-alert-currency-browser-smoke.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T18:57:16Z TYPE=service-readiness-final BAD=0 SERVICE=calibre-web HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://books.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783623440303098924,\"path\":\"/srv/homelab-desired-state/health/service-readiness-calibre-web.txt\",\"sha256\":\"6d15c1aeb465f70a5689aec04a7d4be835f58daf1b2db6e359aaf5018805e216\",\"size\":271,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-calibre-web.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:05:42Z TYPE=crypto-portfolio-remove-grt-surface BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PRODUCTION_CHANGED=NO DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru TARGET_STACK=/opt/stacks/crypto-portfolio DESIRED_STATE_HEAD=b974057b536ece861299d0b230c06cc0e6702c39 DESIRED_STATE_CLEAN=YES APP_SHA256=684ad884119554503db0ed36252aeb017c0c04b54729f30c51e66a7ab293f8bd WORKER_SHA256=40a1c81111d7097120125b140683a8604abcb4051db5073ab8af708a11854038 INDEX_SHA256=2b1ab459cabf3050af1db4a7b293fff7c2a9ac18bf4a14faa1efc70a3a3f63e3 APP_GRT_REFERENCES=5 WORKER_GRT_REFERENCES=2 INDEX_GRT_REFERENCES=2 LOCAL_GRT_REFERENCES=3 SQLITE_SCHEMA_CAPTURED=YES READY_FOR_GRT_CANDIDATE_PREPARE=YES SURFACE_ROOT=/var/lib/homelab-change-sets/crypto-portfolio-remove-grt-surface/20260713T040542Z\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783915543613258985,\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-surface.txt\",\"sha256\":\"ec0e80392e7132f3a38af9d159c40860977a0647c01ff63731642f8b3e60e6e4\",\"size\":879,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-surface.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_REMOVE_GRT DESIRED_STATE_CHANGED=NO_BY_THIS_COMMAND PRODUCTION_CONTAINER_RECREATED=YES CLOUD_WRITE_RUN=NO ROLLBACK_ON_FAILURE=ARMED_NOT_NEEDED TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=80763a6c62b94cde4f3293f3b529980f76919d25 PRECHANGE_BACKUP_JOB=homelab-pve01-app-crypto-portfolio-20260713T051015Z ROLLBACK_PATH=/var/lib/homelab-incidents/crypto-remove-grt-prechange-20260713T051013Z APP_SHA256=44df2b25183b7c5d87ff1516ec2d9cd1d169acde3031f7c2aa1fc4e0c7813cd2 WORKER_SHA256=174a14b86014535980d200a76d0057110c7af102c66f16c2e21fc3e74bb2e49e INDEX_SHA256=8bbe88f5f420fe429d479c598e1f3f904521eb166d4707e32e579851e84c205e CHART_HEALTH_SCRIPT_SHA256=c16473f16390eeeff4d4eb701db604093564dd78d0be2d30b4cc8ffeeb22364a ACTIVE_COINS=HBAR,POL GRT_SOURCE_REFERENCES\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783921693260063344,\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt\",\"sha256\":\"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea\",\"size\":1640,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt\"},{\"lines\":[{\"line\":4,\"text\":\"SUMMARY=Four pending Uptime Kuma keyword monitors were repointed from public backup.gram1.ru paths to local pve01 health endpoint [PRIVATE_IP]:9101.\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783028423760334827,\"path\":\"/srv/homelab-desired-state/health/uptime-kuma-pending-health-monitors-fix.txt\",\"sha256\":\"bb2acd1f93682c0eb7d108ef03b8559e285b4bac37e6302598d0f617567fa866\",\"size\":535,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/uptime-kuma-pending-health-monitors-fix.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T13:02:48Z TYPE=service-readiness-final BAD=0 SERVICE=actual-budget HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://actual-budget.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783602290011106709,\"path\":\"/srv/homelab-desired-state/health/service-readiness-actual-budget.txt\",\"sha256\":\"68605ac6b4b89fdf968d8fa466e6ff95ecebe281a0504f6fdf56e94bcb89518e\",\"size\":281,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-actual-budget.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T07:47:18Z TYPE=service-readiness-final BAD=0 SERVICE=grafana HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK DB=OK DATASOURCE=OK DASHBOARDS=3 DASHBOARD_JSON_BAD=0 PROMETHEUS_DEPENDENCY=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK RUNBOOK=OK LOGS=OK URL=https://grafana.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783583239209799155,\"path\":\"/srv/homelab-desired-state/health/service-readiness-grafana.txt\",\"sha256\":\"6f78de19c0db914cda8df87a8aa2e6f07f1fd13af462125193fcfe7dc5a6c8d8\",\"size\":326,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-grafana.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO EVIDENCE_SALVAGED=YES PRODUCTION_CHANGED=NO PRODUCTION_DATABASE_CHANGED=NO CANDIDATE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CONTAINER_STARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=b974057b536ece861299d0b230c06cc0e6702c39 INPUT_APP_SHA256=684ad884119554503db0ed36252aeb017c0c04b54729f30c51e66a7ab293f8bd INPUT_WORKER_SHA256=40a1c81111d7097120125b140683a8604abcb4051db5073ab8af708a11854038 INPUT_INDEX_SHA256=2b1ab459cabf3050af1db4a7b293fff7c2a9ac18bf4a14faa1efc70a3a3f63e3 ACTIVE_COINS=HBAR,POL GRT_VISIBLE=NO BROWSER_CARDS=2 BROWSER_CANVASES=14 BROWSER_MOVES=2 BROWSER_COIN_CARDS=2 BROWSER_POSITION_ROWS=2 BROWSER_ALERT_OPTIONS=2 BROWSER_ACTIVE_COIN=HBAR BROWSER_CHART_SYMBOLS=HBAR,POL BROWSER_ERRORS=0 BROWSE\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783918328118750433,\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt\",\"sha256\":\"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963\",\"size\":1724,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T07:58:51Z TYPE=service-readiness-final BAD=0 SERVICE=ntfy HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK ALERTMANAGER_LINK=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK RUNBOOK=OK LOGS=OK URL=https://ntfy.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783584042770018771,\"path\":\"/srv/homelab-desired-state/health/service-readiness-ntfy.txt\",\"sha256\":\"d971945a3d44413da361fa030c9e2a6f2ae0974251e74a24c412eae2f5956892\",\"size\":262,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-ntfy.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T17:55:47Z TYPE=service-readiness-final BAD=0 SERVICE=vikunja HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://vikunja.vpn.gram1.ru STATE=running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783619748698868888,\"path\":\"/srv/homelab-desired-state/health/service-readiness-vikunja.txt\",\"sha256\":\"80c71a30d842b941afefcca2ca64b95ee43c767b7fb7313a71b4e84356b78bff\",\"size\":269,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-vikunja.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T10:07:24Z TYPE=service-readiness-final BAD=0 SERVICE=npmplus HOMEPAGE=OK NPMPLUS=OK_SELF KUMA=OK HEALTH=OK ROUTES=OK ROUTE_TOTAL=55 VPN_ROUTES=31 CERTS=OK EDGE_HEALTH=OK ADMIN=OK NGINX=OK CROWDSEC_LAPI=RESPONSIVE CROWDSEC_LAPI_WARN_5MIN=0 UPSTREAM_WARN_5MIN=0 BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK_NGINX_FATAL_0 URL=https://npmplus.vpn.gram1.ru STATE=running/healthy\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783591652096606835,\"path\":\"/srv/homelab-desired-state/health/service-readiness-npmplus.txt\",\"sha256\":\"5b3c966481b8a013bab4a3aba9bfeb67a31e954a3396fcdd0bdde1bb8bedb880\",\"size\":430,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-npmplus.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T17:47:41Z TYPE=service-readiness-final BAD=0 SERVICE=healthchecks HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://checks.vpn.gram1.ru STATE=running/healthy NOTE=canonical-domain-corrected-from-healthchecks-vpn-to-checks-vpn\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783619261777467514,\"path\":\"/srv/homelab-desired-state/health/service-readiness-healthchecks.txt\",\"sha256\":\"058719ad927e849e693923fc46d0a9d0ef2babba819d968b05d0e6a32f2f6edf\",\"size\":340,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-healthchecks.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTION_DATABASE_CHANGED=NO CANDIDATE_DATABASE_CHANGED=ISOLATED_COPY_RUNTIME_CHECK_ONLY DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO PRODUCTION_CONTAINER_RECREATED=NO ISOLATED_CONTAINER_STARTED=YES ISOLATED_CONTAINER_CLEANED=YES CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=b974057b536ece861299d0b230c06cc0e6702c39 INPUT_APP_SHA256=684ad884119554503db0ed36252aeb017c0c04b54729f30c51e66a7ab293f8bd INPUT_WORKER_SHA256=40a1c81111d7097120125b140683a8604abcb4051db5073ab8af708a11854038 INPUT_INDEX_SHA256=2b1ab459cabf3050af1db4a7b293fff7c2a9ac18bf4a14faa1efc70a3a3f63e3 ACTIVE_COINS=HBAR,POL CANDIDATE_GRT_REFERENCES=0 DATABASE_GRT_AFTER=0|0|0 WORKER_RUNTIME_CHECK=OK WEB_RUNTIME_CHECK=OK HTTP_RUNTIME_CHECK=OK HTTP_CODES=200|303|401|200|200|401\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783917691943052086,\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt\",\"sha256\":\"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892\",\"size\":1497,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt\"},{\"lines\":[{\"line\":1,\"text\":\"STATUS=OK TS=2026-07-09T19:32:34Z TYPE=service-readiness-final BAD=0 SERVICE=karakeep HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://karakeep.vpn.gram1.ru STATE=app:running/healthy,meilisearch:running/nohealth,chrome:running/nohealth\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783625556748197752,\"path\":\"/srv/homelab-desired-state/health/service-readiness-karakeep.txt\",\"sha256\":\"694ae06a6ed89bb6c1e1b10171bc2eb21166459118ec2c415d8963a803d3face\",\"size\":327,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/service-readiness-karakeep.txt\"},{\"lines\":[{\"line\":1,\"text\":\"HOST|kuma|fqdn=kuma.vpn.gram1.ru|dns=100.100.60.182|http=301|https=200|location=https://kuma.vpn.gram1.ru/|cert_ok=yes\"},{\"line\":2,\"text\":\"HOST|homepage|fqdn=homepage.vpn.gram1.ru|dns=100.100.60.182|http=301|https=200|location=https://homepage.vpn.gram1.ru/|cert_ok=yes\"},{\"line\":3,\"text\":\"HOST|gitea|fqdn=gitea.vpn.gram1.ru|dns=100.100.60.182|http=301|https=200|location=https://gitea.vpn.gram1.ru/|cert_ok=yes\"},{\"line\":4,\"text\":\"HOST|filebrowser|fqdn=filebrowser.vpn.gram1.ru|dns=100.100.60.182|http=301|https=200|location=https://filebrowser.vpn.gram1.ru/|cert_ok=yes\"},{\"line\":5,\"text\":\"HOST|auth|fqdn=auth.vpn.gram1.ru|dns=100.100.60.182|http=301|https=200|location=https://auth.vpn.gram1.ru/|cert_ok=yes\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1785473496367948551,\"path\":\"/srv/homelab-desired-state/health/private-vpn-hosts.txt\",\"sha256\":\"21690d2c395bb4a56f72c727790afc4146b3710865deffe2067f6cd98c27ff63\",\"size\":641,\"uid\":0},\"path\":\"/srv/homelab-desired-state/health/private-vpn-hosts.txt\"},{\"lines\":[{\"line\":3,\"text\":\" \\\"host\\\": \\\"edge-vm.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783944646020037205,\"path\":\"/srv/homelab-desired-state/app-states/latest-hapusya-site.json\",\"sha256\":\"82315a126652ae435070b4f8025348dbd75800b0acdbe848b38200ddc2312a01\",\"size\":1975,\"uid\":0},\"path\":\"/srv/homelab-desired-state/app-states/latest-hapusya-site.json\"},{\"lines\":[{\"line\":17,\"text\":\"check \\\"public overall endpoint\\\" bash -c \\\"curl -k -fsS https://backup.gram1.ru/overall.txt | grep -q STATUS=\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1783451585156819526,\"path\":\"/srv/homelab-desired-state/sbin/homelab-final-readiness-gate.bak-cluster-admin-hardgate-20260709T044746Z\",\"sha256\":\"da66763f888cf5b96f7a5fcaa95d95de8b30420949fec7d67776a8d119ec5e0c\",\"size\":6035,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-final-readiness-gate.bak-cluster-admin-hardgate-20260709T044746Z\"},{\"lines\":[{\"line\":10,\"text\":\"dns=\\\"$(getent hosts kuma.vpn.gram1.ru 2>/dev/null | awk '{print $1}' | head -n1 || true)\\\"\"},{\"line\":12,\"text\":\" line=\\\"HOST|kuma|fqdn=kuma.vpn.gram1.ru|dns=$dns\\\"\"},{\"line\":13,\"text\":\" grep -q \\\"HOST|kuma|fqdn=kuma.vpn.gram1.ru|dns=100.100.60\\\" \\\"$H\\\" 2>/dev/null || printf '%s|compat=added-for-kuma-keyword\\\\n' \\\"$line\\\" >> \\\"$H\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1782307022434277840,\"path\":\"/srv/homelab-desired-state/sbin/homelab-check-private-vpn-hosts.realnet-20260624T140509Z\",\"sha256\":\"912bde53ec047d89f0142d9ece9f13a27309d6979af6287604abbb0e0f8a4536\",\"size\":553,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-check-private-vpn-hosts.realnet-20260624T140509Z\"},{\"lines\":[{\"line\":15,\"text\":\"ssh -n -o BatchMode=yes -o ConnectTimeout=10 \\\"$CORE\\\" 'H=\\\"$(hostname -f 2>/dev/null || hostname)\\\"; { [ \\\"$H\\\" = \\\"core-apps.gram1.ru\\\" ] || [ \\\"$H\\\" = \\\"core-apps\\\" ]; } || exit 3; D=/opt/stacks/crypto-portfolio; T=\\\"$(sudo -n mktemp -d /tmp/crypto-portfolio-backup.XXXXXX)\\\"; trap \\\"sudo -n rm -rf \\\\\\\"$T\\\\\\\"\\\" EXIT; sudo -n install -d -m 700 \\\"$T/stack\\\" \\\"$T/stack/data\\\"; for F in compose.yaml Dockerfile requirements.txt app.py worker.py .dockerignore; do sudo -n test -s \\\"$D/$F\\\" && sudo -n cp -a \\\"$D/$F\\\" \\\"$T/stack/\\\"; done; sudo -n cp -a \\\"$D/templates\\\" \\\"$D/secrets\\\" \\\"$T/stack/\\\"; sudo -n python3 -c \\\"import sqlite3,sys;s=sqlite3.connect(sys.argv[1]);d=sqlite3.connect(sys.argv[2]);s.backup(d);d.close();s.close()\\\" \\\"$D/data/portfolio.db\\\" \\\"$T/stack/data/portfolio.db\\\"; for F in market.json worker-status.json; do sudo -n test -s \\\"$D/data/$F\\\" && sudo -n cp -a \\\"$D/data/$F\\\" \\\"$T/stack/data/\\\"; done; sudo -n tar -C \\\"$T\\\" -czf - stack' > \\\"$STAGE/remote.tgz\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o750\",\"mtime_ns\":1783749840508333194,\"path\":\"/srv/homelab-desired-state/sbin/crypto-portfolio-backup-run\",\"sha256\":\"536f44dd76b1f5216c0d2a537d4ecb6190b192b2b955a0ad0580ce1923638002\",\"size\":2285,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/crypto-portfolio-backup-run\"},{\"lines\":[{\"line\":64,\"text\":\"[[ \\\"$(/usr/bin/curl -sS -m8 --resolve git.gram1.ru:443:[PRIVATE_IP] -o /dev/null -w '%{http_code}' https://git.gram1.ru/)\\\" == 200 ]] || fail GITEA 69\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o750\",\"mtime_ns\":1784759151977086610,\"path\":\"/srv/homelab-desired-state/sbin/homelab-reader-change-gate\",\"sha256\":\"90470653345baac426d1ff6d3e3b1109a611ef7ba8d98b7453be0f732ced3597\",\"size\":3441,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-reader-change-gate\"},{\"lines\":[{\"line\":325,\"text\":\" \\\"https://git.gram1.ru/.well-known/homelab-context.json\\\",\"},{\"line\":326,\"text\":\" \\\"https://git.gram1.ru/.well-known/homelab-context.txt\\\",\"},{\"line\":327,\"text\":\" \\\"https://git.gram1.ru/assets/homelab-context/index.html\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o750\",\"mtime_ns\":1784581638869385776,\"path\":\"/srv/homelab-desired-state/sbin/homelab-safe-exec\",\"sha256\":\"1c755e35f40ce565d88df958141901e4ec7afadcdd0dcb1573e06d831adf7528\",\"size\":14981,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-safe-exec\"},{\"lines\":[{\"line\":101,\"text\":\" NPM_REQUIRED_VPN_SQL=\\\"SELECT count(*) FROM proxy_host WHERE is_deleted=0 AND enabled=1 AND ssl_forced=1 AND certificate_id=32 AND access_list_id=1 AND (domain_names LIKE '%actual-budget.vpn.gram1.ru%' OR domain_names LIKE '%grafana.vpn.gram1.ru%' OR domain_names LIKE '%homebox.vpn.gram1.ru%' OR domain_names LIKE '%mealie.vpn.gram1.ru%' OR domain_names LIKE '%n8n.vpn.gram1.ru%' OR domain_names LIKE '%netbox.vpn.gram1.ru%' OR domain_names LIKE '%node-red.vpn.gram1.ru%' OR domain_names LIKE '%beszel.vpn.gram1.ru%' OR domain_names LIKE '%it-tools.vpn.gram1.ru%' OR domain_names LIKE '%karakeep.vpn.gram1.ru%' OR domain_names LIKE '%linkding.vpn.gram1.ru%' OR domain_names LIKE '%minio.vpn.gram1.ru%' OR domain_names LIKE '%ntfy.vpn.gram1.ru%' OR domain_names LIKE '%searxng.vpn.gram1.ru%' OR domain_names LIKE '%syncthing.vpn.gram1.ru%' OR domain_names LIKE '%alertmanager.vpn.gram1.ru%' OR domain_names LIKE '%prometheus.vpn.gram1.ru%' OR domain_names LIKE '%homeassistant.vpn.gram1.ru%');\\\"\"},{\"line\":104,\"text\":\"NPM_CERT32_CHECK=\\\"$(sqlite3 \\\"$SNAP/edge-vm/npmplus/db/database.sqlite\\\" \\\"SELECT count(*) FROM certificate WHERE id=32 AND is_deleted=0 AND domain_names LIKE '%*.vpn.gram1.ru%';\\\" 2>>\\\"$ERR\\\" || echo error)\\\"\"},{\"line\":142,\"text\":\"RESTORE_CERT32_CHECK=\\\"$(sqlite3 \\\"$RESTORE/edge-vm/npmplus/db/database.sqlite\\\" \\\"SELECT count(*) FROM certificate WHERE id=32 AND is_deleted=0 AND domain_names LIKE '%*.vpn.gram1.ru%';\\\" 2>>\\\"$ERR\\\" || echo error)\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1782325806516302937,\"path\":\"/srv/homelab-desired-state/sbin/homelab-backup-npmplus-kuma-configs\",\"sha256\":\"8cb2c47de0879ec57df51411513ecc00d84fd2aad1b27939797b36da75c8e875\",\"size\":13772,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-backup-npmplus-kuma-configs\"},{\"lines\":[{\"line\":12,\"text\":\"PUBLIC_URL=\\\"https://backup.gram1.ru/overall.txt\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1783347693211264665,\"path\":\"/srv/homelab-desired-state/sbin/homelab-kuma-monitor-policy\",\"sha256\":\"87e1f14bde3e5eb2d0512c949e1e32d7fe3214f38797559b6e3e1a9d855f059a\",\"size\":3824,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-kuma-monitor-policy\"},{\"lines\":[{\"line\":20,\"text\":\"curl -fsS --connect-timeout 8 --max-time 20 https://backup.gram1.ru/overall.txt -o \\\"$TMP\\\" 2>/dev/null\"},{\"line\":54,\"text\":\"- netbird.vpn.gram1.ru / 100.100.60.182 is edge-vm, not an independent external runner.\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1783447538561827954,\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps.bak-final-tailfix-20260707T182128Z\",\"sha256\":\"08d4eb79b89fbfa5b9978f1b482e84f4bfffea504c33017493602fbb9a0e81d8\",\"size\":3327,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps.bak-final-tailfix-20260707T182128Z\"},{\"lines\":[{\"line\":17,\"text\":\"curl -fsS --connect-timeout 8 --max-time 20 https://backup.gram1.ru/overall.txt -o \\\"$TMP\\\" 2>/dev/null\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1783448488517978618,\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps\",\"sha256\":\"fdbdeee1f2ea108d5318ea48b072e11f226d6f9d60957d9a95fb496e4322c19a\",\"size\":2608,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps\"},{\"lines\":[{\"line\":6,\"text\":\"kuma.vpn.gram1.ru\"},{\"line\":7,\"text\":\"homepage.vpn.gram1.ru\"},{\"line\":8,\"text\":\"gitea.vpn.gram1.ru\"},{\"line\":9,\"text\":\"filebrowser.vpn.gram1.ru\"},{\"line\":10,\"text\":\"auth.vpn.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1782309909348255553,\"path\":\"/srv/homelab-desired-state/sbin/homelab-check-private-vpn-hosts\",\"sha256\":\"591217150ef742117f677c4db12578528b1eaa0ec69ff31122003505a4fc7a82\",\"size\":1411,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-check-private-vpn-hosts\"},{\"lines\":[{\"line\":20,\"text\":\"curl -fsS --connect-timeout 8 --max-time 20 https://backup.gram1.ru/overall.txt -o \\\"$TMP\\\" 2>/dev/null\"},{\"line\":54,\"text\":\"- netbird.vpn.gram1.ru / 100.100.60.182 is edge-vm, not an independent external runner.\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1783443351210790532,\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps.bak-tailfix-20260707T180537Z\",\"sha256\":\"08d4eb79b89fbfa5b9978f1b482e84f4bfffea504c33017493602fbb9a0e81d8\",\"size\":3327,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps.bak-tailfix-20260707T180537Z\"},{\"lines\":[{\"line\":39,\"text\":\"immutable=\\\"https://git.gram1.ru/homelab-admin/homelab-public-context/raw/commit/\\\"+commit+\\\"/runtime/history/\\\"+cid+\\\".txt\\\"\"},{\"line\":47,\"text\":\"url=\\\"https://git.gram1.ru/.well-known/homelab-reader/\\\"+match.group(1)\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o750\",\"mtime_ns\":1784824702232864122,\"path\":\"/srv/homelab-desired-state/sbin/homelab-reader-result-publish\",\"sha256\":\"9cb8f7f1e9f300176a87f1abc8a9c51c92aeb9bea3514c7a9d9019ec400d4fd7\",\"size\":2914,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-reader-result-publish\"},{\"lines\":[{\"line\":17,\"text\":\"check \\\"public overall endpoint\\\" bash -c \\\"curl -k -fsS https://backup.gram1.ru/overall.txt | grep -q STATUS=\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1783898557281683025,\"path\":\"/srv/homelab-desired-state/sbin/homelab-final-readiness-gate\",\"sha256\":\"b7ed04b335f6bbab3811e2cf00606f32b181521280f76d6de79e1e266231235b\",\"size\":7947,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-final-readiness-gate\"},{\"lines\":[{\"line\":17,\"text\":\"check \\\"public overall endpoint\\\" bash -c \\\"curl -k -fsS https://backup.gram1.ru/overall.txt | grep -q STATUS=\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1783572466213632993,\"path\":\"/srv/homelab-desired-state/sbin/homelab-final-readiness-gate.bak-cluster-admin-backup-webpanel-20260709T051329Z\",\"sha256\":\"329467e471c369c05eaa2e39820bb94a04e3ca0b4f2094a5a7dc704a57c8e770\",\"size\":6540,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-final-readiness-gate.bak-cluster-admin-backup-webpanel-20260709T051329Z\"},{\"lines\":[{\"line\":10,\"text\":\"URLS=\\\"https://backup.gram1.ru/overall.txt http://[PRIVATE_IP]:9101/overall.txt\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1783449769031984212,\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps-health.bak-nocycle-20260707T184739Z\",\"sha256\":\"0fdbaeb93b40ddbc82b517b1fd843a4731999f8b640d5cdf1910e7c54f82545c\",\"size\":3153,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps-health.bak-nocycle-20260707T184739Z\"},{\"lines\":[{\"line\":674,\"text\":\" \\\"https://git.gram1.ru/.well-known/\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o750\",\"mtime_ns\":1785422739562047130,\"path\":\"/srv/homelab-desired-state/sbin/homelab-chat-run.broken-20260730T153645Z\",\"sha256\":\"657b0b9ce7821d549f02e1f918a969ac7c447bd71101febf4b3b3e61677d2467\",\"size\":23357,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-chat-run.broken-20260730T153645Z\"},{\"lines\":[{\"line\":76,\"text\":\"PORTAL_BASE = \\\"https://run.vpn.gram1.ru\\\"\"},{\"line\":77,\"text\":\"EVIDENCE_BASE = \\\"https://evidence.vpn.gram1.ru\\\"\"},{\"line\":1939,\"text\":\" \\\"evidence.vpn.gram1.ru:443:[PRIVATE_IP]\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1785257434839960288,\"path\":\"/srv/homelab-desired-state/sbin/homelab-command-adapter\",\"sha256\":\"a1a7a615c99568bf915d084cc476f0ebf54ab0eedf3ecd578c4b0e072f58c43d\",\"size\":86019,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-command-adapter\"},{\"lines\":[{\"line\":13,\"text\":\"ssh -n -o BatchMode=yes -o ConnectTimeout=10 \\\"$CORE\\\" 'H=\\\"$(hostname -f 2>/dev/null || hostname)\\\"; { [ \\\"$H\\\" = \\\"core-apps.gram1.ru\\\" ] || [ \\\"$H\\\" = \\\"core-apps\\\" ]; } || exit 3; D=/opt/stacks/crypto-portfolio; T=\\\"$(sudo -n mktemp -d /tmp/crypto-portfolio-backup.XXXXXX)\\\"; trap \\\"sudo -n rm -rf \\\\\\\"$T\\\\\\\"\\\" EXIT; sudo -n install -d -m 700 \\\"$T/stack\\\" \\\"$T/stack/data\\\"; for F in compose.yaml Dockerfile requirements.txt app.py worker.py .dockerignore; do sudo -n test -s \\\"$D/$F\\\" && sudo -n cp -a \\\"$D/$F\\\" \\\"$T/stack/\\\"; done; sudo -n cp -a \\\"$D/templates\\\" \\\"$D/secrets\\\" \\\"$T/stack/\\\"; sudo -n python3 -c \\\"import sqlite3,sys;s=sqlite3.connect(sys.argv[1]);d=sqlite3.connect(sys.argv[2]);s.backup(d);d.close();s.close()\\\" \\\"$D/data/portfolio.db\\\" \\\"$T/stack/data/portfolio.db\\\"; for F in market.json worker-status.json; do sudo -n test -s \\\"$D/data/$F\\\" && sudo -n cp -a \\\"$D/data/$F\\\" \\\"$T/stack/data/\\\"; done; sudo -n tar -C \\\"$T\\\" -czf - stack' > \\\"$STAGE/remote.tgz\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o750\",\"mtime_ns\":1783704792885620561,\"path\":\"/srv/homelab-desired-state/sbin/crypto-portfolio-backup-run.bak-short-flat-20260711T060400Z\",\"sha256\":\"27d0cfb37969c52e2516c98d2f399e3aa460dcfa8f0baf83e9bb7edf702d874d\",\"size\":2172,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/crypto-portfolio-backup-run.bak-short-flat-20260711T060400Z\"},{\"lines\":[{\"line\":674,\"text\":\" \\\"https://git.gram1.ru/.well-known/\\\"\"},{\"line\":773,\"text\":\"PUBLIC_URL='https://git.gram1.ru/.well-known/homelab-runtime/latest.json'\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o750\",\"mtime_ns\":1785425805343562815,\"path\":\"/srv/homelab-desired-state/sbin/homelab-chat-run\",\"sha256\":\"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\",\"size\":21321,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-chat-run\"},{\"lines\":[{\"line\":33,\"text\":\" echo \\\"$cert\\\" | grep -q \\\"DNS:\\\\*.vpn.gram1.ru\\\" || fail \\\"${name}_cert_san_missing\\\"\"},{\"line\":39,\"text\":\"check_host \\\"kuma\\\" \\\"kuma.vpn.gram1.ru\\\" \\\"^(200|302)$\\\"\"},{\"line\":40,\"text\":\"check_host \\\"homepage\\\" \\\"homepage.vpn.gram1.ru\\\" \\\"^200$\\\"\"},{\"line\":41,\"text\":\"check_host \\\"gitea\\\" \\\"gitea.vpn.gram1.ru\\\" \\\"^200$\\\"\"},{\"line\":42,\"text\":\"check_host \\\"filebrowser\\\" \\\"filebrowser.vpn.gram1.ru\\\" \\\"^200$\\\"\"},{\"line\":43,\"text\":\"check_host \\\"auth\\\" \\\"auth.vpn.gram1.ru\\\" \\\"^(200|302)$\\\"\"},{\"line\":45,\"text\":\"auth_live=\\\"$(curl -k -sS -o \\\"$TMPD/auth-live\\\" -w \\\"%{http_code}\\\" --max-time 8 https://auth.vpn.gram1.ru/-/health/live/ 2>/dev/null || echo error)\\\"\"},{\"line\":46,\"text\":\"auth_ready=\\\"$(curl -k -sS -o \\\"$TMPD/auth-ready\\\" -w \\\"%{http_code}\\\" --max-time 8 https://auth.vpn.gram1.ru/-/health/ready/ 2>/dev/null || echo error)\\\"\"},{\"line\":78,\"text\":\"echo \\\"$edge_out\\\" | grep -q \\\"17|\\\\[\\\\\\\"homepage.vpn.gram1.ru\\\\\\\"\\\\].*auth_request=none\\\" || fail \\\"homepage_auth_not_none\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1781751578563364783,\"path\":\"/srv/homelab-desired-state/sbin/homelab-check-private-vpn-hosts.real-20260624T131702Z\",\"sha256\":\"227d5c5bf4e3287bc44fdcb96d1b383e7973fbca491748fabfb3b5433cccc228\",\"size\":4503,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-check-private-vpn-hosts.real-20260624T131702Z\"},{\"lines\":[{\"line\":5,\"text\":\"VPS_ALIAS=\\\"${VPS_ALIAS:-netbird.vpn.gram1.ru}\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1782306007135818676,\"path\":\"/srv/homelab-desired-state/sbin/homelab-vps-identity-audit\",\"sha256\":\"b709691c52ae48432b70e197eb4810b6c374a05911cee3b9fdba4ecc67c76c3a\",\"size\":2161,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-vps-identity-audit\"},{\"lines\":[{\"line\":20,\"text\":\"curl -fsS --connect-timeout 8 --max-time 20 https://backup.gram1.ru/overall.txt -o \\\"$TMP\\\" 2>/dev/null\"},{\"line\":54,\"text\":\"- netbird.vpn.gram1.ru / 100.100.60.182 is edge-vm, not an independent external runner.\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1783441405600588336,\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps.bak-fixed-v2-20260707T165551Z\",\"sha256\":\"ed358ab76eebe3b79c3f18a16878426f20b9b9054cadbe2159ffe3d7c2d0b0f9\",\"size\":3321,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps.bak-fixed-v2-20260707T165551Z\"},{\"lines\":[{\"line\":9,\"text\":\"URLS=\\\"https://backup.gram1.ru/overall.txt https://codevipe.ru https://gamevipe.ru https://hkmods.ru https://zakrutim.ru https://dsmods.ru https://gram1.ru https://pvepro.ru https://auth.gram1.ru https://vault.gram1.ru https://git.gram1.ru https://uptime.gram1.ru https://paper.gram1.ru https://memos.gram1.ru https://dozzle.gram1.ru https://gotify.gram1.ru\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1783398535195119646,\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps-health.bak-owner-fix-20260707T184249Z\",\"sha256\":\"a1277cdfc1c3e8dc94f2c1d9552e7763f542fe3f1ef0ba6cb2df121bf126d3a9\",\"size\":3317,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps-health.bak-owner-fix-20260707T184249Z\"},{\"lines\":[{\"line\":27,\"text\":\"BASE = \\\"https://run.vpn.gram1.ru\\\"\"},{\"line\":28,\"text\":\"PORTAL_HOST = \\\"run.vpn.gram1.ru\\\"\"},{\"line\":36,\"text\":\"BRIDGE_CMD = '@echo off\\\\nsetlocal EnableExtensions DisableDelayedExpansion\\\\n\\\\nset \\\"ROOT=%LOCALAPPDATA%\\\\\\\\HomelabBridge\\\"\\\\nset \\\"CAPSULE=%~f1\\\"\\\\n\\\\nif \\\"%~1\\\"==\\\"\\\" (\\\\n echo HOMELAB_BRIDGE_ERROR=NO_CAPSULE\\\\n pause\\\\n exit /b 64\\\\n)\\\\n\\\\nif /I not \\\"%~x1\\\"==\\\".hcmd\\\" (\\\\n echo HOMELAB_BRIDGE_ERROR=INVALID_EXTENSION\\\\n pause\\\\n exit /b 65\\\\n)\\\\n\\\\nif not exist \\\"%CAPSULE%\\\" (\\\\n echo HOMELAB_BRIDGE_ERROR=CAPSULE_NOT_FOUND\\\\n pause\\\\n exit /b 66\\\\n)\\\\n\\\\nif not exist \\\"%ROOT%\\\\\\\\curl.cfg\\\" (\\\\n echo HOMELAB_BRIDGE_ERROR=NOT_ENROLLED\\\\n pause\\\\n exit /b 67\\\\n)\\\\n\\\\nset \\\"RESPONSE=%TEMP%\\\\\\\\homelab-bridge-%RANDOM%-%RANDOM%.txt\\\"\\\\n\\\\n\\\"%SystemRoot%\\\\\\\\System32\\\\\\\\curl.exe\\\" -q --proto =https --tlsv1.2 --config \\\"%ROOT%\\\\\\\\curl.cfg\\\" ^\\\\n --fail-with-body ^\\\\n --silent ^\\\\n --show-error ^\\\\n --connect-timeout 10 ^\\\\n --max-time 180 ^\\\\n --request POST ^\\\\n --header \\\"Content-Type: application/octet-stream\\\" ^\\\\n --data-binary \\\"@%CAPSULE%\\\" ^\\\\n \\\"https://run.vpn.gram1.ru/api/import\\\" ^\\\\n --output \\\"%RESPONSE%\\\"\\\\n\\\\nif errorlevel 1 (\\\\n echo HO\"},{\"line\":37,\"text\":\"SETUP_TEMPLATE = '@echo off\\\\nsetlocal EnableExtensions DisableDelayedExpansion\\\\n\\\\nset \\\"ROOT=%LOCALAPPDATA%\\\\\\\\HomelabBridge\\\"\\\\nset \\\"TOKEN_TMP=%TEMP%\\\\\\\\homelab-enroll-%RANDOM%-%RANDOM%.txt\\\"\\\\n\\\\nif not exist \\\"%SystemRoot%\\\\\\\\System32\\\\\\\\curl.exe\\\" (\\\\n echo HOMELAB_BRIDGE_SETUP_ERROR=CURL_MISSING\\\\n pause\\\\n exit /b 64\\\\n)\\\\n\\\\nif not exist \\\"%ROOT%\\\" mkdir \\\"%ROOT%\\\"\\\\nif errorlevel 1 (\\\\n echo HOMELAB_BRIDGE_SETUP_ERROR=CREATE_DIRECTORY\\\\n pause\\\\n exit /b 65\\\\n)\\\\n\\\\n\\\"%SystemRoot%\\\\\\\\System32\\\\\\\\icacls.exe\\\" \\\"%ROOT%\\\" /inheritance:r /grant:r \\\"%USERDOMAIN%\\\\\\\\%USERNAME%:(OI)(CI)F\\\" >nul\\\\nif errorlevel 1 (\\\\n echo HOMELAB_BRIDGE_SETUP_ERROR=ACL_DIRECTORY\\\\n pause\\\\n exit /b 72\\\\n)\\\\n\\\\n\\\"%SystemRoot%\\\\\\\\System32\\\\\\\\curl.exe\\\" -q --proto =https --tlsv1.2 ^\\\\n --fail-with-body ^\\\\n --silent ^\\\\n --show-error ^\\\\n --connect-timeout 10 ^\\\\n --max-time 60 ^\\\\n --request POST ^\\\\n --header \\\"Content-Type: text/plain\\\" ^\\\\n --data-binary \\\"__ENROLLMENT_TOKEN__\\\" ^\\\\n \\\"https://run.vpn.gram1.ru/api/enroll\\\" ^\\\\n --output \\\"%TOKEN_TMP%\\\"\\\\n\\\\n\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1785147080986831529,\"path\":\"/srv/homelab-desired-state/sbin/homelab-command-portal\",\"sha256\":\"97c69bd4fccf7272dadc911281c1503f411bae2dc11dac4b22b87f33d678ae52\",\"size\":39936,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-command-portal\"},{\"lines\":[{\"line\":18,\"text\":\"line \\\"- public overall: https://backup.gram1.ru/overall.txt\\\"\"},{\"line\":72,\"text\":\"line \\\"curl -k -fsS https://backup.gram1.ru/overall.txt\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1783452999392787228,\"path\":\"/srv/homelab-desired-state/sbin/homelab-cluster-passport\",\"sha256\":\"1d47186f97a35df8650960658e56328797c29471fec36f41d7532222798c00f6\",\"size\":6192,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-cluster-passport\"},{\"lines\":[{\"line\":10,\"text\":\"URLS=\\\"https://backup.gram1.ru/overall.txt http://[PRIVATE_IP]:9101/overall.txt\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1783450059956321821,\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps-health\",\"sha256\":\"e889270a26129bc9da104b19fbb05a00f7547485bac9f713292958311fd0d366\",\"size\":3280,\"uid\":0},\"path\":\"/srv/homelab-desired-state/sbin/homelab-external-probe-vps-health\"},{\"lines\":[{\"line\":4,\"text\":\"Collector: `pve01.gram1.ru`\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o640\",\"mtime_ns\":1784154375920318327,\"path\":\"/srv/homelab-ops/CURRENT_CONTEXT.md\",\"sha256\":\"9a772d6e8d6438e84b0d2459c69cd99dc51820dba46fae3897c94a661a43a993\",\"size\":1147,\"uid\":0},\"path\":\"/srv/homelab-ops/CURRENT_CONTEXT.md\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"collector_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":124,\"text\":\" \\\"remote\\\": \\\"https://git.gram1.ru/homelab-admin/homelab-ops.git\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o640\",\"mtime_ns\":1784154375919824327,\"path\":\"/srv/homelab-ops/observed/current-context.json\",\"sha256\":\"d2c7e06967fd76e09bb8ca694f5132aadd65a9eca35fca8ba92ac11c168d4ebb\",\"size\":6036,\"uid\":0},\"path\":\"/srv/homelab-ops/observed/current-context.json\"},{\"lines\":[{\"line\":6,\"text\":\" \\\"target\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":13,\"text\":\" \\\"target\\\": \\\"pve02.gram1.ru\\\",\"},{\"line\":20,\"text\":\" \\\"target\\\": \\\"pve03.gram1.ru\\\",\"},{\"line\":27,\"text\":\" \\\"target\\\": \\\"edge-vm.gram1.ru\\\",\"},{\"line\":34,\"text\":\" \\\"target\\\": \\\"forum-prod.gram1.ru\\\",\"},{\"line\":41,\"text\":\" \\\"target\\\": \\\"core-apps.gram1.ru\\\",\"},{\"line\":48,\"text\":\" \\\"target\\\": \\\"cluster-admin.gram1.ru\\\",\"},{\"line\":62,\"text\":\" \\\"target\\\": \\\"monitoring.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o640\",\"mtime_ns\":1784154263754121903,\"path\":\"/srv/homelab-ops/inventory/access-paths.json\",\"sha256\":\"ac5dc881dcd9fcb72644bc893e866f463c9c2b9b4544e32434e21b5d34168fb5\",\"size\":1652,\"uid\":0},\"path\":\"/srv/homelab-ops/inventory/access-paths.json\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"target_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":98,\"text\":\" \\\"host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":103,\"text\":\" \\\"host\\\": \\\"pve02.gram1.ru\\\",\"},{\"line\":108,\"text\":\" \\\"host\\\": \\\"pve03.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784381569327213062,\"path\":\"/srv/homelab-ops/tasks/cluster-cloud-quorum-vm160-canary-v1/task.json\",\"sha256\":\"636254d2526f0f62184d47cdb4c30c2831b11869c2000c557666f60b55d7691b\",\"size\":7440,\"uid\":0},\"path\":\"/srv/homelab-ops/tasks/cluster-cloud-quorum-vm160-canary-v1/task.json\"},{\"lines\":[{\"line\":14,\"text\":\"test \\\"$(hostname -f)\\\" = pve01.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1784381569327213062,\"path\":\"/srv/homelab-ops/tasks/cluster-cloud-quorum-vm160-canary-v1/phases/preflight.sh\",\"sha256\":\"a49bcb32ac7212d7fb9768db8a277cb5525c873c84dd6fb633edae35dc6de532\",\"size\":4667,\"uid\":0},\"path\":\"/srv/homelab-ops/tasks/cluster-cloud-quorum-vm160-canary-v1/phases/preflight.sh\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"target_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":122,\"text\":\" \\\"host\\\": \\\"pve01.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1784350113669712143,\"path\":\"/srv/homelab-ops/tasks/homelab-logrotate-namespace-latch-clearance-v1/task.json\",\"sha256\":\"3a8fdfb6b4b64880012fcc3bc6fee4be6f101377310325541f9776de6d1623f7\",\"size\":6750,\"uid\":0},\"path\":\"/srv/homelab-ops/tasks/homelab-logrotate-namespace-latch-clearance-v1/task.json\"},{\"lines\":[{\"line\":8,\"text\":\"test \\\"$(hostname -f)\\\" = pve01.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1784350113669712143,\"path\":\"/srv/homelab-ops/tasks/homelab-logrotate-namespace-latch-clearance-v1/phases/preflight.sh\",\"sha256\":\"21802253966e8d94e8404fd6a217c8248004091dc9dd3b4c03193e3c81af4609\",\"size\":1869,\"uid\":0},\"path\":\"/srv/homelab-ops/tasks/homelab-logrotate-namespace-latch-clearance-v1/phases/preflight.sh\"},{\"lines\":[{\"line\":4,\"text\":\" \\\"target_host\\\": \\\"pve01.gram1.ru\\\",\"},{\"line\":111,\"text\":\" \\\"host\\\": \\\"pve01.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784373912544434393,\"path\":\"/srv/homelab-ops/tasks/skladchik-reports-monitor-controlled-reauth-v1/task.json\",\"sha256\":\"d3108777e5094468aa3e633740ce8a56c90ca957a9a62932be896bbe784680b0\",\"size\":13579,\"uid\":0},\"path\":\"/srv/homelab-ops/tasks/skladchik-reports-monitor-controlled-reauth-v1/task.json\"},{\"lines\":[{\"line\":11,\"text\":\"test \\\"$(hostname -f)\\\" = pve01.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1784369933041417855,\"path\":\"/srv/homelab-ops/tasks/skladchik-reports-monitor-controlled-reauth-v1/phases/preflight.sh\",\"sha256\":\"f3e533ebd72ba2343a78797a8087c529c9fcfa2b3cabc45b3c0bd477356a8cc9\",\"size\":3076,\"uid\":0},\"path\":\"/srv/homelab-ops/tasks/skladchik-reports-monitor-controlled-reauth-v1/phases/preflight.sh\"},{\"lines\":[{\"line\":112,\"text\":\" if fqdn != \\\"pve01.gram1.ru\\\":\"},{\"line\":210,\"text\":\" \\\"remote\\\": \\\"https://git.gram1.ru/homelab-admin/homelab-ops.git\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o640\",\"mtime_ns\":1784154263754379506,\"path\":\"/srv/homelab-ops/tools/collect_context.py\",\"sha256\":\"4d42623567c9e30d46a78bccd30c754319712d64012c722c33265e7de62c017c\",\"size\":11071,\"uid\":0},\"path\":\"/srv/homelab-ops/tools/collect_context.py\"},{\"lines\":[{\"line\":77,\"text\":\" assert_true(context.get(\\\"collector_host\\\") == \\\"pve01.gram1.ru\\\", \\\"unexpected collector host\\\")\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o640\",\"mtime_ns\":1784154263754451430,\"path\":\"/srv/homelab-ops/tools/validate_repo.py\",\"sha256\":\"58fddb5f43f0668f70405ad09b5d79aa59d934329ed708f09b26692130781b35\",\"size\":4893,\"uid\":0},\"path\":\"/srv/homelab-ops/tools/validate_repo.py\"},{\"lines\":[{\"line\":157,\"text\":\"test \\\"$(hostname -f)\\\" = pve01.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1784373912544434393,\"path\":\"/srv/homelab-ops/tools/skladchik-cookie-refresh\",\"sha256\":\"1e2f5323abf880f3e8b17bf1f2d0a844c402a9bbf5f24159ed39aaf1d79caef0\",\"size\":10086,\"uid\":0},\"path\":\"/srv/homelab-ops/tools/skladchik-cookie-refresh\"},{\"lines\":[{\"line\":24,\"text\":\" \\\"const\\\": \\\"pve01.gram1.ru\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o640\",\"mtime_ns\":1784154263754238755,\"path\":\"/srv/homelab-ops/schemas/context.schema.json\",\"sha256\":\"84c3c29984402b25c102575b54bdb82544844e455d3d2e115fefc5f42021e043\",\"size\":539,\"uid\":0},\"path\":\"/srv/homelab-ops/schemas/context.schema.json\"},{\"lines\":[{\"line\":20,\"text\":\"API=https://git.gram1.ru/api/v1/repos/homelab-admin/homelab-ops\"},{\"line\":144,\"text\":\"[[ \\\"$(hostname -f)\\\" == pve01.gram1.ru ]]\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1784360675564833388,\"path\":\"/root/finish_skladchik_cr_2026_0010_v2.sh\",\"sha256\":\"ccb53e47546870d70a1bc22d9bec2d342478c72b98ae8de0561171eadb8234ca\",\"size\":14820,\"uid\":0},\"path\":\"/root/finish_skladchik_cr_2026_0010_v2.sh\"},{\"lines\":[{\"line\":18,\"text\":\" ssh debian@[PRIVATE_IP] \\\"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^jellyfin ' || true; echo EDGE_MOUNTS; sudo docker inspect jellyfin --format '{{range .Mounts}}{{println .Source}}{{end}}' 2>/dev/null | sort -u || true; curl -sk -H 'Host: jellyfin.vpn.gram1.ru' -o /tmp/edge_jellyfin_741.html -w 'EDGE_JELLYFIN_LOCAL=%{http_code}\\\\n' http://127.0.0.1:8019/ || true\\\"\"},{\"line\":42,\"text\":\" direct=$(curl -sk -H 'Host: jellyfin.vpn.gram1.ru' -o /tmp/jellyfin_direct_741.html -w \\\"%{http_code}\\\" http://[PRIVATE_IP]:8019/ || true)\"},{\"line\":43,\"text\":\" npm=$(ssh debian@[PRIVATE_IP] \\\"sudo docker exec npmplus sh -lc \\\\\\\"curl -sk -H 'Host: jellyfin.vpn.gram1.ru' -o /tmp/jellyfin_741.html -w '%{http_code}' http://[PRIVATE_IP]:8019/ || true\\\\\\\"\\\" || true)\"},{\"line\":67,\"text\":\" code=$(curl -sk --resolve \\\"jellyfin.vpn.gram1.ru:443:[PRIVATE_IP]\\\" -o /tmp/jellyfin_route_741.html -w \\\"%{http_code}\\\" \\\"https://jellyfin.vpn.gram1.ru/\\\" || true)\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782974914004604440,\"path\":\"/root/741_jellyfin_cutover.sh\",\"sha256\":\"1739e4d700d431989a4e5a9e0f948a9782c3683d9be7fccded3e590da36a47ca\",\"size\":6185,\"uid\":0},\"path\":\"/root/741_jellyfin_cutover.sh\"},{\"lines\":[{\"line\":44,\"text\":\" audio=$(curl -sk -H 'Host: audiobooks.vpn.gram1.ru' -o /tmp/audiobooks_740.html -w \\\"%{http_code}\\\" http://[PRIVATE_IP]:8020/ || true)\"},{\"line\":45,\"text\":\" books=$(curl -sk -H 'Host: books.vpn.gram1.ru' -o /tmp/books_740.html -w \\\"%{http_code}\\\" http://[PRIVATE_IP]:8021/ || true)\"},{\"line\":46,\"text\":\" npm_audio=$(ssh debian@[PRIVATE_IP] \\\"sudo docker exec npmplus sh -lc \\\\\\\"curl -sk -H 'Host: audiobooks.vpn.gram1.ru' -o /tmp/audiobooks_740.html -w '%{http_code}' http://[PRIVATE_IP]:8020/ || true\\\\\\\"\\\" || true)\"},{\"line\":47,\"text\":\" npm_books=$(ssh debian@[PRIVATE_IP] \\\"sudo docker exec npmplus sh -lc \\\\\\\"curl -sk -H 'Host: books.vpn.gram1.ru' -o /tmp/books_740.html -w '%{http_code}' http://[PRIVATE_IP]:8021/ || true\\\\\\\"\\\" || true)\"},{\"line\":72,\"text\":\" audio_code=$(curl -sk --resolve \\\"audiobooks.vpn.gram1.ru:443:[PRIVATE_IP]\\\" -o /tmp/audiobooks_route_740.html -w \\\"%{http_code}\\\" \\\"https://audiobooks.vpn.gram1.ru/\\\" || true)\"},{\"line\":73,\"text\":\" books_code=$(curl -sk --resolve \\\"books.vpn.gram1.ru:443:[PRIVATE_IP]\\\" -o /tmp/books_route_740.html -w \\\"%{http_code}\\\" \\\"https://books.vpn.gram1.ru/\\\" || true)\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782974733162840780,\"path\":\"/root/740_media_books_cutover.sh\",\"sha256\":\"c3c0c164033b60191ea722b64083890bddedbc042ee77b83fc12a0c0bfdf73a7\",\"size\":8426,\"uid\":0},\"path\":\"/root/740_media_books_cutover.sh\"},{\"lines\":[{\"line\":453,\"text\":\" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783001713345765242,\"path\":\"/root/771h_crowdsec_capi_register_correct_sequence.sh\",\"sha256\":\"ee6fbc099aa24ec3404821905d4e962c242f43ecc7af8092e54334b273d2f7aa\",\"size\":20573,\"uid\":0},\"path\":\"/root/771h_crowdsec_capi_register_correct_sequence.sh\"},{\"lines\":[{\"line\":10,\"text\":\"REMOTE_URL=\\\"https://git.gram1.ru/${GITEA_USER}/${REPO_NAME}.git\\\"\"},{\"line\":11,\"text\":\"API_BASE=\\\"https://git.gram1.ru/api/v1\\\"\"},{\"line\":14,\"text\":\"API_BASE=\\\"https://git.gram1.ru/api/v1\\\"\"},{\"line\":97,\"text\":\"machine git.gram1.ru\"}],\"metadata\":{\"content_hash_omitted\":true,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1781544371825534159,\"path\":\"/root/stage21c-push-with-gitea-token.sh.broken-20260615T172738Z\",\"size\":5787,\"uid\":0},\"path\":\"/root/stage21c-push-with-gitea-token.sh.broken-20260615T172738Z\"},{\"lines\":[{\"line\":314,\"text\":\" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782999318704442125,\"path\":\"/root/771d_crowdsec_capi_via_privoxy_tor.sh\",\"sha256\":\"11bf35410ec035f9f93178618247507cb12dc46860bb30758fb3a734265a7cc0\",\"size\":16158,\"uid\":0},\"path\":\"/root/771d_crowdsec_capi_via_privoxy_tor.sh\"},{\"lines\":[{\"line\":71,\"text\":\" ssh debian@[PRIVATE_IP] \\\"code=\\\\$(curl -sk --resolve 'auth.gram1.ru:443:[PRIVATE_IP]' -o /tmp/auth_after_750.html -w '%{http_code}' https://auth.gram1.ru/ || true); title=\\\\$(grep -Eio '[^<]+' /tmp/auth_after_750.html 2>/dev/null | head -1 | sed 's/<title>//I' || true); echo EDGE_AUTH_ROUTE=\\\\$code TITLE=\\\\$title\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782977075486947385,\"path\":\"/root/750_authentik_db_proof_dump.sh\",\"sha256\":\"98b2f1e811de20b10388e70ba8951da9fc7257b29b9ffb9b5fe5125465704f56\",\"size\":4479,\"uid\":0},\"path\":\"/root/750_authentik_db_proof_dump.sh\"},{\"lines\":[{\"line\":6,\"text\":\"DOMAINS=\\\"dozzle.gram1.ru paper.gram1.ru memos.gram1.ru photos.gram1.ru auth.gram1.ru\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1781560515480697737,\"path\":\"/root/ag-add-new-service-rewrites.sh\",\"sha256\":\"77b2f72cc6887898c31ded5a6932b1ed4f2e8d386519f40e2ece7073a8ebe694\",\"size\":1648,\"uid\":0},\"path\":\"/root/ag-add-new-service-rewrites.sh\"},{\"lines\":[{\"line\":62,\"text\":\" direct=$(curl -sk -H 'Host: netbox.vpn.gram1.ru' -o /tmp/netbox_direct_736.html -w \\\"%{http_code}\\\" http://[PRIVATE_IP]:8000/ || true)\"},{\"line\":63,\"text\":\" npm=$(ssh debian@[PRIVATE_IP] \\\"sudo docker exec npmplus sh -lc \\\\\\\"curl -sk -H 'Host: netbox.vpn.gram1.ru' -o /tmp/netbox_736.html -w '%{http_code}' http://[PRIVATE_IP]:8000/ || true\\\\\\\"\\\" || true)\"},{\"line\":81,\"text\":\" ssh debian@[PRIVATE_IP] \\\"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^netbox' || true; curl -sk --resolve 'netbox.vpn.gram1.ru:443:[PRIVATE_IP]' -o /tmp/netbox_edge_736.html -w 'EDGE_ROUTE_NETBOX=%{http_code}\\\\n' https://netbox.vpn.gram1.ru/ || true\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782974247992950291,\"path\":\"/root/736_netbox_fix_links_pre_route.sh\",\"sha256\":\"e325b98918b9c3663b7b6dd9c3a82d4ab38d3e9f188f2b33f6aa54d6b10a29d0\",\"size\":5115,\"uid\":0},\"path\":\"/root/736_netbox_fix_links_pre_route.sh\"},{\"lines\":[{\"line\":196,\"text\":\"for url in \\\"https://uptime.gram1.ru\\\" \\\"$NEW_URL\\\"; do\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783027411043062158,\"path\":\"/root/773c_fix_npmplus_admin_red_monitor.sh\",\"sha256\":\"6d1b00ee766793642b20eb3d73e9784ae1bc84f8482cd49cfc9da1c8f854a439\",\"size\":9062,\"uid\":0},\"path\":\"/root/773c_fix_npmplus_admin_red_monitor.sh\"},{\"lines\":[{\"line\":586,\"text\":\" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783014230694542054,\"path\":\"/root/771w_pve01_netbird_ssh_egress_crowdsec_capi.sh\",\"sha256\":\"fe9ac004c2013fe0ff413d5a5dbcfb2151203ba9426f8f50d0f7ac1c77eea178\",\"size\":24594,\"uid\":0},\"path\":\"/root/771w_pve01_netbird_ssh_egress_crowdsec_capi.sh\"},{\"lines\":[{\"line\":61,\"text\":\"dig @[PRIVATE_IP] nc.gram1.ru +short\"},{\"line\":62,\"text\":\"dig @[PRIVATE_IP] turn.gram1.ru +short\"},{\"line\":67,\"text\":\"curl -I --max-time 15 https://nc.gram1.ru | head -n 8 || true\"},{\"line\":68,\"text\":\"curl -I --max-time 10 http://uptime.gram1.ru | head -n 8 || true\"},{\"line\":69,\"text\":\"curl -I --max-time 10 http://gotify.gram1.ru | head -n 8 || true\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1781521417124378993,\"path\":\"/root/post-reboot-pve01-check.sh\",\"sha256\":\"232cf4cb84d55c115b6c2e5ba69520620fcf66aa905f0367d7fee12e9e1b8120\",\"size\":1929,\"uid\":0},\"path\":\"/root/post-reboot-pve01-check.sh\"},{\"lines\":[{\"line\":87,\"text\":\"curl -I --max-time 5 -H \\\"Host: uptime.gram1.ru\\\" http://127.0.0.1 2>/dev/null | head -n 5 || true\"},{\"line\":88,\"text\":\"curl -I --max-time 5 -H \\\"Host: gotify.gram1.ru\\\" http://127.0.0.1 2>/dev/null | head -n 5 || true\"},{\"line\":89,\"text\":\"curl -I --max-time 5 -H \\\"Host: nc.gram1.ru\\\" http://127.0.0.1 2>/dev/null | head -n 5 || true\"},{\"line\":122,\"text\":\" dig @\\\"$DNS\\\" nc.gram1.ru +short || true\"},{\"line\":123,\"text\":\" dig @\\\"$DNS\\\" turn.gram1.ru +short || true\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1781520588302036173,\"path\":\"/root/pre-reboot-audit.sh\",\"sha256\":\"813a6fd5c3fe16f387b27122132ee47c1505e643fd359e8ae5c78dadfb93b9a4\",\"size\":4075,\"uid\":0},\"path\":\"/root/pre-reboot-audit.sh\"},{\"lines\":[{\"line\":98,\"text\":\"location: https://nc.gram1.ru/login\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1781521992613955131,\"path\":\"/root/stage14-final-cleanup-audit-20260615T111307Z.txt\",\"sha256\":\"3dd3e506673623acbb60d37dcf147920002505cc84c07bf06a44a29ba49f903d\",\"size\":4975,\"uid\":0},\"path\":\"/root/stage14-final-cleanup-audit-20260615T111307Z.txt\"},{\"lines\":[{\"line\":3,\"text\":\"generator_host=pve01.gram1.ru\"},{\"line\":15,\"text\":\"node=pve01.gram1.ru\"},{\"line\":50,\"text\":\"[PRIVATE_IP] pve01.gram1.ru pve01\"},{\"line\":51,\"text\":\"[PRIVATE_IP] pve02.gram1.ru pve02\"},{\"line\":52,\"text\":\"[PRIVATE_IP] pve03.gram1.ru pve03\"},{\"line\":63,\"text\":\"search netbird.selfhosted gram1.ru\"},{\"line\":442,\"text\":\"node=pve02.gram1.ru\"},{\"line\":483,\"text\":\"[PRIVATE_IP] pve01.gram1.ru pve01\"},{\"line\":484,\"text\":\"[PRIVATE_IP] pve02.gram1.ru pve02\"},{\"line\":485,\"text\":\"[PRIVATE_IP] pve03.gram1.ru pve03\"},{\"line\":496,\"text\":\"search netbird.selfhosted gram1.ru\"},{\"line\":875,\"text\":\"node=pve03.gram1.ru\"},{\"line\":912,\"text\":\"[PRIVATE_IP] pve01.gram1.ru pve01\"},{\"line\":913,\"text\":\"[PRIVATE_IP] pve02.gram1.ru pve02\"},{\"line\":914,\"text\":\"[PRIVATE_IP] pve03.gram1.ru pve03\"},{\"line\":925,\"text\":\"search netbird.selfhosted gram1.ru\"},{\"line\":1304,\"text\":\"edge=edge-vm.gram1.ru\"},{\"line\":1555,\"text\":\"DOMAIN=https://vault.gram1.ru\"},{\"line\":1665,\"text\":\"DOMAIN = git.gram1.ru\"},{\"line\":1668,\"text\":\"ROOT_URL = https://git.gram1.ru/\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782244349037549140,\"path\":\"/root/homelab_cluster_audit_supplement_v3_20260623T195206Z.txt\",\"sha256\":\"f72a2c31c2f6d9c0864683e118f901eea8dd0fb08995f8521b57518c6d89e9ba\",\"size\":1117712,\"uid\":0},\"path\":\"/root/homelab_cluster_audit_supplement_v3_20260623T195206Z.txt\"},{\"lines\":[{\"line\":50,\"text\":\" (\\\"BASE_URL: http://127.0.0.1:9001\\\", \\\"BASE_URL: https://mealie.vpn.gram1.ru\\\"),\"},{\"line\":51,\"text\":\" (\\\"BASE_URL: http://0.0.0.0:9001\\\", \\\"BASE_URL: https://mealie.vpn.gram1.ru\\\"),\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782982134190734048,\"path\":\"/root/769b_fix_public_bind_remote_20260702T084854Z.sh\",\"sha256\":\"5650993df3008d0218b13f4b0471d96a165e35d5c8e5baa10a75f83df3d7a7b6\",\"size\":3851,\"uid\":0},\"path\":\"/root/769b_fix_public_bind_remote_20260702T084854Z.sh\"},{\"lines\":[{\"line\":214,\"text\":\" for url in http://127.0.0.1:3000 https://homepage.vpn.gram1.ru https://home.gram1.ru; do\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o755\",\"mtime_ns\":1783022817533839001,\"path\":\"/root/772d_remote_20260702T200657Z.sh\",\"sha256\":\"3a2627e6549b777ab52abd236bc78f675340d708f58dfd56cd57acdc5dc82e82\",\"size\":12013,\"uid\":0},\"path\":\"/root/772d_remote_20260702T200657Z.sh\"},{\"lines\":[{\"line\":266,\"text\":\" if host and host.endswith(\\\".vpn.gram1.ru\\\"):\"},{\"line\":349,\"text\":\"docker exec homepage sh -lc 'cat /etc/hosts | grep vpn.gram1.ru | sort || true'\"},{\"line\":357,\"text\":\" \\\"https://searxng.vpn.gram1.ru\\\",\"},{\"line\":358,\"text\":\" \\\"https://grafana.vpn.gram1.ru\\\",\"},{\"line\":359,\"text\":\" \\\"https://prometheus.vpn.gram1.ru\\\",\"},{\"line\":360,\"text\":\" \\\"https://alertmanager.vpn.gram1.ru\\\",\"},{\"line\":361,\"text\":\" \\\"https://beszel.vpn.gram1.ru\\\",\"},{\"line\":362,\"text\":\" \\\"https://ntfy.vpn.gram1.ru\\\",\"},{\"line\":364,\"text\":\" \\\"https://netbox.vpn.gram1.ru\\\",\"},{\"line\":365,\"text\":\" \\\"https://proxmox.vpn.gram1.ru\\\",\"},{\"line\":366,\"text\":\" \\\"https://minio.vpn.gram1.ru\\\",\"},{\"line\":367,\"text\":\" \\\"https://filebrowser.vpn.gram1.ru\\\",\"},{\"line\":368,\"text\":\" \\\"https://actual-budget.vpn.gram1.ru\\\",\"},{\"line\":369,\"text\":\" \\\"https://homebox.vpn.gram1.ru\\\",\"},{\"line\":370,\"text\":\" \\\"https://mealie.vpn.gram1.ru\\\",\"},{\"line\":371,\"text\":\" \\\"https://linkding.vpn.gram1.ru\\\",\"},{\"line\":372,\"text\":\" \\\"https://karakeep.vpn.gram1.ru\\\",\"},{\"line\":373,\"text\":\" \\\"https://it-tools.vpn.gram1.ru\\\",\"},{\"line\":374,\"text\":\" \\\"https://n8n.vpn.gram1.ru\\\",\"},{\"line\":375,\"text\":\" \\\"https://node-red.vpn.gram1.ru\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783025388335719219,\"path\":\"/root/772j_fix_homepage_red_badges_step1.sh\",\"sha256\":\"fceb513c59e0ba721e4ff5e340db9dacf39b6f02fa239b5275a947131a35dca6\",\"size\":15067,\"uid\":0},\"path\":\"/root/772j_fix_homepage_red_badges_step1.sh\"},{\"lines\":[{\"line\":326,\"text\":\" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782983009276325108,\"path\":\"/root/771_crowdsec_capi_ipv4_restore_or_fallback.sh\",\"sha256\":\"08d9244af7e18d88bfc59a63ba5cd33860ceb71a17f9e6ea883eda3c341b8a0d\",\"size\":16689,\"uid\":0},\"path\":\"/root/771_crowdsec_capi_ipv4_restore_or_fallback.sh\"},{\"lines\":[{\"line\":1,\"text\":\"https://<REDACTED_USER>:<REDACTED_PASSWORD>@git.gram1.ru\"}],\"metadata\":{\"content_hash_omitted\":true,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1785483205055349494,\"path\":\"/root/.git-credentials\",\"size\":139,\"uid\":0},\"path\":\"/root/.git-credentials\"},{\"lines\":[{\"line\":236,\"text\":\"lines.append(\\\"- CrowdSec CAPI: добавить в «Мониторинг» или «Безопасность» карточку на https://backup.gram1.ru/crowdsec-capi-netbird-final.txt.\\\")\"},{\"line\":246,\"text\":\"lines.append(\\\"- Unbound1/Unbound2: добавить DNS health-only карточки через backup.gram1.ru или node health endpoint.\\\")\"},{\"line\":299,\"text\":\"for url in https://homepage.vpn.gram1.ru https://home.gram1.ru; do\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783021548206715656,\"path\":\"/root/772b_homepage_russian_normalize_apply.sh\",\"sha256\":\"140b5504f63778803073986e16e4e3649b4db1d40995096ec90aba81158ce772\",\"size\":16891,\"uid\":0},\"path\":\"/root/772b_homepage_russian_normalize_apply.sh\"},{\"lines\":[{\"line\":379,\"text\":\"166: - domain: turn.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1781514687748843826,\"path\":\"/root/diag-pve03-dns2-20260615T091114Z.txt\",\"sha256\":\"5fe5fec067c406a0649f4671c721e839bd8fe727da0ac444a57f6667727a37e9\",\"size\":21616,\"uid\":0},\"path\":\"/root/diag-pve03-dns2-20260615T091114Z.txt\"},{\"lines\":[{\"line\":542,\"text\":\" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783014983710861835,\"path\":\"/root/771x_crowdsec_capi_mtu_hardfix.sh\",\"sha256\":\"e09ac869f7c522bcb603a635e498c6f8de59775674c7bcac06ab5876d1e7c8a6\",\"size\":22295,\"uid\":0},\"path\":\"/root/771x_crowdsec_capi_mtu_hardfix.sh\"},{\"lines\":[{\"line\":44,\"text\":\"- domain: gram1.ru\"},{\"line\":45,\"text\":\"- public Nextcloud domain: nc.gram1.ru\"},{\"line\":82,\"text\":\"14. Verify nc.gram1.ru externally.\"},{\"line\":98,\"text\":\"- Cloudflare is required for public nc.gram1.ru and DNS-01.\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1781451058832187681,\"path\":\"/root/create-initial-emergency-pack.sh\",\"sha256\":\"dba6586da93102525471a7c7e1ebf0a2139890648bb43f00517b453ee3140d75\",\"size\":5142,\"uid\":0},\"path\":\"/root/create-initial-emergency-pack.sh\"},{\"lines\":[{\"line\":19,\"text\":\" ssh debian@[PRIVATE_IP] \\\"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^syncthing ' || true; curl -sk -H 'Host: syncthing.vpn.gram1.ru' -o /tmp/edge_syncthing_753.html -w 'EDGE_SYNCTHING_LOCAL=%{http_code}\\\\n' http://127.0.0.1:8384/ || true\\\"\"},{\"line\":80,\"text\":\" direct=$(curl -sk -H 'Host: syncthing.vpn.gram1.ru' -o /tmp/syncthing_direct_753.html -w \\\"%{http_code}\\\" http://[PRIVATE_IP]:8384/ || true)\"},{\"line\":81,\"text\":\" npm=$(ssh debian@[PRIVATE_IP] \\\"sudo docker exec npmplus sh -lc \\\\\\\"curl -sk -H 'Host: syncthing.vpn.gram1.ru' -o /tmp/syncthing_753.html -w '%{http_code}' http://[PRIVATE_IP]:8384/ || true\\\\\\\"\\\" || true)\"},{\"line\":106,\"text\":\" code=$(curl -sk --resolve \\\"syncthing.vpn.gram1.ru:443:[PRIVATE_IP]\\\" -o /tmp/syncthing_route_753.html -w \\\"%{http_code}\\\" \\\"https://syncthing.vpn.gram1.ru/\\\" || true)\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782977633368426751,\"path\":\"/root/753_syncthing_cutover.sh\",\"sha256\":\"3244d8440398e5814b4b50ca79966dd199a8fae2be3e39b1ac11dce4e069d5ca\",\"size\":7065,\"uid\":0},\"path\":\"/root/753_syncthing_cutover.sh\"},{\"lines\":[{\"line\":344,\"text\":\" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783001270373283216,\"path\":\"/root/771f_crowdsec_capi_godebug_mss_fix.sh\",\"sha256\":\"e51752c99e24da58469c14b02fc6cc28a5cb2052adb0f599a86e3a9800da1d1a\",\"size\":15642,\"uid\":0},\"path\":\"/root/771f_crowdsec_capi_godebug_mss_fix.sh\"},{\"lines\":[{\"line\":19,\"text\":\" ssh debian@[PRIVATE_IP] \\\"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^minio' || true; echo EDGE_MOUNTS; sudo docker inspect minio --format '{{range .Mounts}}{{println .Source}}{{end}}' 2>/dev/null | sort -u || true; curl -sk -H 'Host: minio.vpn.gram1.ru' -o /tmp/edge_minio_739.html -w 'EDGE_MINIO_CONSOLE_LOCAL=%{http_code}\\\\n' http://127.0.0.1:9003/ || true\\\"\"},{\"line\":45,\"text\":\" console=$(curl -sk -H 'Host: minio.vpn.gram1.ru' -o /tmp/minio_console_739.html -w \\\"%{http_code}\\\" http://[PRIVATE_IP]:9003/ || true)\"},{\"line\":46,\"text\":\" npm=$(ssh debian@[PRIVATE_IP] \\\"sudo docker exec npmplus sh -lc \\\\\\\"curl -sk -H 'Host: minio.vpn.gram1.ru' -o /tmp/minio_739.html -w '%{http_code}' http://[PRIVATE_IP]:9003/ || true\\\\\\\"\\\" || true)\"},{\"line\":70,\"text\":\" code=$(curl -sk --resolve \\\"minio.vpn.gram1.ru:443:[PRIVATE_IP]\\\" -o /tmp/minio_route_739.html -w \\\"%{http_code}\\\" \\\"https://minio.vpn.gram1.ru/\\\" || true)\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782974622096261298,\"path\":\"/root/739_minio_cutover.sh\",\"sha256\":\"08de56adfdc2a0bc93fdbd0d2341983bea0c8087cd5dbd9cc3fb3ee2e69f7dd7\",\"size\":6298,\"uid\":0},\"path\":\"/root/739_minio_cutover.sh\"},{\"lines\":[{\"line\":695,\"text\":\" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783005045295356498,\"path\":\"/root/771l_crowdsec_capi_netbird_vps_egress.sh\",\"sha256\":\"401396a25d4a5cfa487f67b355b45b27140ed1ac6b49b41e342306cb618dfdb5\",\"size\":28134,\"uid\":0},\"path\":\"/root/771l_crowdsec_capi_netbird_vps_egress.sh\"},{\"lines\":[{\"line\":3,\"text\":\"generator_host=pve01.gram1.ru\"},{\"line\":17,\"text\":\"pve01.gram1.ru\"},{\"line\":144,\"text\":\"search netbird.selfhosted gram1.ru\"},{\"line\":146,\"text\":\"--- gram1.ru ---\"},{\"line\":147,\"text\":\"95.84.154.183 STREAM gram1.ru\"},{\"line\":150,\"text\":\"--- home.gram1.ru ---\"},{\"line\":151,\"text\":\"[PRIVATE_IP] STREAM home.gram1.ru\"},{\"line\":154,\"text\":\"--- git.gram1.ru ---\"},{\"line\":155,\"text\":\"[PRIVATE_IP] STREAM git.gram1.ru\"},{\"line\":158,\"text\":\"--- vault.gram1.ru ---\"},{\"line\":159,\"text\":\"[PRIVATE_IP] STREAM vault.gram1.ru\"},{\"line\":162,\"text\":\"--- checks.vpn.gram1.ru ---\"},{\"line\":163,\"text\":\"95.84.154.183 STREAM checks.vpn.gram1.ru\"},{\"line\":166,\"text\":\"--- vikunja.vpn.gram1.ru ---\"},{\"line\":167,\"text\":\"100.100.60.182 STREAM vikunja.vpn.gram1.ru\"},{\"line\":170,\"text\":\"--- bookstack.vpn.gram1.ru ---\"},{\"line\":171,\"text\":\"100.100.60.182 STREAM bookstack.vpn.gram1.ru\"},{\"line\":174,\"text\":\"--- pdf.vpn.gram1.ru ---\"},{\"line\":175,\"text\":\"100.100.60.182 STREAM pdf.vpn.gram1.ru\"},{\"line\":178,\"text\":\"--- jellyfin.vpn.gram1.ru ---\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782234356985327222,\"path\":\"/root/homelab_network_equipment_audit_20260623T170441Z.txt\",\"sha256\":\"c074427226f44191cbd319a3c27fb12bbbf0dc16311f1b4a351678003137a42c\",\"size\":43330,\"uid\":0},\"path\":\"/root/homelab_network_equipment_audit_20260623T170441Z.txt\"},{\"lines\":[{\"line\":312,\"text\":\" if code == \\\"000\\\" and \\\".vpn.gram1.ru\\\" in url:\"},{\"line\":326,\"text\":\"lines.append(\\\"- Если ломаются *.vpn.gram1.ru из контейнера Homepage, чинить DNS/маршрут контейнера или добавлять extra_hosts на edge [PRIVATE_IP].\\\")\"},{\"line\":387,\"text\":\" \\\"https://home.gram1.ru\\\" \\\\\"},{\"line\":388,\"text\":\" \\\"https://homepage.vpn.gram1.ru\\\" \\\\\"},{\"line\":389,\"text\":\" \\\"https://uptime.gram1.ru\\\" \\\\\"},{\"line\":390,\"text\":\" \\\"https://kuma.vpn.gram1.ru\\\" \\\\\"},{\"line\":391,\"text\":\" \\\"https://grafana.vpn.gram1.ru\\\" \\\\\"},{\"line\":392,\"text\":\" \\\"https://prometheus.vpn.gram1.ru\\\" \\\\\"},{\"line\":393,\"text\":\" \\\"https://alertmanager.vpn.gram1.ru\\\" \\\\\"},{\"line\":394,\"text\":\" \\\"https://checks.vpn.gram1.ru\\\" \\\\\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783024463461644211,\"path\":\"/root/772h_homepage_monitoring_red_badges_diagnose.sh\",\"sha256\":\"66b5b958bf9f4be92ba8a5a6fc1da5ec6a94635f1a65ad303d287cebc355b1bf\",\"size\":15011,\"uid\":0},\"path\":\"/root/772h_homepage_monitoring_red_badges_diagnose.sh\"},{\"lines\":[{\"line\":43,\"text\":\" direct=$(curl -sk -H 'Host: bookstack.vpn.gram1.ru' -o /tmp/bookstack_direct_732.html -w \\\"%{http_code}\\\" http://[PRIVATE_IP]:8017/ || true)\"},{\"line\":44,\"text\":\" npm=$(ssh debian@[PRIVATE_IP] \\\"sudo docker exec npmplus sh -lc \\\\\\\"curl -sk -H 'Host: bookstack.vpn.gram1.ru' -o /tmp/bookstack_732.html -w '%{http_code}' http://[PRIVATE_IP]:8017/ || true\\\\\\\"\\\" || true)\"},{\"line\":66,\"text\":\" code=$(curl -sk --resolve \\\"bookstack.vpn.gram1.ru:443:[PRIVATE_IP]\\\" -o /tmp/bookstack_route_732.html -w \\\"%{http_code}\\\" \\\"https://bookstack.vpn.gram1.ru/\\\" || true)\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782971038961614596,\"path\":\"/root/732_bookstack_cutover.sh\",\"sha256\":\"c2ee0c062b49986fb1151092a884d49bbf56634815871d23ebec74fc036ff803\",\"size\":5655,\"uid\":0},\"path\":\"/root/732_bookstack_cutover.sh\"},{\"lines\":[{\"line\":165,\"text\":\"searchdomain: gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1781515691187191390,\"path\":\"/root/run-pve02-pve03-manual-backups-20260615T092719Z.log\",\"sha256\":\"bc79c87800f065f6cf7deda9eb6ce8c91886e9d6aa1bb54b895c8c4d0f5e045a\",\"size\":10452,\"uid\":0},\"path\":\"/root/run-pve02-pve03-manual-backups-20260615T092719Z.log\"},{\"lines\":[{\"line\":57,\"text\":\" curl -sk --connect-timeout 8 --max-time 20 --resolve \\\"backup.gram1.ru:443:[PRIVATE_IP]\\\" -o /tmp/770b_backup_route.html -w 'backup.gram1.ru HTTP=%{http_code}\\\\n' https://backup.gram1.ru/ || true\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782982598693292319,\"path\":\"/root/770b_clean_local_backup_staging_leftover.sh\",\"sha256\":\"0a3fcad4e2b2797adeb1795df420b32885907cb36ab7cc7432ef7e8acb987fc9\",\"size\":2560,\"uid\":0},\"path\":\"/root/770b_clean_local_backup_staging_leftover.sh\"},{\"lines\":[{\"line\":70,\"text\":\" auth.gram1.ru photos.gram1.ru homeassistant.vpn.gram1.ru vault.gram1.ru git.gram1.ru paper.gram1.ru \\\\\"},{\"line\":71,\"text\":\" n8n.vpn.gram1.ru node-red.vpn.gram1.ru syncthing.vpn.gram1.ru netbox.vpn.gram1.ru \\\\\"},{\"line\":72,\"text\":\" grafana.vpn.gram1.ru prometheus.vpn.gram1.ru alertmanager.vpn.gram1.ru ntfy.vpn.gram1.ru \\\\\"},{\"line\":73,\"text\":\" uptime.gram1.ru gotify.gram1.ru checks.vpn.gram1.ru home.gram1.ru actual-budget.vpn.gram1.ru \\\\\"},{\"line\":74,\"text\":\" homebox.vpn.gram1.ru mealie.vpn.gram1.ru linkding.vpn.gram1.ru karakeep.vpn.gram1.ru \\\\\"},{\"line\":75,\"text\":\" filebrowser.vpn.gram1.ru vikunja.vpn.gram1.ru bookstack.vpn.gram1.ru pdf.vpn.gram1.ru \\\\\"},{\"line\":76,\"text\":\" jellyfin.vpn.gram1.ru audiobooks.vpn.gram1.ru books.vpn.gram1.ru minio.vpn.gram1.ru \\\\\"},{\"line\":77,\"text\":\" searxng.vpn.gram1.ru it-tools.vpn.gram1.ru beszel.vpn.gram1.ru memos.gram1.ru \\\\\"},{\"line\":78,\"text\":\" dozzle.gram1.ru dockge.gram1.ru npmplus.vpn.gram1.ru backup.gram1.ru\"},{\"line\":90,\"text\":\" \\\"homeassistant.vpn.gram1.ru:/api/websocket\\\" \\\\\"},{\"line\":91,\"text\":\" \\\"node-red.vpn.gram1.ru:/comms\\\" \\\\\"},{\"line\":92,\"text\":\" \\\"syncthing.vpn.gram1.ru:/rest/events/disk\\\" \\\\\"},{\"line\":93,\"text\":\" \\\"grafana.vpn.gram1.ru:/api/live/ws\\\" \\\\\"},{\"line\":94,\"text\":\" \\\"n8n.vpn.gram1.ru:/rest/push\\\"\"},{\"line\":166,\"text\":\" ssh debian@$EDGE \\\"echo EDGE_BACKUP_CONTAINERS; sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -Ei 'kopia|backup|rclone|restic' || true; echo KOPIA_STACK_FILES; sudo find /opt/stacks/kopia -maxdepth 3 -type f -printf '%p\\\\n' 2>/dev/null | sort | sed -n '1,100p' || true; echo POSSIBLE_RCLONE_MAILRU_CONFIGS; sudo find /root /home /opt -maxdepth 5 -type f \\\\\\\\( -name '[SENSITIVE_FILE]' -o -name '*rclone*' -o -iname '*mailru*' -o -iname '*mail.ru*' \\\\\\\\) -printf '%p\\\\n' 2>/dev/null | sed -n '1,100p' || true; echo BACKUP_ROUTE; curl -sk --resolve backup.gram1.ru:443:$EDGE -o /tmp/backup_767.html -w 'backup.gram1.ru HTTP=%{http_code}\\\\n' https://backup.gram1.ru/ || true\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782981212367908716,\"path\":\"/root/767_deep_tail_and_regression_audit.sh\",\"sha256\":\"f0178b9f5a0b4e8ea435ee44079bd942fb555785d2d439f22921d5471b8211c4\",\"size\":14071,\"uid\":0},\"path\":\"/root/767_deep_tail_and_regression_audit.sh\"},{\"lines\":[{\"line\":28,\"text\":\" direct_host=$(curl -sk -H 'Host: homeassistant.vpn.gram1.ru' -o /tmp/ha_direct_host_755.html -w \\\"%{http_code}\\\" http://[PRIVATE_IP]:8123/ || true)\"},{\"line\":29,\"text\":\" route=$(curl -sk --resolve \\\"homeassistant.vpn.gram1.ru:443:[PRIVATE_IP]\\\" -o /tmp/ha_route_755.html -w \\\"%{http_code}\\\" https://homeassistant.vpn.gram1.ru/ || true)\"},{\"line\":30,\"text\":\" api=$(curl -sk --resolve \\\"homeassistant.vpn.gram1.ru:443:[PRIVATE_IP]\\\" -o /tmp/ha_api_755.html -w \\\"%{http_code}\\\" https://homeassistant.vpn.gram1.ru/api/ || true)\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782977981241501248,\"path\":\"/root/755_homeassistant_route_postcheck.sh\",\"sha256\":\"f95cdf9c12464e399aa9e04a2608be5b20c3291108ea74e9d6ae9ed2198face5\",\"size\":3006,\"uid\":0},\"path\":\"/root/755_homeassistant_route_postcheck.sh\"},{\"lines\":[{\"line\":151,\"text\":\"searchdomain: gram1.ru\"},{\"line\":172,\"text\":\"searchdomain: gram1.ru\"},{\"line\":191,\"text\":\"searchdomain: gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1781514937993674718,\"path\":\"/root/backup-inventory-20260615T091534Z.txt\",\"sha256\":\"6ee806b8d23a9cfb07d589940aeff1dcd8a5417e3a181b359ec9f9d96e7a1a2b\",\"size\":7780,\"uid\":0},\"path\":\"/root/backup-inventory-20260615T091534Z.txt\"},{\"lines\":[{\"line\":3,\"text\":\"SOURCE_HOST=pve01.gram1.ru\"},{\"line\":5,\"text\":\"REMOTE_HOST=core-apps.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1784612726861618653,\"path\":\"/root/CR0019-gitea-runtime-bootstrap-v2.txt\",\"sha256\":\"d9edf6edd1e00b7ba56967af20360a00ec1e42cd29d73ba68cc23fe9092d79b4\",\"size\":1161,\"uid\":0},\"path\":\"/root/CR0019-gitea-runtime-bootstrap-v2.txt\"},{\"lines\":[{\"line\":3,\"text\":\"generator_host=pve01.gram1.ru\"},{\"line\":29,\"text\":\"pve01.gram1.ru\"},{\"line\":91,\"text\":\"search netbird.selfhosted gram1.ru\"},{\"line\":93,\"text\":\"--- gram1.ru ---\"},{\"line\":94,\"text\":\"95.84.154.183 STREAM gram1.ru\"},{\"line\":97,\"text\":\"--- nc.gram1.ru ---\"},{\"line\":98,\"text\":\"[PRIVATE_IP] STREAM nc.gram1.ru\"},{\"line\":101,\"text\":\"--- git.gram1.ru ---\"},{\"line\":102,\"text\":\"[PRIVATE_IP] STREAM git.gram1.ru\"},{\"line\":105,\"text\":\"--- home.gram1.ru ---\"},{\"line\":106,\"text\":\"[PRIVATE_IP] STREAM home.gram1.ru\"},{\"line\":109,\"text\":\"--- checks.vpn.gram1.ru ---\"},{\"line\":110,\"text\":\"95.84.154.183 STREAM checks.vpn.gram1.ru\"},{\"line\":113,\"text\":\"--- pve01.vpn.gram1.ru ---\"},{\"line\":114,\"text\":\"100.100.131.41 STREAM pve01.vpn.gram1.ru\"},{\"line\":117,\"text\":\"--- pve02.vpn.gram1.ru ---\"},{\"line\":118,\"text\":\"100.100.7.2 STREAM pve02.vpn.gram1.ru\"},{\"line\":121,\"text\":\"--- pve03.vpn.gram1.ru ---\"},{\"line\":122,\"text\":\"100.100.34.141 STREAM pve03.vpn.gram1.ru\"},{\"line\":131,\"text\":\"node_hostname=pve01.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782243274715431566,\"path\":\"/root/homelab_cluster_audit_supplement_v2_20260623T193322Z.txt\",\"sha256\":\"fa2033eeedd323f766daad3f13969bf63a0c3d86705cbe70c884692ef96ba9c8\",\"size\":305483,\"uid\":0},\"path\":\"/root/homelab_cluster_audit_supplement_v2_20260623T193322Z.txt\"},{\"lines\":[{\"line\":6,\"text\":\"NETBOX_URL=https://netbox.vpn.gram1.ru\"},{\"line\":10,\"text\":\"PROMETHEUS_URL=https://prometheus.vpn.gram1.ru\"},{\"line\":11,\"text\":\"ALERTMANAGER_ENDPOINT=https://alertmanager.vpn.gram1.ru/api/v2/alerts\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1782658119627158427,\"path\":\"/root/.homelab-strict100-gates.env\",\"sha256\":\"26c8fe9a5b14f60ef490332d8e6f2846ff46b63974ad589fc1643520c210444e\",\"size\":849,\"uid\":0},\"path\":\"/root/.homelab-strict100-gates.env\"},{\"lines\":[{\"line\":19,\"text\":\" ssh debian@[PRIVATE_IP] \\\"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^vaultwarden' || true; echo EDGE_MOUNTS; sudo docker inspect vaultwarden --format '{{range .Mounts}}{{println .Source}}{{end}}' 2>/dev/null | sort -u || true; curl -sk -H 'Host: vault.gram1.ru' -o /tmp/edge_vaultwarden_738.html -w 'EDGE_VAULT_LOCAL=%{http_code}\\\\n' http://127.0.0.1:8083/ || true\\\"\"},{\"line\":43,\"text\":\" direct=$(curl -sk -H 'Host: vault.gram1.ru' -o /tmp/vaultwarden_direct_738.html -w \\\"%{http_code}\\\" http://[PRIVATE_IP]:8083/ || true)\"},{\"line\":44,\"text\":\" npm=$(ssh debian@[PRIVATE_IP] \\\"sudo docker exec npmplus sh -lc \\\\\\\"curl -sk -H 'Host: vault.gram1.ru' -o /tmp/vaultwarden_738.html -w '%{http_code}' http://[PRIVATE_IP]:8083/ || true\\\\\\\"\\\" || true)\"},{\"line\":68,\"text\":\" code=$(curl -sk --resolve \\\"vault.gram1.ru:443:[PRIVATE_IP]\\\" -o /tmp/vaultwarden_route_738.html -w \\\"%{http_code}\\\" \\\"https://vault.gram1.ru/\\\" || true)\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782974510774530466,\"path\":\"/root/738_vaultwarden_cutover.sh\",\"sha256\":\"b69ccf642bda68d082fa70693ed409a417a0fb5dfcb939ea448f80cb666fbb78\",\"size\":6307,\"uid\":0},\"path\":\"/root/738_vaultwarden_cutover.sh\"},{\"lines\":[{\"line\":567,\"text\":\" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783002384670531904,\"path\":\"/root/771j_crowdsec_capi_via_cloudflare_warp_proxy.sh\",\"sha256\":\"502198e7af3511c501f1b744037b71f22b04bb58fd95b526e0a499ee4ef92e1a\",\"size\":24487,\"uid\":0},\"path\":\"/root/771j_crowdsec_capi_via_cloudflare_warp_proxy.sh\"},{\"lines\":[{\"line\":21,\"text\":\" ssh debian@[PRIVATE_IP] \\\"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^netbox' || true; curl -sk -H 'Host: netbox.vpn.gram1.ru' -o /tmp/edge_netbox_735.html -w 'EDGE_NETBOX_LOCAL=%{http_code}\\\\n' http://127.0.0.1:8000/ || true\\\"\"},{\"line\":48,\"text\":\" code=\\\\$(curl -sk -H \\\\\\\"Host: netbox.vpn.gram1.ru\\\\\\\" -o /tmp/netbox_target_735.html -w \\\\\\\"%{http_code}\\\\\\\" http://127.0.0.1:8000/ || true)\"},{\"line\":77,\"text\":\" ssh debian@[PRIVATE_IP] \\\"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^netbox' || true; curl -sk --resolve 'netbox.vpn.gram1.ru:443:[PRIVATE_IP]' -o /tmp/netbox_edge_after_735.html -w 'EDGE_ROUTE_NETBOX=%{http_code}\\\\n' https://netbox.vpn.gram1.ru/ || true\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782973982388519764,\"path\":\"/root/735_netbox_target_diagnose_pre_route.sh\",\"sha256\":\"2cdb82899800d7f994212654ab72c60d827e8e7a9f128b6219a7edce69460603\",\"size\":3991,\"uid\":0},\"path\":\"/root/735_netbox_target_diagnose_pre_route.sh\"},{\"lines\":[{\"line\":569,\"text\":\" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1783004642823028448,\"path\":\"/root/771k_fix_warp_register_or_clean.sh\",\"sha256\":\"7d28d00b3be2144960414c0657091de0e04ce5260e4e945ad56cddc3d4fd3a4b\",\"size\":25126,\"uid\":0},\"path\":\"/root/771k_fix_warp_register_or_clean.sh\"},{\"lines\":[{\"line\":40,\"text\":\" ssh debian@[PRIVATE_IP] \\\"code=\\\\$(curl -sk --resolve 'photos.gram1.ru:443:[PRIVATE_IP]' -o /tmp/immich_edge_746.html -w '%{http_code}' https://photos.gram1.ru/ || true); title=\\\\$(grep -Eio '<title>[^<]+' /tmp/immich_edge_746.html 2>/dev/null | head -1 | sed 's/<title>//I' || true); echo EDGE_ROUTE_PHOTOS=\\\\$code TITLE=\\\\$title; curl -sk -H 'Host: photos.gram1.ru' -o /tmp/immich_local_746.html -w 'EDGE_LOCAL_2283=%{http_code}\\\\n' http://127.0.0.1:2283/ || true\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782975610198588794,\"path\":\"/root/746_immich_preflight_readonly.sh\",\"sha256\":\"b23a999f9338a84f6523b1fde2c609be2e5fce909cea8f5c3150315f8a2117c2\",\"size\":3257,\"uid\":0},\"path\":\"/root/746_immich_preflight_readonly.sh\"},{\"lines\":[{\"line\":25,\"text\":\" pve_up=$(curl -sk -H 'Host: uptime.gram1.ru' -o /tmp/pve_up_721.html -w \\\"%{http_code}\\\" http://[PRIVATE_IP]:3001/ || true)\"},{\"line\":26,\"text\":\" pve_hc=$(curl -sk -H 'Host: checks.vpn.gram1.ru' -o /tmp/pve_hc_721.html -w \\\"%{http_code}\\\" http://[PRIVATE_IP]:8015/ || true)\"},{\"line\":27,\"text\":\" edge_up=$(ssh debian@[PRIVATE_IP] \\\"curl -sk -H 'Host: uptime.gram1.ru' -o /tmp/edge_up_721.html -w '%{http_code}' http://[PRIVATE_IP]:3001/ || true\\\")\"},{\"line\":28,\"text\":\" edge_hc=$(ssh debian@[PRIVATE_IP] \\\"curl -sk -H 'Host: checks.vpn.gram1.ru' -o /tmp/edge_hc_721.html -w '%{http_code}' http://[PRIVATE_IP]:8015/ || true\\\")\"},{\"line\":29,\"text\":\" npm_up=$(ssh debian@[PRIVATE_IP] \\\"sudo docker exec npmplus sh -lc \\\\\\\"curl -sk -H 'Host: uptime.gram1.ru' -o /tmp/npm_up_721.html -w '%{http_code}' http://[PRIVATE_IP]:3001/ || true\\\\\\\"\\\" || true)\"},{\"line\":30,\"text\":\" npm_hc=$(ssh debian@[PRIVATE_IP] \\\"sudo docker exec npmplus sh -lc \\\\\\\"curl -sk -H 'Host: checks.vpn.gram1.ru' -o /tmp/npm_hc_721.html -w '%{http_code}' http://[PRIVATE_IP]:8015/ || true\\\\\\\"\\\" || true)\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782969893522720935,\"path\":\"/root/721_uptime_healthchecks_npmplus_path_precheck.sh\",\"sha256\":\"5cd54765f47fe5b6a482fdb728b7a48f82c7ec488649485b1952ffc28161d352\",\"size\":3757,\"uid\":0},\"path\":\"/root/721_uptime_healthchecks_npmplus_path_precheck.sh\"},{\"lines\":[{\"line\":6,\"text\":\"EXPECTED_HOST=\\\"pve01.gram1.ru\\\"\"},{\"line\":173,\"text\":\" printf 'HOST|pve01.gram1.ru|root|local\\\\n'\"},{\"line\":174,\"text\":\" printf 'HOST|pve02.gram1.ru|root|cluster-node\\\\n'\"},{\"line\":175,\"text\":\" printf 'HOST|pve03.gram1.ru|root|cluster-node\\\\n'\"},{\"line\":176,\"text\":\" printf 'HOST|edge-vm.gram1.ru|debian|sudo-n\\\\n'\"},{\"line\":177,\"text\":\" printf 'HOST|core-apps.gram1.ru|debian|sudo-n\\\\n'\"},{\"line\":178,\"text\":\" printf 'HOST|monitoring.gram1.ru|debian|sudo-n\\\\n'\"},{\"line\":179,\"text\":\" printf 'HOST|cluster-admin.gram1.ru|debian|sudo-n\\\\n'\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o750\",\"mtime_ns\":1784152143518174818,\"path\":\"/root/homelab-ops-bootstrap-audit-v1.sh\",\"sha256\":\"1627933aae4acec993026dc1b765cd1d497a9aeae21cc55f829c219b5b48d949\",\"size\":8452,\"uid\":0},\"path\":\"/root/homelab-ops-bootstrap-audit-v1.sh\"}],\"fqdn\":\"pve01.gram1.ru\",\"hostname\":\"pve01\",\"log_summaries\":{},\"log_summary_count\":0,\"source_inventory\":{\"extension_counts\":{\".20260710t080231z\":1,\".20260721t110932z\":1,\".20260721t111219z\":1,\".bak\":3,\".bak-20260626t172508z-sec02-4-to-3\":2,\".bak-20260626t172523z-sec03-3-to-2\":2,\".bak-20260626t172535z-sec04-2-to-1\":2,\".bak-20260626t172547z-sec05-1-to-0\":2,\".bak-20260709t085129z\":1,\".bak-20260709t100252z\":1,\".bak-20260709t102350z\":1,\".bak-20260709t121314z\":1,\".bak-20260709t124213z\":1,\".bak-20260709t160119z\":1,\".bak-20260709t161731z\":1,\".bak-20260722t212606z\":1,\".bak-20260722t212804z\":1,\".bak-chunkall-20260710t011410z\":7,\".bak-cluster-admin-backup-webpanel-20260709t051329z\":2,\".bak-cluster-admin-hardgate-20260709t044746z\":2,\".bak-docker-check-v2-20260710t050044z\":1,\".bak-dual-read-20260711t051924z\":2,\".bak-final-tailfix-20260707t182128z\":1,\".bak-fixed-v2-20260707t165551z\":1,\".bak-flat-read-20260711t052854z\":1,\".bak-flat-read-v2-20260711t053129z\":1,\".bak-global-chunkonly-20260710t011036z\":1,\".bak-isolated-ip-20260710t044331z\":1,\".bak-nocycle-20260707t184739z\":1,\".bak-owner-fix-20260707t184249z\":1,\".bak-pgdump-fix-20260710t224544z\":1,\".bak-short-canary-20260711t053555z\":1,\".bak-short-flat-20260711t054441z\":2,\".bak-short-flat-20260711t060400z\":2,\".bak-short-flat-20260711t061345z\":1,\".bak-short-flat-20260711t062544z\":1,\".bak-short-flat-20260711t063643z\":1,\".bak-short-flat-20260711t064757z\":1,\".bak-tailfix-20260707t180537z\":1,\".broken-20260730t153645z\":1,\".core\":1,\".csv\":2,\".env\":4,\".js\":1,\".json\":628,\".log\":14,\".md\":1939,\".py\":12,\".real-20260624t131702z\":1,\".realnet-20260624t140509z\":1,\".service\":106,\".sh\":11,\".state\":2,\".timer\":97,\".toml\":1,\".tsv\":57,\".txt\":1015,\".yaml\":51,\".yml\":12,\"<none>\":146},\"framework_markers\":[{\"marker\":\"Docker Compose\",\"path\":\"source/01_homelab-configs-worktree/stacks/edge/gotify/compose.yaml\"}],\"largest_files\":[{\"bytes\":2153064,\"path\":\"source/snapshots_manifest.json\"},{\"bytes\":528351,\"path\":\"source/01_homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md\"},{\"bytes\":504281,\"path\":\"source/01_homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md\"},{\"bytes\":250691,\"path\":\"source/01_homelab-configs-worktree/reports/existing-backup-mechanism-deep-audit-rerun-20260622.md\"},{\"bytes\":171784,\"path\":\"source/03_operations/p2-07-health-surface-readability-status-inventory-20260625T231646Z.json\"},{\"bytes\":171784,\"path\":\"source/02_docs/operations/p2-07-health-surface-readability-status-inventory-20260625T231646Z.json\"},{\"bytes\":171784,\"path\":\"source/01_homelab-configs-worktree/docs/operations/p2-07-health-surface-readability-status-inventory-20260625T231646Z.json\"},{\"bytes\":106031,\"path\":\"source/02_docs/99-current-state-summary.md\"},{\"bytes\":106031,\"path\":\"source/01_homelab-configs-worktree/docs/99-current-state-summary.md\"},{\"bytes\":103668,\"path\":\"source/03_operations/p2-23-health-surface-operator-response-intake-readiness-close-20260626T023851Z.json\"},{\"bytes\":103668,\"path\":\"source/02_docs/operations/p2-23-health-surface-operator-response-intake-readiness-close-20260626T023851Z.json\"},{\"bytes\":103668,\"path\":\"source/01_homelab-configs-worktree/docs/operations/p2-23-health-surface-operator-response-intake-readiness-close-20260626T023851Z.json\"},{\"bytes\":100600,\"path\":\"source/03_operations/p2-22-health-surface-final-operator-handoff-bundle-close-20260626T023210Z.json\"},{\"bytes\":100600,\"path\":\"source/02_docs/operations/p2-22-health-surface-final-operator-handoff-bundle-close-20260626T023210Z.json\"},{\"bytes\":100600,\"path\":\"source/01_homelab-configs-worktree/docs/operations/p2-22-health-surface-final-operator-handoff-bundle-close-20260626T023210Z.json\"},{\"bytes\":89904,\"path\":\"source/03_operations/p0-alert-routing-preflight-20260625T050439Z.md\"},{\"bytes\":89904,\"path\":\"source/02_docs/operations/p0-alert-routing-preflight-20260625T050439Z.md\"},{\"bytes\":89904,\"path\":\"source/01_homelab-configs-worktree/docs/operations/p0-alert-routing-preflight-20260625T050439Z.md\"},{\"bytes\":85971,\"path\":\"source/04_homelab-desired-state/sbin/homelab-command-adapter\"},{\"bytes\":85278,\"path\":\"source/03_operations/p0-restore-drill-matrix-quality-offhost-20260624T183931Z.md\"},{\"bytes\":85278,\"path\":\"source/02_docs/operations/p0-restore-drill-matrix-quality-offhost-20260624T183931Z.md\"},{\"bytes\":85278,\"path\":\"source/01_homelab-configs-worktree/docs/operations/p0-restore-drill-matrix-quality-offhost-20260624T183931Z.md\"},{\"bytes\":85189,\"path\":\"source/03_operations/homelab-cluster-context-live.md\"},{\"bytes\":85189,\"path\":\"source/02_docs/operations/homelab-cluster-context-live.md\"},{\"bytes\":85189,\"path\":\"source/01_homelab-configs-worktree/docs/operations/homelab-cluster-context-live.md\"},{\"bytes\":84145,\"path\":\"source/03_operations/p0-edge-cleanup-preflight-20260624T192250Z.md\"},{\"bytes\":84145,\"path\":\"source/02_docs/operations/p0-edge-cleanup-preflight-20260624T192250Z.md\"},{\"bytes\":84145,\"path\":\"source/01_homelab-configs-worktree/docs/operations/p0-edge-cleanup-preflight-20260624T192250Z.md\"},{\"bytes\":81129,\"path\":\"source/01_homelab-configs-worktree/reports/homelab-service-inventory-ru-detailed-20260618T225817Z.txt\"},{\"bytes\":75334,\"path\":\"source/03_operations/p2-05-crowdsec-lapi-monitoring-coverage-inventory-20260625T225709Z.json\"}],\"packages\":[],\"stored_bytes\":25135855,\"stored_files\":4163},\"source_snapshots\":[{\"source_root\":\"/root/homelab-configs-worktree\",\"stored_bytes\":9347306,\"stored_files\":1322,\"truncated\":false},{\"source_root\":\"/root/homelab-configs-worktree/docs\",\"stored_bytes\":6362627,\"stored_files\":764,\"truncated\":false},{\"source_root\":\"/root/homelab-configs-worktree/docs/operations\",\"stored_bytes\":5969079,\"stored_files\":699,\"truncated\":false},{\"source_root\":\"/srv/homelab-desired-state\",\"stored_bytes\":1274899,\"stored_files\":957,\"truncated\":false},{\"source_root\":\"/srv/homelab-desired-state/health\",\"stored_bytes\":231477,\"stored_files\":493,\"truncated\":false}],\"sqlite_database_count\":0,\"systemd_service_count\":12,\"webserver_probes\":{}},{\"candidate_source_roots\":[{\"markers\":[],\"path\":\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"reasons\":[\"domain_match_parent\"],\"score\":2},{\"markers\":[],\"path\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"reasons\":[\"domain_match_parent\"],\"score\":2},{\"markers\":[],\"path\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"reasons\":[\"domain_match_parent\"],\"score\":1},{\"markers\":[],\"path\":\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"reasons\":[\"domain_match_parent\"],\"score\":1},{\"markers\":[],\"path\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"reasons\":[\"domain_match_parent\"],\"score\":1},{\"markers\":[],\"path\":\"/srv/homelab-desired-state/routerguard-tuya\",\"reasons\":[\"domain_match_parent\"],\"score\":1}],\"certificate_reference_count\":0,\"container_count\":0,\"container_inventory\":{},\"deployment_evidence\":[{\"line\":22,\"path\":\"systemd/units/kmod-static-nodes.service.cat.txt\",\"text\":\"ExecStart=/usr/bin/kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/static-nodes.conf\"},{\"line\":1,\"path\":\"systemd/units/kmod-static-nodes.service.show.txt\",\"text\":\"ExecStart={ path=/usr/bin/kmod ; argv[]=/usr/bin/kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/static-nodes.conf ; ignore_errors=no ; start_time=[Tue 2026-07-28 14:05:03 MSK] ; stop_time=[Tue 2026-07-28 14:05:03 MSK] ; pid=304 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/kmod-static-nodes.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":8,\"path\":\"systemd/units/prometheus-node-exporter-apt.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/share/prometheus-node-exporter-collectors/apt_info.py | sponge /var/lib/prometheus/node-exporter/apt.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-apt.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/apt_info.py | sponge /var/lib/prometheus/node-exporter/apt.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:35:25 MSK] ; stop_time=[Fri 2026-07-31 10:35:26 MSK] ; pid=1765199 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-apt.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":10,\"path\":\"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/bin/ipmitool sensor | /usr/share/prometheus-node-exporter-collectors/ipmitool | sponge /var/lib/prometheus/node-exporter/ipmitool_sensor.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/bin/ipmitool sensor | /usr/share/prometheus-node-exporter-collectors/ipmitool | sponge /var/lib/prometheus/node-exporter/ipmitool_sensor.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":9,\"path\":\"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/share/prometheus-node-exporter-collectors/mellanox_hca_temp | sponge /var/lib/prometheus/node-exporter/mellanox_hca_temp.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/mellanox_hca_temp | sponge /var/lib/prometheus/node-exporter/mellanox_hca_temp.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":8,\"path\":\"systemd/units/prometheus-node-exporter-nvme.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/share/prometheus-node-exporter-collectors/nvme_metrics.py | sponge /var/lib/prometheus/node-exporter/nvme.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-nvme.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/nvme_metrics.py | sponge /var/lib/prometheus/node-exporter/nvme.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:36:25 MSK] ; stop_time=[Fri 2026-07-31 10:36:25 MSK] ; pid=1765583 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-nvme.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":8,\"path\":\"systemd/units/prometheus-node-exporter-smartmon.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/share/prometheus-node-exporter-collectors/smartmon.sh | sponge /var/lib/prometheus/node-exporter/smartmon.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-smartmon.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/smartmon.sh | sponge /var/lib/prometheus/node-exporter/smartmon.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:37:22 MSK] ; stop_time=[Fri 2026-07-31 10:37:23 MSK] ; pid=1765901 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-smartmon.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":9,\"path\":\"systemd/units/prometheus-node-exporter.service.cat.txt\",\"text\":\"EnvironmentFile=/etc/default/prometheus-node-exporter\"},{\"line\":10,\"path\":\"systemd/units/prometheus-node-exporter.service.cat.txt\",\"text\":\"ExecStart=/usr/bin/prometheus-node-exporter $ARGS\"},{\"line\":20,\"path\":\"systemd/units/prometheus-node-exporter.service.cat.txt\",\"text\":\"ExecStart=\"},{\"line\":21,\"path\":\"systemd/units/prometheus-node-exporter.service.cat.txt\",\"text\":\"ExecStart=/usr/bin/prometheus-node-exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter.service.show.txt\",\"text\":\"ExecStart={ path=/usr/bin/prometheus-node-exporter ; argv[]=/usr/bin/prometheus-node-exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector ; ignore_errors=no ; start_time=[Tue 2026-07-28 14:05:06 MSK] ; stop_time=[n/a] ; pid=725 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter.service.show.txt\",\"text\":\"EnvironmentFiles=/etc/default/prometheus-node-exporter (ignore_errors=no)\"},{\"line\":3,\"path\":\"systemd/units/prometheus-node-exporter.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":10,\"path\":\"systemd/units/proxmox-boot-cleanup.service.cat.txt\",\"text\":\"ExecStart=/usr/sbin/proxmox-boot-tool kernel unpin --next-boot\"},{\"line\":11,\"path\":\"systemd/units/proxmox-boot-cleanup.service.cat.txt\",\"text\":\"ExecStart=/usr/sbin/proxmox-boot-tool refresh\"},{\"line\":1,\"path\":\"systemd/units/proxmox-boot-cleanup.service.show.txt\",\"text\":\"ExecStart={ path=/usr/sbin/proxmox-boot-tool ; argv[]=/usr/sbin/proxmox-boot-tool kernel unpin --next-boot ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/proxmox-boot-cleanup.service.show.txt\",\"text\":\"ExecStart={ path=/usr/sbin/proxmox-boot-tool ; argv[]=/usr/sbin/proxmox-boot-tool refresh ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":3,\"path\":\"systemd/units/proxmox-boot-cleanup.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":24,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev-early.service.cat.txt\",\"text\":\"ExecStart=systemd-tmpfiles --prefix=/dev --create --boot --graceful\"},{\"line\":1,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev-early.service.show.txt\",\"text\":\"ExecStart={ path=systemd-tmpfiles ; argv[]=systemd-tmpfiles --prefix=/dev --create --boot --graceful ; ignore_errors=no ; start_time=[Tue 2026-07-28 14:05:03 MSK] ; stop_time=[Tue 2026-07-28 14:05:03 MSK] ; pid=323 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev-early.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":25,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev.service.cat.txt\",\"text\":\"ExecStart=systemd-tmpfiles --prefix=/dev --create --boot\"},{\"line\":1,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev.service.show.txt\",\"text\":\"ExecStart={ path=systemd-tmpfiles ; argv[]=systemd-tmpfiles --prefix=/dev --create --boot ; ignore_errors=no ; start_time=[Tue 2026-07-28 14:05:03 MSK] ; stop_time=[Tue 2026-07-28 14:05:04 MSK] ; pid=337 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":15,\"path\":\"source/01_forum-prod-diag-20260629T032514Z/cloudinit-network.txt\",\"text\":\"- 'gram1.ru'\"},{\"line\":4,\"path\":\"source/01_forum-prod-diag-20260629T032514Z/cloudinit-user.txt\",\"text\":\"fqdn: forum-prod.gram1.ru\"},{\"line\":1,\"path\":\"source/02_forum-prod-os-baseline-20260629T034119Z/ops-proof.txt\",\"text\":\"forum-prod.gram1.ru\"},{\"line\":259,\"path\":\"source/02_forum-prod-os-baseline-20260629T034119Z/root-baseline.txt\",\"text\":\"forum-prod.gram1.ru\"},{\"line\":1,\"path\":\"source/03_forum-prod-offline-fix2-20260629T033832Z/ssh-proof.txt\",\"text\":\"forum-prod.gram1.ru\"},{\"line\":18,\"path\":\"source/04_forum-prod-recover-20260629T025511Z/qm-config.txt\",\"text\":\"searchdomain: gram1.ru\"},{\"line\":18,\"path\":\"source/05_forum-prod-recreate-20260629T030810Z/qm-config.txt\",\"text\":\"searchdomain: gram1.ru\"}],\"detected_frameworks\":[],\"directory\":\"hosts/pve02\",\"domain_match_count\":16,\"domain_matches\":[{\"lines\":[{\"line\":13,\"text\":\" \\\"pve01.gram1.ru\\\": \\\"pve01\\\",\"},{\"line\":14,\"text\":\" \\\"pve02.gram1.ru\\\": \\\"pve02\\\",\"},{\"line\":15,\"text\":\" \\\"pve03.gram1.ru\\\": \\\"pve03\\\",\"},{\"line\":16,\"text\":\" \\\"edge-vm.gram1.ru\\\": \\\"edge\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o750\",\"mtime_ns\":1784020546000000000,\"path\":\"/opt/cluster-admin-probe-target/responder.py\",\"sha256\":\"3e7585050d734ef0e3ccec7f98bde3626db31a6fd05e60dfb6f9976b371dea3c\",\"size\":2648,\"uid\":0},\"path\":\"/opt/cluster-admin-probe-target/responder.py\"},{\"lines\":[{\"line\":6,\"text\":\"case \\\"$HOST\\\" in pve02.gram1.ru|pve02) ;; *) echo REMOTE_HOST_CHECK_FAILED=\\\"$HOST\\\"; exit 2;; esac\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1783806967597496107,\"path\":\"/srv/homelab-desired-state/routerguard-tuya/routerguard-hard-power-cycle\",\"sha256\":\"3e0e48c055264fffa741fa9c0ef2c973081cc9c592a0ec7866d068b30edc30d6\",\"size\":2264,\"uid\":0},\"path\":\"/srv/homelab-desired-state/routerguard-tuya/routerguard-hard-power-cycle\"},{\"lines\":[{\"line\":2,\"text\":\"remote_host=pve02.gram1.ru\"},{\"line\":9,\"text\":\"dns2.gram1.ru\"},{\"line\":69,\"text\":\"-rw-------|root:root|2026-06-15 21:58|/opt/AdGuardHome/AdGuardHome.yaml.before-backup.gram1.ru-20260616T033835Z\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782259800407032864,\"path\":\"/root/dns2-AdGuardHome-diagnostic-20260624T000953Z.txt\",\"sha256\":\"198c31f7f56ba91077e535e3f06410e720ab3dbc3e9f1c15ef4feb79e6c54e49\",\"size\":3288,\"uid\":0},\"path\":\"/root/dns2-AdGuardHome-diagnostic-20260624T000953Z.txt\"},{\"lines\":[{\"line\":6,\"text\":\"DOMAINS=\\\"dozzle.gram1.ru paper.gram1.ru memos.gram1.ru photos.gram1.ru auth.gram1.ru\\\"\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o700\",\"mtime_ns\":1781560689562602745,\"path\":\"/root/ag-add-new-service-rewrites.sh\",\"sha256\":\"77b2f72cc6887898c31ded5a6932b1ed4f2e8d386519f40e2ece7073a8ebe694\",\"size\":1648,\"uid\":0},\"path\":\"/root/ag-add-new-service-rewrites.sh\"},{\"lines\":[{\"line\":3,\"text\":\"pve02.gram1.ru\"},{\"line\":63,\"text\":\"[PRIVATE_IP] pve01.gram1.ru pve01\"},{\"line\":64,\"text\":\"[PRIVATE_IP] pve02.gram1.ru pve02\"},{\"line\":65,\"text\":\"[PRIVATE_IP] pve03.gram1.ru pve03\"},{\"line\":69,\"text\":\"search netbird.selfhosted gram1.ru\"},{\"line\":201,\"text\":\"searchdomain: gram1.ru\"},{\"line\":229,\"text\":\"searchdomain: gram1.ru\"},{\"line\":248,\"text\":\"searchdomain: gram1.ru\"},{\"line\":262,\"text\":\"searchdomain: gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782753340842274201,\"path\":\"/root/cluster-audit-20260629T201245/02_pve02_audit.txt\",\"sha256\":\"1fd6205a7f0cbc9097fb90cb60b65c17c0458ecf1d6dd9b03f630633a674f6cf\",\"size\":24786,\"uid\":0},\"path\":\"/root/cluster-audit-20260629T201245/02_pve02_audit.txt\"},{\"lines\":[{\"line\":13,\"text\":\"searchdomain: gram1.ru\"},{\"line\":18,\"text\":\"dns2.gram1.ru\"},{\"line\":36,\"text\":\"search gram1.ru\"},{\"line\":83,\"text\":\"/opt/AdGuardHome/AdGuardHome.yaml.before-backup.gram1.ru-20260616T033835Z\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782754881727248578,\"path\":\"/root/cluster-audit-20260629T201245/16_pve02_ct_111_audit.txt\",\"sha256\":\"38d3eaf0f8423e2fa997c6c588318525638ae7cd13db876590f43c1ec31d3b98\",\"size\":4758,\"uid\":0},\"path\":\"/root/cluster-audit-20260629T201245/16_pve02_ct_111_audit.txt\"},{\"lines\":[{\"line\":13,\"text\":\"searchdomain: gram1.ru\"},{\"line\":18,\"text\":\"unbound2.gram1.ru\"},{\"line\":36,\"text\":\"search gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782754884344262178,\"path\":\"/root/cluster-audit-20260629T201245/16_pve02_ct_113_audit.txt\",\"sha256\":\"7373f92fc5820ee30981764a0aadeb55ae15205d62f7b1d10b5a35998861b25d\",\"size\":4843,\"uid\":0},\"path\":\"/root/cluster-audit-20260629T201245/16_pve02_ct_113_audit.txt\"},{\"lines\":[{\"line\":10,\"text\":\"[PRIVATE_IP],forum-prod.gram1.ru ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIfJmXrEKDwKx50N0gQn6DhOGNjAl46lA2vPrlW1c1IM\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784142417367697254,\"path\":\"[SENSITIVE_PATH] ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIfJmXrEKDwKx50N0gQn6DhOGNjAl46lA2vPrlW1c1IM\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784142517352899074,\"path\":\"[SENSITIVE_PATH] gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782701714548111338,\"path\":\"/root/evidence/forum-prod-recover-20260629T025511Z/qm-config.txt\",\"sha256\":\"276a07fee699041e6c1468c8bf8c712308b30e0cb49d724e11c6c02d493352ac\",\"size\":1373,\"uid\":0},\"path\":\"/root/evidence/forum-prod-recover-20260629T025511Z/qm-config.txt\"},{\"lines\":[{\"line\":259,\"text\":\"forum-prod.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782704555400405080,\"path\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z/root-baseline.txt\",\"sha256\":\"e348fee67be7c81a9a0de9979bc4a6a920fa004d8e11bd8b8f11d966c24b8c61\",\"size\":14409,\"uid\":0},\"path\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z/root-baseline.txt\"},{\"lines\":[{\"line\":1,\"text\":\"forum-prod.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782704556627411307,\"path\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z/ops-proof.txt\",\"sha256\":\"c01181e5db2ba4ee512b826b3203780337c755e568039f87f8a862b1ca81f48e\",\"size\":86,\"uid\":0},\"path\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z/ops-proof.txt\"},{\"lines\":[{\"line\":18,\"text\":\"searchdomain: gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782702507057056227,\"path\":\"/root/evidence/forum-prod-recreate-20260629T030810Z/qm-config.txt\",\"sha256\":\"b7fe1a7e6838b4a12c435a3a09e5915eba6f182d42a13385761beebd81cebd9e\",\"size\":3425,\"uid\":0},\"path\":\"/root/evidence/forum-prod-recreate-20260629T030810Z/qm-config.txt\"},{\"lines\":[{\"line\":1,\"text\":\"forum-prod.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782704328177251854,\"path\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z/ssh-proof.txt\",\"sha256\":\"d5ec41ddb54be604240e4201cf55f3d90f81dc26051d55bd161c4386ee2e2232\",\"size\":161,\"uid\":0},\"path\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z/ssh-proof.txt\"},{\"lines\":[{\"line\":4,\"text\":\"fqdn: forum-prod.gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782703517302135262,\"path\":\"/root/evidence/forum-prod-diag-20260629T032514Z/cloudinit-user.txt\",\"sha256\":\"aaeb24e5cf66792fd3143dcd0c3714e5877d81a3a5acb60608c97dadb67077ee\",\"size\":360,\"uid\":0},\"path\":\"/root/evidence/forum-prod-diag-20260629T032514Z/cloudinit-user.txt\"},{\"lines\":[{\"line\":15,\"text\":\" - 'gram1.ru'\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782703516506131218,\"path\":\"/root/evidence/forum-prod-diag-20260629T032514Z/cloudinit-network.txt\",\"sha256\":\"0dcc214f6dc501b413a3bbfd42372c160c020648782e44edde4c3e1f0ea8a63d\",\"size\":320,\"uid\":0},\"path\":\"/root/evidence/forum-prod-diag-20260629T032514Z/cloudinit-network.txt\"}],\"fqdn\":\"pve02.gram1.ru\",\"hostname\":\"pve02\",\"log_summaries\":{},\"log_summary_count\":0,\"source_inventory\":{\"extension_counts\":{\".err\":4,\".json\":2,\".txt\":11},\"framework_markers\":[],\"largest_files\":[{\"bytes\":14281,\"path\":\"source/02_forum-prod-os-baseline-20260629T034119Z/root-baseline.txt\"},{\"bytes\":8930,\"path\":\"source/snapshots_manifest.json\"},{\"bytes\":3425,\"path\":\"source/05_forum-prod-recreate-20260629T030810Z/qm-config.txt\"},{\"bytes\":1373,\"path\":\"source/04_forum-prod-recover-20260629T025511Z/qm-config.txt\"},{\"bytes\":370,\"path\":\"source/01_forum-prod-diag-20260629T032514Z/cloudinit-user.txt\"},{\"bytes\":320,\"path\":\"source/01_forum-prod-diag-20260629T032514Z/cloudinit-network.txt\"},{\"bytes\":162,\"path\":\"source/01_forum-prod-diag-20260629T032514Z/ping.txt\"},{\"bytes\":161,\"path\":\"source/03_forum-prod-offline-fix2-20260629T033832Z/ssh-proof.txt\"},{\"bytes\":86,\"path\":\"source/02_forum-prod-os-baseline-20260629T034119Z/ops-proof.txt\"},{\"bytes\":81,\"path\":\"source/03_forum-prod-offline-fix2-20260629T033832Z/ssh-proof.err\"},{\"bytes\":65,\"path\":\"source/05_forum-prod-recreate-20260629T030810Z/ssh-proof.err\"},{\"bytes\":65,\"path\":\"source/04_forum-prod-recover-20260629T025511Z/ssh-proof.err\"},{\"bytes\":3,\"path\":\"source/git_metadata.json\"},{\"bytes\":0,\"path\":\"source/05_forum-prod-recreate-20260629T030810Z/ssh-proof.txt\"},{\"bytes\":0,\"path\":\"source/04_forum-prod-recover-20260629T025511Z/ssh-proof.txt\"},{\"bytes\":0,\"path\":\"source/03_forum-prod-offline-fix2-20260629T033832Z/sshd-test.err\"},{\"bytes\":0,\"path\":\"source/02_forum-prod-os-baseline-20260629T034119Z/qga-ping.txt\"}],\"packages\":[],\"stored_bytes\":29322,\"stored_files\":17},\"source_snapshots\":[{\"source_root\":\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"stored_bytes\":852,\"stored_files\":3,\"truncated\":false},{\"source_root\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"stored_bytes\":14367,\"stored_files\":3,\"truncated\":false},{\"source_root\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"stored_bytes\":242,\"stored_files\":3,\"truncated\":false},{\"source_root\":\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"stored_bytes\":1438,\"stored_files\":3,\"truncated\":false},{\"source_root\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"stored_bytes\":3490,\"stored_files\":3,\"truncated\":false}],\"sqlite_database_count\":0,\"systemd_service_count\":10,\"webserver_probes\":{}},{\"candidate_source_roots\":[],\"certificate_reference_count\":0,\"container_count\":0,\"container_inventory\":{},\"deployment_evidence\":[{\"line\":22,\"path\":\"systemd/units/kmod-static-nodes.service.cat.txt\",\"text\":\"ExecStart=/usr/bin/kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/static-nodes.conf\"},{\"line\":1,\"path\":\"systemd/units/kmod-static-nodes.service.show.txt\",\"text\":\"ExecStart={ path=/usr/bin/kmod ; argv[]=/usr/bin/kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/static-nodes.conf ; ignore_errors=no ; start_time=[Mon 2026-04-13 22:38:05 MSK] ; stop_time=[Mon 2026-04-13 22:38:05 MSK] ; pid=360 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/kmod-static-nodes.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":8,\"path\":\"systemd/units/prometheus-node-exporter-apt.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/share/prometheus-node-exporter-collectors/apt_info.py | sponge /var/lib/prometheus/node-exporter/apt.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-apt.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/apt_info.py | sponge /var/lib/prometheus/node-exporter/apt.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:36:26 MSK] ; stop_time=[Fri 2026-07-31 10:36:27 MSK] ; pid=1039571 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-apt.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":10,\"path\":\"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/bin/ipmitool sensor | /usr/share/prometheus-node-exporter-collectors/ipmitool | sponge /var/lib/prometheus/node-exporter/ipmitool_sensor.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/bin/ipmitool sensor | /usr/share/prometheus-node-exporter-collectors/ipmitool | sponge /var/lib/prometheus/node-exporter/ipmitool_sensor.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":9,\"path\":\"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/share/prometheus-node-exporter-collectors/mellanox_hca_temp | sponge /var/lib/prometheus/node-exporter/mellanox_hca_temp.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/mellanox_hca_temp | sponge /var/lib/prometheus/node-exporter/mellanox_hca_temp.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":8,\"path\":\"systemd/units/prometheus-node-exporter-nvme.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/share/prometheus-node-exporter-collectors/nvme_metrics.py | sponge /var/lib/prometheus/node-exporter/nvme.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-nvme.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/nvme_metrics.py | sponge /var/lib/prometheus/node-exporter/nvme.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:36:26 MSK] ; stop_time=[Fri 2026-07-31 10:36:26 MSK] ; pid=1039574 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-nvme.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":8,\"path\":\"systemd/units/prometheus-node-exporter-smartmon.service.cat.txt\",\"text\":\"ExecStart=/bin/sh -o pipefail -c \\\"/usr/share/prometheus-node-exporter-collectors/smartmon.sh | sponge /var/lib/prometheus/node-exporter/smartmon.prom\\\"\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter-smartmon.service.show.txt\",\"text\":\"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/smartmon.sh | sponge /var/lib/prometheus/node-exporter/smartmon.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:36:26 MSK] ; stop_time=[Fri 2026-07-31 10:36:26 MSK] ; pid=1039577 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter-smartmon.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":9,\"path\":\"systemd/units/prometheus-node-exporter.service.cat.txt\",\"text\":\"EnvironmentFile=/etc/default/prometheus-node-exporter\"},{\"line\":10,\"path\":\"systemd/units/prometheus-node-exporter.service.cat.txt\",\"text\":\"ExecStart=/usr/bin/prometheus-node-exporter $ARGS\"},{\"line\":20,\"path\":\"systemd/units/prometheus-node-exporter.service.cat.txt\",\"text\":\"ExecStart=\"},{\"line\":21,\"path\":\"systemd/units/prometheus-node-exporter.service.cat.txt\",\"text\":\"ExecStart=/usr/bin/prometheus-node-exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector\"},{\"line\":1,\"path\":\"systemd/units/prometheus-node-exporter.service.show.txt\",\"text\":\"ExecStart={ path=/usr/bin/prometheus-node-exporter ; argv[]=/usr/bin/prometheus-node-exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector ; ignore_errors=no ; start_time=[Mon 2026-04-13 22:38:08 MSK] ; stop_time=[n/a] ; pid=805 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/prometheus-node-exporter.service.show.txt\",\"text\":\"EnvironmentFiles=/etc/default/prometheus-node-exporter (ignore_errors=no)\"},{\"line\":3,\"path\":\"systemd/units/prometheus-node-exporter.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":10,\"path\":\"systemd/units/proxmox-boot-cleanup.service.cat.txt\",\"text\":\"ExecStart=/usr/sbin/proxmox-boot-tool kernel unpin --next-boot\"},{\"line\":11,\"path\":\"systemd/units/proxmox-boot-cleanup.service.cat.txt\",\"text\":\"ExecStart=/usr/sbin/proxmox-boot-tool refresh\"},{\"line\":1,\"path\":\"systemd/units/proxmox-boot-cleanup.service.show.txt\",\"text\":\"ExecStart={ path=/usr/sbin/proxmox-boot-tool ; argv[]=/usr/sbin/proxmox-boot-tool kernel unpin --next-boot ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":2,\"path\":\"systemd/units/proxmox-boot-cleanup.service.show.txt\",\"text\":\"ExecStart={ path=/usr/sbin/proxmox-boot-tool ; argv[]=/usr/sbin/proxmox-boot-tool refresh ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }\"},{\"line\":3,\"path\":\"systemd/units/proxmox-boot-cleanup.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":24,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev-early.service.cat.txt\",\"text\":\"ExecStart=systemd-tmpfiles --prefix=/dev --create --boot --graceful\"},{\"line\":1,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev-early.service.show.txt\",\"text\":\"ExecStart={ path=systemd-tmpfiles ; argv[]=systemd-tmpfiles --prefix=/dev --create --boot --graceful ; ignore_errors=no ; start_time=[Mon 2026-04-13 22:38:05 MSK] ; stop_time=[Mon 2026-04-13 22:38:05 MSK] ; pid=382 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev-early.service.show.txt\",\"text\":\"WorkingDirectory=\"},{\"line\":25,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev.service.cat.txt\",\"text\":\"ExecStart=systemd-tmpfiles --prefix=/dev --create --boot\"},{\"line\":1,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev.service.show.txt\",\"text\":\"ExecStart={ path=systemd-tmpfiles ; argv[]=systemd-tmpfiles --prefix=/dev --create --boot ; ignore_errors=no ; start_time=[Mon 2026-04-13 22:38:05 MSK] ; stop_time=[Mon 2026-04-13 22:38:05 MSK] ; pid=392 ; code=exited ; status=0 }\"},{\"line\":2,\"path\":\"systemd/units/systemd-tmpfiles-setup-dev.service.show.txt\",\"text\":\"WorkingDirectory=\"}],\"detected_frameworks\":[],\"directory\":\"hosts/pve03\",\"domain_match_count\":6,\"domain_matches\":[{\"lines\":[{\"line\":13,\"text\":\" \\\"pve01.gram1.ru\\\": \\\"pve01\\\",\"},{\"line\":14,\"text\":\" \\\"pve02.gram1.ru\\\": \\\"pve02\\\",\"},{\"line\":15,\"text\":\" \\\"pve03.gram1.ru\\\": \\\"pve03\\\",\"},{\"line\":16,\"text\":\" \\\"edge-vm.gram1.ru\\\": \\\"edge\\\",\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o750\",\"mtime_ns\":1784020546000000000,\"path\":\"/opt/cluster-admin-probe-target/responder.py\",\"sha256\":\"3e7585050d734ef0e3ccec7f98bde3626db31a6fd05e60dfb6f9976b371dea3c\",\"size\":2648,\"uid\":0},\"path\":\"/opt/cluster-admin-probe-target/responder.py\"},{\"lines\":[{\"line\":17,\"text\":\"searchdomain: gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1781551729197506026,\"path\":\"/root/qm-130-config-before-resource-resize-20260615T192848Z.txt\",\"sha256\":\"d8322afb35c6cec30972916adeec6415460b57b1159093787d3bb95fe8aecf4c\",\"size\":710,\"uid\":0},\"path\":\"/root/qm-130-config-before-resource-resize-20260615T192848Z.txt\"},{\"lines\":[{\"line\":34,\"text\":\"searchdomain: gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1781515691185146730,\"path\":\"/root/run-pve03-manual-backups-20260615T092743Z.log\",\"sha256\":\"f7e62a23cfe0a28c2ec15c28fd74bb4801a3a1ba6eb403eb0409c105dc8fd601\",\"size\":4395,\"uid\":0},\"path\":\"/root/run-pve03-manual-backups-20260615T092743Z.log\"},{\"lines\":[{\"line\":61,\"text\":\"STATUS=\\\"OK\\\"; NOTES=\\\"none\\\"; timeout 90 ssh -o BatchMode=yes -o ConnectTimeout=30 -o ConnectionAttempts=1 debian@[PRIVATE_IP] 'sudo docker compose -f /opt/stacks/immich/docker-compose.yml stop >/tmp/recovery-stop-immich.log 2>&1 || true; if [ -d /opt/stacks/authentik ]; then cd /opt/stacks/authentik && sudo docker compose stop >/tmp/recovery-stop-authentik.log 2>&1 || true; fi; sudo docker ps --format \\\"{{.Names}} {{.Status}}\\\" | head -n 30; uptime; free -h' >/tmp/edge-ssh-recovery.log 2>&1; SSH_RECOVERY_RC=\\\"$?\\\"; sleep 20; PING_EDGE=\\\"$(ping -c 1 -W 2 [PRIVATE_IP] >/dev/null 2>&1 && echo ok || echo fail)\\\"; PORT22=\\\"$(timeout 2 bash -c '</dev/tcp/[PRIVATE_IP]/22' >/dev/null 2>&1 && echo open || echo closed)\\\"; PORT80=\\\"$(timeout 2 bash -c '</dev/tcp/[PRIVATE_IP]/80' >/dev/null 2>&1 && echo open || echo closed)\\\"; PORT443=\\\"$(timeout 2 bash -c '</dev/tcp/[PRIVATE_IP]/443' >/dev/null 2>&1 && echo open || echo closed)\\\"; SSH_TEST=\\\"$(timeout 20 ssh -o BatchMode=yes -o ConnectTimeout=10 debian@192\"},{\"line\":62,\"text\":\"VMID=130; STATUS=\\\"OK\\\"; NOTES=\\\"none\\\"; TS=\\\"$(date -u +%Y%m%dT%H%M%SZ)\\\"; CFG_BAK=\\\"/root/qm-${VMID}-config-before-resource-resize-${TS}.txt\\\"; TARGET_MEM=12288; TARGET_CORES=4; qm config \\\"$VMID\\\" > \\\"$CFG_BAK\\\"; BEFORE_STATUS=\\\"$(qm status \\\"$VMID\\\" 2>&1 | tr '\\\\n' ' ')\\\"; BEFORE_MEM=\\\"$(qm config \\\"$VMID\\\" | awk -F': ' '/^memory:/{print $2}')\\\"; BEFORE_CORES=\\\"$(qm config \\\"$VMID\\\" | awk -F': ' '/^cores:/{print $2}')\\\"; HOST_AVAIL_MB=\\\"$(free -m | awk '/Mem:/{print $7}')\\\"; if [ \\\"${HOST_AVAIL_MB:-0}\\\" -lt 16000 ]; then STATUS=\\\"ERROR\\\"; NOTES=\\\"host_available_ram_too_low_${HOST_AVAIL_MB}MB\\\"; STOP_RC=\\\"not_run\\\"; SET_RC=\\\"not_run\\\"; START_RC=\\\"not_run\\\"; else timeout 90 qm stop \\\"$VMID\\\" >/tmp/edge-vm-hard-stop.log 2>&1; STOP_RC=\\\"$?\\\"; sleep 5; STOP_STATUS=\\\"$(qm status \\\"$VMID\\\" 2>&1 | tr '\\\\n' ' ')\\\"; if ! echo \\\"$STOP_STATUS\\\" | grep -q \\\"stopped\\\"; then STATUS=\\\"ERROR\\\"; NOTES=\\\"hard_stop_failed\\\"; SET_RC=\\\"not_run\\\"; START_RC=\\\"not_run\\\"; else qm set \\\"$VMID\\\" --memory \\\"$TARGET_MEM\\\" --cores \\\"$TARGET_CORES\\\" >/tmp/edge-vm-resize.log 2>&\"},{\"line\":63,\"text\":\"cd /root; STATUS=\\\"OK\\\"; NOTES=\\\"none\\\"; SSH_EDGE=\\\"$(timeout 25 ssh -o BatchMode=yes -o ConnectTimeout=10 debian@[PRIVATE_IP] 'echo ok' 2>/tmp/edge-ssh-from-pve01.err || echo fail)\\\"; SSH_ERR=\\\"$(cat /tmp/edge-ssh-from-pve01.err 2>/dev/null | tail -n 5 | tr '\\\\n' ';' | cut -c1-500)\\\"; HOME_HTTP=\\\"$(curl -k -sS -o /dev/null -w '%{http_code}' --max-time 10 --resolve home.gram1.ru:443:[PRIVATE_IP] https://home.gram1.ru/ 2>/dev/null || echo error)\\\"; GIT_HTTP=\\\"$(curl -k -sS -o /dev/null -w '%{http_code}' --max-time 10 --resolve git.gram1.ru:443:[PRIVATE_IP] https://git.gram1.ru/ 2>/dev/null || echo error)\\\"; DOZZLE_HTTP=\\\"$(curl -sS -o /dev/null -w '%{http_code}' --max-time 5 http://[PRIVATE_IP]:9999/ 2>/dev/null || echo error)\\\"; PAPERLESS_HTTP=\\\"$(curl -sS -o /dev/null -w '%{http_code}' --max-time 5 http://[PRIVATE_IP]:8010/ 2>/dev/null || echo error)\\\"; MEMOS_HTTP=\\\"$(curl -sS -o /dev/null -w '%{http_code}' --max-time 5 http://[PRIVATE_IP]:5230/ 2>/dev/null || echo error)\\\"; IMMICH_HTTP=\\\"$(curl -s\"},{\"line\":67,\"text\":\"( set -Eeuo pipefail; umask 077; export SYSTEMD_PAGER=cat PAGER=cat SYSTEMD_LESS=FRXMK SYSTEMD_COLORS=0 GIT_PAGER=cat; printf 'SCOPE=READ_ONLY_VM160_PART_0108_EXACT_CLOUD_EOF_RCA_ACCOUNT_A_ACCOUNT_B_AND_LOCAL_SLICE\\\\nROLLBACK=NOT_REQUIRED_NO_WRITES_NO_DELETE_NO_WORKER_INSTALL_NO_PHASE_EXECUTION\\\\nVERIFY=PART_0108_OBJECT_SIZE_AND_SHA256_AGAINST_LOCAL_ARCHIVE_SLICE_WITH_ONE_BOUNDED_RETRY_PER_ACCOUNT_AND_ALL_STATE_UNCHANGED\\\\n'; MAIN=/srv/homelab-ops; COMMIT=25b275f96b54551e26f07516c72651d85f235ad0; ID=cluster-cloud-quorum-vm160-canary-v1; TASK=\\\"$MAIN/tasks/$ID\\\"; SRC=\\\"$TASK/assets/vm160-cloud-quorum-worker.sh\\\"; GENERATION=vm160-pve02-20260717T223819Z; ARCH=\\\"/mnt/staging/vzdump/$GENERATION/vzdump-qemu-160-20260717T223819Z.vma.zst\\\"; LINK=/mnt/staging/vzdump/vm160-pve02-latest; WORKER=/usr/local/libexec/homelab-vm160-cloud-quorum-worker; REMOTE_STATE=\\\"/var/lib/homelab-backup/cloud-quorum/vm160/$GENERATION.json\\\"; PART_NAME=part-0108; PART_INDEX=108; EXPECTED_ARCHIVE_SIZE=84995216465; SSH=(-o Bat\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o600\",\"mtime_ns\":1784404543977886435,\"path\":\"/root/.bash_history\",\"sha256\":\"6d2fea880793d82566f7f489ce4b8be8b0d4f8211c2cccc3d3478d39d9550222\",\"size\":25100,\"uid\":0},\"path\":\"/root/.bash_history\"},{\"lines\":[{\"line\":17,\"text\":\"searchdomain: gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1781552367226481311,\"path\":\"/root/qm-130-config-before-sshkey-20260615T193926Z.txt\",\"sha256\":\"2875eea619ee15143394c75c963d08d8a0d45a700331ec911288cd14e5dc2adc\",\"size\":711,\"uid\":0},\"path\":\"/root/qm-130-config-before-sshkey-20260615T193926Z.txt\"},{\"lines\":[{\"line\":3,\"text\":\"pve03.gram1.ru\"},{\"line\":55,\"text\":\"[PRIVATE_IP] pve01.gram1.ru pve01\"},{\"line\":56,\"text\":\"[PRIVATE_IP] pve02.gram1.ru pve02\"},{\"line\":57,\"text\":\"[PRIVATE_IP] pve03.gram1.ru pve03\"},{\"line\":61,\"text\":\"search netbird.selfhosted gram1.ru\"},{\"line\":184,\"text\":\"searchdomain: gram1.ru\"}],\"metadata\":{\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0o644\",\"mtime_ns\":1782753384220604944,\"path\":\"/root/cluster-audit-20260629T201245/03_pve03_audit.txt\",\"sha256\":\"d988a63859d8a9faac154ef84bb45bd28fadaa070d81256400bf37debe820744\",\"size\":16842,\"uid\":0},\"path\":\"/root/cluster-audit-20260629T201245/03_pve03_audit.txt\"}],\"fqdn\":\"pve03.gram1.ru\",\"hostname\":\"pve03\",\"log_summaries\":{},\"log_summary_count\":0,\"source_inventory\":{\"extension_counts\":{\".json\":2},\"framework_markers\":[],\"largest_files\":[{\"bytes\":3,\"path\":\"source/snapshots_manifest.json\"},{\"bytes\":3,\"path\":\"source/git_metadata.json\"}],\"packages\":[],\"stored_bytes\":6,\"stored_files\":2},\"source_snapshots\":[],\"sqlite_database_count\":0,\"systemd_service_count\":10,\"webserver_probes\":{}}],\"identity\":{\"branch\":\"site-gram1-ru-baseline-20260731\",\"capture_capsule_sha256\":\"a7ad06c722755f0398118f4e20383e339bf2dd48d24e26c451d8644a6be7f515\",\"capture_command_id\":\"GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z\",\"commit_sha\":\"f9d3ba8caf65005605aa8aee2ede7e4e7e94ee49\",\"contract_sha256\":\"25eda14e622fd33864289d1515b2d3c4a92de0a1073aae81093afaae5a98788e\",\"repo\":\"https://git.gram1.ru/homelab-admin/homelab-ops.git\",\"snapshot_path\":\"sites/gram1.ru/baseline/20260731T071400Z\"},\"mutation_outcome\":\"NO_MUTATION\",\"production_site_changed\":false,\"public_http\":{\"asset_count\":0,\"assets\":[],\"page_count\":15,\"pages\":[{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonicals\":[],\"content_type\":\"text/html; charset=utf-8\",\"error\":null,\"final_url\":\"https://gram1.ru/login\",\"forms\":[{\"action\":\"\",\"enctype\":\"\",\"inputs\":[{\"autocomplete\":\"current-password\",\"name\":\"password\",\"required\":\"True\",\"tag\":\"input\",\"type\":\"password\"},{\"autocomplete\":\"\",\"name\":\"\",\"required\":\"\",\"tag\":\"button\",\"type\":\"\"}],\"method\":\"post\"}],\"headings\":[{\"tag\":\"h1\",\"text\":\"Gram Crypto\"}],\"meta\":[{\"charset\":\"utf-8\"},{\"content\":\"width=device-width,initial-scale=1\",\"name\":\"viewport\"}],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"140\"],\"Content-Type\":[\"text/html\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:19 GMT\"],\"Location\":[\"https://gram1.ru/\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"]},\"status\":301,\"url\":\"http://gram1.ru/\"},{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"0\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:19 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"],\"location\":[\"/login\"],\"vary\":[\"Cookie\"]},\"status\":303,\"url\":\"https://gram1.ru/\"},{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"1088\"],\"Content-Type\":[\"text/html; charset=utf-8\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:19 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\",\"Cookie\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"],\"vary\":[\"Accept-Encoding\",\"Cookie\"]},\"status\":200,\"url\":\"https://gram1.ru/login\"}],\"requested_url\":\"http://gram1.ru/\",\"scripts\":[],\"status\":200,\"stored_body\":\"external/http/bodies/f1c7eeb4207a4757_root.txt\",\"styles\":[],\"title\":\"Gram Crypto\"},{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonicals\":[],\"content_type\":\"text/html; charset=utf-8\",\"error\":null,\"final_url\":\"https://www.gram1.ru/login\",\"forms\":[{\"action\":\"\",\"enctype\":\"\",\"inputs\":[{\"autocomplete\":\"current-password\",\"name\":\"password\",\"required\":\"True\",\"tag\":\"input\",\"type\":\"password\"},{\"autocomplete\":\"\",\"name\":\"\",\"required\":\"\",\"tag\":\"button\",\"type\":\"\"}],\"method\":\"post\"}],\"headings\":[{\"tag\":\"h1\",\"text\":\"Gram Crypto\"}],\"meta\":[{\"charset\":\"utf-8\"},{\"content\":\"width=device-width,initial-scale=1\",\"name\":\"viewport\"}],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"140\"],\"Content-Type\":[\"text/html\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:19 GMT\"],\"Location\":[\"https://www.gram1.ru/\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"]},\"status\":301,\"url\":\"http://www.gram1.ru/\"},{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"0\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:19 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"],\"location\":[\"/login\"],\"vary\":[\"Cookie\"]},\"status\":303,\"url\":\"https://www.gram1.ru/\"},{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"1088\"],\"Content-Type\":[\"text/html; charset=utf-8\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:19 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\",\"Cookie\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"],\"vary\":[\"Accept-Encoding\",\"Cookie\"]},\"status\":200,\"url\":\"https://www.gram1.ru/login\"}],\"requested_url\":\"http://www.gram1.ru/\",\"scripts\":[],\"status\":200,\"stored_body\":\"external/http/bodies/f8830a3e7b126322_root.txt\",\"styles\":[],\"title\":\"Gram Crypto\"},{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonicals\":[],\"content_type\":\"text/html; charset=utf-8\",\"error\":null,\"final_url\":\"https://gram1.ru/login\",\"forms\":[{\"action\":\"\",\"enctype\":\"\",\"inputs\":[{\"autocomplete\":\"current-password\",\"name\":\"password\",\"required\":\"True\",\"tag\":\"input\",\"type\":\"password\"},{\"autocomplete\":\"\",\"name\":\"\",\"required\":\"\",\"tag\":\"button\",\"type\":\"\"}],\"method\":\"post\"}],\"headings\":[{\"tag\":\"h1\",\"text\":\"Gram Crypto\"}],\"meta\":[{\"charset\":\"utf-8\"},{\"content\":\"width=device-width,initial-scale=1\",\"name\":\"viewport\"}],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"0\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:19 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"],\"location\":[\"/login\"],\"vary\":[\"Cookie\"]},\"status\":303,\"url\":\"https://gram1.ru/\"},{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"1088\"],\"Content-Type\":[\"text/html; charset=utf-8\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:19 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\",\"Cookie\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"],\"vary\":[\"Accept-Encoding\",\"Cookie\"]},\"status\":200,\"url\":\"https://gram1.ru/login\"}],\"requested_url\":\"https://gram1.ru/\",\"scripts\":[],\"status\":200,\"stored_body\":\"external/http/bodies/88ee3a1bbf568bf5_root.txt\",\"styles\":[],\"title\":\"Gram Crypto\"},{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonicals\":[],\"content_type\":\"text/html; charset=utf-8\",\"error\":null,\"final_url\":\"https://www.gram1.ru/login\",\"forms\":[{\"action\":\"\",\"enctype\":\"\",\"inputs\":[{\"autocomplete\":\"current-password\",\"name\":\"password\",\"required\":\"True\",\"tag\":\"input\",\"type\":\"password\"},{\"autocomplete\":\"\",\"name\":\"\",\"required\":\"\",\"tag\":\"button\",\"type\":\"\"}],\"method\":\"post\"}],\"headings\":[{\"tag\":\"h1\",\"text\":\"Gram Crypto\"}],\"meta\":[{\"charset\":\"utf-8\"},{\"content\":\"width=device-width,initial-scale=1\",\"name\":\"viewport\"}],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"0\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:19 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"],\"location\":[\"/login\"],\"vary\":[\"Cookie\"]},\"status\":303,\"url\":\"https://www.gram1.ru/\"},{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"1088\"],\"Content-Type\":[\"text/html; charset=utf-8\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:19 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\",\"Cookie\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"],\"vary\":[\"Accept-Encoding\",\"Cookie\"]},\"status\":200,\"url\":\"https://www.gram1.ru/login\"}],\"requested_url\":\"https://www.gram1.ru/\",\"scripts\":[],\"status\":200,\"stored_body\":\"external/http/bodies/183b8e2be9f07ccc_root.txt\",\"styles\":[],\"title\":\"Gram Crypto\"},{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonicals\":[],\"content_type\":\"text/html; charset=utf-8\",\"error\":null,\"final_url\":\"https://gram1.ru/login\",\"forms\":[{\"action\":\"\",\"enctype\":\"\",\"inputs\":[{\"autocomplete\":\"current-password\",\"name\":\"password\",\"required\":\"True\",\"tag\":\"input\",\"type\":\"password\"},{\"autocomplete\":\"\",\"name\":\"\",\"required\":\"\",\"tag\":\"button\",\"type\":\"\"}],\"method\":\"post\"}],\"headings\":[{\"tag\":\"h1\",\"text\":\"Gram Crypto\"}],\"meta\":[{\"charset\":\"utf-8\"},{\"content\":\"width=device-width,initial-scale=1\",\"name\":\"viewport\"}],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"1088\"],\"Content-Type\":[\"text/html; charset=utf-8\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:19 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\",\"Cookie\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"],\"vary\":[\"Accept-Encoding\",\"Cookie\"]},\"status\":200,\"url\":\"https://gram1.ru/login\"}],\"requested_url\":\"https://gram1.ru/login\",\"scripts\":[],\"status\":200,\"stored_body\":\"external/http/bodies/aff9673434bebfe5_login.txt\",\"styles\":[],\"title\":\"Gram Crypto\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonicals\":[],\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/robots.txt\",\"forms\":[],\"headings\":[],\"meta\":[],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"22\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:22 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"]},\"status\":404,\"url\":\"https://gram1.ru/robots.txt\"}],\"requested_url\":\"https://gram1.ru/robots.txt\",\"scripts\":[],\"status\":404,\"stored_body\":\"external/http/bodies/edbbd7b271782d53_robots.txt.txt\",\"styles\":[],\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonicals\":[],\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/sitemap.xml\",\"forms\":[],\"headings\":[],\"meta\":[],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"22\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:22 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"]},\"status\":404,\"url\":\"https://gram1.ru/sitemap.xml\"}],\"requested_url\":\"https://gram1.ru/sitemap.xml\",\"scripts\":[],\"status\":404,\"stored_body\":\"external/http/bodies/52a1325278d3a13d_sitemap.xml.txt\",\"styles\":[],\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonicals\":[],\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/.well-known/security.txt\",\"forms\":[],\"headings\":[],\"meta\":[],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"22\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:22 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"]},\"status\":404,\"url\":\"https://gram1.ru/.well-known/security.txt\"}],\"requested_url\":\"https://gram1.ru/.well-known/security.txt\",\"scripts\":[],\"status\":404,\"stored_body\":\"external/http/bodies/c906cb4a0a35b417_.well-known_security.txt.txt\",\"styles\":[],\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonicals\":[],\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/favicon.ico\",\"forms\":[],\"headings\":[],\"meta\":[],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"22\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:22 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"]},\"status\":404,\"url\":\"https://gram1.ru/favicon.ico\"}],\"requested_url\":\"https://gram1.ru/favicon.ico\",\"scripts\":[],\"status\":404,\"stored_body\":\"external/http/bodies/9c05181266b58e78_favicon.ico.txt\",\"styles\":[],\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonicals\":[],\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/manifest.json\",\"forms\":[],\"headings\":[],\"meta\":[],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"22\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:22 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"]},\"status\":404,\"url\":\"https://gram1.ru/manifest.json\"}],\"requested_url\":\"https://gram1.ru/manifest.json\",\"scripts\":[],\"status\":404,\"stored_body\":\"external/http/bodies/08f529ca3577730d_manifest.json.txt\",\"styles\":[],\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonicals\":[],\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/site.webmanifest\",\"forms\":[],\"headings\":[],\"meta\":[],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"22\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:22 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"]},\"status\":404,\"url\":\"https://gram1.ru/site.webmanifest\"}],\"requested_url\":\"https://gram1.ru/site.webmanifest\",\"scripts\":[],\"status\":404,\"stored_body\":\"external/http/bodies/1d956b2695802e6c_site.webmanifest.txt\",\"styles\":[],\"title\":\"\"},{\"body_bytes\":66,\"body_sha256\":\"fd4986bd7a591f1af722b4ec29bedeb8b7137d0e296fe22f086a1122b61d94e0\",\"canonicals\":[],\"content_type\":\"application/json\",\"error\":null,\"final_url\":\"https://gram1.ru/health\",\"forms\":[],\"headings\":[],\"meta\":[],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"66\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:22 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"]},\"status\":200,\"url\":\"https://gram1.ru/health\"}],\"requested_url\":\"https://gram1.ru/health\",\"scripts\":[],\"status\":200,\"stored_body\":\"external/http/bodies/b64f958427c2b88c_health.txt\",\"styles\":[],\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonicals\":[],\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/status\",\"forms\":[],\"headings\":[],\"meta\":[],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"22\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:22 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"]},\"status\":404,\"url\":\"https://gram1.ru/status\"}],\"requested_url\":\"https://gram1.ru/status\",\"scripts\":[],\"status\":404,\"stored_body\":\"external/http/bodies/51ed0c6c8fc0be64_status.txt\",\"styles\":[],\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonicals\":[],\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/api\",\"forms\":[],\"headings\":[],\"meta\":[],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"22\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:22 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"]},\"status\":404,\"url\":\"https://gram1.ru/api\"}],\"requested_url\":\"https://gram1.ru/api\",\"scripts\":[],\"status\":404,\"stored_body\":\"external/http/bodies/3b8355bc91b62cb9_api.txt\",\"styles\":[],\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonicals\":[],\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/api/health\",\"forms\":[],\"headings\":[],\"meta\":[],\"redirect_chain\":[{\"headers\":{\"Connection\":[\"close\"],\"Content-Length\":[\"22\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Fri, 31 Jul 2026 07:37:22 GMT\"],\"Origin-Agent-Cluster\":[\"?1\"],\"Referrer-Policy\":[\"strict-origin-when-cross-origin\"],\"Vary\":[\"Accept-Encoding\"],\"X-Content-Type-Options\":[\"nosniff\"],\"X-DNS-Prefetch-Control\":[\"off\"],\"X-Parked-Domains\":[\"managed\"],\"X-Permitted-Cross-Domain-Policies\":[\"none\"]},\"status\":404,\"url\":\"https://gram1.ru/api/health\"}],\"requested_url\":\"https://gram1.ru/api/health\",\"scripts\":[],\"status\":404,\"stored_body\":\"external/http/bodies/b5da3bfec28e3a0f_api_health.txt\",\"styles\":[],\"title\":\"\"}],\"stored_asset_bytes\":0},\"public_security\":{\"responses\":[{\"final_url\":\"https://gram1.ru/login\",\"forms\":[{\"action\":\"\",\"enctype\":\"\",\"inputs\":[\"<dict:5>\",\"<dict:5>\"],\"method\":\"post\"}],\"headers\":{\"cache-control\":null,\"content-security-policy\":null,\"cross-origin-embedder-policy\":null,\"cross-origin-opener-policy\":null,\"cross-origin-resource-policy\":null,\"permissions-policy\":null,\"referrer-policy\":[\"strict-origin-when-cross-origin\"],\"strict-transport-security\":null,\"x-content-type-options\":[\"nosniff\"],\"x-frame-options\":null},\"missing_security_headers\":[\"strict-transport-security\",\"content-security-policy\",\"x-frame-options\",\"permissions-policy\",\"cross-origin-opener-policy\",\"cross-origin-resource-policy\",\"cross-origin-embedder-policy\"],\"powered_by\":null,\"server\":null,\"set_cookie_present\":\"<REDACTED>\",\"status\":200,\"url\":\"https://gram1.ru/\"},{\"final_url\":\"https://www.gram1.ru/login\",\"forms\":[{\"action\":\"\",\"enctype\":\"\",\"inputs\":[\"<dict:5>\",\"<dict:5>\"],\"method\":\"post\"}],\"headers\":{\"cache-control\":null,\"content-security-policy\":null,\"cross-origin-embedder-policy\":null,\"cross-origin-opener-policy\":null,\"cross-origin-resource-policy\":null,\"permissions-policy\":null,\"referrer-policy\":[\"strict-origin-when-cross-origin\"],\"strict-transport-security\":null,\"x-content-type-options\":[\"nosniff\"],\"x-frame-options\":null},\"missing_security_headers\":[\"strict-transport-security\",\"content-security-policy\",\"x-frame-options\",\"permissions-policy\",\"cross-origin-opener-policy\",\"cross-origin-resource-policy\",\"cross-origin-embedder-policy\"],\"powered_by\":null,\"server\":null,\"set_cookie_present\":\"<REDACTED>\",\"status\":200,\"url\":\"https://www.gram1.ru/\"},{\"final_url\":\"https://gram1.ru/login\",\"forms\":[{\"action\":\"\",\"enctype\":\"\",\"inputs\":[\"<dict:5>\",\"<dict:5>\"],\"method\":\"post\"}],\"headers\":{\"cache-control\":null,\"content-security-policy\":null,\"cross-origin-embedder-policy\":null,\"cross-origin-opener-policy\":null,\"cross-origin-resource-policy\":null,\"permissions-policy\":null,\"referrer-policy\":[\"strict-origin-when-cross-origin\"],\"strict-transport-security\":null,\"x-content-type-options\":[\"nosniff\"],\"x-frame-options\":null},\"missing_security_headers\":[\"strict-transport-security\",\"content-security-policy\",\"x-frame-options\",\"permissions-policy\",\"cross-origin-opener-policy\",\"cross-origin-resource-policy\",\"cross-origin-embedder-policy\"],\"powered_by\":null,\"server\":null,\"set_cookie_present\":\"<REDACTED>\",\"status\":200,\"url\":\"https://gram1.ru/login\"}]},\"quarantine\":[],\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"schema\":1,\"status\":\"OK\",\"tls\":{\"gram1.ru\":{\"leaf_sha256\":\"a220b18eb34ac86d8b788cd376cecc5fbd580e07813adf8bd6c4df13c723afe6\",\"s_client_rc\":0,\"s_client_sha256\":\"252948b384136b41faf17a21f655ba1147b6c44c207780e9a40584072882da1f\",\"x509\":\"subject=CN=gram1.ru\\nissuer=C=US, O=Let's Encrypt, CN=YE2\\nserial=052057227168416710CA1BAA064E96106D77\\nnotBefore=Jul 1 16:15:31 2026 GMT\\nnotAfter=Sep 29 16:15:30 2026 GMT\\nsha256 Fingerprint=C6:60:DE:36:30:D6:18:C9:CD:F0:19:DD:52:24:90:87:1F:70:0E:27:BD:E9:0E:5B:2A:6C:54:1E:65:49:39:9F\\nX509v3 CRL Distribution Points: \\n Full Name:\\n URI:http://ye2.c.lencr.org/120.crl\\n\\n\",\"x509_rc\":0},\"www.gram1.ru\":{\"leaf_sha256\":\"a220b18eb34ac86d8b788cd376cecc5fbd580e07813adf8bd6c4df13c723afe6\",\"s_client_rc\":0,\"s_client_sha256\":\"04bd359acaa02b5481d9812adbd06630e277423563455bddf7985b6434f1f6b2\",\"x509\":\"subject=CN=gram1.ru\\nissuer=C=US, O=Let's Encrypt, CN=YE2\\nserial=052057227168416710CA1BAA064E96106D77\\nnotBefore=Jul 1 16:15:31 2026 GMT\\nnotAfter=Sep 29 16:15:30 2026 GMT\\nsha256 Fingerprint=C6:60:DE:36:30:D6:18:C9:CD:F0:19:DD:52:24:90:87:1F:70:0E:27:BD:E9:0E:5B:2A:6C:54:1E:65:49:39:9F\\nX509v3 CRL Distribution Points: \\n Full Name:\\n URI:http://ye2.c.lencr.org/120.crl\\n\\n\",\"x509_rc\":0}},\"verification\":{\"anomalies\":[{\"basename_length\":36,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"03f2ff4c2e76505c2381f369a4e377442a546153331cf9dae7cb43247394a8df\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"1831ab715f1a23930712ec363c2df210519d9a8e63ab21050af976806c462319\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":34,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"047676a85d8479d57bc3895ccfd651d02ee971b84338c80aab36bece3a52e3ee\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"c2068a915ab0f0cd8086e7251b2406b4de17cd813988229b179a71e6eea49a0c\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":20,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:1:*.env\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/APP05-monitoring.env\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"66b5259ef62561b83fb0a2303c912122cbf5c014e6c31d8a626f7ea5e09a6633\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"eb860700333344be2f70c57bfab9fcdb5fc959fc241019e0e55898793e2c530c\",\"sensitive_path\":true,\"suffix\":\".env\"},{\"basename_length\":30,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ03-shellcheck-repo-scan.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"1a221a76afc8ec4b5704e76e1108ac709b5ad35c55ec0a59e747ab77f81accb9\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"f1a246ef882c692f3e7676d2009a5a0738904f4aee2e5b23ac832e6442e23159\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":19,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ04-yaml-scan.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"5935691291c6ab9f8eca95314af9ea915a8bed577fae6d1e2df310518cdb3b4f\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"46c726ae03ab26e7d67c925492f53ea0fa143a2d93f9fc91f4766da8cadb865e\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":30,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:26:*.log\\tsites/gram1.<REDACTED_TOKEN>.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"c99ff35147a0efb6f140e5b87bc960634c887ecc4218581429a5ef73976bd664\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"683a786ccd0903852c34e18b2ee47a3270fc44a8a174c7ae37d27260ed35d870\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":30,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"808fd4bfc3df94d117481ba3a3a8a630079251d1e76a3e7514c64b6995828e9a\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"d70b5961cf40d476336611938313bf4f984caa86367034f982e63f4f335ff9af\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":21,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ06-dotenv-scan.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"1c47dd82be44861aa786c9aa2589d9641c1126e6e1fbd44a54648c53f737b8b6\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"87fddbce4d9ee1002e548ca86665cb89db8d789c1df8ef3b0cc60ea183d7477e\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":40,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08-precommit-config-syntax-review.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"119530731ea7e805303a0998f971cf40bceba98d06ddaa8a4a18ec56b3721e13\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"206c0b2917281b76b3cc6113e55545a2d037982a20970eefdb7ae7bbbae71443\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":42,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08R2-precommit-config-syntax-review.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"67831af293e57808753270db02a81ca060194fcf195d87cf2fe7105427416395\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"89150ce2e53b3a822590fac08a069419a5fe087dadb20c07f54d7574935d3bd0\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":33,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08R3-precommit-yaml-repair.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"4e3e110774e148db6e2a0b25465caf1b4adf220ffe7fd258c9199ca2c79f0652\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"325d9502c86190630eb0c655b0c9d84c4bf098e6ba4a6f8faf93d0cc2bde5b40\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":42,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"aa4d5dd3a43785dbfad1e76726bcdee209cc4b96b39601d2135d0a9af8dcdbec\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"f192560f9e1fb9fad21ad81749d8f69aaecd79bb442735aa5c01d42d8f18f3d9\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":41,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"650c68d3d7f9c5237028a8c4966350b8e1b59ba1e7d4eeb39ad92d48661ac5ee\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"b76d9833fe6db3eacc435aa2903d5a66cc477cbcd49300bec1fdd4190eb0d66e\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":36,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"d9ede7c80ced2339333a1fe0eb7593387ba71fed69ce9c0e344d21b2c002e844\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"0a37f3428e86c3b86e72e2ff56aabd60e73f01f9970cf50962c1295636e805d8\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":29,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"7f59ba740e83a41db3384eae87e82169322bbee48ba12e1c7b4f56660bcaeea0\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"a2ac117952ccea622345bb6148acbff3ef5ed20a3e5ec4d9925190dac39f26f3\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":39,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"6cd44b62ad80d0f9338ac669ea5984b8d32ab261140e07cd2f6d9bf95470835e\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"262f0dc79b7997d36058b3937c925c85d21784c07ab6b5ba4043cb11e6a762f0\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":43,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"02514e588fc1d8bbf50242cb78c45cbfc23cd4508c4d65f6d7fbab1ff3806a89\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"55d7edc8a6446a60ce484b35c64c88647508903264c20a2188c959d4498620ce\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":41,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"8a03fa69b7bfe09c8b2c0e5f4defb12245ed51faf2bd2c03099ab13919cbd968\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"1f146757dd427ba94db10f8cb7a28b442f7dfbc3dc7db97738faa37bbd6cab64\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":42,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"9b282098628ad289a6f4bdea7ea04a28a473545ab44f5823faf1af34c0945355\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"b3b3d8296f1af449d288c2736bfbfa2accbcde10ae34b0efe8bde8375c9388ec\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":39,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\\tsites/gram1.<REDACTED_TOKEN>.state\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"b0c5d1d773fa3f1844f1f3cfa309082cc8672c2c78289d5f1752f480242040a0\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"12f015430ad9424a19dfe30db5b95dad23ecf63e7815f10af4ceb815267d5cc9\",\"sensitive_path\":true,\"suffix\":\".state\"},{\"basename_length\":73,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172508Z-SEC02-4-to-3\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"d5b8b7ddf4135fe2e4a84563c2904c5108fed062c880d2ef7fd3d7ce0a25437e\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"f8e733dec894be535a3f55bec4243442f1b90fac15fef5356ebdf9c912d9923d\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172508z-sec02-4-to-3\"},{\"basename_length\":73,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172523Z-SEC03-3-to-2\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"3123820d65de7be54ccf53e5ccc4ea06f36cfe74772031c3ea2bf60785d5a90e\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"8c29698be41912729278dacb43ab65afecfd575c1b4f2e2b4c36b43da49c8247\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172523z-sec03-3-to-2\"},{\"basename_length\":73,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172535Z-SEC04-2-to-1\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"58390eebf40c037ad26ed36255abe05677080000eb99a32e9e61c4cf99e2a523\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"aaf18ffde71b6473596bb7c92040719cbfc119ecc93fa87487250a9d071fb301\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172535z-sec04-2-to-1\"},{\"basename_length\":73,\"depth\":9,\"display\":\"<SENSITIVE_PA" + "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"baseline_integrity\":{\"capture_report_tree_matches_commit\":false,\"commit_identity_verified\":true,\"manifest_matches_commit\":false,\"repair_required_before_site_editing\":true,\"status\":\"DEGRADED\"},\"capture_coverage\":{\"hosts_attempted\":12,\"hosts_failed\":9,\"hosts_successful\":3,\"public_http_assets\":0,\"public_http_pages\":15,\"quarantined_file_count\":0,\"site_host_count\":3,\"snapshot_id\":\"20260731T071400Z\"},\"changes_made\":false,\"command_id\":\"GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z\",\"editing_candidates\":[{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":144,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":1510,\"snapshot\":{\"source_root\":\"/root/homelab-configs-worktree\",\"stored_bytes\":9347306,\"stored_files\":1322,\"truncated\":false},\"source_root\":\"/root/homelab-configs-worktree\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":129,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[],\"priority_score\":1360,\"snapshot\":{\"source_root\":\"/root/homelab-configs-worktree/docs\",\"stored_bytes\":6362627,\"stored_files\":764,\"truncated\":false},\"source_root\":\"/root/homelab-configs-worktree/docs\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":110,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[],\"priority_score\":1170,\"snapshot\":{\"source_root\":\"/root/homelab-configs-worktree/docs/operations\",\"stored_bytes\":5969079,\"stored_files\":699,\"truncated\":false},\"source_root\":\"/root/homelab-configs-worktree/docs/operations\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":95,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":1020,\"snapshot\":{\"source_root\":\"/srv/homelab-desired-state\",\"stored_bytes\":1274899,\"stored_files\":957,\"truncated\":false},\"source_root\":\"/srv/homelab-desired-state\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":63,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[],\"priority_score\":700,\"snapshot\":{\"source_root\":\"/srv/homelab-desired-state/health\",\"stored_bytes\":231477,\"stored_files\":493,\"truncated\":false},\"source_root\":\"/srv/homelab-desired-state/health\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":32,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":370,\"snapshot\":null,\"source_root\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":26,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[],\"priority_score\":310,\"snapshot\":null,\"source_root\":\"/srv/homelab-desired-state/sbin\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":23,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":280,\"snapshot\":null,\"source_root\":\"/srv/homelab-ops-worktrees/cr-2026-0015\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":19,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":240,\"snapshot\":null,\"source_root\":\"/root/homelab-ops-cr-2026-0004\"},{\"detected_frameworks\":[\"Docker Compose\"],\"discovery_score\":17,\"domain_match_count\":1000,\"host\":\"pve01\",\"markers\":[\".git\"],\"priority_score\":220,\"snapshot\":null,\"source_root\":\"/root/homelab-ops-cr-2026-0012\"},{\"detected_frameworks\":[],\"discovery_score\":2,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":56,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"stored_bytes\":852,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-diag-20260629T032514Z\"},{\"detected_frameworks\":[],\"discovery_score\":2,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":56,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"stored_bytes\":14367,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\"},{\"detected_frameworks\":[],\"discovery_score\":1,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":46,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"stored_bytes\":242,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\"},{\"detected_frameworks\":[],\"discovery_score\":1,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":46,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"stored_bytes\":1438,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-recover-20260629T025511Z\"},{\"detected_frameworks\":[],\"discovery_score\":1,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":46,\"snapshot\":{\"source_root\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"stored_bytes\":3490,\"stored_files\":3,\"truncated\":false},\"source_root\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\"},{\"detected_frameworks\":[],\"discovery_score\":1,\"domain_match_count\":16,\"host\":\"pve02\",\"markers\":[],\"priority_score\":26,\"snapshot\":null,\"source_root\":\"/srv/homelab-desired-state/routerguard-tuya\"}],\"editing_start_here\":\"# Editing start: `gram1.ru`\\n\\nThis document lists the highest-confidence source and deployment roots discovered by the baseline.\\n\\n## Host `pve01`\\n\\n- Source candidate `/root/homelab-configs-worktree` — score 144; markers: .git.\\n- Source candidate `/root/homelab-configs-worktree/docs` — score 129; markers: none.\\n- Source candidate `/root/homelab-configs-worktree/docs/operations` — score 110; markers: none.\\n- Source candidate `/srv/homelab-desired-state` — score 95; markers: .git.\\n- Source candidate `/srv/homelab-desired-state/health` — score 63; markers: none.\\n- Source candidate `/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation` — score 32; markers: .git.\\n- Source candidate `/srv/homelab-desired-state/sbin` — score 26; markers: none.\\n- Source candidate `/srv/homelab-ops-worktrees/cr-2026-0015` — score 23; markers: .git.\\n- Source candidate `/root/homelab-ops-cr-2026-0004` — score 19; markers: .git.\\n- Source candidate `/root/homelab-ops-cr-2026-0012` — score 17; markers: .git.\\n- Snapshot `/root/homelab-configs-worktree`: 1322 files / 9347306 bytes; truncated=False.\\n- Snapshot `/root/homelab-configs-worktree/docs`: 764 files / 6362627 bytes; truncated=False.\\n- Snapshot `/root/homelab-configs-worktree/docs/operations`: 699 files / 5969079 bytes; truncated=False.\\n- Snapshot `/srv/homelab-desired-state`: 957 files / 1274899 bytes; truncated=False.\\n- Snapshot `/srv/homelab-desired-state/health`: 493 files / 231477 bytes; truncated=False.\\n\\n## Host `pve02`\\n\\n- Source candidate `/root/evidence/forum-prod-diag-20260629T032514Z` — score 2; markers: none.\\n- Source candidate `/root/evidence/forum-prod-os-baseline-20260629T034119Z` — score 2; markers: none.\\n- Source candidate `/root/evidence/forum-prod-offline-fix2-20260629T033832Z` — score 1; markers: none.\\n- Source candidate `/root/evidence/forum-prod-recover-20260629T025511Z` — score 1; markers: none.\\n- Source candidate `/root/evidence/forum-prod-recreate-20260629T030810Z` — score 1; markers: none.\\n- Source candidate `/srv/homelab-desired-state/routerguard-tuya` — score 1; markers: none.\\n- Snapshot `/root/evidence/forum-prod-diag-20260629T032514Z`: 3 files / 852 bytes; truncated=False.\\n- Snapshot `/root/evidence/forum-prod-os-baseline-20260629T034119Z`: 3 files / 14367 bytes; truncated=False.\\n- Snapshot `/root/evidence/forum-prod-offline-fix2-20260629T033832Z`: 3 files / 242 bytes; truncated=False.\\n- Snapshot `/root/evidence/forum-prod-recover-20260629T025511Z`: 3 files / 1438 bytes; truncated=False.\\n- Snapshot `/root/evidence/forum-prod-recreate-20260629T030810Z`: 3 files / 3490 bytes; truncated=False.\\n\\n## Host `pve03`\\n\\n- No source root, but domain/config evidence exists.\\n\\nBefore changing production, compare the selected source snapshot with the live source root and create a separate transactional change capsule with byte-for-byte backup and automatic rollback.\\n\",\"failed_hosts\":[{\"duration_seconds\":10.366,\"rc\":142,\"ssh_target\":\"root@[PRIVATE_IP]\",\"stderr_excerpt\":\"\",\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"target\":\"[PRIVATE_IP]\"},{\"duration_seconds\":10.262,\"rc\":142,\"ssh_target\":\"root@[PRIVATE_IP]\",\"stderr_excerpt\":\"\",\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"target\":\"[PRIVATE_IP]\"},{\"duration_seconds\":7.011,\"rc\":255,\"ssh_target\":\"root@95.84.154.183\",\"stderr_excerpt\":\"ssh: connect to host 95.84.154.183 port 22: Connection timed out\\n\",\"stderr_sha256\":\"822e7fe8675a92bba9ea2fa5be5e7f07fc1732fad6587e4a2782ab7aa3a13ab2\",\"target\":\"95.84.154.183\"},{\"duration_seconds\":0.043,\"rc\":255,\"ssh_target\":\"core-apps\",\"stderr_excerpt\":\"ssh: Could not resolve hostname core-apps: Name or service not known\\n\",\"stderr_sha256\":\"86bbe345e27c855214639ebf8b3720a3bf1c37b869ad752d716acc184c0d685a\",\"target\":\"core-apps\"},{\"duration_seconds\":0.045,\"rc\":255,\"ssh_target\":\"edge-vm\",\"stderr_excerpt\":\"No ED25519 host key is known for edge-vm and you have requested strict checking.\\nHost key verification failed.\\n\",\"stderr_sha256\":\"13687874591b23c2d4952604e4ab0452eddd1a96cb85f19569837efbc80c9252\",\"target\":\"edge-vm\"},{\"duration_seconds\":7.012,\"rc\":255,\"ssh_target\":\"gram1.ru\",\"stderr_excerpt\":\"ssh: connect to host gram1.ru port 22: Connection timed out\\n\",\"stderr_sha256\":\"ad807aa07abc5fbcc1f440ba12260b8b729eb6190945528d4a2b0a59356dcdf8\",\"target\":\"gram1.ru\"},{\"duration_seconds\":0.026,\"rc\":255,\"ssh_target\":\"pve02.gram1.ru\",\"stderr_excerpt\":\"No ED25519 host key is known for pve02.gram1.ru and you have requested strict checking.\\nHost key verification failed.\\n\",\"stderr_sha256\":\"d8e727c5cd664102acb30b4c0cb37af5821351638c2a8682b07e89b7981242ec\",\"target\":\"pve02.gram1.ru\"},{\"duration_seconds\":0.025,\"rc\":255,\"ssh_target\":\"pve03.gram1.ru\",\"stderr_excerpt\":\"No ED25519 host key is known for pve03.gram1.ru and you have requested strict checking.\\nHost key verification failed.\\n\",\"stderr_sha256\":\"5816dfdac31569bd9866c40dd0aeae58c8301f832c1cf07a5c9307250d3d570e\",\"target\":\"pve03.gram1.ru\"},{\"duration_seconds\":7.013,\"rc\":255,\"ssh_target\":\"www.gram1.ru\",\"stderr_excerpt\":\"ssh: connect to host www.gram1.ru port 22: Connection timed out\\n\",\"stderr_sha256\":\"f372535ea680bb6507bf04d94ab0ea76d7d6cd3ffe3948d8558550299211731b\",\"target\":\"www.gram1.ru\"}],\"gitea_changed\":false,\"hosts\":[{\"candidate_source_roots\":[{\"markers\":[\".git\"],\"path\":\"/root/homelab-configs-worktree\",\"reasons\":[\"domain_match_parent\"],\"score\":144},{\"markers\":[],\"path\":\"/root/homelab-configs-worktree/docs\",\"reasons\":[\"domain_match_parent\"],\"score\":129},{\"markers\":[],\"path\":\"/root/homelab-configs-worktree/docs/operations\",\"reasons\":[\"domain_match_parent\"],\"score\":110},{\"markers\":[\".git\"],\"path\":\"/srv/homelab-desired-state\",\"reasons\":[\"domain_match_parent\"],\"score\":95},{\"markers\":[],\"path\":\"/srv/homelab-desired-state/health\",\"reasons\":[\"domain_match_parent\"],\"score\":63},{\"markers\":[\".git\"],\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation\",\"reasons\":[\"domain_match_parent\"],\"score\":32},{\"markers\":[],\"path\":\"/srv/homelab-desired-state/sbin\",\"reasons\":[\"domain_match_parent\"],\"score\":26},{\"markers\":[\".git\"],\"path\":\"/srv/homelab-ops-worktrees/cr-2026-0015\",\"reasons\":[\"domain_match_parent\"],\"score\":23},{\"markers\":[\".git\"],\"path\":\"/root/homelab-ops-cr-2026-0004\",\"reasons\":[\"domain_match_parent\"],\"score\":19},{\"markers\":[\".git\"],\"path\":\"/root/homelab-ops-cr-2026-0012\",\"reasons\":[\"domain_match_parent\"],\"score\":17}],\"container_count\":1,\"detected_frameworks\":[\"Docker Compose\"],\"directory\":\"hosts/local\",\"domain_match_count\":1000,\"fqdn\":\"pve01.gram1.ru\",\"hostname\":\"pve01\",\"packages\":[],\"source_inventory_totals\":{\"framework_marker_count\":1,\"package_count\":0,\"stored_bytes\":25135855,\"stored_files\":4163},\"source_snapshots\":[{\"source_root\":\"/root/homelab-configs-worktree\",\"stored_bytes\":9347306,\"stored_files\":1322,\"truncated\":false},{\"source_root\":\"/root/homelab-configs-worktree/docs\",\"stored_bytes\":6362627,\"stored_files\":764,\"truncated\":false},{\"source_root\":\"/root/homelab-configs-worktree/docs/operations\",\"stored_bytes\":5969079,\"stored_files\":699,\"truncated\":false},{\"source_root\":\"/srv/homelab-desired-state\",\"stored_bytes\":1274899,\"stored_files\":957,\"truncated\":false},{\"source_root\":\"/srv/homelab-desired-state/health\",\"stored_bytes\":231477,\"stored_files\":493,\"truncated\":false}],\"systemd_service_count\":12},{\"candidate_source_roots\":[{\"markers\":[],\"path\":\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"reasons\":[\"domain_match_parent\"],\"score\":2},{\"markers\":[],\"path\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"reasons\":[\"domain_match_parent\"],\"score\":2},{\"markers\":[],\"path\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"reasons\":[\"domain_match_parent\"],\"score\":1},{\"markers\":[],\"path\":\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"reasons\":[\"domain_match_parent\"],\"score\":1},{\"markers\":[],\"path\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"reasons\":[\"domain_match_parent\"],\"score\":1},{\"markers\":[],\"path\":\"/srv/homelab-desired-state/routerguard-tuya\",\"reasons\":[\"domain_match_parent\"],\"score\":1}],\"container_count\":0,\"detected_frameworks\":[],\"directory\":\"hosts/pve02\",\"domain_match_count\":16,\"fqdn\":\"pve02.gram1.ru\",\"hostname\":\"pve02\",\"packages\":[],\"source_inventory_totals\":{\"framework_marker_count\":0,\"package_count\":0,\"stored_bytes\":29322,\"stored_files\":17},\"source_snapshots\":[{\"source_root\":\"/root/evidence/forum-prod-diag-20260629T032514Z\",\"stored_bytes\":852,\"stored_files\":3,\"truncated\":false},{\"source_root\":\"/root/evidence/forum-prod-os-baseline-20260629T034119Z\",\"stored_bytes\":14367,\"stored_files\":3,\"truncated\":false},{\"source_root\":\"/root/evidence/forum-prod-offline-fix2-20260629T033832Z\",\"stored_bytes\":242,\"stored_files\":3,\"truncated\":false},{\"source_root\":\"/root/evidence/forum-prod-recover-20260629T025511Z\",\"stored_bytes\":1438,\"stored_files\":3,\"truncated\":false},{\"source_root\":\"/root/evidence/forum-prod-recreate-20260629T030810Z\",\"stored_bytes\":3490,\"stored_files\":3,\"truncated\":false}],\"systemd_service_count\":10},{\"candidate_source_roots\":[],\"container_count\":0,\"detected_frameworks\":[],\"directory\":\"hosts/pve03\",\"domain_match_count\":6,\"fqdn\":\"pve03.gram1.ru\",\"hostname\":\"pve03\",\"packages\":[],\"source_inventory_totals\":{\"framework_marker_count\":0,\"package_count\":0,\"stored_bytes\":6,\"stored_files\":2},\"source_snapshots\":[],\"systemd_service_count\":10}],\"identity\":{\"branch\":\"site-gram1-ru-baseline-20260731\",\"capture_capsule_sha256\":\"a7ad06c722755f0398118f4e20383e339bf2dd48d24e26c451d8644a6be7f515\",\"capture_command_id\":\"GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z\",\"commit_sha\":\"f9d3ba8caf65005605aa8aee2ede7e4e7e94ee49\",\"contract_sha256\":\"25eda14e622fd33864289d1515b2d3c4a92de0a1073aae81093afaae5a98788e\",\"repo\":\"https://git.gram1.ru/homelab-admin/homelab-ops.git\",\"snapshot_path\":\"sites/gram1.ru/baseline/20260731T071400Z\"},\"mutation_outcome\":\"NO_MUTATION\",\"next_decision\":\"REPAIR_BASELINE_METADATA_BEFORE_EDITING\",\"output_json_bytes_before_size_field\":72880,\"output_json_sha256_before_hash_field\":\"41dcf79b1a601f1f065089fce34cd808986b98e4f568d0c5b19dea405e3c1cf3\",\"production_site_changed\":false,\"public_http\":{\"asset_count\":0,\"page_count\":15,\"pages\":[{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonical_count\":0,\"content_type\":\"text/html; charset=utf-8\",\"error\":\"\",\"final_url\":\"https://gram1.ru/login\",\"form_count\":1,\"heading_count\":1,\"requested_url\":\"http://gram1.ru/\",\"script_count\":0,\"status\":200,\"style_count\":0,\"title\":\"Gram Crypto\"},{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonical_count\":0,\"content_type\":\"text/html; charset=utf-8\",\"error\":\"\",\"final_url\":\"https://www.gram1.ru/login\",\"form_count\":1,\"heading_count\":1,\"requested_url\":\"http://www.gram1.ru/\",\"script_count\":0,\"status\":200,\"style_count\":0,\"title\":\"Gram Crypto\"},{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonical_count\":0,\"content_type\":\"text/html; charset=utf-8\",\"error\":\"\",\"final_url\":\"https://gram1.ru/login\",\"form_count\":1,\"heading_count\":1,\"requested_url\":\"https://gram1.ru/\",\"script_count\":0,\"status\":200,\"style_count\":0,\"title\":\"Gram Crypto\"},{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonical_count\":0,\"content_type\":\"text/html; charset=utf-8\",\"error\":\"\",\"final_url\":\"https://www.gram1.ru/login\",\"form_count\":1,\"heading_count\":1,\"requested_url\":\"https://www.gram1.ru/\",\"script_count\":0,\"status\":200,\"style_count\":0,\"title\":\"Gram Crypto\"},{\"body_bytes\":1088,\"body_sha256\":\"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2\",\"canonical_count\":0,\"content_type\":\"text/html; charset=utf-8\",\"error\":\"\",\"final_url\":\"https://gram1.ru/login\",\"form_count\":1,\"heading_count\":1,\"requested_url\":\"https://gram1.ru/login\",\"script_count\":0,\"status\":200,\"style_count\":0,\"title\":\"Gram Crypto\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/robots.txt\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/robots.txt\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/sitemap.xml\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/sitemap.xml\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/.well-known/security.txt\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/.well-known/security.txt\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/favicon.ico\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/favicon.ico\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/manifest.json\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/manifest.json\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/site.webmanifest\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/site.webmanifest\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":66,\"body_sha256\":\"fd4986bd7a591f1af722b4ec29bedeb8b7137d0e296fe22f086a1122b61d94e0\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"\",\"final_url\":\"https://gram1.ru/health\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/health\",\"script_count\":0,\"status\":200,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/status\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/status\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/api\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/api\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"},{\"body_bytes\":22,\"body_sha256\":\"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d\",\"canonical_count\":0,\"content_type\":\"application/json\",\"error\":\"HTTPError:404\",\"final_url\":\"https://gram1.ru/api/health\",\"form_count\":0,\"heading_count\":0,\"requested_url\":\"https://gram1.ru/api/health\",\"script_count\":0,\"status\":404,\"style_count\":0,\"title\":\"\"}],\"stored_asset_bytes\":0},\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"schema\":1,\"status\":\"OK\",\"verification\":{\"anomalies\":[{\"basename_length\":36,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"03f2ff4c2e76505c2381f369a4e377442a546153331cf9dae7cb43247394a8df\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"1831ab715f1a23930712ec363c2df210519d9a8e63ab21050af976806c462319\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":34,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"047676a85d8479d57bc3895ccfd651d02ee971b84338c80aab36bece3a52e3ee\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"c2068a915ab0f0cd8086e7251b2406b4de17cd813988229b179a71e6eea49a0c\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":20,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:1:*.env\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/APP05-monitoring.env\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"66b5259ef62561b83fb0a2303c912122cbf5c014e6c31d8a626f7ea5e09a6633\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"eb860700333344be2f70c57bfab9fcdb5fc959fc241019e0e55898793e2c530c\",\"sensitive_path\":true,\"suffix\":\".env\"},{\"basename_length\":30,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ03-shellcheck-repo-scan.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"1a221a76afc8ec4b5704e76e1108ac709b5ad35c55ec0a59e747ab77f81accb9\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"f1a246ef882c692f3e7676d2009a5a0738904f4aee2e5b23ac832e6442e23159\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":19,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ04-yaml-scan.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"5935691291c6ab9f8eca95314af9ea915a8bed577fae6d1e2df310518cdb3b4f\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"46c726ae03ab26e7d67c925492f53ea0fa143a2d93f9fc91f4766da8cadb865e\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":30,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:26:*.log\\tsites/gram1.<REDACTED_TOKEN>.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"c99ff35147a0efb6f140e5b87bc960634c887ecc4218581429a5ef73976bd664\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"683a786ccd0903852c34e18b2ee47a3270fc44a8a174c7ae37d27260ed35d870\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":30,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"808fd4bfc3df94d117481ba3a3a8a630079251d1e76a3e7514c64b6995828e9a\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"d70b5961cf40d476336611938313bf4f984caa86367034f982e63f4f335ff9af\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":21,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ06-dotenv-scan.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"1c47dd82be44861aa786c9aa2589d9641c1126e6e1fbd44a54648c53f737b8b6\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"87fddbce4d9ee1002e548ca86665cb89db8d789c1df8ef3b0cc60ea183d7477e\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":40,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08-precommit-config-syntax-review.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"119530731ea7e805303a0998f971cf40bceba98d06ddaa8a4a18ec56b3721e13\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"206c0b2917281b76b3cc6113e55545a2d037982a20970eefdb7ae7bbbae71443\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":42,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08R2-precommit-config-syntax-review.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"67831af293e57808753270db02a81ca060194fcf195d87cf2fe7105427416395\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"89150ce2e53b3a822590fac08a069419a5fe087dadb20c07f54d7574935d3bd0\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":33,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08R3-precommit-yaml-repair.log\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"4e3e110774e148db6e2a0b25465caf1b4adf220ffe7fd258c9199ca2c79f0652\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"325d9502c86190630eb0c655b0c9d84c4bf098e6ba4a6f8faf93d0cc2bde5b40\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":42,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"aa4d5dd3a43785dbfad1e76726bcdee209cc4b96b39601d2135d0a9af8dcdbec\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"f192560f9e1fb9fad21ad81749d8f69aaecd79bb442735aa5c01d42d8f18f3d9\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":41,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"650c68d3d7f9c5237028a8c4966350b8e1b59ba1e7d4eeb39ad92d48661ac5ee\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"b76d9833fe6db3eacc435aa2903d5a66cc477cbcd49300bec1fdd4190eb0d66e\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":36,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"d9ede7c80ced2339333a1fe0eb7593387ba71fed69ce9c0e344d21b2c002e844\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"0a37f3428e86c3b86e72e2ff56aabd60e73f01f9970cf50962c1295636e805d8\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":29,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"7f59ba740e83a41db3384eae87e82169322bbee48ba12e1c7b4f56660bcaeea0\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"a2ac117952ccea622345bb6148acbff3ef5ed20a3e5ec4d9925190dac39f26f3\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":39,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"6cd44b62ad80d0f9338ac669ea5984b8d32ab261140e07cd2f6d9bf95470835e\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"262f0dc79b7997d36058b3937c925c85d21784c07ab6b5ba4043cb11e6a762f0\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":43,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"02514e588fc1d8bbf50242cb78c45cbfc23cd4508c4d65f6d7fbab1ff3806a89\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"55d7edc8a6446a60ce484b35c64c88647508903264c20a2188c959d4498620ce\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":41,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"8a03fa69b7bfe09c8b2c0e5f4defb12245ed51faf2bd2c03099ab13919cbd968\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"1f146757dd427ba94db10f8cb7a28b442f7dfbc3dc7db97738faa37bbd6cab64\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":42,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"9b282098628ad289a6f4bdea7ea04a28a473545ab44f5823faf1af34c0945355\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"b3b3d8296f1af449d288c2736bfbfa2accbcde10ae34b0efe8bde8375c9388ec\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":39,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\\tsites/gram1.<REDACTED_TOKEN>.state\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"b0c5d1d773fa3f1844f1f3cfa309082cc8672c2c78289d5f1752f480242040a0\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"12f015430ad9424a19dfe30db5b95dad23ecf63e7815f10af4ceb815267d5cc9\",\"sensitive_path\":true,\"suffix\":\".state\"},{\"basename_length\":73,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172508Z-SEC02-4-to-3\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"d5b8b7ddf4135fe2e4a84563c2904c5108fed062c880d2ef7fd3d7ce0a25437e\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"f8e733dec894be535a3f55bec4243442f1b90fac15fef5356ebdf9c912d9923d\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172508z-sec02-4-to-3\"},{\"basename_length\":73,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172523Z-SEC03-3-to-2\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"3123820d65de7be54ccf53e5ccc4ea06f36cfe74772031c3ea2bf60785d5a90e\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"8c29698be41912729278dacb43ab65afecfd575c1b4f2e2b4c36b43da49c8247\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172523z-sec03-3-to-2\"},{\"basename_length\":73,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172535Z-SEC04-2-to-1\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"58390eebf40c037ad26ed36255abe05677080000eb99a32e9e61c4cf99e2a523\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"aaf18ffde71b6473596bb7c92040719cbfc119ecc93fa87487250a9d071fb301\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172535z-sec04-2-to-1\"},{\"basename_length\":73,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172547Z-SEC05-1-to-0\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"d6a967aa21691825de7e26409a894c8f9b4d33dd016cb1792ca12c38a23ee4e2\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"e62fcb5f18e96be2401274c6e4bfe4a00b083e06433909d6b39f4b20351476cb\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172547z-sec05-1-to-0\"},{\"basename_length\":29,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"26add47b447812492386a7841eaff1600964beb7d9ee32d8487ee0ccba7eca23\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"221cbee473501ee3e126b8e29602ad5fbf9842b9746137aff0a33eb30d6c2ed4\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":43,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"1c3b1c497c5b3f915a056adf6fc8057d251e4564a4c1bb84ac7bf9d184164846\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"99565b640d90eb8ddbd13d276ab6aa01aad1ea72771cd5a2b12e928723171ba6\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":30,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.tsv\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"8385fcbff8e32b20a491f241d44139451a2d01e42da23e02adc916206d718b81\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"315926ca6f4f110ee475ea3392cc3e34f03856f87fdd1e1c23b6c013f3f7ae20\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":38,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"95f3a9ad4434bae963aa8571d12482f456bf6e625c5d6a5bd2eea0f6ab5811b6\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"d0a1f552e44ee3cc70c58a889001f15abab3d5105c7392997bbfe052379c42c9\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":34,\"depth\":8,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"0b40be06fa1569553dfcb1268f259bc244e3e9749962c310c902ea585bf6aed6\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"72a8c29f3c2e8e99a038a3447e7f459881cafb9be6b59ccbdb87b5056613a21a\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":24,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p0-restore-drill-20260624T122122Z/edge-health-redacted.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"1d5c441b47ab4c8ce70ad3d8da8ad8e4f63b55ac276a68134aad17f915e81378\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"b5dba4d253ce4cfce27a99d1a2cc7aeeb4eb607bfc628c6e7d5e49498fa6eda1\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":29,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p0-restore-drill-20260624T122122Z/nextcloud-health-redacted.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"8ffa9e5091874e8dc2ab0ee11c77d4e0991f0e8968aa9276ab3c6bb1c45ee349\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"8b6160f09289bf95e9011d5d2532bdfdace7151018bf14cddc167f61f39a05eb\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":23,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-disk-retention-20260624T122906Z/edge-disk-retention.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"88184ac4e6712127751e95a372fea3c4a962dcbb1b6f337479d96d9fd80ab9ab\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"7491d29ffb10110b9780e4c7b17379e5c92cc8b3b13a4cec215977c362aa7d89\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":26,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-gotify-bind-local-20260624T142534Z/edge-gotify-bind-local.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"b539d8ab20e1c3d7ae183e62a758517970c84e1526eacd74ca52e16821c698c7\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"c7a26319f7ce7a28a5d2652b0971d750620337110fb656676c98c5ed76f2d9ae\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":23,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-gotify-bind-local-20260624T142534Z/pve01-gotify-checks.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"0f7f7148f79dd4ebb21c675c7148338706c14059f639f83635ac5adb9410c70f\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"a7bee84809250a23b6e273c1663691bb7aa08f1f6e41dc2241bf6fd664220dca\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":27,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-npmplus-admin-bind-20260624T141458Z/edge-npmplus-admin-bind.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"2282ec1067cddacb51705ed0ed31c14136871dd45abad0220a409aa4eee553d2\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"af4f654bca9d5e77acb1ac87dc25551aace1adc3a1530bbeb3dd201177034d3d\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":27,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-private-vpn-real-fix-20260624T140710Z/edge-private-vpn-health.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"edec1d3140869a10e9b292b7fc2160ad7635b535b7148a499cb9ab18d87ca3ba\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"0926fcd8278044b8e3e7ac54865790187ca3ba21c304055b9632f4e656bf0c66\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":28,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-private-vpn-real-fix-20260624T140710Z/pve01-private-vpn-health.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"66c2985c8bc9946d9c9a5e6933690564f0237b887f1e172b69897ddfa579fb72\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"df2357b50958070a518d8712dda0d0b0ff4dba9c56562ccc208b7e76e8fd9107\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":21,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-20260624T133115Z/edge-final-health.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"a85ae485f382cee6a2b0bb9aacc17a7efd24b47da313633cf927ba357a42ca7f\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"d5a2d14f9ee2d03202d4a9f9d75e4c09264e896aa470af23471a3e5a4c0e62c5\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":21,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-20260624T133115Z/pve01-final-state.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"019e69a626941daf634eda8a19d0456d017143f98db96091c4eeab77bc833ae0\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"536ebafe24b85ae222b2a5af56cb5cb5c876d5d73509bb938f7338d563e31ac8\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":15,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-kuma-fix-20260624T133456Z/edge-health.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"fd15af0ea3cbe0e2b3d6155b4900d95744ca386450aa388c03e321f097274fbf\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"c5684c73fe33566cba19bfc41131dd3794e305cfc3690e97ec47b83b802f6e55\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":27,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-kuma-fix-20260624T133456Z/pve01-private-vpn-hosts.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"025d903f5f632e06c2e383d5bf57b25ad34138b913e5ccda38f7ece8f8ab01be\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"9cfbd1460ca38ec3f446d9f3d0ee0cc596e930c3fad3296308b8516e2ba6d43c\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":22,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/edge-router-health.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"0942367c3059c732b0b573aa92f1953bf1a06264e5f8c2942ccb3e374a4a19c2\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"1a2815578e337b7334268bd26030da8ad67dab65e7b05995d3f2884d868f0c31\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":31,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/nextcloud-turn-router-state.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"4e00d28ba20e8271c7791515143b9d9d01a23e8ec54a4b1348dfdb5309a1a16a\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"ac066c46b9e0b9ea72d698ed93c6b54ae2471412551fd147e207df6cf863ba59\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":31,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/pve01-router-hairpin-probes.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"26116733b46159e8fd195f2b63902401234fffec19bd8d479933cd96d689f5b2\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"0dbd50676c80dca8ab0c5fda3529a2827908092d046fb6ae41413db3d7693fbc\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":28,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/targeted-udp-tag-summary.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"96efef84756c9eede803867db1385590f67db29052a2d761b345afffa21e0172\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"603499f9228d7bff75161418bd6edd568d5333e6406abd87915f2d6262329189\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":25,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-hardening-20260624T125534Z/edge-router-hardening.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"92ecf926a745ba9ba3417d86b19e7531683e82b223b20a4888521c4627834ca1\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"3b602efd8d7209b2fb372b830ebc57ab10647ed060b3538d35e44cb009c5fc39\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":31,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.<REDACTED_TOKEN>.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"720f06b9c143aa5b7c076b595302eee0e9c7b11e328c78220480112036f3f61f\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"aa93d47b4e8337b1eb74f195cb5fc25a51d821f0d4fbd17bebda61e25e645884\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":30,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.<REDACTED_TOKEN>.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"0a2e2b004aea530f98353fd1970302d7dbca63f45fc0e79b61069edd198e419d\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"5b40627afbcc850a12211e2c4486456b84075a3e45e2a16a96f94a6e817f427e\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":20,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-turn-3478-20260624T143023Z/edge-turn-health.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"0602b60258928991089d7c408309cc1b12386a1b9ca4744d0cbdaf2181a45755\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"aeb6473b0194be1ee5311743ff57e751d2a1e65377c1be7417c04937eea5ff9e\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":24,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-turn-3478-20260624T143023Z/nextcloud-turn-state.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"a4c1926f01dc80bd1995968ebedb218c86ba90d0ef44fb196bfcbea0f709e06b\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"2b6e5bfb31cce087b75cc373f2fe676d84a4e09a5de1028aa47c9a280fcddbd4\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":18,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/backup-summary.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"5b988574d368c653a905be750f9126d128c3693bc9b75f7f58faa2a8ed203924\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"911a07e99ec8925526151a0183830f33a6e183fbe3066ce6eb8140f4c89fff66\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":24,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/current-fingerprints.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"21aa40c6b652a0fe7e97d9ad89ad6291b1591de6f4368f085a33cb28732815df\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"11efcb2cdb6caa4bc0d7cf2f5082d511a60e203034c7838355f5544f227cdf74\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":24,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/current-known-hosts.scan\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"b896fc8c0ee39a86615c06725f20457f74c453fc7b93532af86dfcf4e2eeffe6\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"ea1bbc4d7326bf99f603aea2fc69219e183114138222164c1fa34425f701ae2b\",\"sensitive_path\":true,\"suffix\":\".scan\"},{\"basename_length\":25,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-alias-known-hosts.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"9d826962f206a6098a00be141ddfa1524b179e9f58449feceb16ce79af38d4d4\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"0a60da401257e8d3d62622d35675b0aeeaa5b0c9987ae470f389bb9a84f67107\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":20,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-fingerprints.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"cf597d287845f317164b4f3c4820f2bd66e5c0aeddae242ff237e7e7d583c7dd\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"4eae326a00f039ed3f44104064c4c2fdea14fe9d76e3af66e3379669d2916022\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":22,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-ip-known-hosts.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"c4dcbfa2ce0571f34143c736f4f9472ede1fdeb4919af4c3228bc2a9e26caa56\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"fe70268e02c773df3fbb87dba01c95c40da5d948585327ec65fd5290860aa913\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":19,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-known-hosts.raw\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"f5e2ae1ac3302e9947120b1e49e7365406c3495170767fe7c137197f5127ac06\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"639767b08819a36ef1d907e1934e6bbd354e621488194f75aa06ced3e854074d\",\"sensitive_path\":true,\"suffix\":\".raw\"},{\"basename_length\":22,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/vps-identity-audit.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"4ddb0c2029d99c580cc682650c6c79f7644b7d1b73d8ecbad8868e7288a7e122\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"fcf87d70165391a6f54c5d6b1fe815822c9469a81287680eaee9ebd1d832ea16\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":22,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-audit.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"2fd7bf68b51afd18f259fc90ba3895a9cae6ea843df35bdaafef822f03b588c8\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"4f4cdc4688bc2f146c33ec604a925e52063653b83ca317a59436b246b8694443\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":31,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-final-evidence.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"2c1b158668e4fe2672bac68ce1cb071e550cb4aec018c4f8ecc63f9d081372dd\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"d0aa3459b11ba93537c86181bee9d357fdec62098c580a6d1c0cea83d2852d75\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":31,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\".gitignore:9:evidence/\\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-peer-discovery.txt\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"1b423c085d60c40f192b2678dbeb9d7782a5039bd2ff46ab2bac94c5803491a5\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"d1e501c34794fae94b0636e4df7638d766f5114ff2e5fcf5f7c0b52143368354\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":56,\"depth\":6,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:7:*token*\\tsites/gram1.<REDACTED_TOKEN>.md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"073ca6c91b04c783635be196a401f7b215611e8ea26e3d16996a5320c3099884\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"cf0a58341719e872b49bc4b02cd11e7d83b548e3581c8c8cd26cbd228b1e1d46\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":49,\"depth\":6,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:7:*token*\\tsites/gram1.<REDACTED_TOKEN>.md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"a41753864159c835e8400ef003eb23c1d539eb0b2868b68eb233c963adc5c126\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"e9d73c2c02c4b77e4d1a1e9ca03a3f5a29318aa80c4de6c5ac17763b36aa135d\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":57,\"depth\":6,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:7:*token*\\tsites/gram1.<REDACTED_TOKEN>.md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"c233f7881d2c4ca39f986a7e2d40b6bee169c8295ec1141ee62bef961cababdb\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"dab0b2de30b5cbe7ddb7c0af562cad07f3a08a463f77b7d7a3c464ef17c4b32d\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":51,\"depth\":6,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:7:*token*\\tsites/gram1.<REDACTED_TOKEN>.md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"470407ef09a236e66b2aa41a5b7bf3b923aae05baf7ea3e276e89046d2de1f6d\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"4db3c5f77435bc717163e8571e894eabf122de91be97b532ca5b93d322d82f62\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":43,\"depth\":6,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"330700b68162ec69d2c2984a09d8f4ecde481de627fbc2a2d2f4523682b01845\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"6a1ee1d3f3c2e845f44b24f8c4ebf1607aa47a7eaf7d7b51672e88a5b035e342\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":43,\"depth\":6,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"44d895e37c4d7efb5b2a940d8427d58f95ac085a5f47f0de32ae9f6a37095764\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"32416b898e71d162602268191d7cb0aed22e9d5788fd96945c496759ca555875\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":28,\"depth\":6,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"d82c5c23ede0b4952bf49c531772ce2c450eb5c32d1c3e1112632099c3cecc3c\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"6335de79a3ccf4b63c70083a7ad96b5654143ca78290afca3a40f836f4a199b4\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":26,\"depth\":6,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"6bed7eb9432a31b217f0e34b25fcb715631bc05f3e1949e7678f06cc6cc6e993\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"6a0f236132211b9633e1af76a22dc681b2a0a5c3127cff28fb273c23c696e9ba\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":33,\"depth\":6,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"03a40752aff61bc454e2087a0b32de4dfc8441d8dcf968d1a5ca726995e0e8df\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"d7a9c39ea6d0c8a7a32946ad5f6ea9d5c05f9d043fb2fac37d35fae7f7db2135\",\"sensitive_path\":true,\"suffix\":\"\"},{\"basename_length\":9,\"depth\":6,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:47:secrets/*\\tsites/gram1.<REDACTED_TOKEN>.md\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"497890c3ee641ac24cb043e3d1c4d3097e785f90541fd6f46fc58a94cf1fad59\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"3c04304cd1f920c5da0b385e24e0c58089655809ecf01afdb4118da559a0bff0\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":16,\"depth\":8,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.sh\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"9658a5115eee789ce42083a24b49f428846e564cd8dc50efe3fdce5955b4f6cd\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"535e8fd31db685820b50c7d2b39ef39231de37a09ba5721896bfe93ef6e4caad\",\"sensitive_path\":true,\"suffix\":\".sh\"},{\"basename_length\":22,\"depth\":8,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.sh\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"65f40742fc1ec0d09a9acb6877eb0b147d7ade8ae13d54a35af65602f843096f\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"e7a87f3d36d8f47b6bb474e00c9a58d6559461add004344555b2dc54ae4a7712\",\"sensitive_path\":true,\"suffix\":\".sh\"},{\"basename_length\":36,\"depth\":6,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"git_ignore\":{\"evidence\":\"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\\tsites/gram1.<REDACTED_TOKEN>.py\\n\",\"matched\":true,\"rc\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_sha256\":\"09ee779100f326a11557a44c8046d16e2134c5d530e9ccb4c9c17b59ea6e9d3c\"},\"kind\":\"missing_from_checkout\",\"path_sha256\":\"b9e6fb675276fcc5dd88fc842e96ccc14c53b610ed0cd9822864f686fc4eb03b\",\"sensitive_path\":true,\"suffix\":\".py\"}],\"anomalies_truncated\":0,\"commit_tree_matches_capture_report\":false,\"expected_file_count\":4383,\"expected_total_bytes\":28903906,\"expected_tree_sha256\":\"ee05dc5ea7ab8ad354a66a5c5ffee7a982734125719d94d351d677ca75674062\",\"file_count\":4309,\"file_count_matches_capture_report\":false,\"ignored_missing_count\":74,\"manifest_command_id\":\"GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z\",\"manifest_consistent_with_commit\":false,\"manifest_entries\":4382,\"manifest_invalid_paths\":0,\"manifest_missing_files\":74,\"manifest_only_count\":74,\"manifest_only_path_hashes\":[{\"basename_length\":36,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"1831ab715f1a23930712ec363c2df210519d9a8e63ab21050af976806c462319\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":34,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"c2068a915ab0f0cd8086e7251b2406b4de17cd813988229b179a71e6eea49a0c\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":20,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"eb860700333344be2f70c57bfab9fcdb5fc959fc241019e0e55898793e2c530c\",\"sensitive_path\":true,\"suffix\":\".env\"},{\"basename_length\":30,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"f1a246ef882c692f3e7676d2009a5a0738904f4aee2e5b23ac832e6442e23159\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":19,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"46c726ae03ab26e7d67c925492f53ea0fa143a2d93f9fc91f4766da8cadb865e\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":30,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"683a786ccd0903852c34e18b2ee47a3270fc44a8a174c7ae37d27260ed35d870\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":30,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"d70b5961cf40d476336611938313bf4f984caa86367034f982e63f4f335ff9af\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":21,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"87fddbce4d9ee1002e548ca86665cb89db8d789c1df8ef3b0cc60ea183d7477e\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":40,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"206c0b2917281b76b3cc6113e55545a2d037982a20970eefdb7ae7bbbae71443\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":42,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"89150ce2e53b3a822590fac08a069419a5fe087dadb20c07f54d7574935d3bd0\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":33,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"325d9502c86190630eb0c655b0c9d84c4bf098e6ba4a6f8faf93d0cc2bde5b40\",\"sensitive_path\":true,\"suffix\":\".log\"},{\"basename_length\":42,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"f192560f9e1fb9fad21ad81749d8f69aaecd79bb442735aa5c01d42d8f18f3d9\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":41,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"b76d9833fe6db3eacc435aa2903d5a66cc477cbcd49300bec1fdd4190eb0d66e\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":36,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"0a37f3428e86c3b86e72e2ff56aabd60e73f01f9970cf50962c1295636e805d8\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":29,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"a2ac117952ccea622345bb6148acbff3ef5ed20a3e5ec4d9925190dac39f26f3\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":39,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"262f0dc79b7997d36058b3937c925c85d21784c07ab6b5ba4043cb11e6a762f0\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":43,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"55d7edc8a6446a60ce484b35c64c88647508903264c20a2188c959d4498620ce\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":41,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"1f146757dd427ba94db10f8cb7a28b442f7dfbc3dc7db97738faa37bbd6cab64\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":42,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"b3b3d8296f1af449d288c2736bfbfa2accbcde10ae34b0efe8bde8375c9388ec\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":39,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"12f015430ad9424a19dfe30db5b95dad23ecf63e7815f10af4ceb815267d5cc9\",\"sensitive_path\":true,\"suffix\":\".state\"},{\"basename_length\":73,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"f8e733dec894be535a3f55bec4243442f1b90fac15fef5356ebdf9c912d9923d\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172508z-sec02-4-to-3\"},{\"basename_length\":73,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"8c29698be41912729278dacb43ab65afecfd575c1b4f2e2b4c36b43da49c8247\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172523z-sec03-3-to-2\"},{\"basename_length\":73,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"aaf18ffde71b6473596bb7c92040719cbfc119ecc93fa87487250a9d071fb301\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172535z-sec04-2-to-1\"},{\"basename_length\":73,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"e62fcb5f18e96be2401274c6e4bfe4a00b083e06433909d6b39f4b20351476cb\",\"sensitive_path\":true,\"suffix\":\".bak-20260626t172547z-sec05-1-to-0\"},{\"basename_length\":29,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"221cbee473501ee3e126b8e29602ad5fbf9842b9746137aff0a33eb30d6c2ed4\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":43,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"99565b640d90eb8ddbd13d276ab6aa01aad1ea72771cd5a2b12e928723171ba6\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":30,\"depth\":9,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"315926ca6f4f110ee475ea3392cc3e34f03856f87fdd1e1c23b6c013f3f7ae20\",\"sensitive_path\":true,\"suffix\":\".tsv\"},{\"basename_length\":38,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"d0a1f552e44ee3cc70c58a889001f15abab3d5105c7392997bbfe052379c42c9\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":34,\"depth\":8,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"72a8c29f3c2e8e99a038a3447e7f459881cafb9be6b59ccbdb87b5056613a21a\",\"sensitive_path\":true,\"suffix\":\".md\"},{\"basename_length\":24,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"b5dba4d253ce4cfce27a99d1a2cc7aeeb4eb607bfc628c6e7d5e49498fa6eda1\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":29,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"8b6160f09289bf95e9011d5d2532bdfdace7151018bf14cddc167f61f39a05eb\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":23,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"7491d29ffb10110b9780e4c7b17379e5c92cc8b3b13a4cec215977c362aa7d89\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":26,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"c7a26319f7ce7a28a5d2652b0971d750620337110fb656676c98c5ed76f2d9ae\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":23,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"a7bee84809250a23b6e273c1663691bb7aa08f1f6e41dc2241bf6fd664220dca\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":27,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"af4f654bca9d5e77acb1ac87dc25551aace1adc3a1530bbeb3dd201177034d3d\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":27,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"0926fcd8278044b8e3e7ac54865790187ca3ba21c304055b9632f4e656bf0c66\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":28,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"df2357b50958070a518d8712dda0d0b0ff4dba9c56562ccc208b7e76e8fd9107\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":21,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"d5a2d14f9ee2d03202d4a9f9d75e4c09264e896aa470af23471a3e5a4c0e62c5\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":21,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"536ebafe24b85ae222b2a5af56cb5cb5c876d5d73509bb938f7338d563e31ac8\",\"sensitive_path\":true,\"suffix\":\".txt\"},{\"basename_length\":15,\"depth\":7,\"display\":\"<SENSITIVE_PATH_REDACTED>\",\"path_sha256\":\"c5684c73fe33566cba19bfc41131dd3794e305cfc3690e97ec47b83b802f6e55\",\"sensitive_path\":true,\"suffix\":\".txt\"}],\"manifest_sha256\":\"e561f275b7d1c6656e1fa80ee77b6fe4858d1178b4d8a592450ac4036adec459\",\"manifest_sha_mismatches\":0,\"manifest_size_mismatches\":0,\"manifest_snapshot_id\":\"20260731T071400Z\",\"manifest_symlinks\":0,\"manifest_verified_files\":4308,\"nonignored_missing_count\":0,\"total_bytes\":28684549,\"total_bytes_matches_capture_report\":false,\"tracked_only_count\":1,\"tracked_only_path_hashes\":[{\"basename_length\":19,\"depth\":1,\"display\":\"manifest.final.json\",\"path_sha256\":\"7e4eafd21b9aade5cc9f63c802f08c1efee3bd6fb0e7225c0e69179e7ac31adb\",\"sensitive_path\":false,\"suffix\":\".json\"}],\"tree_sha256\":\"fdac2c317221e056500efb4c4750c5cf0b4325102f99f67bb566f818bca9d231\",\"tree_sha_matches_capture_report\":false,\"unexpected_tracked_only_count\":0}}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 1a987ba..64ad434 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,15 +1,15 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=GRAM1-SITE-BASELINE-EDITING-DOSSIER-V6-INTEGRITY-AUDIT-20260731T083000Z +COMMAND_ID=GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z STATUS=OK RC=0 HOST=pve01 MODE=verify -COMPONENT=gram1-site-baseline-integrity-audit +COMPONENT=gram1-site-baseline-compact-verified-audit REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 -COMMAND_SHA256=7ddb77a54bc2cfa4a70442acb26bb500fb7935c9e9ea20d4b7a300899163a533 +COMMAND_SHA256=79e2b86a5c9714ebf4de028be29e044fd790edea2fdd78d15d86e06d7920bb69 DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=false @@ -24,11 +24,11 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=fa76687f4f69125ebd086d16fb3fb4557a90d0f1574208b1e12a131672cb2795 -SANITIZED_OUTPUT_SHA256=e88e9c4ec4ed17c27e5aa30d0bc61ed9a0c0aec30145dda307a4718069698a4c +RAW_EVIDENCE_SHA256=480802d0ddf9e9994edd7f81d4edfc84a52b8037088441fa6ee891323351d84f +SANITIZED_OUTPUT_SHA256=0b4b60c2e5b627ef412488b16903bf8ed516fc1d88bd85384eeee9308e033fad OUTPUT_BEGIN -HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"GRAM1-SITE-BASELINE-EDITING-DOSSIER-V6-INTEGRITY-AUDIT-20260731T083000Z","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} -{"baseline_integrity":{"capture_report_tree_matches_commit":false,"commit_identity_verified":true,"manifest_matches_commit":false,"repair_required_before_site_editing":true,"status":"DEGRADED"},"baseline_readme":"# `gram1.ru` initial technical baseline\n\n- Command: `GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z`\n- Snapshot: `20260731T071400Z`\n- Target branch: `site-gram1-ru-baseline-20260731`\n- Hosts successfully inspected: **3**\n- Hosts with site-related evidence: **3**\n- Public URLs fetched: **15**\n- Public assets inventoried: **0**\n\n## Start here\n\n1. `EDITING_START_HERE.md` — deployment/source candidates and the next editing entry points.\n2. `external/` — live DNS, HTTP, TLS, public-page, header and search-engine baseline.\n3. `hosts/` — per-host configuration, service, container, source and log inventory.\n4. `manifest.json` — SHA256 for every stored file.\n5. `collection/quarantined_files.json` — files excluded because the final secret scan was not clean.\n\n## Site-related hosts\n\n- `pve01`: 1000 domain matches; 10 candidate source roots.\n- `pve02`: 16 domain matches; 6 candidate source roots.\n- `pve03`: 6 domain matches; 0 candidate source roots.\n\n## Safety boundary\n\n- The production site was not modified.\n- Only a dedicated Gitea branch was created or updated.\n- Secret values, cookies, credentials, private keys and environment values were redacted or excluded.\n- Raw access logs were not stored; only aggregate route/status information was retained.\n","capture_summary":{"command_id":"GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z","discovered_hosts":[{"candidate_source_roots":[{"markers":"<list:1>","path":"/root/homelab-configs-worktree","reasons":"<list:1>","score":"144"},{"markers":"<list:0>","path":"/root/homelab-configs-worktree/docs","reasons":"<list:1>","score":"129"},{"markers":"<list:0>","path":"/root/homelab-configs-worktree/docs/operations","reasons":"<list:1>","score":"110"},{"markers":"<list:1>","path":"/srv/homelab-desired-state","reasons":"<list:1>","score":"95"},{"markers":"<list:0>","path":"/srv/homelab-desired-state/health","reasons":"<list:1>","score":"63"},{"markers":"<list:1>","path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation","reasons":"<list:1>","score":"32"},{"markers":"<list:0>","path":"/srv/homelab-desired-state/sbin","reasons":"<list:1>","score":"26"},{"markers":"<list:1>","path":"/srv/homelab-ops-worktrees/cr-2026-0015","reasons":"<list:1>","score":"23"},{"markers":"<list:1>","path":"/root/homelab-ops-cr-2026-0004","reasons":"<list:1>","score":"19"},{"markers":"<list:1>","path":"/root/homelab-ops-cr-2026-0012","reasons":"<list:1>","score":"17"}],"container_count":1,"directory":"local","domain_match_count":1000,"fqdn":"pve01.gram1.ru","hostname":"pve01","source_snapshots":[{"source_root":"/root/homelab-configs-worktree","stored_bytes":"9347306","stored_files":"1322","truncated":""},{"source_root":"/root/homelab-configs-worktree/docs","stored_bytes":"6362627","stored_files":"764","truncated":""},{"source_root":"/root/homelab-configs-worktree/docs/operations","stored_bytes":"5969079","stored_files":"699","truncated":""},{"source_root":"/srv/homelab-desired-state","stored_bytes":"1274899","stored_files":"957","truncated":""},{"source_root":"/srv/homelab-desired-state/health","stored_bytes":"231477","stored_files":"493","truncated":""}]},{"candidate_source_roots":[{"markers":"<list:0>","path":"/root/evidence/forum-prod-diag-20260629T032514Z","reasons":"<list:1>","score":"2"},{"markers":"<list:0>","path":"/root/evidence/forum-prod-os-baseline-20260629T034119Z","reasons":"<list:1>","score":"2"},{"markers":"<list:0>","path":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z","reasons":"<list:1>","score":"1"},{"markers":"<list:0>","path":"/root/evidence/forum-prod-recover-20260629T025511Z","reasons":"<list:1>","score":"1"},{"markers":"<list:0>","path":"/root/evidence/forum-prod-recreate-20260629T030810Z","reasons":"<list:1>","score":"1"},{"markers":"<list:0>","path":"/srv/homelab-desired-state/routerguard-tuya","reasons":"<list:1>","score":"1"}],"container_count":0,"directory":"pve02","domain_match_count":16,"fqdn":"pve02.gram1.ru","hostname":"pve02","source_snapshots":[{"source_root":"/root/evidence/forum-prod-diag-20260629T032514Z","stored_bytes":"852","stored_files":"3","truncated":""},{"source_root":"/root/evidence/forum-prod-os-baseline-20260629T034119Z","stored_bytes":"14367","stored_files":"3","truncated":""},{"source_root":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z","stored_bytes":"242","stored_files":"3","truncated":""},{"source_root":"/root/evidence/forum-prod-recover-20260629T025511Z","stored_bytes":"1438","stored_files":"3","truncated":""},{"source_root":"/root/evidence/forum-prod-recreate-20260629T030810Z","stored_bytes":"3490","stored_files":"3","truncated":""}]},{"candidate_source_roots":[],"container_count":0,"directory":"pve03","domain_match_count":6,"fqdn":"pve03.gram1.ru","hostname":"pve03","source_snapshots":[]}],"domain":"gram1.ru","final_sanitation":{"processed_text_files":4380,"quarantined_file_count":0},"hosts_attempted":12,"hosts_failed":9,"hosts_successful":3,"public_http_assets":0,"public_http_pages":15,"resolved_ips":["95.84.154.183"],"site_hosts":[{"candidate_source_roots":[{"markers":"<list:1>","path":"/root/homelab-configs-worktree","reasons":"<list:1>","score":"144"},{"markers":"<list:0>","path":"/root/homelab-configs-worktree/docs","reasons":"<list:1>","score":"129"},{"markers":"<list:0>","path":"/root/homelab-configs-worktree/docs/operations","reasons":"<list:1>","score":"110"},{"markers":"<list:1>","path":"/srv/homelab-desired-state","reasons":"<list:1>","score":"95"},{"markers":"<list:0>","path":"/srv/homelab-desired-state/health","reasons":"<list:1>","score":"63"},{"markers":"<list:1>","path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation","reasons":"<list:1>","score":"32"},{"markers":"<list:0>","path":"/srv/homelab-desired-state/sbin","reasons":"<list:1>","score":"26"},{"markers":"<list:1>","path":"/srv/homelab-ops-worktrees/cr-2026-0015","reasons":"<list:1>","score":"23"},{"markers":"<list:1>","path":"/root/homelab-ops-cr-2026-0004","reasons":"<list:1>","score":"19"},{"markers":"<list:1>","path":"/root/homelab-ops-cr-2026-0012","reasons":"<list:1>","score":"17"}],"container_count":1,"directory":"local","domain_match_count":1000,"fqdn":"pve01.gram1.ru","hostname":"pve01","source_snapshots":[{"source_root":"/root/homelab-configs-worktree","stored_bytes":"9347306","stored_files":"1322","truncated":""},{"source_root":"/root/homelab-configs-worktree/docs","stored_bytes":"6362627","stored_files":"764","truncated":""},{"source_root":"/root/homelab-configs-worktree/docs/operations","stored_bytes":"5969079","stored_files":"699","truncated":""},{"source_root":"/srv/homelab-desired-state","stored_bytes":"1274899","stored_files":"957","truncated":""},{"source_root":"/srv/homelab-desired-state/health","stored_bytes":"231477","stored_files":"493","truncated":""}]},{"candidate_source_roots":[{"markers":"<list:0>","path":"/root/evidence/forum-prod-diag-20260629T032514Z","reasons":"<list:1>","score":"2"},{"markers":"<list:0>","path":"/root/evidence/forum-prod-os-baseline-20260629T034119Z","reasons":"<list:1>","score":"2"},{"markers":"<list:0>","path":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z","reasons":"<list:1>","score":"1"},{"markers":"<list:0>","path":"/root/evidence/forum-prod-recover-20260629T025511Z","reasons":"<list:1>","score":"1"},{"markers":"<list:0>","path":"/root/evidence/forum-prod-recreate-20260629T030810Z","reasons":"<list:1>","score":"1"},{"markers":"<list:0>","path":"/srv/homelab-desired-state/routerguard-tuya","reasons":"<list:1>","score":"1"}],"container_count":0,"directory":"pve02","domain_match_count":16,"fqdn":"pve02.gram1.ru","hostname":"pve02","source_snapshots":[{"source_root":"/root/evidence/forum-prod-diag-20260629T032514Z","stored_bytes":"852","stored_files":"3","truncated":""},{"source_root":"/root/evidence/forum-prod-os-baseline-20260629T034119Z","stored_bytes":"14367","stored_files":"3","truncated":""},{"source_root":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z","stored_bytes":"242","stored_files":"3","truncated":""},{"source_root":"/root/evidence/forum-prod-recover-20260629T025511Z","stored_bytes":"1438","stored_files":"3","truncated":""},{"source_root":"/root/evidence/forum-prod-recreate-20260629T030810Z","stored_bytes":"3490","stored_files":"3","truncated":""}]},{"candidate_source_roots":[],"container_count":0,"directory":"pve03","domain_match_count":6,"fqdn":"pve03.gram1.ru","hostname":"pve03","source_snapshots":[]}],"snapshot_id":"20260731T071400Z","tls_hosts":["gram1.ru","www.gram1.ru"]},"changes_made":false,"command_id":"GRAM1-SITE-BASELINE-EDITING-DOSSIER-V6-INTEGRITY-AUDIT-20260731T083000Z","coverage_notes":{"dossier_is_a_projection":true,"failed_probe_count":9,"public_assets_zero":true,"raw_baseline_is_authoritative":true},"dns":{"_dmarc.gram1.ru":{"A":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"AAAA":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"CAA":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"CNAME":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"DNSKEY":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"DNSSEC_PROBE":{"rc":0,"stderr":"","stdout":"\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +dnssec +multiline _dmarc.gram1.ru A\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37736\n;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags: do; udp: 1212\n;; QUESTION SECTION:\n;_dmarc.gram1.ru.\tIN A\n\n;; AUTHORITY SECTION:\ngram1.ru.\t\t371 IN SOA sara.ns.cloudflare.com. dns.cloudflare.com. (\n\t\t\t\t2410492416 ; serial\n\t\t\t\t10000 ; refresh (2 hours 46 minutes 40 seconds)\n\t\t\t\t2400 ; retry (40 minutes)\n\t\t\t\t604800 ; expire (1 week)\n\t\t\t\t1800 ; minimum (30 minutes)\n\t\t\t\t)\n\n;; Query time: 1 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Fri Jul 31 10:37:17 MSK 2026\n;; MSG SIZE rcvd: 128\n\n"},"DS":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"HTTPS":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"MX":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"NS":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"SOA":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"SVCB":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"TXT":{"rc":0,"stderr":"","stdout":"_dmarc.gram1.ru.\t300\tIN\tTXT\t\"v=DMARC1; p=reject\"\n"}},"gram1.ru":{"A":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t129\tIN\tA\t95.84.154.183\n"},"AAAA":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t258\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"CAA":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t374\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"CNAME":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t374\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"DNSKEY":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t374\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"DNSSEC_PROBE":{"rc":0,"stderr":"","stdout":"\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +dnssec +multiline gram1.ru A\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4726\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags: do; udp: 1212\n;; QUESTION SECTION:\n;gram1.ru.\t\tIN A\n\n;; ANSWER SECTION:\ngram1.ru.\t\t129 IN A 95.84.154.183\n\n;; Query time: 0 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Fri Jul 31 10:37:14 MSK 2026\n;; MSG SIZE rcvd: 61\n\n"},"DS":{"rc":0,"stderr":"","stdout":"ru.\t\t\t3101\tIN\tSOA\ta.dns.ripn.net. hostmaster.ripn.net. 4069813 86400 14400 2592000 3600\n"},"HTTPS":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t374\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"MX":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t374\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"NS":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t12670\tIN\tNS\tsara.ns.cloudflare.com.\ngram1.ru.\t\t12670\tIN\tNS\tvern.ns.cloudflare.com.\n"},"SOA":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t1800\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"SVCB":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t374\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"TXT":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t300\tIN\tTXT\t\"v=spf1 -all\"\n"}},"www.gram1.ru":{"A":{"rc":0,"stderr":"","stdout":"www.gram1.ru.\t\t300\tIN\tA\t95.84.154.183\n"},"AAAA":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t374\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"CAA":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t372\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"CNAME":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t374\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"DNSKEY":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"DNSSEC_PROBE":{"rc":0,"stderr":"","stdout":"\n; <<>> DiG 9.20.23-1~deb13u1-Debian <<>> +dnssec +multiline www.gram1.ru A\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48071\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags: do; udp: 1212\n;; QUESTION SECTION:\n;www.gram1.ru.\t\tIN A\n\n;; ANSWER SECTION:\nwww.gram1.ru.\t\t297 IN A 95.84.154.183\n\n;; Query time: 1 msec\n;; SERVER: 100.100.131.41#53(100.100.131.41) (UDP)\n;; WHEN: Fri Jul 31 10:37:17 MSK 2026\n;; MSG SIZE rcvd: 69\n\n"},"DS":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t372\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"HTTPS":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"MX":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t374\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"NS":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t374\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"SOA":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t372\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"SVCB":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t371\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"},"TXT":{"rc":0,"stderr":"","stdout":"gram1.ru.\t\t1691\tIN\tSOA\tsara.ns.cloudflare.com. dns.cloudflare.com. 2410492416 10000 2400 604800 1800\n"}}},"dossier_json_bytes_before_hash_field":345137,"dossier_json_sha256":"e7252d8d48b73bbe6eb4d6a8729ff3264ce30bca29193b533761987d2c0509a6","dossier_markdown":"# Editing dossier: `gram1.ru`\n\n## Cryptographic identity\n\n- Branch: `site-gram1-ru-baseline-20260731`\n- Commit: `f9d3ba8caf65005605aa8aee2ede7e4e7e94ee49`\n- Snapshot tree SHA256: `fdac2c317221e056500efb4c4750c5cf0b4325102f99f67bb566f818bca9d231`\n- Files / bytes: **4309 / 28684549**\n- Capture-report tree match: **False**\n- Manifest/commit consistency: **False**\n- Missing manifest files: **74**\n- Missing files matched by Git ignore rules: **74**\n\n## Collection coverage\n\n- Hosts attempted: **12**\n- Hosts successful: **3**\n- Hosts failed: **9**\n- Site-related hosts: **3**\n- Public pages: **15**\n- Public assets: **0**\n\n## Highest-priority editable roots\n\n- `pve01` → `/root/homelab-configs-worktree`; score=144; frameworks=Docker Compose; snapshot=yes\n- `pve01` → `/root/homelab-configs-worktree/docs`; score=129; frameworks=Docker Compose; snapshot=yes\n- `pve01` → `/root/homelab-configs-worktree/docs/operations`; score=110; frameworks=Docker Compose; snapshot=yes\n- `pve01` → `/srv/homelab-desired-state`; score=95; frameworks=Docker Compose; snapshot=yes\n- `pve01` → `/srv/homelab-desired-state/health`; score=63; frameworks=Docker Compose; snapshot=yes\n- `pve01` → `/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation`; score=32; frameworks=Docker Compose; snapshot=no\n- `pve01` → `/srv/homelab-desired-state/sbin`; score=26; frameworks=Docker Compose; snapshot=no\n- `pve01` → `/srv/homelab-ops-worktrees/cr-2026-0015`; score=23; frameworks=Docker Compose; snapshot=no\n- `pve01` → `/root/homelab-ops-cr-2026-0004`; score=19; frameworks=Docker Compose; snapshot=no\n- `pve01` → `/root/homelab-ops-cr-2026-0012`; score=17; frameworks=Docker Compose; snapshot=no\n- `pve02` → `/root/evidence/forum-prod-diag-20260629T032514Z`; score=2; frameworks=not identified; snapshot=yes\n- `pve02` → `/root/evidence/forum-prod-os-baseline-20260629T034119Z`; score=2; frameworks=not identified; snapshot=yes\n- `pve02` → `/root/evidence/forum-prod-offline-fix2-20260629T033832Z`; score=1; frameworks=not identified; snapshot=yes\n- `pve02` → `/root/evidence/forum-prod-recover-20260629T025511Z`; score=1; frameworks=not identified; snapshot=yes\n- `pve02` → `/root/evidence/forum-prod-recreate-20260629T030810Z`; score=1; frameworks=not identified; snapshot=yes\n- `pve02` → `/srv/homelab-desired-state/routerguard-tuya`; score=1; frameworks=not identified; snapshot=no\n\n## Failed host probes\n\n- `[PRIVATE_IP]`: rc=142; \n- `[PRIVATE_IP]`: rc=142; \n- `95.84.154.183`: rc=255; ssh: connect to host 95.84.154.183 port 22: Connection timed out\n\n- `core-apps`: rc=255; ssh: Could not resolve hostname core-apps: Name or service not known\n\n- `edge-vm`: rc=255; No ED25519 host key is known for edge-vm and you have requested strict checking.\nHost key verification failed.\n\n- `gram1.ru`: rc=255; ssh: connect to host gram1.ru port 22: Connection timed out\n\n- `pve02.gram1.ru`: rc=255; No ED25519 host key is known for pve02.gram1.ru and you have requested strict checking.\nHost key verification failed.\n\n- `pve03.gram1.ru`: rc=255; No ED25519 host key is known for pve03.gram1.ru and you have requested strict checking.\nHost key verification failed.\n\n- `www.gram1.ru`: rc=255; ssh: connect to host www.gram1.ru port 22: Connection timed out\n\n\n## Safety\n\n- This dossier operation only cloned and verified the existing Gitea branch.\n- Production and Gitea were not modified.\n- All returned text was sanitized again before publication.\n","editing_candidates":[{"detected_frameworks":["Docker Compose"],"discovery_score":144,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":1510,"snapshot":{"source_root":"/root/homelab-configs-worktree","stored_bytes":9347306,"stored_files":1322,"truncated":false},"source_root":"/root/homelab-configs-worktree"},{"detected_frameworks":["Docker Compose"],"discovery_score":129,"domain_match_count":1000,"host":"pve01","markers":[],"priority_score":1360,"snapshot":{"source_root":"/root/homelab-configs-worktree/docs","stored_bytes":6362627,"stored_files":764,"truncated":false},"source_root":"/root/homelab-configs-worktree/docs"},{"detected_frameworks":["Docker Compose"],"discovery_score":110,"domain_match_count":1000,"host":"pve01","markers":[],"priority_score":1170,"snapshot":{"source_root":"/root/homelab-configs-worktree/docs/operations","stored_bytes":5969079,"stored_files":699,"truncated":false},"source_root":"/root/homelab-configs-worktree/docs/operations"},{"detected_frameworks":["Docker Compose"],"discovery_score":95,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":1020,"snapshot":{"source_root":"/srv/homelab-desired-state","stored_bytes":1274899,"stored_files":957,"truncated":false},"source_root":"/srv/homelab-desired-state"},{"detected_frameworks":["Docker Compose"],"discovery_score":63,"domain_match_count":1000,"host":"pve01","markers":[],"priority_score":700,"snapshot":{"source_root":"/srv/homelab-desired-state/health","stored_bytes":231477,"stored_files":493,"truncated":false},"source_root":"/srv/homelab-desired-state/health"},{"detected_frameworks":["Docker Compose"],"discovery_score":32,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":370,"snapshot":null,"source_root":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation"},{"detected_frameworks":["Docker Compose"],"discovery_score":26,"domain_match_count":1000,"host":"pve01","markers":[],"priority_score":310,"snapshot":null,"source_root":"/srv/homelab-desired-state/sbin"},{"detected_frameworks":["Docker Compose"],"discovery_score":23,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":280,"snapshot":null,"source_root":"/srv/homelab-ops-worktrees/cr-2026-0015"},{"detected_frameworks":["Docker Compose"],"discovery_score":19,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":240,"snapshot":null,"source_root":"/root/homelab-ops-cr-2026-0004"},{"detected_frameworks":["Docker Compose"],"discovery_score":17,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":220,"snapshot":null,"source_root":"/root/homelab-ops-cr-2026-0012"},{"detected_frameworks":[],"discovery_score":2,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":56,"snapshot":{"source_root":"/root/evidence/forum-prod-diag-20260629T032514Z","stored_bytes":852,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-diag-20260629T032514Z"},{"detected_frameworks":[],"discovery_score":2,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":56,"snapshot":{"source_root":"/root/evidence/forum-prod-os-baseline-20260629T034119Z","stored_bytes":14367,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-os-baseline-20260629T034119Z"},{"detected_frameworks":[],"discovery_score":1,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":46,"snapshot":{"source_root":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z","stored_bytes":242,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z"},{"detected_frameworks":[],"discovery_score":1,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":46,"snapshot":{"source_root":"/root/evidence/forum-prod-recover-20260629T025511Z","stored_bytes":1438,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-recover-20260629T025511Z"},{"detected_frameworks":[],"discovery_score":1,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":46,"snapshot":{"source_root":"/root/evidence/forum-prod-recreate-20260629T030810Z","stored_bytes":3490,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-recreate-20260629T030810Z"},{"detected_frameworks":[],"discovery_score":1,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":26,"snapshot":null,"source_root":"/srv/homelab-desired-state/routerguard-tuya"}],"editing_start_here":"# Editing start: `gram1.ru`\n\nThis document lists the highest-confidence source and deployment roots discovered by the baseline.\n\n## Host `pve01`\n\n- Source candidate `/root/homelab-configs-worktree` — score 144; markers: .git.\n- Source candidate `/root/homelab-configs-worktree/docs` — score 129; markers: none.\n- Source candidate `/root/homelab-configs-worktree/docs/operations` — score 110; markers: none.\n- Source candidate `/srv/homelab-desired-state` — score 95; markers: .git.\n- Source candidate `/srv/homelab-desired-state/health` — score 63; markers: none.\n- Source candidate `/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation` — score 32; markers: .git.\n- Source candidate `/srv/homelab-desired-state/sbin` — score 26; markers: none.\n- Source candidate `/srv/homelab-ops-worktrees/cr-2026-0015` — score 23; markers: .git.\n- Source candidate `/root/homelab-ops-cr-2026-0004` — score 19; markers: .git.\n- Source candidate `/root/homelab-ops-cr-2026-0012` — score 17; markers: .git.\n- Snapshot `/root/homelab-configs-worktree`: 1322 files / 9347306 bytes; truncated=False.\n- Snapshot `/root/homelab-configs-worktree/docs`: 764 files / 6362627 bytes; truncated=False.\n- Snapshot `/root/homelab-configs-worktree/docs/operations`: 699 files / 5969079 bytes; truncated=False.\n- Snapshot `/srv/homelab-desired-state`: 957 files / 1274899 bytes; truncated=False.\n- Snapshot `/srv/homelab-desired-state/health`: 493 files / 231477 bytes; truncated=False.\n\n## Host `pve02`\n\n- Source candidate `/root/evidence/forum-prod-diag-20260629T032514Z` — score 2; markers: none.\n- Source candidate `/root/evidence/forum-prod-os-baseline-20260629T034119Z` — score 2; markers: none.\n- Source candidate `/root/evidence/forum-prod-offline-fix2-20260629T033832Z` — score 1; markers: none.\n- Source candidate `/root/evidence/forum-prod-recover-20260629T025511Z` — score 1; markers: none.\n- Source candidate `/root/evidence/forum-prod-recreate-20260629T030810Z` — score 1; markers: none.\n- Source candidate `/srv/homelab-desired-state/routerguard-tuya` — score 1; markers: none.\n- Snapshot `/root/evidence/forum-prod-diag-20260629T032514Z`: 3 files / 852 bytes; truncated=False.\n- Snapshot `/root/evidence/forum-prod-os-baseline-20260629T034119Z`: 3 files / 14367 bytes; truncated=False.\n- Snapshot `/root/evidence/forum-prod-offline-fix2-20260629T033832Z`: 3 files / 242 bytes; truncated=False.\n- Snapshot `/root/evidence/forum-prod-recover-20260629T025511Z`: 3 files / 1438 bytes; truncated=False.\n- Snapshot `/root/evidence/forum-prod-recreate-20260629T030810Z`: 3 files / 3490 bytes; truncated=False.\n\n## Host `pve03`\n\n- No source root, but domain/config evidence exists.\n\nBefore changing production, compare the selected source snapshot with the live source root and create a separate transactional change capsule with byte-for-byte backup and automatic rollback.\n","failed_hosts":[{"duration_seconds":10.366,"rc":142,"ssh_target":"root@[PRIVATE_IP]","stderr":"","target":"[PRIVATE_IP]"},{"duration_seconds":10.262,"rc":142,"ssh_target":"root@[PRIVATE_IP]","stderr":"","target":"[PRIVATE_IP]"},{"duration_seconds":7.011,"rc":255,"ssh_target":"root@95.84.154.183","stderr":"ssh: connect to host 95.84.154.183 port 22: Connection timed out\n","target":"95.84.154.183"},{"duration_seconds":0.043,"rc":255,"ssh_target":"core-apps","stderr":"ssh: Could not resolve hostname core-apps: Name or service not known\n","target":"core-apps"},{"duration_seconds":0.045,"rc":255,"ssh_target":"edge-vm","stderr":"No ED25519 host key is known for edge-vm and you have requested strict checking.\nHost key verification failed.\n","target":"edge-vm"},{"duration_seconds":7.012,"rc":255,"ssh_target":"gram1.ru","stderr":"ssh: connect to host gram1.ru port 22: Connection timed out\n","target":"gram1.ru"},{"duration_seconds":0.026,"rc":255,"ssh_target":"pve02.gram1.ru","stderr":"No ED25519 host key is known for pve02.gram1.ru and you have requested strict checking.\nHost key verification failed.\n","target":"pve02.gram1.ru"},{"duration_seconds":0.025,"rc":255,"ssh_target":"pve03.gram1.ru","stderr":"No ED25519 host key is known for pve03.gram1.ru and you have requested strict checking.\nHost key verification failed.\n","target":"pve03.gram1.ru"},{"duration_seconds":7.013,"rc":255,"ssh_target":"www.gram1.ru","stderr":"ssh: connect to host www.gram1.ru port 22: Connection timed out\n","target":"www.gram1.ru"}],"gitea_changed":false,"hosts":[{"candidate_source_roots":[{"markers":[".git"],"path":"/root/homelab-configs-worktree","reasons":["domain_match_parent"],"score":144},{"markers":[],"path":"/root/homelab-configs-worktree/docs","reasons":["domain_match_parent"],"score":129},{"markers":[],"path":"/root/homelab-configs-worktree/docs/operations","reasons":["domain_match_parent"],"score":110},{"markers":[".git"],"path":"/srv/homelab-desired-state","reasons":["domain_match_parent"],"score":95},{"markers":[],"path":"/srv/homelab-desired-state/health","reasons":["domain_match_parent"],"score":63},{"markers":[".git"],"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation","reasons":["domain_match_parent"],"score":32},{"markers":[],"path":"/srv/homelab-desired-state/sbin","reasons":["domain_match_parent"],"score":26},{"markers":[".git"],"path":"/srv/homelab-ops-worktrees/cr-2026-0015","reasons":["domain_match_parent"],"score":23},{"markers":[".git"],"path":"/root/homelab-ops-cr-2026-0004","reasons":["domain_match_parent"],"score":19},{"markers":[".git"],"path":"/root/homelab-ops-cr-2026-0012","reasons":["domain_match_parent"],"score":17}],"certificate_reference_count":0,"container_count":1,"container_inventory":{"podman.json":{"containers":[{"command":"/init","created":"2026-07-28T14:05:23.091587634+03:00","domain_related":false,"engine":"podman","entrypoint":null,"environment_keys":["HOME","HOSTNAME","INFLUXD_CONFIG_PATH","INFLUXVER","PATH","S6VER","S6_SERVICES_READYTIME","container"],"id":"aa350cac62aa","image":"ghcr.io/analogj/scrutiny:latest-omnibus","labels":{"org.opencontainers.image.created":"2026-04-28T01:10:28.851Z","org.opencontainers.image.description":"Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds","org.opencontainers.image.licenses":"MIT","org.opencontainers.image.revision":"5928d68be79d91431afa937b3b233ed792187a1f","org.opencontainers.image.source":"https://github.com/AnalogJ/scrutiny","org.opencontainers.image.title":"scrutiny","org.opencontainers.image.url":"https://github.com/AnalogJ/scrutiny","org.opencontainers.image.version":"v0.9.2-omnibus"},"mounts":["<dict:6>","<dict:6>","<dict:6>"],"name":"scrutiny","ports":{"8080/tcp":"<list:1>"},"restart_policy":"no","state":{"CgroupPath":"/machine.slice/libpod-aa350cac62aa0235a41c70f8650092e69fa92e815c08c8e4e2aeea65a8accc46.scope","CheckpointedAt":"0001-01-01T00:00:00Z","ConmonPid":"1583","Dead":"","Error":"","ExitCode":"","FinishedAt":"0001-01-01T00:00:00Z","OOMKilled":"","OciVersion":"1.2.0","Paused":"","Pid":"1585","Restarting":"","RestoredAt":"0001-01-01T00:00:00Z","Running":"True","StartedAt":"2026-07-28T14:05:23.370292013+03:00","Status":"running"},"user":"","working_dir":"/opt/scrutiny"}],"errors":[],"ps_rc":0}},"deployment_evidence":[{"line":1,"path":"systemd/services.txt","text":"* docker.service not-found inactive dead docker.service"},{"line":2,"path":"systemd/services.txt","text":"homelab-docker-health.service loaded inactive dead Homelab Docker health readonly collector"},{"line":2,"path":"systemd/timers.txt","text":"Sat 2026-08-01 00:08:53 MSK 13h Fri 2026-07-31 00:18:50 MSK 10h ago homelab-docker-health.timer homelab-docker-health.service"},{"line":1,"path":"systemd/units/homelab-docker-health.service.cat.txt","text":"# /etc/systemd/system/homelab-docker-health.service"},{"line":3,"path":"systemd/units/homelab-docker-health.service.cat.txt","text":"Description=Homelab Docker health readonly collector"},{"line":5,"path":"systemd/units/homelab-docker-health.service.cat.txt","text":"After=local-fs.target docker.service"},{"line":6,"path":"systemd/units/homelab-docker-health.service.cat.txt","text":"Wants=docker.service"},{"line":10,"path":"systemd/units/homelab-docker-health.service.cat.txt","text":"EnvironmentFile=-/etc/default/homelab-docker-health"},{"line":11,"path":"systemd/units/homelab-docker-health.service.cat.txt","text":"ExecStart=/usr/local/sbin/homelab-docker-health.sh"},{"line":1,"path":"systemd/units/homelab-docker-health.service.show.txt","text":"ExecStart={ path=/usr/local/sbin/homelab-docker-health.sh ; argv[]=/usr/local/sbin/homelab-docker-health.sh ; ignore_errors=no ; start_time=[Fri 2026-07-31 00:18:50 MSK] ; stop_time=[Fri 2026-07-31 00:18:50 MSK] ; pid=2850307 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/homelab-docker-health.service.show.txt","text":"EnvironmentFiles=/etc/default/homelab-docker-health (ignore_errors=yes)"},{"line":3,"path":"systemd/units/homelab-docker-health.service.show.txt","text":"WorkingDirectory="},{"line":4,"path":"systemd/units/homelab-docker-health.service.show.txt","text":"Id=homelab-docker-health.service"},{"line":8,"path":"systemd/units/homelab-docker-health.service.show.txt","text":"FragmentPath=/etc/systemd/system/homelab-docker-health.service"},{"line":22,"path":"systemd/units/kmod-static-nodes.service.cat.txt","text":"ExecStart=/usr/bin/kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/static-nodes.conf"},{"line":1,"path":"systemd/units/kmod-static-nodes.service.show.txt","text":"ExecStart={ path=/usr/bin/kmod ; argv[]=/usr/bin/kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/static-nodes.conf ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/kmod-static-nodes.service.show.txt","text":"WorkingDirectory="},{"line":8,"path":"systemd/units/prometheus-node-exporter-apt.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/share/prometheus-node-exporter-collectors/apt_info.py | sponge /var/lib/prometheus/node-exporter/apt.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-apt.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/apt_info.py | sponge /var/lib/prometheus/node-exporter/apt.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:26:24 MSK] ; stop_time=[Fri 2026-07-31 10:26:25 MSK] ; pid=542370 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-apt.service.show.txt","text":"WorkingDirectory="},{"line":10,"path":"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/bin/ipmitool sensor | /usr/share/prometheus-node-exporter-collectors/ipmitool | sponge /var/lib/prometheus/node-exporter/ipmitool_sensor.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/bin/ipmitool sensor | /usr/share/prometheus-node-exporter-collectors/ipmitool | sponge /var/lib/prometheus/node-exporter/ipmitool_sensor.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.show.txt","text":"WorkingDirectory="},{"line":9,"path":"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/share/prometheus-node-exporter-collectors/mellanox_hca_temp | sponge /var/lib/prometheus/node-exporter/mellanox_hca_temp.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/mellanox_hca_temp | sponge /var/lib/prometheus/node-exporter/mellanox_hca_temp.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.show.txt","text":"WorkingDirectory="},{"line":8,"path":"systemd/units/prometheus-node-exporter-nvme.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/share/prometheus-node-exporter-collectors/nvme_metrics.py | sponge /var/lib/prometheus/node-exporter/nvme.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-nvme.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/nvme_metrics.py | sponge /var/lib/prometheus/node-exporter/nvme.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:28:14 MSK] ; stop_time=[Fri 2026-07-31 10:28:15 MSK] ; pid=543032 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-nvme.service.show.txt","text":"WorkingDirectory="},{"line":8,"path":"systemd/units/prometheus-node-exporter-smartmon.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/share/prometheus-node-exporter-collectors/smartmon.sh | sponge /var/lib/prometheus/node-exporter/smartmon.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-smartmon.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/smartmon.sh | sponge /var/lib/prometheus/node-exporter/smartmon.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-smartmon.service.show.txt","text":"WorkingDirectory="},{"line":9,"path":"systemd/units/prometheus-node-exporter.service.cat.txt","text":"EnvironmentFile=/etc/default/prometheus-node-exporter"},{"line":10,"path":"systemd/units/prometheus-node-exporter.service.cat.txt","text":"ExecStart=/usr/bin/prometheus-node-exporter $ARGS"},{"line":20,"path":"systemd/units/prometheus-node-exporter.service.cat.txt","text":"ExecStart="},{"line":21,"path":"systemd/units/prometheus-node-exporter.service.cat.txt","text":"ExecStart=/usr/bin/prometheus-node-exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector"},{"line":1,"path":"systemd/units/prometheus-node-exporter.service.show.txt","text":"ExecStart={ path=/usr/bin/prometheus-node-exporter ; argv[]=/usr/bin/prometheus-node-exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter.service.show.txt","text":"EnvironmentFiles=/etc/default/prometheus-node-exporter (ignore_errors=no)"},{"line":3,"path":"systemd/units/prometheus-node-exporter.service.show.txt","text":"WorkingDirectory="},{"line":10,"path":"systemd/units/proxmox-boot-cleanup.service.cat.txt","text":"ExecStart=/usr/sbin/proxmox-boot-tool kernel unpin --next-boot"},{"line":11,"path":"systemd/units/proxmox-boot-cleanup.service.cat.txt","text":"ExecStart=/usr/sbin/proxmox-boot-tool refresh"},{"line":1,"path":"systemd/units/proxmox-boot-cleanup.service.show.txt","text":"ExecStart={ path=/usr/sbin/proxmox-boot-tool ; argv[]=/usr/sbin/proxmox-boot-tool kernel unpin --next-boot ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/proxmox-boot-cleanup.service.show.txt","text":"ExecStart={ path=/usr/sbin/proxmox-boot-tool ; argv[]=/usr/sbin/proxmox-boot-tool refresh ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":3,"path":"systemd/units/proxmox-boot-cleanup.service.show.txt","text":"WorkingDirectory="},{"line":24,"path":"systemd/units/systemd-tmpfiles-setup-dev-early.service.cat.txt","text":"ExecStart=systemd-tmpfiles --prefix=/dev --create --boot --graceful"},{"line":1,"path":"systemd/units/systemd-tmpfiles-setup-dev-early.service.show.txt","text":"ExecStart={ path=systemd-tmpfiles ; argv[]=systemd-tmpfiles --prefix=/dev --create --boot --graceful ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/systemd-tmpfiles-setup-dev-early.service.show.txt","text":"WorkingDirectory="},{"line":25,"path":"systemd/units/systemd-tmpfiles-setup-dev.service.cat.txt","text":"ExecStart=systemd-tmpfiles --prefix=/dev --create --boot"},{"line":1,"path":"systemd/units/systemd-tmpfiles-setup-dev.service.show.txt","text":"ExecStart={ path=systemd-tmpfiles ; argv[]=systemd-tmpfiles --prefix=/dev --create --boot ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/systemd-tmpfiles-setup-dev.service.show.txt","text":"WorkingDirectory="},{"line":7,"path":"containers/podman.json","text":"\"engine\": \"podman\","},{"line":5,"path":"source/01_homelab-configs-worktree/OPS_RULES.md","text":"- Runtime, Docker, and /opt/stacks commands run only through EDGE SSH."},{"line":7,"path":"source/01_homelab-configs-worktree/OPS_RULES.md","text":"- On edge, never allow implicit Docker Compose default networks."},{"line":3,"path":"source/01_homelab-configs-worktree/README.md","text":"Документация восстановления homelab-кластера gram1.ru с нуля."},{"line":9,"path":"source/01_homelab-configs-worktree/README.md","text":"- Homepage: https://home.gram1.ru"},{"line":10,"path":"source/01_homelab-configs-worktree/README.md","text":"- Gitea: https://git.gram1.ru"},{"line":11,"path":"source/01_homelab-configs-worktree/README.md","text":"- Nextcloud: https://nc.gram1.ru"},{"line":12,"path":"source/01_homelab-configs-worktree/README.md","text":"- Vaultwarden: https://vault.gram1.ru"},{"line":13,"path":"source/01_homelab-configs-worktree/README.md","text":"- Dockge: https://dockge.gram1.ru"},{"line":14,"path":"source/01_homelab-configs-worktree/README.md","text":"- Uptime Kuma: http://uptime.gram1.ru"},{"line":15,"path":"source/01_homelab-configs-worktree/README.md","text":"- Gotify: http://gotify.gram1.ru"},{"line":23,"path":"source/01_homelab-configs-worktree/README.md","text":"5. Не использовать webroot / HTTP-01, пока WAN TCP/80 даёт timeout."},{"line":41,"path":"source/01_homelab-configs-worktree/README.md","text":"`https://backup.gram1.ru/backup.txt`"},{"line":45,"path":"source/01_homelab-configs-worktree/README.md","text":"- Dozzle: https://dozzle.gram1.ru"},{"line":46,"path":"source/01_homelab-configs-worktree/README.md","text":"- Paperless-ngx: https://paper.gram1.ru"},{"line":47,"path":"source/01_homelab-configs-worktree/README.md","text":"- Memos: https://memos.gram1.ru"},{"line":48,"path":"source/01_homelab-configs-worktree/README.md","text":"- Immich: https://photos.gram1.ru"},{"line":49,"path":"source/01_homelab-configs-worktree/README.md","text":"- Authentik: https://auth.gram1.ru"},{"line":53,"path":"source/01_homelab-configs-worktree/README.md","text":"- https://home.gram1.ru"},{"line":54,"path":"source/01_homelab-configs-worktree/README.md","text":"- Backup Health link points to `https://backup.gram1.ru/backup.txt`."},{"line":58,"path":"source/01_homelab-configs-worktree/README.md","text":"Never commit or print Cloudflare tokens, certbot credentials, `.env`, private keys, passwords, or raw NPMplus `meta`."},{"line":64,"path":"source/01_homelab-configs-worktree/README.md","text":"- URL: `https://backup.gram1.ru/backup.txt`"},{"line":84,"path":"source/01_homelab-configs-worktree/README.md","text":"- Operational rule: for `systemctl enable/start`, `docker compose`, `apt-get`, and `git push`, judge success by exit code plus explicit verification; informational stderr must not be treated as failure."},{"line":122,"path":"source/01_homelab-configs-worktree/README.md","text":"- Verification at this checkpoint: `photos.gram1.ru` returned 200 and off-host health returned `STATUS=OK`."},{"line":255,"path":"source/01_homelab-configs-worktree/README.md","text":"- `https://backup.gram1.ru/backup.txt`"},{"line":21,"path":"source/01_homelab-configs-worktree/SECURITY.md","text":"Cloudflare API tokens, certbot credential files, private keys, `.env` files, passwords, and raw NPMplus `meta` are secrets."},{"line":9,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/dockge-compose.yaml","text":"- /var/run/docker.sock:/var/run/docker.sock"},{"line":3,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/gitea-compose.yaml","text":"image: docker.gitea.com/gitea:1.26.2"},{"line":13,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/gitea-compose.yaml","text":"GITEA__server__DOMAIN: git.gram1.ru"},{"line":14,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/gitea-compose.yaml","text":"GITEA__server__ROOT_URL: https://git.gram1.ru/"},{"line":9,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-compose.yaml","text":"HOMEPAGE_ALLOWED_HOSTS: home.gram1.ru,homepage.vpn.gram1.ru"},{"line":3,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://home.gram1.ru"},{"line":7,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://homepage.vpn.gram1.ru"},{"line":8,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"description: VPN alias for Homepage"},{"line":11,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://auth.gram1.ru"},{"line":15,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://auth.vpn.gram1.ru"},{"line":16,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"description: VPN alias for Authentik"},{"line":19,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://vault.gram1.ru"},{"line":23,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://git.gram1.ru"},{"line":27,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://gitea.vpn.gram1.ru"},{"line":28,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"description: VPN alias for Gitea"},{"line":31,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://backup.gram1.ru/backup.txt"},{"line":36,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://uptime.gram1.ru"},{"line":40,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://kuma.vpn.gram1.ru"},{"line":41,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"description: VPN alias for Uptime Kuma"},{"line":44,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://grafana.vpn.gram1.ru"},{"line":48,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://prometheus.vpn.gram1.ru"},{"line":52,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://alertmanager.vpn.gram1.ru"},{"line":56,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://beszel.vpn.gram1.ru"},{"line":60,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://dozzle.gram1.ru"},{"line":61,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"description: Docker logs viewer"},{"line":64,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://ntfy.vpn.gram1.ru"},{"line":68,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://gotify.gram1.ru"},{"line":73,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://checks.vpn.gram1.ru"},{"line":77,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://npmplus.vpn.gram1.ru"},{"line":81,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://dockge.gram1.ru"},{"line":82,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"description: Compose stacks admin"},{"line":85,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://netbox.vpn.gram1.ru"},{"line":90,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://proxmox.vpn.gram1.ru"},{"line":91,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"description: Proxmox node 1"},{"line":94,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://minio.vpn.gram1.ru"},{"line":98,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://filebrowser.vpn.gram1.ru"},{"line":103,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://actual-budget.vpn.gram1.ru"},{"line":107,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://homebox.vpn.gram1.ru"},{"line":111,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://mealie.vpn.gram1.ru"},{"line":115,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://paper.gram1.ru"},{"line":119,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://memos.gram1.ru"},{"line":123,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://linkding.vpn.gram1.ru"},{"line":127,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://karakeep.vpn.gram1.ru"},{"line":131,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://it-tools.vpn.gram1.ru"},{"line":135,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://n8n.vpn.gram1.ru"},{"line":139,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://node-red.vpn.gram1.ru"},{"line":144,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://vikunja.vpn.gram1.ru"},{"line":148,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://bookstack.vpn.gram1.ru"},{"line":152,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://nc.gram1.ru"},{"line":156,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://photos.gram1.ru"},{"line":160,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://syncthing.vpn.gram1.ru"},{"line":165,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://pdf.vpn.gram1.ru"},{"line":169,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://jellyfin.vpn.gram1.ru"},{"line":173,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://audiobooks.vpn.gram1.ru"},{"line":177,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://books.vpn.gram1.ru"},{"line":181,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://homeassistant.vpn.gram1.ru"},{"line":186,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://searxng.vpn.gram1.ru"},{"line":191,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://dns1.vpn.gram1.ru"},{"line":195,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/homepage-services.yaml","text":"href: https://dns2.vpn.gram1.ru"},{"line":10,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/renovate-config.js","text":"gitAuthor: \"Renovate Bot <renovate@gram1.ru>\","},{"line":16,"path":"source/01_homelab-configs-worktree/configs/sanitized/edge-vm/renovate-config.js","text":"enabledManagers: [\"docker-compose\",\"dockerfile\",\"github-actions\"],"},{"line":3,"path":"source/01_homelab-configs-worktree/docs/00-overview.md","text":"Homelab gram1.ru построен вокруг Proxmox-кластера, внутреннего DNS, NPMplus reverse proxy, мониторинга, backup и набора self-hosted сервисов."},{"line":27,"path":"source/01_homelab-configs-worktree/docs/01-network-and-dns.md","text":"Use Cloudflare DNS challenge for internal/private services. Never print Cloudflare tokens, certbot credential files, or NPMplus raw `meta` in chat or logs."},{"line":29,"path":"source/01_homelab-configs-worktree/docs/01-network-and-dns.md","text":"Do not use webroot / HTTP-01 unless WAN TCP/80 reachability is intentionally fixed."},{"line":37,"path":"source/01_homelab-configs-worktree/docs/01-network-and-dns.md","text":"| dozzle.gram1.ru | [PRIVATE_IP] | Dozzle |"},{"line":38,"path":"source/01_homelab-configs-worktree/docs/01-network-and-dns.md","text":"| paper.gram1.ru | [PRIVATE_IP] | Paperless-ngx |"},{"line":39,"path":"source/01_homelab-configs-worktree/docs/01-network-and-dns.md","text":"| memos.gram1.ru | [PRIVATE_IP] | Memos |"},{"line":40,"path":"source/01_homelab-configs-worktree/docs/01-network-and-dns.md","text":"| photos.gram1.ru | [PRIVATE_IP] | Immich |"},{"line":41,"path":"source/01_homelab-configs-worktree/docs/01-network-and-dns.md","text":"| auth.gram1.ru | [PRIVATE_IP] | Authentik |"},{"line":42,"path":"source/01_homelab-configs-worktree/docs/01-network-and-dns.md","text":"| backup.gram1.ru | [PRIVATE_IP] | Backup health proxy |"},{"line":43,"path":"source/01_homelab-configs-worktree/docs/01-network-and-dns.md","text":"| turn.gram1.ru | [PRIVATE_IP] | TURN / Nextcloud-related exception |"},{"line":45,"path":"source/01_homelab-configs-worktree/docs/01-network-and-dns.md","text":"Final verified state for `backup.gram1.ru`:"},{"line":49,"path":"source/01_homelab-configs-worktree/docs/01-network-and-dns.md","text":"- HTTPS endpoint: `https://backup.gram1.ru/backup.txt`"},{"line":29,"path":"source/01_homelab-configs-worktree/docs/02-backup-and-restore.md","text":"https://backup.gram1.ru/backup.txt"},{"line":37,"path":"source/01_homelab-configs-worktree/docs/02-backup-and-restore.md","text":"Important: the root path `https://backup.gram1.ru/` may show the NPMplus Default Page. The correct health endpoint is `/backup.txt`."},{"line":93,"path":"source/01_homelab-configs-worktree/docs/02-backup-and-restore.md","text":"- Docker container state on edge-vm."},{"line":7,"path":"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md","text":"| Node | IP | Main role |"},{"line":11,"path":"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md","text":"| pve03 | [PRIVATE_IP] | edge-vm with Docker services |"},{"line":18,"path":"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md","text":"| 112 | unbound1 | LXC | pve01 | [PRIVATE_IP] | Unbound primary upstream |"},{"line":20,"path":"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md","text":"| 113 | unbound2 | LXC | pve02 | [PRIVATE_IP] | Unbound secondary upstream |"},{"line":21,"path":"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md","text":"| 130 | edge-vm | VM | pve03 | [PRIVATE_IP] | Docker edge services |"},{"line":44,"path":"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md","text":"edge-vm hosts the main Docker service layer."},{"line":81,"path":"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md","text":"## Validation after node restore"},{"line":85,"path":"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md","text":"- node is reachable by SSH;"},{"line":107,"path":"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md","text":"The previous 4 GB / 2 core sizing was not enough for the expanded Docker service set."},{"line":124,"path":"source/01_homelab-configs-worktree/docs/03-proxmox-layout.md","text":"## Node placement rules"},{"line":15,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Compose path: /opt/npmplus-compose/compose.yaml"},{"line":25,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Compose path: /opt/uptime-kuma-compose/compose.yaml"},{"line":27,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Domain: https://uptime.gram1.ru"},{"line":33,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Compose path: /opt/gotify-compose/compose.yaml"},{"line":35,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Domain: https://gotify.gram1.ru"},{"line":36,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Note: HEAD on root may return 404, so monitoring should accept the proper status range or endpoint."},{"line":41,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Compose path: /opt/vaultwarden-compose/compose.yaml"},{"line":42,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Data path: /opt/vaultwarden-compose/data"},{"line":44,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Domain: https://vault.gram1.ru"},{"line":51,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Purpose: Docker Compose stack admin for future stacks."},{"line":52,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Compose path: /opt/dockge-compose/compose.yaml"},{"line":53,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Data path: /opt/dockge-compose/data"},{"line":56,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Domain: https://dockge.gram1.ru"},{"line":58,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Warning: Docker socket access makes Dockge a privileged admin panel."},{"line":64,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Compose path: /opt/stacks/homepage/compose.yaml"},{"line":67,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Domain: https://home.gram1.ru"},{"line":68,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Docker socket integration disabled."},{"line":74,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Compose path: /opt/stacks/gitea/compose.yaml"},{"line":77,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Domain: https://git.gram1.ru"},{"line":90,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Domain: https://nc.gram1.ru"},{"line":92,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- TURN: turn.gram1.ru:3478"},{"line":105,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Backup health endpoint: https://backup.gram1.ru/backup.txt"},{"line":115,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"| Dozzle | `/opt/stacks/dozzle` | `http://127.0.0.1:9999` | `https://dozzle.gram1.ru` | id 18 |"},{"line":116,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"| Paperless-ngx | `/opt/stacks/paperless` | `http://127.0.0.1:8010` | `https://paper.gram1.ru` | id 19 |"},{"line":117,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"| Memos | `/opt/stacks/memos` | `http://127.0.0.1:5230` | `https://memos.gram1.ru` | id 20 |"},{"line":118,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"| Immich | `/opt/stacks/immich` | `http://127.0.0.1:2283` | `https://photos.gram1.ru` | id 21 |"},{"line":119,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"| Authentik | `/opt/stacks/authentik` | `http://127.0.0.1:9000` | `https://auth.gram1.ru` | id 22 |"},{"line":127,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- URL: `https://backup.gram1.ru/backup.txt`"},{"line":136,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"`https://backup.gram1.ru/backup.txt`"},{"line":148,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- root path may show the NPMplus Default Page and should not be used as the health check."},{"line":152,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- dns1 / `[PRIVATE_IP]`: `backup.gram1.ru -> [PRIVATE_IP]`"},{"line":153,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- dns2 / `[PRIVATE_IP]`: `backup.gram1.ru -> [PRIVATE_IP]`"},{"line":157,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"`edge-vm` was resized to 12 GB RAM and 4 CPU cores after the first 4 GB / 2 core sizing proved too small for the expanded Docker service set."},{"line":176,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Operational rule: for `systemctl enable/start`, `docker compose`, `apt-get`, and `git push`, judge success by exit code plus explicit verification; informational stderr must not be treated as failure."},{"line":214,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- Verification at this checkpoint: `photos.gram1.ru` returned 200 and off-host health returned `STATUS=OK`."},{"line":347,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"- `https://backup.gram1.ru/backup.txt`"},{"line":368,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"Homepage was reorganized into operational groups and user-facing internal services were made clickable through VPN-only `*.vpn.gram1.ru` routes."},{"line":372,"path":"source/01_homelab-configs-worktree/docs/05-service-catalog.md","text":"The visible-only cards are intentionally limited to metrics/API/status-only services: Loki, Alloy, Node Exporter, Registry Cache, CrowdSec, and DIUN."},{"line":9,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"Do not use webroot or HTTP-01 unless WAN TCP 80 reachability is intentionally fixed and verified."},{"line":13,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"1. Make sure certbot is not already running."},{"line":22,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"10. Wait for certbot to finish."},{"line":27,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"## Check certbot process"},{"line":31,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"Command idea: ssh to edge-vm and run pgrep -af certbot."},{"line":33,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"If certbot is running, do not click the NPMplus certificate button again."},{"line":37,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"Observed with dockge.gram1.ru."},{"line":48,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"Observed after DNS was fixed for dockge.gram1.ru."},{"line":54,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"## Error: Another instance of Certbot is already running"},{"line":56,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"Observed when a certificate request was clicked again while another certbot process was still running."},{"line":62,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"Observed with home.gram1.ru and git.gram1.ru before certificate completion."},{"line":84,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"The Docker subnet used by Uptime Kuma may need to be allowed, for example [PRIVATE_IP]/16."},{"line":94,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"- vault.gram1.ru: Lets Encrypt via Cloudflare DNS challenge."},{"line":95,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"- dockge.gram1.ru: Lets Encrypt via Cloudflare DNS challenge."},{"line":96,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"- home.gram1.ru: Lets Encrypt via Cloudflare DNS challenge."},{"line":97,"path":"source/01_homelab-configs-worktree/docs/06-certificates-troubleshooting.md","text":"- git.gram1.ru: Lets Encrypt via Cloudflare DNS challenge."},{"line":7,"path":"source/01_homelab-configs-worktree/docs/07-gitea-workflow.md","text":"- URL: https://git.gram1.ru/homelab-admin/homelab-configs"},{"line":16,"path":"source/01_homelab-configs-worktree/docs/07-gitea-workflow.md","text":"- Safe compose snapshots without secrets."},{"line":7,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- Remote: https://git.gram1.ru/homelab-admin/homelab-configs"},{"line":17,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- Do not print secrets, tokens, private keys, `.env`, NPMplus raw `meta`, or certbot credential contents."},{"line":27,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- Public health URL: https://backup.gram1.ru/backup.txt"},{"line":30,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- Important: `https://backup.gram1.ru/` may show the NPMplus Default Page and should not be used as the health check."},{"line":43,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| Node | IP | Role |"},{"line":55,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| edge-vm | VM130 | pve03 | [PRIVATE_IP] | Docker edge, 12 GB RAM, 4 cores |"},{"line":61,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- Compose path: /opt/npmplus-compose/compose.yaml"},{"line":69,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- Domain: backup.gram1.ru"},{"line":72,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- Certbot cert name: npm-31"},{"line":74,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- Public URL: https://backup.gram1.ru/backup.txt"},{"line":78,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- Certificate id 30 covers dozzle.gram1.ru, paper.gram1.ru, memos.gram1.ru, photos.gram1.ru, auth.gram1.ru."},{"line":87,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| dozzle.gram1.ru | [PRIVATE_IP] |"},{"line":88,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| paper.gram1.ru | [PRIVATE_IP] |"},{"line":89,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| memos.gram1.ru | [PRIVATE_IP] |"},{"line":90,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| photos.gram1.ru | [PRIVATE_IP] |"},{"line":91,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| auth.gram1.ru | [PRIVATE_IP] |"},{"line":92,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| backup.gram1.ru | [PRIVATE_IP] |"},{"line":93,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| turn.gram1.ru | [PRIVATE_IP] |"},{"line":99,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- HTTPS https://backup.gram1.ru/backup.txt returns 200 and STATUS=OK"},{"line":105,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| Dozzle | /opt/stacks/dozzle | http://127.0.0.1:9999 | https://dozzle.gram1.ru | id 18 |"},{"line":106,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| Paperless-ngx | /opt/stacks/paperless | http://127.0.0.1:8010 | https://paper.gram1.ru | id 19 |"},{"line":107,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| Memos | /opt/stacks/memos | http://127.0.0.1:5230 | https://memos.gram1.ru | id 20 |"},{"line":108,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| Immich | /opt/stacks/immich | http://127.0.0.1:2283 | https://photos.gram1.ru | id 21 |"},{"line":109,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"| Authentik | /opt/stacks/authentik | http://127.0.0.1:9000 | https://auth.gram1.ru | id 22 |"},{"line":113,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- URL: https://home.gram1.ru"},{"line":116,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- Backup Health link points to https://backup.gram1.ru/backup.txt."},{"line":121,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- Public/LAN URL: https://uptime.gram1.ru"},{"line":129,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- 23: Backup Health / https://backup.gram1.ru/backup.txt"},{"line":134,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- New token was installed in NPMplus DB meta and certbot credential files without printing token contents."},{"line":143,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- https://nc.gram1.ru"},{"line":144,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- https://vault.gram1.ru"},{"line":145,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md","text":"- https://dockge.gram1.ru"}],"detected_frameworks":["Docker Compose"],"directory":"hosts/local","domain_match_count":1000,"domain_matches":[{"lines":[{"line":345,"text":" \"target_host\": \"pve01.gram1.ru\","},{"line":463,"text":" {\"host\": \"pve01.gram1.ru\", \"runtime\": \"python3\", \"compile\": \"python3 compile()\"}"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","mtime_ns":1785436778529839357,"path":"/opt/homelab-admin/libexec/homelab-admin-lint","sha256":"d5a56d702379c9834a103401147436b1243cc5e1c0fe961fb8d8c090db19ad2c","size":22756,"uid":0},"path":"/opt/homelab-admin/libexec/homelab-admin-lint"},{"lines":[{"line":11,"text":"EXPECTED_HOST=\"${HOMELAB_EXPECTED_HOST:-pve01.gram1.ru}\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","mtime_ns":1784108548897502927,"path":"/opt/homelab-admin/bin/homelab-admin","sha256":"5398600c15b63f3872116e6d1ae6f65e2d7a5d1752349c9de0de07d801967bd1","size":9589,"uid":0},"path":"/opt/homelab-admin/bin/homelab-admin"},{"lines":[{"line":13,"text":" \"pve01.gram1.ru\": \"pve01\","},{"line":14,"text":" \"pve02.gram1.ru\": \"pve02\","},{"line":15,"text":" \"pve03.gram1.ru\": \"pve03\","},{"line":16,"text":" \"edge-vm.gram1.ru\": \"edge\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","mtime_ns":1784026163276834491,"path":"/opt/cluster-admin-probe-target/responder.py","sha256":"3e7585050d734ef0e3ccec7f98bde3626db31a6fd05e60dfb6f9976b371dea3c","size":2648,"uid":0},"path":"/opt/cluster-admin-probe-target/responder.py"},{"lines":[{"line":4,"text":"Collector: `pve01.gram1.ru`"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784495133884419331,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/CURRENT_CONTEXT.md","sha256":"9a772d6e8d6438e84b0d2459c69cd99dc51820dba46fae3897c94a661a43a993","size":1147,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/CURRENT_CONTEXT.md"},{"lines":[{"line":4,"text":" \"collector_host\": \"pve01.gram1.ru\","},{"line":124,"text":" \"remote\": \"https://git.gram1.ru/homelab-admin/homelab-ops.git\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784495133885547518,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/current-context.json","sha256":"d2c7e06967fd76e09bb8ca694f5132aadd65a9eca35fca8ba92ac11c168d4ebb","size":6036,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/current-context.json"},{"lines":[{"line":5,"text":" \"collector_host\": \"pve01.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784495776231298902,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/live-verification-summary.json","sha256":"6b9b7511cdae678efde036f0413c5fc26c3babf50ffd12c3777c39a20d9efe7e","size":787,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/live-verification-summary.json"},{"lines":[{"line":217,"text":" \"searchdomain\": \"gram1.ru\","},{"line":247,"text":" \"searchdomain\": \"gram1.ru\","},{"line":282,"text":" \"searchdomain\": \"gram1.ru\","},{"line":408,"text":" \"searchdomain\": \"gram1.ru\","},{"line":922,"text":" \"searchdomain\": \"gram1.ru\","},{"line":1374,"text":" \"searchdomain\": \"gram1.ru\","},{"line":2952,"text":" \"searchdomain\": \"gram1.ru\","},{"line":2982,"text":" \"searchdomain\": \"gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784497022613291200,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/guests/management-discovery.json","sha256":"fa7c99412123dbb529127644800b2527e16a86692fd54bda61c0a62dcb372548","size":86524,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/guests/management-discovery.json"},{"lines":[{"line":4,"text":" \"collector_host\": \"pve01.gram1.ru\","},{"line":26,"text":" \"url\": \"https://actual-budget.vpn.gram1.ru\","},{"line":36,"text":" \"effective_url\": \"https://actual-budget.vpn.gram1.ru/\","},{"line":56,"text":" \"url\": \"https://alertmanager.vpn.gram1.ru\","},{"line":66,"text":" \"effective_url\": \"https://alertmanager.vpn.gram1.ru/\","},{"line":86,"text":" \"url\": \"https://audiobooks.vpn.gram1.ru\","},{"line":96,"text":" \"effective_url\": \"https://audiobooks.vpn.gram1.ru/\","},{"line":116,"text":" \"url\": \"https://auth.gram1.ru\","},{"line":126,"text":" \"effective_url\": \"https://auth.gram1.ru/if/flow/default-authentication-flow/?next=%2F\","},{"line":146,"text":" \"url\": \"https://backup.gram1.ru/backup.txt\","},{"line":156,"text":" \"effective_url\": \"https://backup.gram1.ru/backup.txt\","},{"line":163,"text":" \"url\": \"https://backup.gram1.ru/overall.txt\","},{"line":173,"text":" \"effective_url\": \"https://backup.gram1.ru/overall.txt\","},{"line":193,"text":" \"url\": \"https://beszel.vpn.gram1.ru\","},{"line":203,"text":" \"effective_url\": \"https://beszel.vpn.gram1.ru/\","},{"line":253,"text":" \"url\": \"https://bookstack.vpn.gram1.ru\","},{"line":263,"text":" \"effective_url\": \"https://bookstack.vpn.gram1.ru/login\","},{"line":313,"text":" \"url\": \"https://books.vpn.gram1.ru\","},{"line":323,"text":" \"effective_url\": \"https://books.vpn.gram1.ru/login?next=%2Fadmin%2Fdbconfig\","},{"line":373,"text":" \"url\": \"https://cluster-admin.vpn.gram1.ru/status.txt\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784495776230298887,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/services/index.json","sha256":"0046ef9897703f2462d7022a3236b7fa40070a625deca3f383eea90d01eca4a5","size":46003,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/services/index.json"},{"lines":[{"line":48,"text":" \"expected_hostname\": \"forum-prod.gram1.ru\","},{"line":62,"text":" \"expected_hostname\": \"monitoring.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784497022644300719,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/findings/access-gaps.json","sha256":"6358da671fbcfb7cc5d42eea6ba95c7056d6dda494d7e25f5b472bddaa0f0492","size":2925,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/findings/access-gaps.json"},{"lines":[{"line":4,"text":" \"collector_host\": \"pve01.gram1.ru\","},{"line":19,"text":" \"expected_hostname\": \"pve01.gram1.ru\","},{"line":20,"text":" \"actual_hostname\": \"pve01.gram1.ru\","},{"line":34,"text":" \"expected_hostname\": \"pve02.gram1.ru\","},{"line":35,"text":" \"actual_hostname\": \"pve02.gram1.ru\","},{"line":49,"text":" \"expected_hostname\": \"pve03.gram1.ru\","},{"line":50,"text":" \"actual_hostname\": \"pve03.gram1.ru\","},{"line":64,"text":" \"expected_hostname\": \"edge-vm.gram1.ru\","},{"line":65,"text":" \"actual_hostname\": \"edge-vm.gram1.ru\","},{"line":79,"text":" \"expected_hostname\": \"forum-prod.gram1.ru\","},{"line":92,"text":" \"expected_hostname\": \"core-apps.gram1.ru\","},{"line":93,"text":" \"actual_hostname\": \"core-apps.gram1.ru\","},{"line":107,"text":" \"expected_hostname\": \"cluster-admin.gram1.ru\","},{"line":108,"text":" \"actual_hostname\": \"cluster-admin.gram1.ru\","},{"line":137,"text":" \"expected_hostname\": \"monitoring.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784495776229298871,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/access/index.json","sha256":"3b2324041ed71e69407195809a383f45ab16e3e6056c5249ad71fe4ae142d237","size":4499,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/observed/access/index.json"},{"lines":[{"line":14,"text":" \"expected_hostname\": \"pve01.gram1.ru\","},{"line":15,"text":" \"actual_hostname\": \"pve01.gram1.ru\","},{"line":28,"text":" \"expected_hostname\": \"pve02.gram1.ru\","},{"line":29,"text":" \"actual_hostname\": \"pve02.gram1.ru\","},{"line":42,"text":" \"expected_hostname\": \"pve03.gram1.ru\","},{"line":43,"text":" \"actual_hostname\": \"pve03.gram1.ru\","},{"line":56,"text":" \"expected_hostname\": \"edge-vm.gram1.ru\","},{"line":57,"text":" \"actual_hostname\": \"edge-vm.gram1.ru\","},{"line":70,"text":" \"expected_hostname\": \"forum-prod.gram1.ru\","},{"line":84,"text":" \"expected_hostname\": \"core-apps.gram1.ru\","},{"line":85,"text":" \"actual_hostname\": \"core-apps.gram1.ru\","},{"line":98,"text":" \"expected_hostname\": \"cluster-admin.gram1.ru\","},{"line":99,"text":" \"actual_hostname\": \"cluster-admin.gram1.ru\","},{"line":126,"text":" \"expected_hostname\": \"monitoring.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784497022643731409,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/access-evidence.json","sha256":"5568a9b1d5e29930b602a2345e5c44352e9fffa9ae9b57aaa14dcdd8052e1397","size":7540,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/access-evidence.json"},{"lines":[{"line":6,"text":" \"target\": \"pve01.gram1.ru\","},{"line":13,"text":" \"target\": \"pve02.gram1.ru\","},{"line":20,"text":" \"target\": \"pve03.gram1.ru\","},{"line":27,"text":" \"target\": \"edge-vm.gram1.ru\","},{"line":34,"text":" \"target\": \"forum-prod.gram1.ru\","},{"line":41,"text":" \"target\": \"core-apps.gram1.ru\","},{"line":48,"text":" \"target\": \"cluster-admin.gram1.ru\","},{"line":62,"text":" \"target\": \"monitoring.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784495133885246039,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/access-paths.json","sha256":"ac5dc881dcd9fcb72644bc893e866f463c9c2b9b4544e32434e21b5d34168fb5","size":1652,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/access-paths.json"},{"lines":[{"line":9,"text":" \"pve01.gram1.ru\""},{"line":12,"text":" \"expected_hostname\": \"pve01.gram1.ru\","},{"line":31,"text":" \"pve02.gram1.ru\""},{"line":34,"text":" \"expected_hostname\": \"pve02.gram1.ru\","},{"line":53,"text":" \"pve03.gram1.ru\""},{"line":56,"text":" \"expected_hostname\": \"pve03.gram1.ru\","},{"line":135,"text":" \"edge-vm.gram1.ru\""},{"line":138,"text":" \"expected_hostname\": \"edge-vm.gram1.ru\","},{"line":174,"text":" \"forum-prod.gram1.ru\""},{"line":177,"text":" \"expected_hostname\": \"forum-prod.gram1.ru\","},{"line":198,"text":" \"core-apps.gram1.ru\""},{"line":201,"text":" \"expected_hostname\": \"core-apps.gram1.ru\","},{"line":222,"text":" \"monitoring.gram1.ru\""},{"line":225,"text":" \"expected_hostname\": \"monitoring.gram1.ru\","},{"line":246,"text":" \"cluster-admin.gram1.ru\""},{"line":249,"text":" \"expected_hostname\": \"cluster-admin.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1784495133909456622,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/hosts.json","sha256":"c0fe9677e338f34db252dda89ffdcd28fd23986fb9c219fe8c8b419d3b0c3967","size":8502,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/hosts.json"},{"lines":[{"line":10,"text":" \"remote_url\": \"https://git.gram1.ru/homelab-admin/homelab-ops.git\","},{"line":21,"text":" \"remote_url\": \"https://git.gram1.ru/homelab-admin/homelab-desired-state.git\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1784495133915442036,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/repositories.json","sha256":"3a03a32a211559b3af512ba37ac503a5504631c22850a117cf0c34c611b69112","size":937,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/repositories.json"},{"lines":[{"line":16,"text":" \"url\": \"https://actual-budget.vpn.gram1.ru\","},{"line":46,"text":" \"url\": \"https://alertmanager.vpn.gram1.ru\","},{"line":76,"text":" \"url\": \"https://audiobooks.vpn.gram1.ru\","},{"line":106,"text":" \"url\": \"https://auth.gram1.ru\","},{"line":141,"text":" \"url\": \"https://backup.gram1.ru/backup.txt\","},{"line":145,"text":" \"url\": \"https://backup.gram1.ru/overall.txt\","},{"line":175,"text":" \"url\": \"https://beszel.vpn.gram1.ru\","},{"line":235,"text":" \"url\": \"https://bookstack.vpn.gram1.ru\","},{"line":300,"text":" \"url\": \"https://books.vpn.gram1.ru\","},{"line":360,"text":" \"url\": \"https://cluster-admin.vpn.gram1.ru/status.txt\","},{"line":390,"text":" \"url\": \"https://gram1.ru/\","},{"line":420,"text":" \"url\": \"https://dns1.vpn.gram1.ru\","},{"line":450,"text":" \"url\": \"https://dns2.vpn.gram1.ru\","},{"line":482,"text":" \"url\": \"https://dockge.gram1.ru\","},{"line":540,"text":" \"url\": \"https://dozzle.gram1.ru\","},{"line":570,"text":" \"url\": \"https://filebrowser.vpn.gram1.ru\","},{"line":600,"text":" \"url\": \"https://git.gram1.ru\","},{"line":635,"text":" \"url\": \"https://gotify.gram1.ru\","},{"line":670,"text":" \"url\": \"https://grafana.vpn.gram1.ru\","},{"line":725,"text":" \"url\": \"https://checks.vpn.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1784495133918006174,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/services.json","sha256":"189ab606f9de7b379b03510aef024def88ab91a1e2782d0c7d74fe93fa61509b","size":43565,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/services.json"},{"lines":[{"line":13,"text":" \"fqdn\": \"pve01.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1784497007814974332,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/execution-contexts.json","sha256":"75e9716477032a09924d6b8f2bfe485b5a008119539ae10c315a6e306c57fc3b","size":1579,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/execution-contexts.json"},{"lines":[{"line":19,"text":" \"pve01.gram1.ru\""},{"line":28,"text":" \"expected_hostname\": \"pve01.gram1.ru\","},{"line":53,"text":" \"pve02.gram1.ru\""},{"line":62,"text":" \"expected_hostname\": \"pve02.gram1.ru\","},{"line":87,"text":" \"pve03.gram1.ru\""},{"line":96,"text":" \"expected_hostname\": \"pve03.gram1.ru\","},{"line":121,"text":" \"edge-vm.gram1.ru\""},{"line":130,"text":" \"expected_hostname\": \"edge-vm.gram1.ru\","},{"line":155,"text":" \"forum-prod.gram1.ru\""},{"line":164,"text":" \"expected_hostname\": \"forum-prod.gram1.ru\","},{"line":190,"text":" \"core-apps.gram1.ru\""},{"line":199,"text":" \"expected_hostname\": \"core-apps.gram1.ru\","},{"line":224,"text":" \"cluster-admin.gram1.ru\""},{"line":233,"text":" \"expected_hostname\": \"cluster-admin.gram1.ru\","},{"line":300,"text":" \"monitoring.gram1.ru\""},{"line":309,"text":" \"expected_hostname\": \"monitoring.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1784495133907632717,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/access-registry.json","sha256":"a3dd86cf081def8772b16ce798beb733825183466d46a3997b43aff250c68563","size":9641,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/inventory/access-registry.json"},{"lines":[{"line":4,"text":" \"target_host\": \"pve01.gram1.ru\","},{"line":98,"text":" \"host\": \"pve01.gram1.ru\","},{"line":103,"text":" \"host\": \"pve02.gram1.ru\","},{"line":108,"text":" \"host\": \"pve03.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784495133886066538,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/cluster-cloud-quorum-vm160-canary-v1/task.json","sha256":"636254d2526f0f62184d47cdb4c30c2831b11869c2000c557666f60b55d7691b","size":7440,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/cluster-cloud-quorum-vm160-canary-v1/task.json"},{"lines":[{"line":14,"text":"test \"$(hostname -f)\" = pve01.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1784495133886066538,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/cluster-cloud-quorum-vm160-canary-v1/phases/preflight.sh","sha256":"a49bcb32ac7212d7fb9768db8a277cb5525c873c84dd6fb633edae35dc6de532","size":4667,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/cluster-cloud-quorum-vm160-canary-v1/phases/preflight.sh"},{"lines":[{"line":4,"text":" \"target_host\": \"pve01.gram1.ru\","},{"line":122,"text":" \"host\": \"pve01.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784495133886318234,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/homelab-logrotate-namespace-latch-clearance-v1/task.json","sha256":"3a8fdfb6b4b64880012fcc3bc6fee4be6f101377310325541f9776de6d1623f7","size":6750,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/homelab-logrotate-namespace-latch-clearance-v1/task.json"},{"lines":[{"line":8,"text":"test \"$(hostname -f)\" = pve01.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1784495133886318234,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/homelab-logrotate-namespace-latch-clearance-v1/phases/preflight.sh","sha256":"21802253966e8d94e8404fd6a217c8248004091dc9dd3b4c03193e3c81af4609","size":1869,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/homelab-logrotate-namespace-latch-clearance-v1/phases/preflight.sh"},{"lines":[{"line":4,"text":" \"target_host\": \"pve01.gram1.ru\","},{"line":111,"text":" \"host\": \"pve01.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784495133886993643,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/skladchik-reports-monitor-controlled-reauth-v1/task.json","sha256":"d3108777e5094468aa3e633740ce8a56c90ca957a9a62932be896bbe784680b0","size":13579,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/skladchik-reports-monitor-controlled-reauth-v1/task.json"},{"lines":[{"line":11,"text":"test \"$(hostname -f)\" = pve01.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1784495133886993643,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/skladchik-reports-monitor-controlled-reauth-v1/phases/preflight.sh","sha256":"f3e533ebd72ba2343a78797a8087c529c9fcfa2b3cabc45b3c0bd477356a8cc9","size":3076,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tasks/skladchik-reports-monitor-controlled-reauth-v1/phases/preflight.sh"},{"lines":[{"line":112,"text":" if fqdn != \"pve01.gram1.ru\":"},{"line":210,"text":" \"remote\": \"https://git.gram1.ru/homelab-admin/homelab-ops.git\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784495133887204143,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/collect_context.py","sha256":"4d42623567c9e30d46a78bccd30c754319712d64012c722c33265e7de62c017c","size":11071,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/collect_context.py"},{"lines":[{"line":93,"text":" assert_true(context.get(\"collector_host\") == \"pve01.gram1.ru\", \"unexpected collector host\")"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1784495133942768953,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/validate_repo.py","sha256":"b187206b0d2cbcb9e9ea03522bae0f0097a7d9925d3d433ef3e7c15e9def73d1","size":6226,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/validate_repo.py"},{"lines":[{"line":110,"text":" require(repo[\"remote_url\"].startswith(\"https://git.gram1.ru/\"), f\"repository remote mismatch: {repo['id']}\")"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1784495764389647511,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/validate_inventory.py","sha256":"b557babe3ca63de809be5793e88dfa8d5f4ae9f2d1834713d114ce802820fc5e","size":9527,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/validate_inventory.py"},{"lines":[{"line":180,"text":" \"detected_collector_context\": \"pve01-root\" if socket.getfqdn() == \"pve01.gram1.ru\" and os.geteuid() == 0 else \"unknown\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1784497007832257887,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/reconcile_access_contexts.py","sha256":"59b37a01607fc8e7e53dd22fafa513450b1088a6cc5eca6edae9548e5d708e92","size":11655,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/reconcile_access_contexts.py"},{"lines":[{"line":158,"text":" if socket.getfqdn() != \"pve01.gram1.ru\" or os.geteuid() != 0:"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1784497007829357325,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/discover_guest_management.py","sha256":"f25f417f3ce3234ac183f03aba22280f653943824286b267e8374f2fafa86720","size":12247,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tools/discover_guest_management.py"},{"lines":[{"line":157,"text":"test \"$(hostname -f)\" = pve01.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1784495133887716127,"path":"<REDACTED_TOKEN>","sha256":"1e2f5323abf880f3e8b17bf1f2d0a844c402a9bbf5f24159ed39aaf1d79caef0","size":10086,"uid":0},"path":"<REDACTED_TOKEN>"},{"lines":[{"line":31,"text":" self.assertEqual(target[\"expected_hostname\"], \"pve03.gram1.ru\")"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1784495133937361990,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_inventory_foundation.py","sha256":"2142fd35c4927b17d33aa35d584267b7b17430ddfe52ab85d0a49dc7c7ee8ed1","size":4026,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/tests/test_inventory_foundation.py"},{"lines":[{"line":24,"text":" \"const\": \"pve01.gram1.ru\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784495133885820162,"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/schemas/context.schema.json","sha256":"84c3c29984402b25c102575b54bdb82544844e455d3d2e115fefc5f42021e043","size":539,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation/schemas/context.schema.json"},{"lines":[{"line":4,"text":"Collector: `pve01.gram1.ru`"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784458148522837462,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/CURRENT_CONTEXT.md","sha256":"9a772d6e8d6438e84b0d2459c69cd99dc51820dba46fae3897c94a661a43a993","size":1147,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/CURRENT_CONTEXT.md"},{"lines":[{"line":4,"text":" \"collector_host\": \"pve01.gram1.ru\","},{"line":124,"text":" \"remote\": \"https://git.gram1.ru/homelab-admin/homelab-ops.git\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784458148525128655,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/observed/current-context.json","sha256":"d2c7e06967fd76e09bb8ca694f5132aadd65a9eca35fca8ba92ac11c168d4ebb","size":6036,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/observed/current-context.json"},{"lines":[{"line":6,"text":" \"target\": \"pve01.gram1.ru\","},{"line":13,"text":" \"target\": \"pve02.gram1.ru\","},{"line":20,"text":" \"target\": \"pve03.gram1.ru\","},{"line":27,"text":" \"target\": \"edge-vm.gram1.ru\","},{"line":34,"text":" \"target\": \"forum-prod.gram1.ru\","},{"line":41,"text":" \"target\": \"core-apps.gram1.ru\","},{"line":48,"text":" \"target\": \"cluster-admin.gram1.ru\","},{"line":62,"text":" \"target\": \"monitoring.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784458148524623846,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/inventory/access-paths.json","sha256":"ac5dc881dcd9fcb72644bc893e866f463c9c2b9b4544e32434e21b5d34168fb5","size":1652,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/inventory/access-paths.json"},{"lines":[{"line":7,"text":" \"target_node\": \"pve03.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1784473042934789545,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/changes/CR-2026-0015/plan.json","sha256":"978093bb17d307cabadfb48ffc2d3f9458071528abb69100334cbbce72267d47","size":1338,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/changes/CR-2026-0015/plan.json"},{"lines":[{"line":391,"text":" \"required_control\": \"Preflight and the remote worker must require pve03.gram1.ru, interface nic1, driver r8152, link detected, quorum and exactly three nodes before mutation.\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1784473042945809454,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/errors/regression-cases.json","sha256":"07c9854ab0232d1f2766cdab114d0d398a4dcc1a5b41ea7fde77646e5f42804e","size":38408,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/errors/regression-cases.json"},{"lines":[{"line":4,"text":" \"target_host\": \"pve01.gram1.ru\","},{"line":98,"text":" \"host\": \"pve01.gram1.ru\","},{"line":103,"text":" \"host\": \"pve02.gram1.ru\","},{"line":108,"text":" \"host\": \"pve03.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784458148526295291,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/cluster-cloud-quorum-vm160-canary-v1/task.json","sha256":"636254d2526f0f62184d47cdb4c30c2831b11869c2000c557666f60b55d7691b","size":7440,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/cluster-cloud-quorum-vm160-canary-v1/task.json"},{"lines":[{"line":14,"text":"test \"$(hostname -f)\" = pve01.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1784458148526295291,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/cluster-cloud-quorum-vm160-canary-v1/phases/preflight.sh","sha256":"a49bcb32ac7212d7fb9768db8a277cb5525c873c84dd6fb633edae35dc6de532","size":4667,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/cluster-cloud-quorum-vm160-canary-v1/phases/preflight.sh"},{"lines":[{"line":4,"text":" \"target_host\": \"pve01.gram1.ru\","},{"line":122,"text":" \"host\": \"pve01.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784458148526834032,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/homelab-logrotate-namespace-latch-clearance-v1/task.json","sha256":"3a8fdfb6b4b64880012fcc3bc6fee4be6f101377310325541f9776de6d1623f7","size":6750,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/homelab-logrotate-namespace-latch-clearance-v1/task.json"},{"lines":[{"line":8,"text":"test \"$(hostname -f)\" = pve01.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1784458148526834032,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/homelab-logrotate-namespace-latch-clearance-v1/phases/preflight.sh","sha256":"21802253966e8d94e8404fd6a217c8248004091dc9dd3b4c03193e3c81af4609","size":1869,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/homelab-logrotate-namespace-latch-clearance-v1/phases/preflight.sh"},{"lines":[{"line":4,"text":" \"target_host\": \"pve01.gram1.ru\","},{"line":111,"text":" \"host\": \"pve01.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784458148528120612,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/skladchik-reports-monitor-controlled-reauth-v1/task.json","sha256":"d3108777e5094468aa3e633740ce8a56c90ca957a9a62932be896bbe784680b0","size":13579,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/skladchik-reports-monitor-controlled-reauth-v1/task.json"},{"lines":[{"line":11,"text":"test \"$(hostname -f)\" = pve01.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1784458148528120612,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/skladchik-reports-monitor-controlled-reauth-v1/phases/preflight.sh","sha256":"f3e533ebd72ba2343a78797a8087c529c9fcfa2b3cabc45b3c0bd477356a8cc9","size":3076,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/skladchik-reports-monitor-controlled-reauth-v1/phases/preflight.sh"},{"lines":[{"line":4,"text":" \"target_host\": \"pve01.gram1.ru\","},{"line":86,"text":" \"host\": \"pve01.gram1.ru\","},{"line":91,"text":" \"host\": \"pve03.gram1.ru\","},{"line":117,"text":" \"target_node\": \"pve03.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1784473042968224809,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/task.json","sha256":"c5f36cd51d38da66d5c2e517ff850f996b04b4be4ee9a5529f991687bb7bb429","size":7694,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/task.json"},{"lines":[{"line":38,"text":" case \"$(hostname -f 2>/dev/null || hostname)\" in pve03|pve03.gram1.ru) :;; *) return 66;; esac"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1784473042949900157,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/assets/pve03-r8152-rx-ring-canary.sh","sha256":"b8a3a60b907ca8d021f1ddda84333349db1ce97e655b2b7a3d3222e3e8235c2c","size":9986,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/assets/pve03-r8152-rx-ring-canary.sh"},{"lines":[{"line":10,"text":"test \"$(hostname -f)\" = pve01.gram1.ru"},{"line":12,"text":"test \"$(ssh \"${SSH_BASE[@]}\" \"$REMOTE_HOST\" /bin/hostname -f)\" = pve03.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1784473042956561556,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/phases/preflight.sh","sha256":"fe88e11652bdfeaabf0b24947c044985db265cb593dea201e07cd542842502a7","size":3441,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tasks/pve03-r8152-rx-ring-canary-v1/phases/preflight.sh"},{"lines":[{"line":112,"text":" if fqdn != \"pve01.gram1.ru\":"},{"line":210,"text":" \"remote\": \"https://git.gram1.ru/homelab-admin/homelab-ops.git\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784458148528552412,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tools/collect_context.py","sha256":"4d42623567c9e30d46a78bccd30c754319712d64012c722c33265e7de62c017c","size":11071,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tools/collect_context.py"},{"lines":[{"line":77,"text":" assert_true(context.get(\"collector_host\") == \"pve01.gram1.ru\", \"unexpected collector host\")"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784458148529443651,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tools/validate_repo.py","sha256":"58fddb5f43f0668f70405ad09b5d79aa59d934329ed708f09b26692130781b35","size":4893,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tools/validate_repo.py"},{"lines":[{"line":157,"text":"test \"$(hostname -f)\" = pve01.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1784458148529443651,"path":"<REDACTED_TOKEN>","sha256":"1e2f5323abf880f3e8b17bf1f2d0a844c402a9bbf5f24159ed39aaf1d79caef0","size":10086,"uid":0},"path":"<REDACTED_TOKEN>"},{"lines":[{"line":31,"text":" self.assertEqual(source[\"target_node\"], \"pve03.gram1.ru\")"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1784473042970360259,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0015_pve03_r8152_rx_ring_canary.py","sha256":"91b7a0a01b0eaa1db6a726eb8b009726e75bad5e11959be9494d82c5b5bf00df","size":13506,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/tests/test_cr_2026_0015_pve03_r8152_rx_ring_canary.py"},{"lines":[{"line":24,"text":" \"const\": \"pve01.gram1.ru\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784458148525763885,"path":"/srv/homelab-ops-worktrees/cr-2026-0015/schemas/context.schema.json","sha256":"84c3c29984402b25c102575b54bdb82544844e455d3d2e115fefc5f42021e043","size":539,"uid":0},"path":"/srv/homelab-ops-worktrees/cr-2026-0015/schemas/context.schema.json"},{"lines":[{"line":9,"text":"external_url: https://prometheus.vpn.gram1.ru"},{"line":12,"text":"npmplus_route: prometheus.vpn.gram1.ru -> [PRIVATE_IP]:9090"},{"line":18,"text":"- curl https://prometheus.vpn.gram1.ru/-/ready"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783582853987353718,"path":"/srv/homelab-desired-state/runbooks/prometheus.md","sha256":"c72594b147418ae1eee39f7508bf9d0f5307b59b353273eaf798d9169e3c2b3b","size":1292,"uid":0},"path":"/srv/homelab-desired-state/runbooks/prometheus.md"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T19:50:17Z TYPE=service-readiness-final BAD=0 SERVICE=node-red HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://node-red.vpn.gram1.ru STATE=running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783626618731757752,"path":"/srv/homelab-desired-state/health/service-readiness-node-red.txt","sha256":"261a8127018c171d5c34bc1a5bc9e04dc2aa97c6244d4213028e72130a8a00d9","size":270,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-node-red.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T12:33:46Z TYPE=service-readiness-final BAD=0 SERVICE=proxmox-pve01 HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK QUORUM=OK CLUSTER_NODES=OK STORAGE=OK GUESTS=OK UI=OK API_401=OK PUBLIC=OK CERTS=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://proxmox.vpn.gram1.ru STATE=pveproxy:active,pvedaemon:active,pvestatd:active,cluster:quorate"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783600432812890589,"path":"/srv/homelab-desired-state/health/service-readiness-proxmox-pve01.txt","sha256":"8f4b33c45c3aebc150ab26ffef11d8b8770fb36433dc893f642ab49f5bfb5d9c","size":397,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-proxmox-pve01.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-13T08:12:13Z TYPE=service-readiness-final BAD=0 SERVICE=crypto-portfolio HEALTH=OK PUBLIC=OK CHART_HEALTH=OK BROWSER_SMOKE=OK SHARP_MOVES_CENTERED=YES ALERT_CURRENCY_USD_RUB=OK GRT_REMOVED=YES BACKUP=OK OFFHOST=OK RESTORE=OK RUNBOOK=OK RETENTION=OK URL=https://gram1.ru/ STATE=web:running,worker:running"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783930333302397603,"path":"/srv/homelab-desired-state/health/service-readiness-crypto-portfolio.txt","sha256":"5d2ec1109c7e78730c58f6d650213bc14f3becd0eb49d9fd08cedb22834aa98c","size":325,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-crypto-portfolio.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T18:13:21Z TYPE=service-readiness-final BAD=0 SERVICE=stirling-pdf HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://pdf.vpn.gram1.ru STATE=running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783620802972090984,"path":"/srv/homelab-desired-state/health/service-readiness-stirling-pdf.txt","sha256":"7f46372e6a6f89fdc87e43435e6c9f1b6f3b725d952879399094cd9cfc1ab7e2","size":269,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-stirling-pdf.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T16:50:21Z TYPE=service-readiness-final BAD=0 SERVICE=memos HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://memos.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783615822598077480,"path":"/srv/homelab-desired-state/health/service-readiness-memos.txt","sha256":"5b076b0774e6a8b16df6d85fe7726a96966d3e18551de76a698d45b17f4b1919","size":261,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-memos.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T19:07:39Z TYPE=service-readiness-final BAD=0 SERVICE=homeassistant HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://homeassistant.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783624061222793180,"path":"/srv/homelab-desired-state/health/service-readiness-homeassistant.txt","sha256":"0c8e6c3d5cd1d96f67f663054479f3a3327d63cd2e4f5933b2691653b727a227","size":281,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-homeassistant.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T06:29:21Z TYPE=service-readiness-final BAD=0 SERVICE=authentik HOMEPAGE=OK NPMPLUS=OK KUMA=OK BACKUP=OK OFFHOST=OK RESTORE=OK RUNBOOK=OK HEALTH=OK SECURITY=PUBLIC_URL_SET_ANALYTICS_DISABLED EMAIL=NOT_CONFIGURED_NO_SECRET_CHANGE URL=https://auth.gram1.ru STATES=running/healthy,running/healthy,running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783578561978755827,"path":"/srv/homelab-desired-state/health/service-readiness-authentik.txt","sha256":"690f7dc699b3e75f5b46851d3973bfd44baafeba6ef93258d90f202e7ebb4c55","size":333,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-authentik.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T10:40:06Z TYPE=service-readiness-final BAD=0 SERVICE=netbox HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK API_UNAUTH_403=OK MANAGE_CHECK=OK COMPOSE=OK_LABEL BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://netbox.vpn.gram1.ru STATE=app:running/healthy,worker:running/healthy,postgres:running/healthy,redis:running/healthy,redis-cache:running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783593618904444100,"path":"/srv/homelab-desired-state/health/service-readiness-netbox.txt","sha256":"33895568487a26464942f218d24b529bfefde845bfd60ffc7eea04251481708a","size":419,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-netbox.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T19:59:09Z TYPE=service-readiness-final BAD=0 SERVICE=syncthing HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://syncthing.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783627150632032480,"path":"/srv/homelab-desired-state/health/service-readiness-syncthing.txt","sha256":"af794151ecea52e6876462895e7412c3d473ecbe650f05898b21a77ff9a9b3d9","size":273,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-syncthing.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T16:46:31Z TYPE=service-readiness-final BAD=0 SERVICE=paperless HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://paper.gram1.ru STATE=app:running/healthy,postgres:running,redis:running"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783615593351578029,"path":"/srv/homelab-desired-state/health/service-readiness-paperless.txt","sha256":"603fd21d8a9daf63d5e1c2e92fe18b7a15c4f84d25412f99786da48c8efa677a","size":299,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-paperless.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-13T05:10:13Z TYPE=crypto-portfolio-remove-grt-prechange-backup BAD=0 COMMAND_PHYSICAL_LINES=1 PRODUCTION_CHANGED=ROLLBACK_SNAPSHOT_AND_BACKUP_ONLY PRODUCTION_DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO_BY_THIS_COMMAND SERVICE_RESTARTED=NO PRODUCTION_CONTAINER_RECREATED=NO CLOUD_WRITE_RUN=YES_CONTROLLED_PRECHANGE_BACKUP RETENTION_RUN=NO PRODUCTION_APPLY=NO TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=80763a6c62b94cde4f3293f3b529980f76919d25 CANDIDATE_ROOT=/var/lib/homelab-change-sets/crypto-portfolio-remove-grt-candidate-v3/20260713T042046Z INPUT_APP_SHA256=684ad884119554503db0ed36252aeb017c0c04b54729f30c51e66a7ab293f8bd INPUT_WORKER_SHA256=40a1c81111d7097120125b140683a8604abcb4051db5073ab8af708a11854038 INPUT_INDEX_SHA256=2b1ab459cabf3050af1db4a7b293fff7c2a9ac18bf4a14faa1efc70a3a3f63e3 EXACT_LOCAL_ROLLBACK=OK ROLLBACK_PATH=/var/lib/homelab-incidents/crypto-remove-grt-prechange-20260713T051013Z ROLLBACK_MANIFEST_SHA256=6cc505f7e13a02b0ddfc9fd3a9700903d7aaf70d8"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783919444727781612,"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-prechange-backup.txt","sha256":"59de8a4e38310ef8236d167be536aa2f0f1d0fa3dd0ad3ac7fd49e67ed6206f3","size":1647,"uid":0},"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-prechange-backup.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T17:47:41Z TYPE=healthchecks-canonical-domain-repair BAD=0 SERVICE=healthchecks CANONICAL_URL=https://checks.vpn.gram1.ru OLD_ALIAS=https://healthchecks.vpn.gram1.ru OLD_ALIAS_DEFAULT_PAGE=1 HOMEPAGE=OK KUMA=OK BESZEL_NTFY_KUMA=OK LOGS=OK NOTE=service-readiness-count-unchanged"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783619261777467514,"path":"/srv/homelab-desired-state/health/healthchecks-canonical-domain-repair.txt","sha256":"deaba0aab509c20f7546d26011b7e651720c516ed37186edde56016db389c2b5","size":301,"uid":0},"path":"/srv/homelab-desired-state/health/healthchecks-canonical-domain-repair.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:00:02Z TYPE=crypto-portfolio-remove-grt-current BAD=0 COMMAND_PHYSICAL_LINES=1 SOURCE_OF_TRUTH=HANDOFF REMOTE_STDIN_FIX=SSH_WITHOUT_N PRODUCTION_CHANGED=NO DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru TARGET_STACK=/opt/stacks/crypto-portfolio TARGET_DB=/opt/stacks/crypto-portfolio/data/portfolio.db DB_INTEGRITY=ok GRT_HOLDING_ROWS=1 GRT_ALERT_ROWS=1 GRT_HISTORY_ROWS=714 GRT_CACHE_KEYS=0 GRT_SOURCE_REFERENCES=9 GRT_MARKET_PRESENT=YES LOCAL_DESIRED_GRT_REFERENCES=3 GRT_TOTAL_CURRENT_REFERENCES=728 REMOVE_SCOPE=HOLDING_ALERTS_HISTORY_MARKET_CACHE_BACKEND_FRONTEND_CHART_HEALTH_DESIRED_STATE READY_FOR_GRT_PRECHANGE_BACKUP=YES CAPTURE_ROOT=/var/lib/homelab-change-sets/crypto-portfolio-remove-grt-current/20260713T040002Z"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783915202517048335,"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-current.txt","sha256":"825d92b1650dd8867aad03fc2893a52677174cce54f1b853c23c88cec5d4d3bc","size":822,"uid":0},"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-current.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T06:37:47Z TYPE=service-readiness-final BAD=0 SERVICE=gitea HOMEPAGE=OK NPMPLUS=OK KUMA=OK BACKUP=OK OFFHOST=OK RESTORE=OK RUNBOOK=OK HEALTHCHECK=OK SECURITY=REGISTRATION_LOCKED_SIGNIN_REQUIRED_SSH_DISABLED_LFS_DISABLED URL=https://git.gram1.ru STATE=running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783579067443436857,"path":"/srv/homelab-desired-state/health/service-readiness-gitea.txt","sha256":"68389cd9424921f46c067ca5fdb1b902dfde4e6623297f61ace74abd30c3190c","size":290,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-gitea.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=20260730T230822Z TYPE=vps-identity-audit VPS_IP=188.127.235.6 ALIAS=netbird.vpn.gram1.ru ALIAS_IP=100.100.60.182 SSH_TRUST=BLOCKED_NO_BACKED_UP_HOST_KEYS BACKUP_HOSTKEYS=NO KNOWN_HOSTS_UNCHANGED=YES SECRET_PRINTED=REDACTED"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1785452913011062217,"path":"/srv/homelab-desired-state/health/vps-identity-audit.txt","sha256":"b568cce4204dddaee3908dbbaa57aa6bba06c436d05609e2348664cc0b9b7e23","size":236,"uid":0},"path":"/srv/homelab-desired-state/health/vps-identity-audit.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T07:40:53Z TYPE=service-readiness-final BAD=0 SERVICE=prometheus HOMEPAGE=OK NPMPLUS=OK KUMA=OK READY=OK HEALTHY=OK PROMTOOL=OK TARGETS=14 TARGETS_DOWN=0 ALERTS_FIRING=0 CADVISOR_PROXY=OK PVE_EXPORTER_PROXY=OK ALERTING=OK BACKUP_SLA=OK NPMPLUS_KUMA_LEGACY_SUPERSEDED=OK RUNBOOK=OK URL=https://prometheus.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783582855969973905,"path":"/srv/homelab-desired-state/health/service-readiness-prometheus.txt","sha256":"5e41320e81e4e98329bbf07c1205eb65174c934d071d58f57e03f1ce568381b6","size":363,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-prometheus.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T20:55:37Z TYPE=service-readiness-final BAD=0 SERVICE=dns1 HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK CONFIG_SYNC=OK BACKUP_SLA=OK ALERTING=OK URL=https://dns1.vpn.gram1.ru STATE=adguard-ui:monitored,dns-tcp:monitored,unbound:monitored"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783630538260037616,"path":"/srv/homelab-desired-state/health/service-readiness-dns1.txt","sha256":"58976a704a031c25d354992cc203a5ce91f1c54ba67d4bb9ba02e775c7b4fe35","size":277,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-dns1.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T20:55:37Z TYPE=service-readiness-final BAD=0 SERVICE=homepage HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK URL=https://home.gram1.ru STATE=container:running/healthy,config:backed-by-dockge-stacks"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783630538260037616,"path":"/srv/homelab-desired-state/health/service-readiness-homepage.txt","sha256":"183f5c0708439e1b1fbb544d22c7bc89eb3ac53390a92d5a6be768bad0396d22","size":284,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-homepage.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T20:12:53Z TYPE=service-readiness-final BAD=0 SERVICE=immich HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://photos.gram1.ru STATE=server:running/healthy,postgres:running/healthy,machine-learning:running/healthy,redis:running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783627975396808112,"path":"/srv/homelab-desired-state/health/service-readiness-immich.txt","sha256":"1bb7058b101dc91d7dae849f23a8f144efc83baff71a4af13bc248181efac259","size":349,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-immich.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T08:43:15Z TYPE=service-readiness-final BAD=0 SERVICE=beszel HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://beszel.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783586692168325745,"path":"/srv/homelab-desired-state/health/service-readiness-beszel.txt","sha256":"995e8754fef167d95ad9ab04e7c6bec54dbe6d4b99985ac99934140ddca3ea54","size":267,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-beszel.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T12:18:28Z TYPE=service-readiness-final BAD=0 SERVICE=minio HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK API=OK CONSOLE=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://minio.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783599509661864595,"path":"/srv/homelab-desired-state/health/service-readiness-minio.txt","sha256":"f5b9a25ffb5b03b9d53f658e4a3b4d683918832a4be3209cfc1ed028b9495c6f","size":283,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-minio.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:20:46Z TYPE=crypto-portfolio-remove-grt-candidate BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=KLINE_CACHE_FILTER_APPLIED_TO_TOP_LEVEL_INSTEAD_OF_ENTRIES EXCLUSIVE_ROOT_CAUSE_PROOF=OK PRODUCTION_CHANGED=NO DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=b974057b536ece861299d0b230c06cc0e6702c39 INPUT_APP_SHA256=684ad884119554503db0ed36252aeb017c0c04b54729f30c51e66a7ab293f8bd INPUT_WORKER_SHA256=40a1c81111d7097120125b140683a8604abcb4051db5073ab8af708a11854038 INPUT_INDEX_SHA256=2b1ab459cabf3050af1db4a7b293fff7c2a9ac18bf4a14faa1efc70a3a3f63e3 APP_CANDIDATE_SHA256=44df2b25183b7c5d87ff1516ec2d9cd1d169acde3031f7c2aa1fc4e0c7813cd2 WORKER_CANDIDATE_SHA256=174a14b86014535980d200a76d0057110c7af102c66f16c2e21fc3e74bb2e49e INDEX_CANDIDATE_SHA256=8bbe88f5f420fe429d479c598e1f3f904521eb166d4707e32e579851e84c205e MARKET_CANDIDATE_SHA256=eb6c21667d4a"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783916446916055776,"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-candidate.txt","sha256":"13af0ac9918f8fbaee45ce196fa380b10a2e4c5773dedc432ab8a25e7181ee7c","size":1741,"uid":0},"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-candidate.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T16:06:41Z TYPE=service-readiness-final BAD=0 SERVICE=homebox HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://homebox.vpn.gram1.ru STATE=running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783613203194105273,"path":"/srv/homelab-desired-state/health/service-readiness-homebox.txt","sha256":"b316e15bfdd9bbcd625079eee2c17f5b2560b2169057eb8ef182a101f82060ca","size":268,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-homebox.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T17:40:57Z TYPE=service-readiness-final BAD=0 SERVICE=linkding HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://linkding.vpn.gram1.ru STATE=running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783618858884346373,"path":"/srv/homelab-desired-state/health/service-readiness-linkding.txt","sha256":"0ff8e0deef0ed42e53e8ba442ce1cfec567803ce769b5eff5689e069464c612d","size":270,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-linkding.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T06:02:55Z TYPE=cluster-admin-homepage-card BAD=0 URL=https://cluster-admin.vpn.gram1.ru HOMEPAGE=OK VPN_ROUTE=OK DIRECT=OK"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783576975005627760,"path":"/srv/homelab-desired-state/health/cluster-admin-homepage-card.txt","sha256":"1c7d45a1762e8eb15cbcc8164eea990a68d2f91d4efbc7d2b4bb971c2ebe9da6","size":147,"uid":0},"path":"/srv/homelab-desired-state/health/cluster-admin-homepage-card.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T06:22:58Z TYPE=service-readiness-final BAD=0 SERVICE=vaultwarden HOMEPAGE=OK NPMPLUS=OK KUMA=OK BACKUP=OK OFFHOST=OK RESTORE=OK RUNBOOK=OK SECURITY=LOCKED_SIGNUPS_INVITES_ADMIN_DISABLED_DOMAIN_SET URL=https://vault.gram1.ru STATE=running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783578178379924000,"path":"/srv/homelab-desired-state/health/service-readiness-vaultwarden.txt","sha256":"004f504fd822cfa9cdb876045051ce8d654ae34849409209bf056f306e5ee0ff","size":270,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-vaultwarden.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T16:23:37Z TYPE=service-readiness-final BAD=0 SERVICE=mealie HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK SIGNUP_LOCKED=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://mealie.vpn.gram1.ru STATE=running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783614219348604724,"path":"/srv/homelab-desired-state/health/service-readiness-mealie.txt","sha256":"c16fe90e3101b92f4ca3b95bfbad833e8d02ec4e42e44b41a9672cd8acc5793f","size":283,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-mealie.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T19:23:55Z TYPE=service-readiness-final BAD=0 SERVICE=it-tools HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://it-tools.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783625037335098315,"path":"/srv/homelab-desired-state/health/service-readiness-it-tools.txt","sha256":"554a191135c66f5a5382739e52cb160232b612afb7eea1bb829fdac51ce78654","size":271,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-it-tools.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T06:52:06Z TYPE=service-readiness-final BAD=0 SERVICE=gotify HOMEPAGE=OK NPMPLUS=OK KUMA=OK NOTIFICATION=OK ALERTING=OK DB=OK BACKUP=OK RESTORECHECK=OK_BY_PRECHECK RUNBOOK=OK HEALTH=GREEN URL=https://gotify.gram1.ru STATE=running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783579926099477865,"path":"/srv/homelab-desired-state/health/service-readiness-gotify.txt","sha256":"a632388e8898c60a402d18b2f67141c2393a1e9e42b86f8568f77818fc1a7c4b","size":261,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-gotify.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T09:57:55Z TYPE=service-readiness-final BAD=0 SERVICE=searxng HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK SEARCH=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK_FATAL_0 ENGINE_WARN_5MIN=8 URL=https://searxng.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783591080562933313,"path":"/srv/homelab-desired-state/health/service-readiness-searxng.txt","sha256":"41d7c88fba76d93449e5895014e2de9ffccd4b15e14a0b6e239baf4ce02565c9","size":306,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-searxng.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-13T07:42:53Z TYPE=crypto-portfolio-ui-preapply-backup BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=INLINE_PYTHON_QUOTE_ERROR_IN_NONESSENTIAL_HELPER_PROOF BACKUP_SERVICE_RERUN=NO MANUAL_REHYDRATE_RERUN=NO CANONICAL_RESTORE_CHECK_RERUN=YES_READ_ONLY PRODUCTION_CHANGED=NO PRODUCTION_DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CONTAINER_RECREATED=NO CLOUD_WRITE_RUN=NO_READ_ONLY_RESTORE_CHECK TARGET_HOST=core-apps.gram1.ru INPUT_INDEX_SHA256=8bbe88f5f420fe429d479c598e1f3f904521eb166d4707e32e579851e84c205e CANDIDATE_INDEX_SHA256=e497a36d8549654c6d451360a11a2ad714e19c23e6d384330a5436f7d32267cb BACKUP_JOB=homelab-pve01-app-crypto-portfolio-20260713T071127Z BACKUP_STATUS=success BACKUP_SCHEMA=homelab-app-backup-manifest-v2-flat BACKUP_LAYOUT=flat-v1 BACKUP_PATH_REL=hb/a/cp-260713-071127 BACKUP_DATABASE_INTEGRITY=ok BACKUP_FILE_COUNT=19 BACKUP_ARCHIVE_SIZE_BYTES=136632 BACKUP_ARCHIVE_SHA256=b29eb55820ec46c474f51e"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783928577148769166,"path":"/srv/homelab-desired-state/health/crypto-portfolio-ui-preapply-backup.txt","sha256":"7b4b3faf518b57a01b5bb1302377fc1fb13ad9a206f9e8211edfd8bbbc0bf395","size":1851,"uid":0},"path":"/srv/homelab-desired-state/health/crypto-portfolio-ui-preapply-backup.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-15T22:32:11Z TYPE=homelab-ops-bootstrap BAD=0 REPOSITORY=/srv/homelab-ops BRANCH=main COMMIT=14d8bb0467e5890a7166444afda90a0185552eba REMOTE=https://git.gram1.ru/homelab-admin/homelab-ops.git PVE01_PUSH_DISABLED=YES"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o640","mtime_ns":1784154731087612149,"path":"/srv/homelab-desired-state/health/homelab-ops-bootstrap.txt","sha256":"ffbd6012fdb16a415b5218c0a47bc26cc2946113e2a69fdde6f090bcbb53bc31","size":237,"uid":0},"path":"/srv/homelab-desired-state/health/homelab-ops-bootstrap.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T08:33:53Z TYPE=service-readiness-final BAD=0 SERVICE=dozzle HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK LOCAL_BIND=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://dozzle.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783586034791337394,"path":"/srv/homelab-desired-state/health/service-readiness-dozzle.txt","sha256":"c13d689f67ac3dc4bd5afd825a54d89288d23bce5fd54c0ed91b07c4b8f8fc81","size":277,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-dozzle.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T18:25:21Z TYPE=service-readiness-final BAD=0 SERVICE=audiobookshelf HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://audiobooks.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783621522560223546,"path":"/srv/homelab-desired-state/health/service-readiness-audiobookshelf.txt","sha256":"af911c53597b0e1b5c16431392db9338b97a4d0e23be353cbadc0ba629ca0066","size":279,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-audiobookshelf.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T19:42:26Z TYPE=service-readiness-final BAD=0 SERVICE=n8n HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://n8n.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783626147812414504,"path":"/srv/homelab-desired-state/health/service-readiness-n8n.txt","sha256":"8f180c813dbc129525da7da537292ee4fb006ba90117dbdf6c2909514c5ec187","size":261,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-n8n.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T20:45:50Z TYPE=service-readiness-final BAD=0 SERVICE=nextcloud HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK URL=https://nc.gram1.ru STATE=vm150:running,nextcloud-status:installed-maintenance-false,turn:monitored"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783629951391156886,"path":"/srv/homelab-desired-state/health/service-readiness-nextcloud.txt","sha256":"fa0e3d005860b5f4d4bf7d7e28ff9927623cbe7ccb2e74ca2406d706ec9b9ba0","size":311,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-nextcloud.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T06:41:40Z TYPE=service-readiness-final BAD=0 SERVICE=backup-health HOMEPAGE=OK NPMPLUS=OK KUMA=OK ENDPOINTS=LOCAL_LAN_PUBLIC_OK CORE_GATES=OK LISTENERS=OK URL=https://backup.gram1.ru/backup.txt OVERALL=https://backup.gram1.ru/overall.txt"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783579300097970342,"path":"/srv/homelab-desired-state/health/service-readiness-backup-health.txt","sha256":"f8074ea30fd108c0db7c85caebaaaa4a3600ea49fbea717f372bf5e6218753b4","size":262,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-backup-health.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T10:16:45Z TYPE=service-readiness-final BAD=0 SERVICE=dockge HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK EDGE=OK CORE_AGENT=OK MONITORING_AGENT=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://dockge.gram1.ru STATE=edge:running/healthy,core-agent:running/healthy,monitoring-agent:running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783592208183045599,"path":"/srv/homelab-desired-state/health/service-readiness-dockge.txt","sha256":"804a6933e538cf0da0625d7908ede05586edc317c11035f3b3914c85d562bfd3","size":369,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-dockge.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T06:05:58Z TYPE=cluster-admin-service-readiness BAD=0 SERVICE=cluster-admin-webpanel HOMEPAGE=OK NPMPLUS_VPN_ROUTE=OK KUMA=OK HEALTH_GATES=OK BACKUP=MAIL_CLOUD_2COPY_VERIFY_OK URL=https://cluster-admin.vpn.gram1.ru/status.txt"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783577158699420766,"path":"/srv/homelab-desired-state/health/cluster-admin-service-readiness.txt","sha256":"d90dce13be5b4274dbbb288721852ad2331779e779aa79ba688371fc220e6ca0","size":249,"uid":0},"path":"/srv/homelab-desired-state/health/cluster-admin-service-readiness.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:35:29Z TYPE=crypto-portfolio-remove-grt-runtime-verifier-prepared BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 DEEP_ANALYSIS_RESULT=DIRECT_ROUTE_JSONRESPONSE_CONTRACT_CORRECTED FAILURE_CLASS=VERIFIER_ONLY PRODUCTION_CHANGED=NO PRODUCTION_DATABASE_CHANGED=NO CANDIDATE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CONTAINER_STARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=b974057b536ece861299d0b230c06cc0e6702c39 INPUT_APP_SHA256=684ad884119554503db0ed36252aeb017c0c04b54729f30c51e66a7ab293f8bd INPUT_WORKER_SHA256=40a1c81111d7097120125b140683a8604abcb4051db5073ab8af708a11854038 INPUT_INDEX_SHA256=2b1ab459cabf3050af1db4a7b293fff7c2a9ac18bf4a14faa1efc70a3a3f63e3 CANDIDATE_ROOT=/var/lib/homelab-change-sets/crypto-portfolio-remove-grt-candidate-v3/20260713T042046Z RUNTIME_POLICY=CONTAINER_PYTHON_ONLY PYTHONPATH_APP_INJECTED=YES ROUTE_RETURN_DECODER=DICT_OR_RESPONSE_BODY STATE_RETURN_DECODED=YES CHART_HEALTH_RETURN_DECO"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783917330889546451,"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-verifier-prepared.txt","sha256":"7d161370e3d79ff94529b8069e6876e3444e70054658d732d351ef1e3ed26466","size":1403,"uid":0},"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-verifier-prepared.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T06:14:02Z TYPE=service-readiness-final BAD=0 SERVICE=cluster-admin-webpanel VMID=180 HOMEPAGE=OK NPMPLUS=OK KUMA=OK KUMA_CONTAINER_ROUTE=OK BACKEND=OK WEBPANEL=OK BACKUP=MAIL_CLOUD_2COPY_VERIFY_OK URL=https://cluster-admin.vpn.gram1.ru/status.txt KUMA_STATE=running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783577642636778863,"path":"/srv/homelab-desired-state/health/service-readiness-cluster-admin-webpanel.txt","sha256":"d82e7b1217b1e199fd7879944e9ef46dbab22d37537c9e2bf56b89e98bbe0b35","size":298,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-cluster-admin-webpanel.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T07:51:32Z TYPE=service-readiness-final BAD=0 SERVICE=alertmanager HOMEPAGE=OK NPMPLUS=OK KUMA=OK READY=OK HEALTHY=OK CONFIG=OK API=OK CLUSTER=ready PEERS=1 PROMETHEUS_LINK=OK PROM_FIRING_ALERTS=0 ALERTMANAGER_ALERTS=0 SILENCES_ACTIVE=0 GOTIFY_DEPENDENCY=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK RUNBOOK=OK LOGS=OK URL=https://alertmanager.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783583493513666300,"path":"/srv/homelab-desired-state/health/service-readiness-alertmanager.txt","sha256":"3bf9df80a61822884d6e07b4a9afba25326ebd8eae3142ae98b4721765950a76","size":407,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-alertmanager.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-13T06:11:23Z TYPE=crypto-portfolio-ui-center-alert-currency-candidate BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=EXPECTED_DIFF_RC_1_TRIGGERED_SET_E_PIPEFAIL PRODUCTION_CHANGED=NO PRODUCTION_DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=80763a6c62b94cde4f3293f3b529980f76919d25 INPUT_INDEX_SHA256=8bbe88f5f420fe429d479c598e1f3f904521eb166d4707e32e579851e84c205e CANDIDATE_INDEX_SHA256=e497a36d8549654c6d451360a11a2ad714e19c23e6d384330a5436f7d32267cb BUILDER_DOUBLE_CHECK=OK CANDIDATE_DOUBLE_CHECK=OK SHARP_MOVES_POSITION=CENTERED SHARP_MOVES_MAX_WIDTH_PX=860 SHARP_MOVES_COLUMNS_DESKTOP=2 SHARP_MOVES_COLUMNS_MOBILE=1 ALERT_RENDERER=V5 ALERT_CURRENCY_SOURCE=TOP_USD_RUB_SWITCH ALERT_EXCHANGE_RATE_SOURCE=STATE_MARKET_USD_RUB ALERT_PRICE_THRESHOLD_CONVERTED=YES ALERT_CAP_THRESHOLD_CONVERTED=YES ALERT_SALE_VALUE_CONVERTED=YES CURRENCY_SWITCH_REDRAW"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783923084154265049,"path":"/srv/homelab-desired-state/health/crypto-portfolio-ui-center-alert-currency-candidate.txt","sha256":"5bbb00a58d9d033a411890f2880c8a5831eb38a52ec299c891e6e6cfa0d4ca4f","size":1347,"uid":0},"path":"/srv/homelab-desired-state/health/crypto-portfolio-ui-center-alert-currency-candidate.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T18:01:02Z TYPE=service-readiness-final BAD=0 SERVICE=bookstack HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://bookstack.vpn.gram1.ru STATE=app:running/nohealth,db:running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783620063724715337,"path":"/srv/homelab-desired-state/health/service-readiness-bookstack.txt","sha256":"ff7d57382f780857cc0c84793264f26e247dee00024900f4ccd0f4d005d48f19","size":297,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-bookstack.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T12:47:17Z TYPE=service-readiness-final BAD=0 SERVICE=filebrowser HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://filebrowser.vpn.gram1.ru STATE=running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783601238831135091,"path":"/srv/homelab-desired-state/health/service-readiness-filebrowser.txt","sha256":"ac04b01ed5c63f05f02e9610bdc2b6f311b8adb879656f36762800dddc2c3407","size":276,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-filebrowser.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T20:55:37Z TYPE=service-readiness-final BAD=0 SERVICE=dns2 HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK CONFIG_SYNC=OK BACKUP_SLA=OK ALERTING=OK URL=https://dns2.vpn.gram1.ru STATE=adguard-ui:monitored,dns-tcp:monitored,unbound:monitored"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783630538260037616,"path":"/srv/homelab-desired-state/health/service-readiness-dns2.txt","sha256":"f013a395e99807f39c9a3f08ac58f6b03c255f636283eb9daba2db333de40e23","size":277,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-dns2.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T06:47:55Z TYPE=service-readiness-final BAD=0 SERVICE=uptime-kuma HOMEPAGE=OK NPMPLUS=OK KUMA_SELF=OK DB=OK MONITORS_ACTIVE=91 HEARTBEAT_BAD=0 NOTIFICATION=OK BACKUP=OK RESTORECHECK=OK_BY_PRECHECK POLICY=OK ALERTING=OK RUNBOOK=OK EXTRA_HOST_CLUSTER_ADMIN=OK URL=https://uptime.gram1.ru STATE=running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783579675563672808,"path":"/srv/homelab-desired-state/health/service-readiness-uptime-kuma.txt","sha256":"f9e8b1f3e6a319ab629f03f1126a8cd011adc6bf3171fe10c2e04642558e580c","size":331,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-uptime-kuma.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T18:19:10Z TYPE=service-readiness-final BAD=0 SERVICE=jellyfin HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://jellyfin.vpn.gram1.ru STATE=running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783621151781487323,"path":"/srv/homelab-desired-state/health/service-readiness-jellyfin.txt","sha256":"2e35c908acfdb9f85db0bb2cb0395c4f8b629d7ed6a7d0e9e836459bf08389db","size":270,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-jellyfin.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-13T07:04:45Z TYPE=crypto-portfolio-ui-center-alert-currency-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=UNPRIVILEGED_REMOTE_RM_AFTER_SUDO_HARNESS PRODUCTION_CHANGED=NO_BROWSER_EVIDENCE_FINALIZATION_ONLY PRODUCTION_DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru CANDIDATE_INDEX_SHA256=e497a36d8549654c6d451360a11a2ad714e19c23e6d384330a5436f7d32267cb CANDIDATE_STATIC_GRT_DOUBLE_CHECK=OK BROWSER_ENGINE=CHROMIUM BROWSER_RUNS=2 BROWSER_RUNS_IDENTICAL=YES MOVES=2 SHARP_MOVES_CENTERED=YES SHARP_MOVES_MAX_WIDTH_OK=YES SHARP_MOVES_COLUMNS=2 ALERT_ROWS=2 USD_ALERT_RENDER=OK RUB_ALERT_RENDER=OK TOP_CURRENCY_SWITCH_REDRAW=OK RUB_PRICE_THRESHOLD=OK RUB_CAP_THRESHOLD=OK RUB_SALE_VALUE=OK ALERT_USD_RESIDUE_IN_RUB_MODE=ABSENT CHART_CARDS=2 CHART_CANVASES=14 CHARTS_BOTTOM=YES BROWSER_ERRORS=0 GRT_VISIBLE=NO RESULT_SHA256=b566f492cd80c8f99bc6b24cbef6d5f326c04f4d"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783926287230037708,"path":"/srv/homelab-desired-state/health/crypto-portfolio-ui-center-alert-currency-browser-smoke.txt","sha256":"4f08e0d48c42dc5a33b50166382ad70b0ef55b6dd332f834ab5917624bd2286f","size":1490,"uid":0},"path":"/srv/homelab-desired-state/health/crypto-portfolio-ui-center-alert-currency-browser-smoke.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T18:57:16Z TYPE=service-readiness-final BAD=0 SERVICE=calibre-web HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://books.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783623440303098924,"path":"/srv/homelab-desired-state/health/service-readiness-calibre-web.txt","sha256":"6d15c1aeb465f70a5689aec04a7d4be835f58daf1b2db6e359aaf5018805e216","size":271,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-calibre-web.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:05:42Z TYPE=crypto-portfolio-remove-grt-surface BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PRODUCTION_CHANGED=NO DATABASE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru TARGET_STACK=/opt/stacks/crypto-portfolio DESIRED_STATE_HEAD=b974057b536ece861299d0b230c06cc0e6702c39 DESIRED_STATE_CLEAN=YES APP_SHA256=684ad884119554503db0ed36252aeb017c0c04b54729f30c51e66a7ab293f8bd WORKER_SHA256=40a1c81111d7097120125b140683a8604abcb4051db5073ab8af708a11854038 INDEX_SHA256=2b1ab459cabf3050af1db4a7b293fff7c2a9ac18bf4a14faa1efc70a3a3f63e3 APP_GRT_REFERENCES=5 WORKER_GRT_REFERENCES=2 INDEX_GRT_REFERENCES=2 LOCAL_GRT_REFERENCES=3 SQLITE_SCHEMA_CAPTURED=YES READY_FOR_GRT_CANDIDATE_PREPARE=YES SURFACE_ROOT=/var/lib/homelab-change-sets/crypto-portfolio-remove-grt-surface/20260713T040542Z"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783915543613258985,"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-surface.txt","sha256":"ec0e80392e7132f3a38af9d159c40860977a0647c01ff63731642f8b3e60e6e4","size":879,"uid":0},"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-surface.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-13T05:47:54Z TYPE=crypto-portfolio-remove-grt-production-apply BAD=0 COMMAND_PHYSICAL_LINES=1 APPLY_REVISION=V3 FIX_UID_READONLY=YES FIX_READINESS_ENDPOINT=YES FIX_ROLLBACK_DATABASE_METADATA=YES PRODUCTION_CHANGED=YES_REMOVE_GRT DESIRED_STATE_CHANGED=NO_BY_THIS_COMMAND PRODUCTION_CONTAINER_RECREATED=YES CLOUD_WRITE_RUN=NO ROLLBACK_ON_FAILURE=ARMED_NOT_NEEDED TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=80763a6c62b94cde4f3293f3b529980f76919d25 PRECHANGE_BACKUP_JOB=homelab-pve01-app-crypto-portfolio-20260713T051015Z ROLLBACK_PATH=/var/lib/homelab-incidents/crypto-remove-grt-prechange-20260713T051013Z APP_SHA256=44df2b25183b7c5d87ff1516ec2d9cd1d169acde3031f7c2aa1fc4e0c7813cd2 WORKER_SHA256=174a14b86014535980d200a76d0057110c7af102c66f16c2e21fc3e74bb2e49e INDEX_SHA256=8bbe88f5f420fe429d479c598e1f3f904521eb166d4707e32e579851e84c205e CHART_HEALTH_SCRIPT_SHA256=c16473f16390eeeff4d4eb701db604093564dd78d0be2d30b4cc8ffeeb22364a ACTIVE_COINS=HBAR,POL GRT_SOURCE_REFERENCES"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783921693260063344,"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt","sha256":"c52b04528dc67a5502c297f32c3a0d6812cdc8801d6725905a5957cadc38c5ea","size":1640,"uid":0},"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-production-apply.txt"},{"lines":[{"line":4,"text":"SUMMARY=Four pending Uptime Kuma keyword monitors were repointed from public backup.gram1.ru paths to local pve01 health endpoint [PRIVATE_IP]:9101."}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783028423760334827,"path":"/srv/homelab-desired-state/health/uptime-kuma-pending-health-monitors-fix.txt","sha256":"bb2acd1f93682c0eb7d108ef03b8559e285b4bac37e6302598d0f617567fa866","size":535,"uid":0},"path":"/srv/homelab-desired-state/health/uptime-kuma-pending-health-monitors-fix.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T13:02:48Z TYPE=service-readiness-final BAD=0 SERVICE=actual-budget HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://actual-budget.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783602290011106709,"path":"/srv/homelab-desired-state/health/service-readiness-actual-budget.txt","sha256":"68605ac6b4b89fdf968d8fa466e6ff95ecebe281a0504f6fdf56e94bcb89518e","size":281,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-actual-budget.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T07:47:18Z TYPE=service-readiness-final BAD=0 SERVICE=grafana HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK DB=OK DATASOURCE=OK DASHBOARDS=3 DASHBOARD_JSON_BAD=0 PROMETHEUS_DEPENDENCY=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK RUNBOOK=OK LOGS=OK URL=https://grafana.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783583239209799155,"path":"/srv/homelab-desired-state/health/service-readiness-grafana.txt","sha256":"6f78de19c0db914cda8df87a8aa2e6f07f1fd13af462125193fcfe7dc5a6c8d8","size":326,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-grafana.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:52:06Z TYPE=crypto-portfolio-remove-grt-browser-smoke BAD=0 COMMAND_PHYSICAL_LINES=1 PREVIOUS_FAILURE=CORRECTED PREVIOUS_FAILURE_ROOT_CAUSE=OPTIONAL_XXD_DEPENDENCY_MISSING_WITH_STDERR_SUPPRESSED BROWSER_RERUN=NO EVIDENCE_SALVAGED=YES PRODUCTION_CHANGED=NO PRODUCTION_DATABASE_CHANGED=NO CANDIDATE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CONTAINER_STARTED=NO CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=b974057b536ece861299d0b230c06cc0e6702c39 INPUT_APP_SHA256=684ad884119554503db0ed36252aeb017c0c04b54729f30c51e66a7ab293f8bd INPUT_WORKER_SHA256=40a1c81111d7097120125b140683a8604abcb4051db5073ab8af708a11854038 INPUT_INDEX_SHA256=2b1ab459cabf3050af1db4a7b293fff7c2a9ac18bf4a14faa1efc70a3a3f63e3 ACTIVE_COINS=HBAR,POL GRT_VISIBLE=NO BROWSER_CARDS=2 BROWSER_CANVASES=14 BROWSER_MOVES=2 BROWSER_COIN_CARDS=2 BROWSER_POSITION_ROWS=2 BROWSER_ALERT_OPTIONS=2 BROWSER_ACTIVE_COIN=HBAR BROWSER_CHART_SYMBOLS=HBAR,POL BROWSER_ERRORS=0 BROWSE"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783918328118750433,"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt","sha256":"0ec07f2df3d2acd4e02a3c884b1bf75885ac24995516c5a4657da1ef99cf5963","size":1724,"uid":0},"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-browser-smoke.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T07:58:51Z TYPE=service-readiness-final BAD=0 SERVICE=ntfy HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK ALERTMANAGER_LINK=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK RUNBOOK=OK LOGS=OK URL=https://ntfy.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783584042770018771,"path":"/srv/homelab-desired-state/health/service-readiness-ntfy.txt","sha256":"d971945a3d44413da361fa030c9e2a6f2ae0974251e74a24c412eae2f5956892","size":262,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-ntfy.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T17:55:47Z TYPE=service-readiness-final BAD=0 SERVICE=vikunja HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://vikunja.vpn.gram1.ru STATE=running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783619748698868888,"path":"/srv/homelab-desired-state/health/service-readiness-vikunja.txt","sha256":"80c71a30d842b941afefcca2ca64b95ee43c767b7fb7313a71b4e84356b78bff","size":269,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-vikunja.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T10:07:24Z TYPE=service-readiness-final BAD=0 SERVICE=npmplus HOMEPAGE=OK NPMPLUS=OK_SELF KUMA=OK HEALTH=OK ROUTES=OK ROUTE_TOTAL=55 VPN_ROUTES=31 CERTS=OK EDGE_HEALTH=OK ADMIN=OK NGINX=OK CROWDSEC_LAPI=RESPONSIVE CROWDSEC_LAPI_WARN_5MIN=0 UPSTREAM_WARN_5MIN=0 BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK_NGINX_FATAL_0 URL=https://npmplus.vpn.gram1.ru STATE=running/healthy"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783591652096606835,"path":"/srv/homelab-desired-state/health/service-readiness-npmplus.txt","sha256":"5b3c966481b8a013bab4a3aba9bfeb67a31e954a3396fcdd0bdde1bb8bedb880","size":430,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-npmplus.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T17:47:41Z TYPE=service-readiness-final BAD=0 SERVICE=healthchecks HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://checks.vpn.gram1.ru STATE=running/healthy NOTE=canonical-domain-corrected-from-healthchecks-vpn-to-checks-vpn"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783619261777467514,"path":"/srv/homelab-desired-state/health/service-readiness-healthchecks.txt","sha256":"058719ad927e849e693923fc46d0a9d0ef2babba819d968b05d0e6a32f2f6edf","size":340,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-healthchecks.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-13T04:41:24Z TYPE=crypto-portfolio-remove-grt-runtime-dry-run BAD=0 COMMAND_PHYSICAL_LINES=1 VERIFIER_REVISION=V3 ANALYSIS_SOURCES=FULL_CHAT_CRYPTO_HANDOFF_CLUSTER_REFERENCE_ERROR_HISTORY PRODUCTION_CHANGED=NO PRODUCTION_DATABASE_CHANGED=NO CANDIDATE_DATABASE_CHANGED=ISOLATED_COPY_RUNTIME_CHECK_ONLY DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO PRODUCTION_CONTAINER_RECREATED=NO ISOLATED_CONTAINER_STARTED=YES ISOLATED_CONTAINER_CLEANED=YES CLOUD_WRITE_RUN=NO TARGET_HOST=core-apps.gram1.ru DESIRED_STATE_HEAD=b974057b536ece861299d0b230c06cc0e6702c39 INPUT_APP_SHA256=684ad884119554503db0ed36252aeb017c0c04b54729f30c51e66a7ab293f8bd INPUT_WORKER_SHA256=40a1c81111d7097120125b140683a8604abcb4051db5073ab8af708a11854038 INPUT_INDEX_SHA256=2b1ab459cabf3050af1db4a7b293fff7c2a9ac18bf4a14faa1efc70a3a3f63e3 ACTIVE_COINS=HBAR,POL CANDIDATE_GRT_REFERENCES=0 DATABASE_GRT_AFTER=0|0|0 WORKER_RUNTIME_CHECK=OK WEB_RUNTIME_CHECK=OK HTTP_RUNTIME_CHECK=OK HTTP_CODES=200|303|401|200|200|401"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783917691943052086,"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt","sha256":"2fb9cadb78f74a3fcebf23b9f623716c6ef023d253ee4a9d8e6ae8ac876e7892","size":1497,"uid":0},"path":"/srv/homelab-desired-state/health/crypto-portfolio-remove-grt-runtime-dry-run.txt"},{"lines":[{"line":1,"text":"STATUS=OK TS=2026-07-09T19:32:34Z TYPE=service-readiness-final BAD=0 SERVICE=karakeep HOMEPAGE=OK NPMPLUS=OK KUMA=OK HEALTH=OK PUBLIC=OK BACKUP=OK OFFHOST=OK RESTORE=OK BACKUP_SLA=OK ALERTING=OK RUNBOOK=OK LOGS=OK URL=https://karakeep.vpn.gram1.ru STATE=app:running/healthy,meilisearch:running/nohealth,chrome:running/nohealth"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783625556748197752,"path":"/srv/homelab-desired-state/health/service-readiness-karakeep.txt","sha256":"694ae06a6ed89bb6c1e1b10171bc2eb21166459118ec2c415d8963a803d3face","size":327,"uid":0},"path":"/srv/homelab-desired-state/health/service-readiness-karakeep.txt"},{"lines":[{"line":1,"text":"HOST|kuma|fqdn=kuma.vpn.gram1.ru|dns=100.100.60.182|http=301|https=200|location=https://kuma.vpn.gram1.ru/|cert_ok=yes"},{"line":2,"text":"HOST|homepage|fqdn=homepage.vpn.gram1.ru|dns=100.100.60.182|http=301|https=200|location=https://homepage.vpn.gram1.ru/|cert_ok=yes"},{"line":3,"text":"HOST|gitea|fqdn=gitea.vpn.gram1.ru|dns=100.100.60.182|http=301|https=200|location=https://gitea.vpn.gram1.ru/|cert_ok=yes"},{"line":4,"text":"HOST|filebrowser|fqdn=filebrowser.vpn.gram1.ru|dns=100.100.60.182|http=301|https=200|location=https://filebrowser.vpn.gram1.ru/|cert_ok=yes"},{"line":5,"text":"HOST|auth|fqdn=auth.vpn.gram1.ru|dns=100.100.60.182|http=301|https=200|location=https://auth.vpn.gram1.ru/|cert_ok=yes"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1785473496367948551,"path":"/srv/homelab-desired-state/health/private-vpn-hosts.txt","sha256":"21690d2c395bb4a56f72c727790afc4146b3710865deffe2067f6cd98c27ff63","size":641,"uid":0},"path":"/srv/homelab-desired-state/health/private-vpn-hosts.txt"},{"lines":[{"line":3,"text":" \"host\": \"edge-vm.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783944646020037205,"path":"/srv/homelab-desired-state/app-states/latest-hapusya-site.json","sha256":"82315a126652ae435070b4f8025348dbd75800b0acdbe848b38200ddc2312a01","size":1975,"uid":0},"path":"/srv/homelab-desired-state/app-states/latest-hapusya-site.json"},{"lines":[{"line":17,"text":"check \"public overall endpoint\" bash -c \"curl -k -fsS https://backup.gram1.ru/overall.txt | grep -q STATUS=\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1783451585156819526,"path":"/srv/homelab-desired-state/sbin/homelab-final-readiness-gate.bak-cluster-admin-hardgate-20260709T044746Z","sha256":"da66763f888cf5b96f7a5fcaa95d95de8b30420949fec7d67776a8d119ec5e0c","size":6035,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-final-readiness-gate.bak-cluster-admin-hardgate-20260709T044746Z"},{"lines":[{"line":10,"text":"dns=\"$(getent hosts kuma.vpn.gram1.ru 2>/dev/null | awk '{print $1}' | head -n1 || true)\""},{"line":12,"text":" line=\"HOST|kuma|fqdn=kuma.vpn.gram1.ru|dns=$dns\""},{"line":13,"text":" grep -q \"HOST|kuma|fqdn=kuma.vpn.gram1.ru|dns=100.100.60\" \"$H\" 2>/dev/null || printf '%s|compat=added-for-kuma-keyword\\n' \"$line\" >> \"$H\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1782307022434277840,"path":"/srv/homelab-desired-state/sbin/homelab-check-private-vpn-hosts.realnet-20260624T140509Z","sha256":"912bde53ec047d89f0142d9ece9f13a27309d6979af6287604abbb0e0f8a4536","size":553,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-check-private-vpn-hosts.realnet-20260624T140509Z"},{"lines":[{"line":15,"text":"ssh -n -o BatchMode=yes -o ConnectTimeout=10 \"$CORE\" 'H=\"$(hostname -f 2>/dev/null || hostname)\"; { [ \"$H\" = \"core-apps.gram1.ru\" ] || [ \"$H\" = \"core-apps\" ]; } || exit 3; D=/opt/stacks/crypto-portfolio; T=\"$(sudo -n mktemp -d /tmp/crypto-portfolio-backup.XXXXXX)\"; trap \"sudo -n rm -rf \\\"$T\\\"\" EXIT; sudo -n install -d -m 700 \"$T/stack\" \"$T/stack/data\"; for F in compose.yaml Dockerfile requirements.txt app.py worker.py .dockerignore; do sudo -n test -s \"$D/$F\" && sudo -n cp -a \"$D/$F\" \"$T/stack/\"; done; sudo -n cp -a \"$D/templates\" \"$D/secrets\" \"$T/stack/\"; sudo -n python3 -c \"import sqlite3,sys;s=sqlite3.connect(sys.argv[1]);d=sqlite3.connect(sys.argv[2]);s.backup(d);d.close();s.close()\" \"$D/data/portfolio.db\" \"$T/stack/data/portfolio.db\"; for F in market.json worker-status.json; do sudo -n test -s \"$D/data/$F\" && sudo -n cp -a \"$D/data/$F\" \"$T/stack/data/\"; done; sudo -n tar -C \"$T\" -czf - stack' > \"$STAGE/remote.tgz\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","mtime_ns":1783749840508333194,"path":"/srv/homelab-desired-state/sbin/crypto-portfolio-backup-run","sha256":"536f44dd76b1f5216c0d2a537d4ecb6190b192b2b955a0ad0580ce1923638002","size":2285,"uid":0},"path":"/srv/homelab-desired-state/sbin/crypto-portfolio-backup-run"},{"lines":[{"line":64,"text":"[[ \"$(/usr/bin/curl -sS -m8 --resolve git.gram1.ru:443:[PRIVATE_IP] -o /dev/null -w '%{http_code}' https://git.gram1.ru/)\" == 200 ]] || fail GITEA 69"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","mtime_ns":1784759151977086610,"path":"/srv/homelab-desired-state/sbin/homelab-reader-change-gate","sha256":"90470653345baac426d1ff6d3e3b1109a611ef7ba8d98b7453be0f732ced3597","size":3441,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-reader-change-gate"},{"lines":[{"line":325,"text":" \"https://git.gram1.ru/.well-known/homelab-context.json\","},{"line":326,"text":" \"https://git.gram1.ru/.well-known/homelab-context.txt\","},{"line":327,"text":" \"https://git.gram1.ru/assets/homelab-context/index.html\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","mtime_ns":1784581638869385776,"path":"/srv/homelab-desired-state/sbin/homelab-safe-exec","sha256":"1c755e35f40ce565d88df958141901e4ec7afadcdd0dcb1573e06d831adf7528","size":14981,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-safe-exec"},{"lines":[{"line":101,"text":" NPM_REQUIRED_VPN_SQL=\"SELECT count(*) FROM proxy_host WHERE is_deleted=0 AND enabled=1 AND ssl_forced=1 AND certificate_id=32 AND access_list_id=1 AND (domain_names LIKE '%actual-budget.vpn.gram1.ru%' OR domain_names LIKE '%grafana.vpn.gram1.ru%' OR domain_names LIKE '%homebox.vpn.gram1.ru%' OR domain_names LIKE '%mealie.vpn.gram1.ru%' OR domain_names LIKE '%n8n.vpn.gram1.ru%' OR domain_names LIKE '%netbox.vpn.gram1.ru%' OR domain_names LIKE '%node-red.vpn.gram1.ru%' OR domain_names LIKE '%beszel.vpn.gram1.ru%' OR domain_names LIKE '%it-tools.vpn.gram1.ru%' OR domain_names LIKE '%karakeep.vpn.gram1.ru%' OR domain_names LIKE '%linkding.vpn.gram1.ru%' OR domain_names LIKE '%minio.vpn.gram1.ru%' OR domain_names LIKE '%ntfy.vpn.gram1.ru%' OR domain_names LIKE '%searxng.vpn.gram1.ru%' OR domain_names LIKE '%syncthing.vpn.gram1.ru%' OR domain_names LIKE '%alertmanager.vpn.gram1.ru%' OR domain_names LIKE '%prometheus.vpn.gram1.ru%' OR domain_names LIKE '%homeassistant.vpn.gram1.ru%');\""},{"line":104,"text":"NPM_CERT32_CHECK=\"$(sqlite3 \"$SNAP/edge-vm/npmplus/db/database.sqlite\" \"SELECT count(*) FROM certificate WHERE id=32 AND is_deleted=0 AND domain_names LIKE '%*.vpn.gram1.ru%';\" 2>>\"$ERR\" || echo error)\""},{"line":142,"text":"RESTORE_CERT32_CHECK=\"$(sqlite3 \"$RESTORE/edge-vm/npmplus/db/database.sqlite\" \"SELECT count(*) FROM certificate WHERE id=32 AND is_deleted=0 AND domain_names LIKE '%*.vpn.gram1.ru%';\" 2>>\"$ERR\" || echo error)\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1782325806516302937,"path":"/srv/homelab-desired-state/sbin/homelab-backup-npmplus-kuma-configs","sha256":"8cb2c47de0879ec57df51411513ecc00d84fd2aad1b27939797b36da75c8e875","size":13772,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-backup-npmplus-kuma-configs"},{"lines":[{"line":12,"text":"PUBLIC_URL=\"https://backup.gram1.ru/overall.txt\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1783347693211264665,"path":"/srv/homelab-desired-state/sbin/homelab-kuma-monitor-policy","sha256":"87e1f14bde3e5eb2d0512c949e1e32d7fe3214f38797559b6e3e1a9d855f059a","size":3824,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-kuma-monitor-policy"},{"lines":[{"line":20,"text":"curl -fsS --connect-timeout 8 --max-time 20 https://backup.gram1.ru/overall.txt -o \"$TMP\" 2>/dev/null"},{"line":54,"text":"- netbird.vpn.gram1.ru / 100.100.60.182 is edge-vm, not an independent external runner."}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1783447538561827954,"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps.bak-final-tailfix-20260707T182128Z","sha256":"08d4eb79b89fbfa5b9978f1b482e84f4bfffea504c33017493602fbb9a0e81d8","size":3327,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps.bak-final-tailfix-20260707T182128Z"},{"lines":[{"line":17,"text":"curl -fsS --connect-timeout 8 --max-time 20 https://backup.gram1.ru/overall.txt -o \"$TMP\" 2>/dev/null"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1783448488517978618,"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps","sha256":"fdbdeee1f2ea108d5318ea48b072e11f226d6f9d60957d9a95fb496e4322c19a","size":2608,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps"},{"lines":[{"line":6,"text":"kuma.vpn.gram1.ru"},{"line":7,"text":"homepage.vpn.gram1.ru"},{"line":8,"text":"gitea.vpn.gram1.ru"},{"line":9,"text":"filebrowser.vpn.gram1.ru"},{"line":10,"text":"auth.vpn.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1782309909348255553,"path":"/srv/homelab-desired-state/sbin/homelab-check-private-vpn-hosts","sha256":"591217150ef742117f677c4db12578528b1eaa0ec69ff31122003505a4fc7a82","size":1411,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-check-private-vpn-hosts"},{"lines":[{"line":20,"text":"curl -fsS --connect-timeout 8 --max-time 20 https://backup.gram1.ru/overall.txt -o \"$TMP\" 2>/dev/null"},{"line":54,"text":"- netbird.vpn.gram1.ru / 100.100.60.182 is edge-vm, not an independent external runner."}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1783443351210790532,"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps.bak-tailfix-20260707T180537Z","sha256":"08d4eb79b89fbfa5b9978f1b482e84f4bfffea504c33017493602fbb9a0e81d8","size":3327,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps.bak-tailfix-20260707T180537Z"},{"lines":[{"line":39,"text":"immutable=\"https://git.gram1.ru/homelab-admin/homelab-public-context/raw/commit/\"+commit+\"/runtime/history/\"+cid+\".txt\""},{"line":47,"text":"url=\"https://git.gram1.ru/.well-known/homelab-reader/\"+match.group(1)"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","mtime_ns":1784824702232864122,"path":"/srv/homelab-desired-state/sbin/homelab-reader-result-publish","sha256":"9cb8f7f1e9f300176a87f1abc8a9c51c92aeb9bea3514c7a9d9019ec400d4fd7","size":2914,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-reader-result-publish"},{"lines":[{"line":17,"text":"check \"public overall endpoint\" bash -c \"curl -k -fsS https://backup.gram1.ru/overall.txt | grep -q STATUS=\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1783898557281683025,"path":"/srv/homelab-desired-state/sbin/homelab-final-readiness-gate","sha256":"b7ed04b335f6bbab3811e2cf00606f32b181521280f76d6de79e1e266231235b","size":7947,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-final-readiness-gate"},{"lines":[{"line":17,"text":"check \"public overall endpoint\" bash -c \"curl -k -fsS https://backup.gram1.ru/overall.txt | grep -q STATUS=\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1783572466213632993,"path":"/srv/homelab-desired-state/sbin/homelab-final-readiness-gate.bak-cluster-admin-backup-webpanel-20260709T051329Z","sha256":"329467e471c369c05eaa2e39820bb94a04e3ca0b4f2094a5a7dc704a57c8e770","size":6540,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-final-readiness-gate.bak-cluster-admin-backup-webpanel-20260709T051329Z"},{"lines":[{"line":10,"text":"URLS=\"https://backup.gram1.ru/overall.txt http://[PRIVATE_IP]:9101/overall.txt\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1783449769031984212,"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps-health.bak-nocycle-20260707T184739Z","sha256":"0fdbaeb93b40ddbc82b517b1fd843a4731999f8b640d5cdf1910e7c54f82545c","size":3153,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps-health.bak-nocycle-20260707T184739Z"},{"lines":[{"line":674,"text":" \"https://git.gram1.ru/.well-known/\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","mtime_ns":1785422739562047130,"path":"/srv/homelab-desired-state/sbin/homelab-chat-run.broken-20260730T153645Z","sha256":"657b0b9ce7821d549f02e1f918a969ac7c447bd71101febf4b3b3e61677d2467","size":23357,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-chat-run.broken-20260730T153645Z"},{"lines":[{"line":76,"text":"PORTAL_BASE = \"https://run.vpn.gram1.ru\""},{"line":77,"text":"EVIDENCE_BASE = \"https://evidence.vpn.gram1.ru\""},{"line":1939,"text":" \"evidence.vpn.gram1.ru:443:[PRIVATE_IP]\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1785257434839960288,"path":"/srv/homelab-desired-state/sbin/homelab-command-adapter","sha256":"a1a7a615c99568bf915d084cc476f0ebf54ab0eedf3ecd578c4b0e072f58c43d","size":86019,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-command-adapter"},{"lines":[{"line":13,"text":"ssh -n -o BatchMode=yes -o ConnectTimeout=10 \"$CORE\" 'H=\"$(hostname -f 2>/dev/null || hostname)\"; { [ \"$H\" = \"core-apps.gram1.ru\" ] || [ \"$H\" = \"core-apps\" ]; } || exit 3; D=/opt/stacks/crypto-portfolio; T=\"$(sudo -n mktemp -d /tmp/crypto-portfolio-backup.XXXXXX)\"; trap \"sudo -n rm -rf \\\"$T\\\"\" EXIT; sudo -n install -d -m 700 \"$T/stack\" \"$T/stack/data\"; for F in compose.yaml Dockerfile requirements.txt app.py worker.py .dockerignore; do sudo -n test -s \"$D/$F\" && sudo -n cp -a \"$D/$F\" \"$T/stack/\"; done; sudo -n cp -a \"$D/templates\" \"$D/secrets\" \"$T/stack/\"; sudo -n python3 -c \"import sqlite3,sys;s=sqlite3.connect(sys.argv[1]);d=sqlite3.connect(sys.argv[2]);s.backup(d);d.close();s.close()\" \"$D/data/portfolio.db\" \"$T/stack/data/portfolio.db\"; for F in market.json worker-status.json; do sudo -n test -s \"$D/data/$F\" && sudo -n cp -a \"$D/data/$F\" \"$T/stack/data/\"; done; sudo -n tar -C \"$T\" -czf - stack' > \"$STAGE/remote.tgz\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","mtime_ns":1783704792885620561,"path":"/srv/homelab-desired-state/sbin/crypto-portfolio-backup-run.bak-short-flat-20260711T060400Z","sha256":"27d0cfb37969c52e2516c98d2f399e3aa460dcfa8f0baf83e9bb7edf702d874d","size":2172,"uid":0},"path":"/srv/homelab-desired-state/sbin/crypto-portfolio-backup-run.bak-short-flat-20260711T060400Z"},{"lines":[{"line":674,"text":" \"https://git.gram1.ru/.well-known/\""},{"line":773,"text":"PUBLIC_URL='https://git.gram1.ru/.well-known/homelab-runtime/latest.json'"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","mtime_ns":1785425805343562815,"path":"/srv/homelab-desired-state/sbin/homelab-chat-run","sha256":"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d","size":21321,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-chat-run"},{"lines":[{"line":33,"text":" echo \"$cert\" | grep -q \"DNS:\\*.vpn.gram1.ru\" || fail \"${name}_cert_san_missing\""},{"line":39,"text":"check_host \"kuma\" \"kuma.vpn.gram1.ru\" \"^(200|302)$\""},{"line":40,"text":"check_host \"homepage\" \"homepage.vpn.gram1.ru\" \"^200$\""},{"line":41,"text":"check_host \"gitea\" \"gitea.vpn.gram1.ru\" \"^200$\""},{"line":42,"text":"check_host \"filebrowser\" \"filebrowser.vpn.gram1.ru\" \"^200$\""},{"line":43,"text":"check_host \"auth\" \"auth.vpn.gram1.ru\" \"^(200|302)$\""},{"line":45,"text":"auth_live=\"$(curl -k -sS -o \"$TMPD/auth-live\" -w \"%{http_code}\" --max-time 8 https://auth.vpn.gram1.ru/-/health/live/ 2>/dev/null || echo error)\""},{"line":46,"text":"auth_ready=\"$(curl -k -sS -o \"$TMPD/auth-ready\" -w \"%{http_code}\" --max-time 8 https://auth.vpn.gram1.ru/-/health/ready/ 2>/dev/null || echo error)\""},{"line":78,"text":"echo \"$edge_out\" | grep -q \"17|\\[\\\"homepage.vpn.gram1.ru\\\"\\].*auth_request=none\" || fail \"homepage_auth_not_none\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1781751578563364783,"path":"/srv/homelab-desired-state/sbin/homelab-check-private-vpn-hosts.real-20260624T131702Z","sha256":"227d5c5bf4e3287bc44fdcb96d1b383e7973fbca491748fabfb3b5433cccc228","size":4503,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-check-private-vpn-hosts.real-20260624T131702Z"},{"lines":[{"line":5,"text":"VPS_ALIAS=\"${VPS_ALIAS:-netbird.vpn.gram1.ru}\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1782306007135818676,"path":"/srv/homelab-desired-state/sbin/homelab-vps-identity-audit","sha256":"b709691c52ae48432b70e197eb4810b6c374a05911cee3b9fdba4ecc67c76c3a","size":2161,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-vps-identity-audit"},{"lines":[{"line":20,"text":"curl -fsS --connect-timeout 8 --max-time 20 https://backup.gram1.ru/overall.txt -o \"$TMP\" 2>/dev/null"},{"line":54,"text":"- netbird.vpn.gram1.ru / 100.100.60.182 is edge-vm, not an independent external runner."}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1783441405600588336,"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps.bak-fixed-v2-20260707T165551Z","sha256":"ed358ab76eebe3b79c3f18a16878426f20b9b9054cadbe2159ffe3d7c2d0b0f9","size":3321,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps.bak-fixed-v2-20260707T165551Z"},{"lines":[{"line":9,"text":"URLS=\"https://backup.gram1.ru/overall.txt https://codevipe.ru https://gamevipe.ru https://hkmods.ru https://zakrutim.ru https://dsmods.ru https://gram1.ru https://pvepro.ru https://auth.gram1.ru https://vault.gram1.ru https://git.gram1.ru https://uptime.gram1.ru https://paper.gram1.ru https://memos.gram1.ru https://dozzle.gram1.ru https://gotify.gram1.ru\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1783398535195119646,"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps-health.bak-owner-fix-20260707T184249Z","sha256":"a1277cdfc1c3e8dc94f2c1d9552e7763f542fe3f1ef0ba6cb2df121bf126d3a9","size":3317,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps-health.bak-owner-fix-20260707T184249Z"},{"lines":[{"line":27,"text":"BASE = \"https://run.vpn.gram1.ru\""},{"line":28,"text":"PORTAL_HOST = \"run.vpn.gram1.ru\""},{"line":36,"text":"BRIDGE_CMD = '@echo off\\nsetlocal EnableExtensions DisableDelayedExpansion\\n\\nset \"ROOT=%LOCALAPPDATA%\\\\HomelabBridge\"\\nset \"CAPSULE=%~f1\"\\n\\nif \"%~1\"==\"\" (\\n echo HOMELAB_BRIDGE_ERROR=NO_CAPSULE\\n pause\\n exit /b 64\\n)\\n\\nif /I not \"%~x1\"==\".hcmd\" (\\n echo HOMELAB_BRIDGE_ERROR=INVALID_EXTENSION\\n pause\\n exit /b 65\\n)\\n\\nif not exist \"%CAPSULE%\" (\\n echo HOMELAB_BRIDGE_ERROR=CAPSULE_NOT_FOUND\\n pause\\n exit /b 66\\n)\\n\\nif not exist \"%ROOT%\\\\curl.cfg\" (\\n echo HOMELAB_BRIDGE_ERROR=NOT_ENROLLED\\n pause\\n exit /b 67\\n)\\n\\nset \"RESPONSE=%TEMP%\\\\homelab-bridge-%RANDOM%-%RANDOM%.txt\"\\n\\n\"%SystemRoot%\\\\System32\\\\curl.exe\" -q --proto =https --tlsv1.2 --config \"%ROOT%\\\\curl.cfg\" ^\\n --fail-with-body ^\\n --silent ^\\n --show-error ^\\n --connect-timeout 10 ^\\n --max-time 180 ^\\n --request POST ^\\n --header \"Content-Type: application/octet-stream\" ^\\n --data-binary \"@%CAPSULE%\" ^\\n \"https://run.vpn.gram1.ru/api/import\" ^\\n --output \"%RESPONSE%\"\\n\\nif errorlevel 1 (\\n echo HO"},{"line":37,"text":"SETUP_TEMPLATE = '@echo off\\nsetlocal EnableExtensions DisableDelayedExpansion\\n\\nset \"ROOT=%LOCALAPPDATA%\\\\HomelabBridge\"\\nset \"TOKEN_TMP=%TEMP%\\\\homelab-enroll-%RANDOM%-%RANDOM%.txt\"\\n\\nif not exist \"%SystemRoot%\\\\System32\\\\curl.exe\" (\\n echo HOMELAB_BRIDGE_SETUP_ERROR=CURL_MISSING\\n pause\\n exit /b 64\\n)\\n\\nif not exist \"%ROOT%\" mkdir \"%ROOT%\"\\nif errorlevel 1 (\\n echo HOMELAB_BRIDGE_SETUP_ERROR=CREATE_DIRECTORY\\n pause\\n exit /b 65\\n)\\n\\n\"%SystemRoot%\\\\System32\\\\icacls.exe\" \"%ROOT%\" /inheritance:r /grant:r \"%USERDOMAIN%\\\\%USERNAME%:(OI)(CI)F\" >nul\\nif errorlevel 1 (\\n echo HOMELAB_BRIDGE_SETUP_ERROR=ACL_DIRECTORY\\n pause\\n exit /b 72\\n)\\n\\n\"%SystemRoot%\\\\System32\\\\curl.exe\" -q --proto =https --tlsv1.2 ^\\n --fail-with-body ^\\n --silent ^\\n --show-error ^\\n --connect-timeout 10 ^\\n --max-time 60 ^\\n --request POST ^\\n --header \"Content-Type: text/plain\" ^\\n --data-binary \"__ENROLLMENT_TOKEN__\" ^\\n \"https://run.vpn.gram1.ru/api/enroll\" ^\\n --output \"%TOKEN_TMP%\"\\n\\n"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1785147080986831529,"path":"/srv/homelab-desired-state/sbin/homelab-command-portal","sha256":"97c69bd4fccf7272dadc911281c1503f411bae2dc11dac4b22b87f33d678ae52","size":39936,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-command-portal"},{"lines":[{"line":18,"text":"line \"- public overall: https://backup.gram1.ru/overall.txt\""},{"line":72,"text":"line \"curl -k -fsS https://backup.gram1.ru/overall.txt\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1783452999392787228,"path":"/srv/homelab-desired-state/sbin/homelab-cluster-passport","sha256":"1d47186f97a35df8650960658e56328797c29471fec36f41d7532222798c00f6","size":6192,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-cluster-passport"},{"lines":[{"line":10,"text":"URLS=\"https://backup.gram1.ru/overall.txt http://[PRIVATE_IP]:9101/overall.txt\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1783450059956321821,"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps-health","sha256":"e889270a26129bc9da104b19fbb05a00f7547485bac9f713292958311fd0d366","size":3280,"uid":0},"path":"/srv/homelab-desired-state/sbin/homelab-external-probe-vps-health"},{"lines":[{"line":4,"text":"Collector: `pve01.gram1.ru`"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o640","mtime_ns":1784154375920318327,"path":"/srv/homelab-ops/CURRENT_CONTEXT.md","sha256":"9a772d6e8d6438e84b0d2459c69cd99dc51820dba46fae3897c94a661a43a993","size":1147,"uid":0},"path":"/srv/homelab-ops/CURRENT_CONTEXT.md"},{"lines":[{"line":4,"text":" \"collector_host\": \"pve01.gram1.ru\","},{"line":124,"text":" \"remote\": \"https://git.gram1.ru/homelab-admin/homelab-ops.git\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o640","mtime_ns":1784154375919824327,"path":"/srv/homelab-ops/observed/current-context.json","sha256":"d2c7e06967fd76e09bb8ca694f5132aadd65a9eca35fca8ba92ac11c168d4ebb","size":6036,"uid":0},"path":"/srv/homelab-ops/observed/current-context.json"},{"lines":[{"line":6,"text":" \"target\": \"pve01.gram1.ru\","},{"line":13,"text":" \"target\": \"pve02.gram1.ru\","},{"line":20,"text":" \"target\": \"pve03.gram1.ru\","},{"line":27,"text":" \"target\": \"edge-vm.gram1.ru\","},{"line":34,"text":" \"target\": \"forum-prod.gram1.ru\","},{"line":41,"text":" \"target\": \"core-apps.gram1.ru\","},{"line":48,"text":" \"target\": \"cluster-admin.gram1.ru\","},{"line":62,"text":" \"target\": \"monitoring.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o640","mtime_ns":1784154263754121903,"path":"/srv/homelab-ops/inventory/access-paths.json","sha256":"ac5dc881dcd9fcb72644bc893e866f463c9c2b9b4544e32434e21b5d34168fb5","size":1652,"uid":0},"path":"/srv/homelab-ops/inventory/access-paths.json"},{"lines":[{"line":4,"text":" \"target_host\": \"pve01.gram1.ru\","},{"line":98,"text":" \"host\": \"pve01.gram1.ru\","},{"line":103,"text":" \"host\": \"pve02.gram1.ru\","},{"line":108,"text":" \"host\": \"pve03.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784381569327213062,"path":"/srv/homelab-ops/tasks/cluster-cloud-quorum-vm160-canary-v1/task.json","sha256":"636254d2526f0f62184d47cdb4c30c2831b11869c2000c557666f60b55d7691b","size":7440,"uid":0},"path":"/srv/homelab-ops/tasks/cluster-cloud-quorum-vm160-canary-v1/task.json"},{"lines":[{"line":14,"text":"test \"$(hostname -f)\" = pve01.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1784381569327213062,"path":"/srv/homelab-ops/tasks/cluster-cloud-quorum-vm160-canary-v1/phases/preflight.sh","sha256":"a49bcb32ac7212d7fb9768db8a277cb5525c873c84dd6fb633edae35dc6de532","size":4667,"uid":0},"path":"/srv/homelab-ops/tasks/cluster-cloud-quorum-vm160-canary-v1/phases/preflight.sh"},{"lines":[{"line":4,"text":" \"target_host\": \"pve01.gram1.ru\","},{"line":122,"text":" \"host\": \"pve01.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1784350113669712143,"path":"/srv/homelab-ops/tasks/homelab-logrotate-namespace-latch-clearance-v1/task.json","sha256":"3a8fdfb6b4b64880012fcc3bc6fee4be6f101377310325541f9776de6d1623f7","size":6750,"uid":0},"path":"/srv/homelab-ops/tasks/homelab-logrotate-namespace-latch-clearance-v1/task.json"},{"lines":[{"line":8,"text":"test \"$(hostname -f)\" = pve01.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1784350113669712143,"path":"/srv/homelab-ops/tasks/homelab-logrotate-namespace-latch-clearance-v1/phases/preflight.sh","sha256":"21802253966e8d94e8404fd6a217c8248004091dc9dd3b4c03193e3c81af4609","size":1869,"uid":0},"path":"/srv/homelab-ops/tasks/homelab-logrotate-namespace-latch-clearance-v1/phases/preflight.sh"},{"lines":[{"line":4,"text":" \"target_host\": \"pve01.gram1.ru\","},{"line":111,"text":" \"host\": \"pve01.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784373912544434393,"path":"/srv/homelab-ops/tasks/skladchik-reports-monitor-controlled-reauth-v1/task.json","sha256":"d3108777e5094468aa3e633740ce8a56c90ca957a9a62932be896bbe784680b0","size":13579,"uid":0},"path":"/srv/homelab-ops/tasks/skladchik-reports-monitor-controlled-reauth-v1/task.json"},{"lines":[{"line":11,"text":"test \"$(hostname -f)\" = pve01.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1784369933041417855,"path":"/srv/homelab-ops/tasks/skladchik-reports-monitor-controlled-reauth-v1/phases/preflight.sh","sha256":"f3e533ebd72ba2343a78797a8087c529c9fcfa2b3cabc45b3c0bd477356a8cc9","size":3076,"uid":0},"path":"/srv/homelab-ops/tasks/skladchik-reports-monitor-controlled-reauth-v1/phases/preflight.sh"},{"lines":[{"line":112,"text":" if fqdn != \"pve01.gram1.ru\":"},{"line":210,"text":" \"remote\": \"https://git.gram1.ru/homelab-admin/homelab-ops.git\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o640","mtime_ns":1784154263754379506,"path":"/srv/homelab-ops/tools/collect_context.py","sha256":"4d42623567c9e30d46a78bccd30c754319712d64012c722c33265e7de62c017c","size":11071,"uid":0},"path":"/srv/homelab-ops/tools/collect_context.py"},{"lines":[{"line":77,"text":" assert_true(context.get(\"collector_host\") == \"pve01.gram1.ru\", \"unexpected collector host\")"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o640","mtime_ns":1784154263754451430,"path":"/srv/homelab-ops/tools/validate_repo.py","sha256":"58fddb5f43f0668f70405ad09b5d79aa59d934329ed708f09b26692130781b35","size":4893,"uid":0},"path":"/srv/homelab-ops/tools/validate_repo.py"},{"lines":[{"line":157,"text":"test \"$(hostname -f)\" = pve01.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1784373912544434393,"path":"/srv/homelab-ops/tools/skladchik-cookie-refresh","sha256":"1e2f5323abf880f3e8b17bf1f2d0a844c402a9bbf5f24159ed39aaf1d79caef0","size":10086,"uid":0},"path":"/srv/homelab-ops/tools/skladchik-cookie-refresh"},{"lines":[{"line":24,"text":" \"const\": \"pve01.gram1.ru\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o640","mtime_ns":1784154263754238755,"path":"/srv/homelab-ops/schemas/context.schema.json","sha256":"84c3c29984402b25c102575b54bdb82544844e455d3d2e115fefc5f42021e043","size":539,"uid":0},"path":"/srv/homelab-ops/schemas/context.schema.json"},{"lines":[{"line":20,"text":"API=https://git.gram1.ru/api/v1/repos/homelab-admin/homelab-ops"},{"line":144,"text":"[[ \"$(hostname -f)\" == pve01.gram1.ru ]]"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1784360675564833388,"path":"/root/finish_skladchik_cr_2026_0010_v2.sh","sha256":"ccb53e47546870d70a1bc22d9bec2d342478c72b98ae8de0561171eadb8234ca","size":14820,"uid":0},"path":"/root/finish_skladchik_cr_2026_0010_v2.sh"},{"lines":[{"line":18,"text":" ssh debian@[PRIVATE_IP] \"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^jellyfin ' || true; echo EDGE_MOUNTS; sudo docker inspect jellyfin --format '{{range .Mounts}}{{println .Source}}{{end}}' 2>/dev/null | sort -u || true; curl -sk -H 'Host: jellyfin.vpn.gram1.ru' -o /tmp/edge_jellyfin_741.html -w 'EDGE_JELLYFIN_LOCAL=%{http_code}\\n' http://127.0.0.1:8019/ || true\""},{"line":42,"text":" direct=$(curl -sk -H 'Host: jellyfin.vpn.gram1.ru' -o /tmp/jellyfin_direct_741.html -w \"%{http_code}\" http://[PRIVATE_IP]:8019/ || true)"},{"line":43,"text":" npm=$(ssh debian@[PRIVATE_IP] \"sudo docker exec npmplus sh -lc \\\"curl -sk -H 'Host: jellyfin.vpn.gram1.ru' -o /tmp/jellyfin_741.html -w '%{http_code}' http://[PRIVATE_IP]:8019/ || true\\\"\" || true)"},{"line":67,"text":" code=$(curl -sk --resolve \"jellyfin.vpn.gram1.ru:443:[PRIVATE_IP]\" -o /tmp/jellyfin_route_741.html -w \"%{http_code}\" \"https://jellyfin.vpn.gram1.ru/\" || true)"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782974914004604440,"path":"/root/741_jellyfin_cutover.sh","sha256":"1739e4d700d431989a4e5a9e0f948a9782c3683d9be7fccded3e590da36a47ca","size":6185,"uid":0},"path":"/root/741_jellyfin_cutover.sh"},{"lines":[{"line":44,"text":" audio=$(curl -sk -H 'Host: audiobooks.vpn.gram1.ru' -o /tmp/audiobooks_740.html -w \"%{http_code}\" http://[PRIVATE_IP]:8020/ || true)"},{"line":45,"text":" books=$(curl -sk -H 'Host: books.vpn.gram1.ru' -o /tmp/books_740.html -w \"%{http_code}\" http://[PRIVATE_IP]:8021/ || true)"},{"line":46,"text":" npm_audio=$(ssh debian@[PRIVATE_IP] \"sudo docker exec npmplus sh -lc \\\"curl -sk -H 'Host: audiobooks.vpn.gram1.ru' -o /tmp/audiobooks_740.html -w '%{http_code}' http://[PRIVATE_IP]:8020/ || true\\\"\" || true)"},{"line":47,"text":" npm_books=$(ssh debian@[PRIVATE_IP] \"sudo docker exec npmplus sh -lc \\\"curl -sk -H 'Host: books.vpn.gram1.ru' -o /tmp/books_740.html -w '%{http_code}' http://[PRIVATE_IP]:8021/ || true\\\"\" || true)"},{"line":72,"text":" audio_code=$(curl -sk --resolve \"audiobooks.vpn.gram1.ru:443:[PRIVATE_IP]\" -o /tmp/audiobooks_route_740.html -w \"%{http_code}\" \"https://audiobooks.vpn.gram1.ru/\" || true)"},{"line":73,"text":" books_code=$(curl -sk --resolve \"books.vpn.gram1.ru:443:[PRIVATE_IP]\" -o /tmp/books_route_740.html -w \"%{http_code}\" \"https://books.vpn.gram1.ru/\" || true)"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782974733162840780,"path":"/root/740_media_books_cutover.sh","sha256":"c3c0c164033b60191ea722b64083890bddedbc042ee77b83fc12a0c0bfdf73a7","size":8426,"uid":0},"path":"/root/740_media_books_cutover.sh"},{"lines":[{"line":453,"text":" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783001713345765242,"path":"/root/771h_crowdsec_capi_register_correct_sequence.sh","sha256":"ee6fbc099aa24ec3404821905d4e962c242f43ecc7af8092e54334b273d2f7aa","size":20573,"uid":0},"path":"/root/771h_crowdsec_capi_register_correct_sequence.sh"},{"lines":[{"line":10,"text":"REMOTE_URL=\"https://git.gram1.ru/${GITEA_USER}/${REPO_NAME}.git\""},{"line":11,"text":"API_BASE=\"https://git.gram1.ru/api/v1\""},{"line":14,"text":"API_BASE=\"https://git.gram1.ru/api/v1\""},{"line":97,"text":"machine git.gram1.ru"}],"metadata":{"content_hash_omitted":true,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1781544371825534159,"path":"/root/stage21c-push-with-gitea-token.sh.broken-20260615T172738Z","size":5787,"uid":0},"path":"/root/stage21c-push-with-gitea-token.sh.broken-20260615T172738Z"},{"lines":[{"line":314,"text":" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782999318704442125,"path":"/root/771d_crowdsec_capi_via_privoxy_tor.sh","sha256":"11bf35410ec035f9f93178618247507cb12dc46860bb30758fb3a734265a7cc0","size":16158,"uid":0},"path":"/root/771d_crowdsec_capi_via_privoxy_tor.sh"},{"lines":[{"line":71,"text":" ssh debian@[PRIVATE_IP] \"code=\\$(curl -sk --resolve 'auth.gram1.ru:443:[PRIVATE_IP]' -o /tmp/auth_after_750.html -w '%{http_code}' https://auth.gram1.ru/ || true); title=\\$(grep -Eio '<title>[^<]+' /tmp/auth_after_750.html 2>/dev/null | head -1 | sed 's/<title>//I' || true); echo EDGE_AUTH_ROUTE=\\$code TITLE=\\$title\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782977075486947385,"path":"/root/750_authentik_db_proof_dump.sh","sha256":"98b2f1e811de20b10388e70ba8951da9fc7257b29b9ffb9b5fe5125465704f56","size":4479,"uid":0},"path":"/root/750_authentik_db_proof_dump.sh"},{"lines":[{"line":6,"text":"DOMAINS=\"dozzle.gram1.ru paper.gram1.ru memos.gram1.ru photos.gram1.ru auth.gram1.ru\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1781560515480697737,"path":"/root/ag-add-new-service-rewrites.sh","sha256":"77b2f72cc6887898c31ded5a6932b1ed4f2e8d386519f40e2ece7073a8ebe694","size":1648,"uid":0},"path":"/root/ag-add-new-service-rewrites.sh"},{"lines":[{"line":62,"text":" direct=$(curl -sk -H 'Host: netbox.vpn.gram1.ru' -o /tmp/netbox_direct_736.html -w \"%{http_code}\" http://[PRIVATE_IP]:8000/ || true)"},{"line":63,"text":" npm=$(ssh debian@[PRIVATE_IP] \"sudo docker exec npmplus sh -lc \\\"curl -sk -H 'Host: netbox.vpn.gram1.ru' -o /tmp/netbox_736.html -w '%{http_code}' http://[PRIVATE_IP]:8000/ || true\\\"\" || true)"},{"line":81,"text":" ssh debian@[PRIVATE_IP] \"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^netbox' || true; curl -sk --resolve 'netbox.vpn.gram1.ru:443:[PRIVATE_IP]' -o /tmp/netbox_edge_736.html -w 'EDGE_ROUTE_NETBOX=%{http_code}\\n' https://netbox.vpn.gram1.ru/ || true\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782974247992950291,"path":"/root/736_netbox_fix_links_pre_route.sh","sha256":"e325b98918b9c3663b7b6dd9c3a82d4ab38d3e9f188f2b33f6aa54d6b10a29d0","size":5115,"uid":0},"path":"/root/736_netbox_fix_links_pre_route.sh"},{"lines":[{"line":196,"text":"for url in \"https://uptime.gram1.ru\" \"$NEW_URL\"; do"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783027411043062158,"path":"/root/773c_fix_npmplus_admin_red_monitor.sh","sha256":"6d1b00ee766793642b20eb3d73e9784ae1bc84f8482cd49cfc9da1c8f854a439","size":9062,"uid":0},"path":"/root/773c_fix_npmplus_admin_red_monitor.sh"},{"lines":[{"line":586,"text":" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783014230694542054,"path":"/root/771w_pve01_netbird_ssh_egress_crowdsec_capi.sh","sha256":"fe9ac004c2013fe0ff413d5a5dbcfb2151203ba9426f8f50d0f7ac1c77eea178","size":24594,"uid":0},"path":"/root/771w_pve01_netbird_ssh_egress_crowdsec_capi.sh"},{"lines":[{"line":61,"text":"dig @[PRIVATE_IP] nc.gram1.ru +short"},{"line":62,"text":"dig @[PRIVATE_IP] turn.gram1.ru +short"},{"line":67,"text":"curl -I --max-time 15 https://nc.gram1.ru | head -n 8 || true"},{"line":68,"text":"curl -I --max-time 10 http://uptime.gram1.ru | head -n 8 || true"},{"line":69,"text":"curl -I --max-time 10 http://gotify.gram1.ru | head -n 8 || true"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1781521417124378993,"path":"/root/post-reboot-pve01-check.sh","sha256":"232cf4cb84d55c115b6c2e5ba69520620fcf66aa905f0367d7fee12e9e1b8120","size":1929,"uid":0},"path":"/root/post-reboot-pve01-check.sh"},{"lines":[{"line":87,"text":"curl -I --max-time 5 -H \"Host: uptime.gram1.ru\" http://127.0.0.1 2>/dev/null | head -n 5 || true"},{"line":88,"text":"curl -I --max-time 5 -H \"Host: gotify.gram1.ru\" http://127.0.0.1 2>/dev/null | head -n 5 || true"},{"line":89,"text":"curl -I --max-time 5 -H \"Host: nc.gram1.ru\" http://127.0.0.1 2>/dev/null | head -n 5 || true"},{"line":122,"text":" dig @\"$DNS\" nc.gram1.ru +short || true"},{"line":123,"text":" dig @\"$DNS\" turn.gram1.ru +short || true"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1781520588302036173,"path":"/root/pre-reboot-audit.sh","sha256":"813a6fd5c3fe16f387b27122132ee47c1505e643fd359e8ae5c78dadfb93b9a4","size":4075,"uid":0},"path":"/root/pre-reboot-audit.sh"},{"lines":[{"line":98,"text":"location: https://nc.gram1.ru/login"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1781521992613955131,"path":"/root/stage14-final-cleanup-audit-20260615T111307Z.txt","sha256":"3dd3e506673623acbb60d37dcf147920002505cc84c07bf06a44a29ba49f903d","size":4975,"uid":0},"path":"/root/stage14-final-cleanup-audit-20260615T111307Z.txt"},{"lines":[{"line":3,"text":"generator_host=pve01.gram1.ru"},{"line":15,"text":"node=pve01.gram1.ru"},{"line":50,"text":"[PRIVATE_IP] pve01.gram1.ru pve01"},{"line":51,"text":"[PRIVATE_IP] pve02.gram1.ru pve02"},{"line":52,"text":"[PRIVATE_IP] pve03.gram1.ru pve03"},{"line":63,"text":"search netbird.selfhosted gram1.ru"},{"line":442,"text":"node=pve02.gram1.ru"},{"line":483,"text":"[PRIVATE_IP] pve01.gram1.ru pve01"},{"line":484,"text":"[PRIVATE_IP] pve02.gram1.ru pve02"},{"line":485,"text":"[PRIVATE_IP] pve03.gram1.ru pve03"},{"line":496,"text":"search netbird.selfhosted gram1.ru"},{"line":875,"text":"node=pve03.gram1.ru"},{"line":912,"text":"[PRIVATE_IP] pve01.gram1.ru pve01"},{"line":913,"text":"[PRIVATE_IP] pve02.gram1.ru pve02"},{"line":914,"text":"[PRIVATE_IP] pve03.gram1.ru pve03"},{"line":925,"text":"search netbird.selfhosted gram1.ru"},{"line":1304,"text":"edge=edge-vm.gram1.ru"},{"line":1555,"text":"DOMAIN=https://vault.gram1.ru"},{"line":1665,"text":"DOMAIN = git.gram1.ru"},{"line":1668,"text":"ROOT_URL = https://git.gram1.ru/"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782244349037549140,"path":"/root/homelab_cluster_audit_supplement_v3_20260623T195206Z.txt","sha256":"f72a2c31c2f6d9c0864683e118f901eea8dd0fb08995f8521b57518c6d89e9ba","size":1117712,"uid":0},"path":"/root/homelab_cluster_audit_supplement_v3_20260623T195206Z.txt"},{"lines":[{"line":50,"text":" (\"BASE_URL: http://127.0.0.1:9001\", \"BASE_URL: https://mealie.vpn.gram1.ru\"),"},{"line":51,"text":" (\"BASE_URL: http://0.0.0.0:9001\", \"BASE_URL: https://mealie.vpn.gram1.ru\"),"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782982134190734048,"path":"/root/769b_fix_public_bind_remote_20260702T084854Z.sh","sha256":"5650993df3008d0218b13f4b0471d96a165e35d5c8e5baa10a75f83df3d7a7b6","size":3851,"uid":0},"path":"/root/769b_fix_public_bind_remote_20260702T084854Z.sh"},{"lines":[{"line":214,"text":" for url in http://127.0.0.1:3000 https://homepage.vpn.gram1.ru https://home.gram1.ru; do"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o755","mtime_ns":1783022817533839001,"path":"/root/772d_remote_20260702T200657Z.sh","sha256":"3a2627e6549b777ab52abd236bc78f675340d708f58dfd56cd57acdc5dc82e82","size":12013,"uid":0},"path":"/root/772d_remote_20260702T200657Z.sh"},{"lines":[{"line":266,"text":" if host and host.endswith(\".vpn.gram1.ru\"):"},{"line":349,"text":"docker exec homepage sh -lc 'cat /etc/hosts | grep vpn.gram1.ru | sort || true'"},{"line":357,"text":" \"https://searxng.vpn.gram1.ru\","},{"line":358,"text":" \"https://grafana.vpn.gram1.ru\","},{"line":359,"text":" \"https://prometheus.vpn.gram1.ru\","},{"line":360,"text":" \"https://alertmanager.vpn.gram1.ru\","},{"line":361,"text":" \"https://beszel.vpn.gram1.ru\","},{"line":362,"text":" \"https://ntfy.vpn.gram1.ru\","},{"line":364,"text":" \"https://netbox.vpn.gram1.ru\","},{"line":365,"text":" \"https://proxmox.vpn.gram1.ru\","},{"line":366,"text":" \"https://minio.vpn.gram1.ru\","},{"line":367,"text":" \"https://filebrowser.vpn.gram1.ru\","},{"line":368,"text":" \"https://actual-budget.vpn.gram1.ru\","},{"line":369,"text":" \"https://homebox.vpn.gram1.ru\","},{"line":370,"text":" \"https://mealie.vpn.gram1.ru\","},{"line":371,"text":" \"https://linkding.vpn.gram1.ru\","},{"line":372,"text":" \"https://karakeep.vpn.gram1.ru\","},{"line":373,"text":" \"https://it-tools.vpn.gram1.ru\","},{"line":374,"text":" \"https://n8n.vpn.gram1.ru\","},{"line":375,"text":" \"https://node-red.vpn.gram1.ru\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783025388335719219,"path":"/root/772j_fix_homepage_red_badges_step1.sh","sha256":"fceb513c59e0ba721e4ff5e340db9dacf39b6f02fa239b5275a947131a35dca6","size":15067,"uid":0},"path":"/root/772j_fix_homepage_red_badges_step1.sh"},{"lines":[{"line":326,"text":" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782983009276325108,"path":"/root/771_crowdsec_capi_ipv4_restore_or_fallback.sh","sha256":"08d9244af7e18d88bfc59a63ba5cd33860ceb71a17f9e6ea883eda3c341b8a0d","size":16689,"uid":0},"path":"/root/771_crowdsec_capi_ipv4_restore_or_fallback.sh"},{"lines":[{"line":1,"text":"https://<REDACTED_USER>:<REDACTED_PASSWORD>@git.gram1.ru"}],"metadata":{"content_hash_omitted":true,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1785483205055349494,"path":"/root/.git-credentials","size":139,"uid":0},"path":"/root/.git-credentials"},{"lines":[{"line":236,"text":"lines.append(\"- CrowdSec CAPI: добавить в «Мониторинг» или «Безопасность» карточку на https://backup.gram1.ru/crowdsec-capi-netbird-final.txt.\")"},{"line":246,"text":"lines.append(\"- Unbound1/Unbound2: добавить DNS health-only карточки через backup.gram1.ru или node health endpoint.\")"},{"line":299,"text":"for url in https://homepage.vpn.gram1.ru https://home.gram1.ru; do"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783021548206715656,"path":"/root/772b_homepage_russian_normalize_apply.sh","sha256":"140b5504f63778803073986e16e4e3649b4db1d40995096ec90aba81158ce772","size":16891,"uid":0},"path":"/root/772b_homepage_russian_normalize_apply.sh"},{"lines":[{"line":379,"text":"166: - domain: turn.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1781514687748843826,"path":"/root/diag-pve03-dns2-20260615T091114Z.txt","sha256":"5fe5fec067c406a0649f4671c721e839bd8fe727da0ac444a57f6667727a37e9","size":21616,"uid":0},"path":"/root/diag-pve03-dns2-20260615T091114Z.txt"},{"lines":[{"line":542,"text":" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783014983710861835,"path":"/root/771x_crowdsec_capi_mtu_hardfix.sh","sha256":"e09ac869f7c522bcb603a635e498c6f8de59775674c7bcac06ab5876d1e7c8a6","size":22295,"uid":0},"path":"/root/771x_crowdsec_capi_mtu_hardfix.sh"},{"lines":[{"line":44,"text":"- domain: gram1.ru"},{"line":45,"text":"- public Nextcloud domain: nc.gram1.ru"},{"line":82,"text":"14. Verify nc.gram1.ru externally."},{"line":98,"text":"- Cloudflare is required for public nc.gram1.ru and DNS-01."}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1781451058832187681,"path":"/root/create-initial-emergency-pack.sh","sha256":"dba6586da93102525471a7c7e1ebf0a2139890648bb43f00517b453ee3140d75","size":5142,"uid":0},"path":"/root/create-initial-emergency-pack.sh"},{"lines":[{"line":19,"text":" ssh debian@[PRIVATE_IP] \"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^syncthing ' || true; curl -sk -H 'Host: syncthing.vpn.gram1.ru' -o /tmp/edge_syncthing_753.html -w 'EDGE_SYNCTHING_LOCAL=%{http_code}\\n' http://127.0.0.1:8384/ || true\""},{"line":80,"text":" direct=$(curl -sk -H 'Host: syncthing.vpn.gram1.ru' -o /tmp/syncthing_direct_753.html -w \"%{http_code}\" http://[PRIVATE_IP]:8384/ || true)"},{"line":81,"text":" npm=$(ssh debian@[PRIVATE_IP] \"sudo docker exec npmplus sh -lc \\\"curl -sk -H 'Host: syncthing.vpn.gram1.ru' -o /tmp/syncthing_753.html -w '%{http_code}' http://[PRIVATE_IP]:8384/ || true\\\"\" || true)"},{"line":106,"text":" code=$(curl -sk --resolve \"syncthing.vpn.gram1.ru:443:[PRIVATE_IP]\" -o /tmp/syncthing_route_753.html -w \"%{http_code}\" \"https://syncthing.vpn.gram1.ru/\" || true)"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782977633368426751,"path":"/root/753_syncthing_cutover.sh","sha256":"3244d8440398e5814b4b50ca79966dd199a8fae2be3e39b1ac11dce4e069d5ca","size":7065,"uid":0},"path":"/root/753_syncthing_cutover.sh"},{"lines":[{"line":344,"text":" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783001270373283216,"path":"/root/771f_crowdsec_capi_godebug_mss_fix.sh","sha256":"e51752c99e24da58469c14b02fc6cc28a5cb2052adb0f599a86e3a9800da1d1a","size":15642,"uid":0},"path":"/root/771f_crowdsec_capi_godebug_mss_fix.sh"},{"lines":[{"line":19,"text":" ssh debian@[PRIVATE_IP] \"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^minio' || true; echo EDGE_MOUNTS; sudo docker inspect minio --format '{{range .Mounts}}{{println .Source}}{{end}}' 2>/dev/null | sort -u || true; curl -sk -H 'Host: minio.vpn.gram1.ru' -o /tmp/edge_minio_739.html -w 'EDGE_MINIO_CONSOLE_LOCAL=%{http_code}\\n' http://127.0.0.1:9003/ || true\""},{"line":45,"text":" console=$(curl -sk -H 'Host: minio.vpn.gram1.ru' -o /tmp/minio_console_739.html -w \"%{http_code}\" http://[PRIVATE_IP]:9003/ || true)"},{"line":46,"text":" npm=$(ssh debian@[PRIVATE_IP] \"sudo docker exec npmplus sh -lc \\\"curl -sk -H 'Host: minio.vpn.gram1.ru' -o /tmp/minio_739.html -w '%{http_code}' http://[PRIVATE_IP]:9003/ || true\\\"\" || true)"},{"line":70,"text":" code=$(curl -sk --resolve \"minio.vpn.gram1.ru:443:[PRIVATE_IP]\" -o /tmp/minio_route_739.html -w \"%{http_code}\" \"https://minio.vpn.gram1.ru/\" || true)"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782974622096261298,"path":"/root/739_minio_cutover.sh","sha256":"08de56adfdc2a0bc93fdbd0d2341983bea0c8087cd5dbd9cc3fb3ee2e69f7dd7","size":6298,"uid":0},"path":"/root/739_minio_cutover.sh"},{"lines":[{"line":695,"text":" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783005045295356498,"path":"/root/771l_crowdsec_capi_netbird_vps_egress.sh","sha256":"401396a25d4a5cfa487f67b355b45b27140ed1ac6b49b41e342306cb618dfdb5","size":28134,"uid":0},"path":"/root/771l_crowdsec_capi_netbird_vps_egress.sh"},{"lines":[{"line":3,"text":"generator_host=pve01.gram1.ru"},{"line":17,"text":"pve01.gram1.ru"},{"line":144,"text":"search netbird.selfhosted gram1.ru"},{"line":146,"text":"--- gram1.ru ---"},{"line":147,"text":"95.84.154.183 STREAM gram1.ru"},{"line":150,"text":"--- home.gram1.ru ---"},{"line":151,"text":"[PRIVATE_IP] STREAM home.gram1.ru"},{"line":154,"text":"--- git.gram1.ru ---"},{"line":155,"text":"[PRIVATE_IP] STREAM git.gram1.ru"},{"line":158,"text":"--- vault.gram1.ru ---"},{"line":159,"text":"[PRIVATE_IP] STREAM vault.gram1.ru"},{"line":162,"text":"--- checks.vpn.gram1.ru ---"},{"line":163,"text":"95.84.154.183 STREAM checks.vpn.gram1.ru"},{"line":166,"text":"--- vikunja.vpn.gram1.ru ---"},{"line":167,"text":"100.100.60.182 STREAM vikunja.vpn.gram1.ru"},{"line":170,"text":"--- bookstack.vpn.gram1.ru ---"},{"line":171,"text":"100.100.60.182 STREAM bookstack.vpn.gram1.ru"},{"line":174,"text":"--- pdf.vpn.gram1.ru ---"},{"line":175,"text":"100.100.60.182 STREAM pdf.vpn.gram1.ru"},{"line":178,"text":"--- jellyfin.vpn.gram1.ru ---"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782234356985327222,"path":"/root/homelab_network_equipment_audit_20260623T170441Z.txt","sha256":"c074427226f44191cbd319a3c27fb12bbbf0dc16311f1b4a351678003137a42c","size":43330,"uid":0},"path":"/root/homelab_network_equipment_audit_20260623T170441Z.txt"},{"lines":[{"line":312,"text":" if code == \"000\" and \".vpn.gram1.ru\" in url:"},{"line":326,"text":"lines.append(\"- Если ломаются *.vpn.gram1.ru из контейнера Homepage, чинить DNS/маршрут контейнера или добавлять extra_hosts на edge [PRIVATE_IP].\")"},{"line":387,"text":" \"https://home.gram1.ru\" \\"},{"line":388,"text":" \"https://homepage.vpn.gram1.ru\" \\"},{"line":389,"text":" \"https://uptime.gram1.ru\" \\"},{"line":390,"text":" \"https://kuma.vpn.gram1.ru\" \\"},{"line":391,"text":" \"https://grafana.vpn.gram1.ru\" \\"},{"line":392,"text":" \"https://prometheus.vpn.gram1.ru\" \\"},{"line":393,"text":" \"https://alertmanager.vpn.gram1.ru\" \\"},{"line":394,"text":" \"https://checks.vpn.gram1.ru\" \\"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783024463461644211,"path":"/root/772h_homepage_monitoring_red_badges_diagnose.sh","sha256":"66b5b958bf9f4be92ba8a5a6fc1da5ec6a94635f1a65ad303d287cebc355b1bf","size":15011,"uid":0},"path":"/root/772h_homepage_monitoring_red_badges_diagnose.sh"},{"lines":[{"line":43,"text":" direct=$(curl -sk -H 'Host: bookstack.vpn.gram1.ru' -o /tmp/bookstack_direct_732.html -w \"%{http_code}\" http://[PRIVATE_IP]:8017/ || true)"},{"line":44,"text":" npm=$(ssh debian@[PRIVATE_IP] \"sudo docker exec npmplus sh -lc \\\"curl -sk -H 'Host: bookstack.vpn.gram1.ru' -o /tmp/bookstack_732.html -w '%{http_code}' http://[PRIVATE_IP]:8017/ || true\\\"\" || true)"},{"line":66,"text":" code=$(curl -sk --resolve \"bookstack.vpn.gram1.ru:443:[PRIVATE_IP]\" -o /tmp/bookstack_route_732.html -w \"%{http_code}\" \"https://bookstack.vpn.gram1.ru/\" || true)"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782971038961614596,"path":"/root/732_bookstack_cutover.sh","sha256":"c2ee0c062b49986fb1151092a884d49bbf56634815871d23ebec74fc036ff803","size":5655,"uid":0},"path":"/root/732_bookstack_cutover.sh"},{"lines":[{"line":165,"text":"searchdomain: gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1781515691187191390,"path":"/root/run-pve02-pve03-manual-backups-20260615T092719Z.log","sha256":"bc79c87800f065f6cf7deda9eb6ce8c91886e9d6aa1bb54b895c8c4d0f5e045a","size":10452,"uid":0},"path":"/root/run-pve02-pve03-manual-backups-20260615T092719Z.log"},{"lines":[{"line":57,"text":" curl -sk --connect-timeout 8 --max-time 20 --resolve \"backup.gram1.ru:443:[PRIVATE_IP]\" -o /tmp/770b_backup_route.html -w 'backup.gram1.ru HTTP=%{http_code}\\n' https://backup.gram1.ru/ || true"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782982598693292319,"path":"/root/770b_clean_local_backup_staging_leftover.sh","sha256":"0a3fcad4e2b2797adeb1795df420b32885907cb36ab7cc7432ef7e8acb987fc9","size":2560,"uid":0},"path":"/root/770b_clean_local_backup_staging_leftover.sh"},{"lines":[{"line":70,"text":" auth.gram1.ru photos.gram1.ru homeassistant.vpn.gram1.ru vault.gram1.ru git.gram1.ru paper.gram1.ru \\"},{"line":71,"text":" n8n.vpn.gram1.ru node-red.vpn.gram1.ru syncthing.vpn.gram1.ru netbox.vpn.gram1.ru \\"},{"line":72,"text":" grafana.vpn.gram1.ru prometheus.vpn.gram1.ru alertmanager.vpn.gram1.ru ntfy.vpn.gram1.ru \\"},{"line":73,"text":" uptime.gram1.ru gotify.gram1.ru checks.vpn.gram1.ru home.gram1.ru actual-budget.vpn.gram1.ru \\"},{"line":74,"text":" homebox.vpn.gram1.ru mealie.vpn.gram1.ru linkding.vpn.gram1.ru karakeep.vpn.gram1.ru \\"},{"line":75,"text":" filebrowser.vpn.gram1.ru vikunja.vpn.gram1.ru bookstack.vpn.gram1.ru pdf.vpn.gram1.ru \\"},{"line":76,"text":" jellyfin.vpn.gram1.ru audiobooks.vpn.gram1.ru books.vpn.gram1.ru minio.vpn.gram1.ru \\"},{"line":77,"text":" searxng.vpn.gram1.ru it-tools.vpn.gram1.ru beszel.vpn.gram1.ru memos.gram1.ru \\"},{"line":78,"text":" dozzle.gram1.ru dockge.gram1.ru npmplus.vpn.gram1.ru backup.gram1.ru"},{"line":90,"text":" \"homeassistant.vpn.gram1.ru:/api/websocket\" \\"},{"line":91,"text":" \"node-red.vpn.gram1.ru:/comms\" \\"},{"line":92,"text":" \"syncthing.vpn.gram1.ru:/rest/events/disk\" \\"},{"line":93,"text":" \"grafana.vpn.gram1.ru:/api/live/ws\" \\"},{"line":94,"text":" \"n8n.vpn.gram1.ru:/rest/push\""},{"line":166,"text":" ssh debian@$EDGE \"echo EDGE_BACKUP_CONTAINERS; sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -Ei 'kopia|backup|rclone|restic' || true; echo KOPIA_STACK_FILES; sudo find /opt/stacks/kopia -maxdepth 3 -type f -printf '%p\\n' 2>/dev/null | sort | sed -n '1,100p' || true; echo POSSIBLE_RCLONE_MAILRU_CONFIGS; sudo find /root /home /opt -maxdepth 5 -type f \\\\( -name '[SENSITIVE_FILE]' -o -name '*rclone*' -o -iname '*mailru*' -o -iname '*mail.ru*' \\\\) -printf '%p\\n' 2>/dev/null | sed -n '1,100p' || true; echo BACKUP_ROUTE; curl -sk --resolve backup.gram1.ru:443:$EDGE -o /tmp/backup_767.html -w 'backup.gram1.ru HTTP=%{http_code}\\n' https://backup.gram1.ru/ || true\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782981212367908716,"path":"/root/767_deep_tail_and_regression_audit.sh","sha256":"f0178b9f5a0b4e8ea435ee44079bd942fb555785d2d439f22921d5471b8211c4","size":14071,"uid":0},"path":"/root/767_deep_tail_and_regression_audit.sh"},{"lines":[{"line":28,"text":" direct_host=$(curl -sk -H 'Host: homeassistant.vpn.gram1.ru' -o /tmp/ha_direct_host_755.html -w \"%{http_code}\" http://[PRIVATE_IP]:8123/ || true)"},{"line":29,"text":" route=$(curl -sk --resolve \"homeassistant.vpn.gram1.ru:443:[PRIVATE_IP]\" -o /tmp/ha_route_755.html -w \"%{http_code}\" https://homeassistant.vpn.gram1.ru/ || true)"},{"line":30,"text":" api=$(curl -sk --resolve \"homeassistant.vpn.gram1.ru:443:[PRIVATE_IP]\" -o /tmp/ha_api_755.html -w \"%{http_code}\" https://homeassistant.vpn.gram1.ru/api/ || true)"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782977981241501248,"path":"/root/755_homeassistant_route_postcheck.sh","sha256":"f95cdf9c12464e399aa9e04a2608be5b20c3291108ea74e9d6ae9ed2198face5","size":3006,"uid":0},"path":"/root/755_homeassistant_route_postcheck.sh"},{"lines":[{"line":151,"text":"searchdomain: gram1.ru"},{"line":172,"text":"searchdomain: gram1.ru"},{"line":191,"text":"searchdomain: gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1781514937993674718,"path":"/root/backup-inventory-20260615T091534Z.txt","sha256":"6ee806b8d23a9cfb07d589940aeff1dcd8a5417e3a181b359ec9f9d96e7a1a2b","size":7780,"uid":0},"path":"/root/backup-inventory-20260615T091534Z.txt"},{"lines":[{"line":3,"text":"SOURCE_HOST=pve01.gram1.ru"},{"line":5,"text":"REMOTE_HOST=core-apps.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1784612726861618653,"path":"/root/CR0019-gitea-runtime-bootstrap-v2.txt","sha256":"d9edf6edd1e00b7ba56967af20360a00ec1e42cd29d73ba68cc23fe9092d79b4","size":1161,"uid":0},"path":"/root/CR0019-gitea-runtime-bootstrap-v2.txt"},{"lines":[{"line":3,"text":"generator_host=pve01.gram1.ru"},{"line":29,"text":"pve01.gram1.ru"},{"line":91,"text":"search netbird.selfhosted gram1.ru"},{"line":93,"text":"--- gram1.ru ---"},{"line":94,"text":"95.84.154.183 STREAM gram1.ru"},{"line":97,"text":"--- nc.gram1.ru ---"},{"line":98,"text":"[PRIVATE_IP] STREAM nc.gram1.ru"},{"line":101,"text":"--- git.gram1.ru ---"},{"line":102,"text":"[PRIVATE_IP] STREAM git.gram1.ru"},{"line":105,"text":"--- home.gram1.ru ---"},{"line":106,"text":"[PRIVATE_IP] STREAM home.gram1.ru"},{"line":109,"text":"--- checks.vpn.gram1.ru ---"},{"line":110,"text":"95.84.154.183 STREAM checks.vpn.gram1.ru"},{"line":113,"text":"--- pve01.vpn.gram1.ru ---"},{"line":114,"text":"100.100.131.41 STREAM pve01.vpn.gram1.ru"},{"line":117,"text":"--- pve02.vpn.gram1.ru ---"},{"line":118,"text":"100.100.7.2 STREAM pve02.vpn.gram1.ru"},{"line":121,"text":"--- pve03.vpn.gram1.ru ---"},{"line":122,"text":"100.100.34.141 STREAM pve03.vpn.gram1.ru"},{"line":131,"text":"node_hostname=pve01.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782243274715431566,"path":"/root/homelab_cluster_audit_supplement_v2_20260623T193322Z.txt","sha256":"fa2033eeedd323f766daad3f13969bf63a0c3d86705cbe70c884692ef96ba9c8","size":305483,"uid":0},"path":"/root/homelab_cluster_audit_supplement_v2_20260623T193322Z.txt"},{"lines":[{"line":6,"text":"NETBOX_URL=https://netbox.vpn.gram1.ru"},{"line":10,"text":"PROMETHEUS_URL=https://prometheus.vpn.gram1.ru"},{"line":11,"text":"ALERTMANAGER_ENDPOINT=https://alertmanager.vpn.gram1.ru/api/v2/alerts"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1782658119627158427,"path":"/root/.homelab-strict100-gates.env","sha256":"26c8fe9a5b14f60ef490332d8e6f2846ff46b63974ad589fc1643520c210444e","size":849,"uid":0},"path":"/root/.homelab-strict100-gates.env"},{"lines":[{"line":19,"text":" ssh debian@[PRIVATE_IP] \"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^vaultwarden' || true; echo EDGE_MOUNTS; sudo docker inspect vaultwarden --format '{{range .Mounts}}{{println .Source}}{{end}}' 2>/dev/null | sort -u || true; curl -sk -H 'Host: vault.gram1.ru' -o /tmp/edge_vaultwarden_738.html -w 'EDGE_VAULT_LOCAL=%{http_code}\\n' http://127.0.0.1:8083/ || true\""},{"line":43,"text":" direct=$(curl -sk -H 'Host: vault.gram1.ru' -o /tmp/vaultwarden_direct_738.html -w \"%{http_code}\" http://[PRIVATE_IP]:8083/ || true)"},{"line":44,"text":" npm=$(ssh debian@[PRIVATE_IP] \"sudo docker exec npmplus sh -lc \\\"curl -sk -H 'Host: vault.gram1.ru' -o /tmp/vaultwarden_738.html -w '%{http_code}' http://[PRIVATE_IP]:8083/ || true\\\"\" || true)"},{"line":68,"text":" code=$(curl -sk --resolve \"vault.gram1.ru:443:[PRIVATE_IP]\" -o /tmp/vaultwarden_route_738.html -w \"%{http_code}\" \"https://vault.gram1.ru/\" || true)"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782974510774530466,"path":"/root/738_vaultwarden_cutover.sh","sha256":"b69ccf642bda68d082fa70693ed409a417a0fb5dfcb939ea448f80cb666fbb78","size":6307,"uid":0},"path":"/root/738_vaultwarden_cutover.sh"},{"lines":[{"line":567,"text":" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783002384670531904,"path":"/root/771j_crowdsec_capi_via_cloudflare_warp_proxy.sh","sha256":"502198e7af3511c501f1b744037b71f22b04bb58fd95b526e0a499ee4ef92e1a","size":24487,"uid":0},"path":"/root/771j_crowdsec_capi_via_cloudflare_warp_proxy.sh"},{"lines":[{"line":21,"text":" ssh debian@[PRIVATE_IP] \"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^netbox' || true; curl -sk -H 'Host: netbox.vpn.gram1.ru' -o /tmp/edge_netbox_735.html -w 'EDGE_NETBOX_LOCAL=%{http_code}\\n' http://127.0.0.1:8000/ || true\""},{"line":48,"text":" code=\\$(curl -sk -H \\\"Host: netbox.vpn.gram1.ru\\\" -o /tmp/netbox_target_735.html -w \\\"%{http_code}\\\" http://127.0.0.1:8000/ || true)"},{"line":77,"text":" ssh debian@[PRIVATE_IP] \"sudo docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | grep -E '^netbox' || true; curl -sk --resolve 'netbox.vpn.gram1.ru:443:[PRIVATE_IP]' -o /tmp/netbox_edge_after_735.html -w 'EDGE_ROUTE_NETBOX=%{http_code}\\n' https://netbox.vpn.gram1.ru/ || true\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782973982388519764,"path":"/root/735_netbox_target_diagnose_pre_route.sh","sha256":"2cdb82899800d7f994212654ab72c60d827e8e7a9f128b6219a7edce69460603","size":3991,"uid":0},"path":"/root/735_netbox_target_diagnose_pre_route.sh"},{"lines":[{"line":569,"text":" for h in auth.gram1.ru photos.gram1.ru git.gram1.ru n8n.vpn.gram1.ru mealie.vpn.gram1.ru karakeep.vpn.gram1.ru dozzle.gram1.ru npmplus.vpn.gram1.ru; do"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1783004642823028448,"path":"/root/771k_fix_warp_register_or_clean.sh","sha256":"7d28d00b3be2144960414c0657091de0e04ce5260e4e945ad56cddc3d4fd3a4b","size":25126,"uid":0},"path":"/root/771k_fix_warp_register_or_clean.sh"},{"lines":[{"line":40,"text":" ssh debian@[PRIVATE_IP] \"code=\\$(curl -sk --resolve 'photos.gram1.ru:443:[PRIVATE_IP]' -o /tmp/immich_edge_746.html -w '%{http_code}' https://photos.gram1.ru/ || true); title=\\$(grep -Eio '<title>[^<]+' /tmp/immich_edge_746.html 2>/dev/null | head -1 | sed 's/<title>//I' || true); echo EDGE_ROUTE_PHOTOS=\\$code TITLE=\\$title; curl -sk -H 'Host: photos.gram1.ru' -o /tmp/immich_local_746.html -w 'EDGE_LOCAL_2283=%{http_code}\\n' http://127.0.0.1:2283/ || true\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782975610198588794,"path":"/root/746_immich_preflight_readonly.sh","sha256":"b23a999f9338a84f6523b1fde2c609be2e5fce909cea8f5c3150315f8a2117c2","size":3257,"uid":0},"path":"/root/746_immich_preflight_readonly.sh"},{"lines":[{"line":25,"text":" pve_up=$(curl -sk -H 'Host: uptime.gram1.ru' -o /tmp/pve_up_721.html -w \"%{http_code}\" http://[PRIVATE_IP]:3001/ || true)"},{"line":26,"text":" pve_hc=$(curl -sk -H 'Host: checks.vpn.gram1.ru' -o /tmp/pve_hc_721.html -w \"%{http_code}\" http://[PRIVATE_IP]:8015/ || true)"},{"line":27,"text":" edge_up=$(ssh debian@[PRIVATE_IP] \"curl -sk -H 'Host: uptime.gram1.ru' -o /tmp/edge_up_721.html -w '%{http_code}' http://[PRIVATE_IP]:3001/ || true\")"},{"line":28,"text":" edge_hc=$(ssh debian@[PRIVATE_IP] \"curl -sk -H 'Host: checks.vpn.gram1.ru' -o /tmp/edge_hc_721.html -w '%{http_code}' http://[PRIVATE_IP]:8015/ || true\")"},{"line":29,"text":" npm_up=$(ssh debian@[PRIVATE_IP] \"sudo docker exec npmplus sh -lc \\\"curl -sk -H 'Host: uptime.gram1.ru' -o /tmp/npm_up_721.html -w '%{http_code}' http://[PRIVATE_IP]:3001/ || true\\\"\" || true)"},{"line":30,"text":" npm_hc=$(ssh debian@[PRIVATE_IP] \"sudo docker exec npmplus sh -lc \\\"curl -sk -H 'Host: checks.vpn.gram1.ru' -o /tmp/npm_hc_721.html -w '%{http_code}' http://[PRIVATE_IP]:8015/ || true\\\"\" || true)"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782969893522720935,"path":"/root/721_uptime_healthchecks_npmplus_path_precheck.sh","sha256":"5cd54765f47fe5b6a482fdb728b7a48f82c7ec488649485b1952ffc28161d352","size":3757,"uid":0},"path":"/root/721_uptime_healthchecks_npmplus_path_precheck.sh"},{"lines":[{"line":6,"text":"EXPECTED_HOST=\"pve01.gram1.ru\""},{"line":173,"text":" printf 'HOST|pve01.gram1.ru|root|local\\n'"},{"line":174,"text":" printf 'HOST|pve02.gram1.ru|root|cluster-node\\n'"},{"line":175,"text":" printf 'HOST|pve03.gram1.ru|root|cluster-node\\n'"},{"line":176,"text":" printf 'HOST|edge-vm.gram1.ru|debian|sudo-n\\n'"},{"line":177,"text":" printf 'HOST|core-apps.gram1.ru|debian|sudo-n\\n'"},{"line":178,"text":" printf 'HOST|monitoring.gram1.ru|debian|sudo-n\\n'"},{"line":179,"text":" printf 'HOST|cluster-admin.gram1.ru|debian|sudo-n\\n'"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","mtime_ns":1784152143518174818,"path":"/root/homelab-ops-bootstrap-audit-v1.sh","sha256":"1627933aae4acec993026dc1b765cd1d497a9aeae21cc55f829c219b5b48d949","size":8452,"uid":0},"path":"/root/homelab-ops-bootstrap-audit-v1.sh"}],"fqdn":"pve01.gram1.ru","hostname":"pve01","log_summaries":{},"log_summary_count":0,"source_inventory":{"extension_counts":{".20260710t080231z":1,".20260721t110932z":1,".20260721t111219z":1,".bak":3,".bak-20260626t172508z-sec02-4-to-3":2,".bak-20260626t172523z-sec03-3-to-2":2,".bak-20260626t172535z-sec04-2-to-1":2,".bak-20260626t172547z-sec05-1-to-0":2,".bak-20260709t085129z":1,".bak-20260709t100252z":1,".bak-20260709t102350z":1,".bak-20260709t121314z":1,".bak-20260709t124213z":1,".bak-20260709t160119z":1,".bak-20260709t161731z":1,".bak-20260722t212606z":1,".bak-20260722t212804z":1,".bak-chunkall-20260710t011410z":7,".bak-cluster-admin-backup-webpanel-20260709t051329z":2,".bak-cluster-admin-hardgate-20260709t044746z":2,".bak-docker-check-v2-20260710t050044z":1,".bak-dual-read-20260711t051924z":2,".bak-final-tailfix-20260707t182128z":1,".bak-fixed-v2-20260707t165551z":1,".bak-flat-read-20260711t052854z":1,".bak-flat-read-v2-20260711t053129z":1,".bak-global-chunkonly-20260710t011036z":1,".bak-isolated-ip-20260710t044331z":1,".bak-nocycle-20260707t184739z":1,".bak-owner-fix-20260707t184249z":1,".bak-pgdump-fix-20260710t224544z":1,".bak-short-canary-20260711t053555z":1,".bak-short-flat-20260711t054441z":2,".bak-short-flat-20260711t060400z":2,".bak-short-flat-20260711t061345z":1,".bak-short-flat-20260711t062544z":1,".bak-short-flat-20260711t063643z":1,".bak-short-flat-20260711t064757z":1,".bak-tailfix-20260707t180537z":1,".broken-20260730t153645z":1,".core":1,".csv":2,".env":4,".js":1,".json":628,".log":14,".md":1939,".py":12,".real-20260624t131702z":1,".realnet-20260624t140509z":1,".service":106,".sh":11,".state":2,".timer":97,".toml":1,".tsv":57,".txt":1015,".yaml":51,".yml":12,"<none>":146},"framework_markers":[{"marker":"Docker Compose","path":"source/01_homelab-configs-worktree/stacks/edge/gotify/compose.yaml"}],"largest_files":[{"bytes":2153064,"path":"source/snapshots_manifest.json"},{"bytes":528351,"path":"source/01_homelab-configs-worktree/reports/npmplus-api-certificate-endpoint-preflight-20260621.md"},{"bytes":504281,"path":"source/01_homelab-configs-worktree/reports/mkdocs-refresh-discovery-20260621.md"},{"bytes":250691,"path":"source/01_homelab-configs-worktree/reports/existing-backup-mechanism-deep-audit-rerun-20260622.md"},{"bytes":171784,"path":"source/03_operations/p2-07-health-surface-readability-status-inventory-20260625T231646Z.json"},{"bytes":171784,"path":"source/02_docs/operations/p2-07-health-surface-readability-status-inventory-20260625T231646Z.json"},{"bytes":171784,"path":"source/01_homelab-configs-worktree/docs/operations/p2-07-health-surface-readability-status-inventory-20260625T231646Z.json"},{"bytes":106031,"path":"source/02_docs/99-current-state-summary.md"},{"bytes":106031,"path":"source/01_homelab-configs-worktree/docs/99-current-state-summary.md"},{"bytes":103668,"path":"source/03_operations/p2-23-health-surface-operator-response-intake-readiness-close-20260626T023851Z.json"},{"bytes":103668,"path":"source/02_docs/operations/p2-23-health-surface-operator-response-intake-readiness-close-20260626T023851Z.json"},{"bytes":103668,"path":"source/01_homelab-configs-worktree/docs/operations/p2-23-health-surface-operator-response-intake-readiness-close-20260626T023851Z.json"},{"bytes":100600,"path":"source/03_operations/p2-22-health-surface-final-operator-handoff-bundle-close-20260626T023210Z.json"},{"bytes":100600,"path":"source/02_docs/operations/p2-22-health-surface-final-operator-handoff-bundle-close-20260626T023210Z.json"},{"bytes":100600,"path":"source/01_homelab-configs-worktree/docs/operations/p2-22-health-surface-final-operator-handoff-bundle-close-20260626T023210Z.json"},{"bytes":89904,"path":"source/03_operations/p0-alert-routing-preflight-20260625T050439Z.md"},{"bytes":89904,"path":"source/02_docs/operations/p0-alert-routing-preflight-20260625T050439Z.md"},{"bytes":89904,"path":"source/01_homelab-configs-worktree/docs/operations/p0-alert-routing-preflight-20260625T050439Z.md"},{"bytes":85971,"path":"source/04_homelab-desired-state/sbin/homelab-command-adapter"},{"bytes":85278,"path":"source/03_operations/p0-restore-drill-matrix-quality-offhost-20260624T183931Z.md"},{"bytes":85278,"path":"source/02_docs/operations/p0-restore-drill-matrix-quality-offhost-20260624T183931Z.md"},{"bytes":85278,"path":"source/01_homelab-configs-worktree/docs/operations/p0-restore-drill-matrix-quality-offhost-20260624T183931Z.md"},{"bytes":85189,"path":"source/03_operations/homelab-cluster-context-live.md"},{"bytes":85189,"path":"source/02_docs/operations/homelab-cluster-context-live.md"},{"bytes":85189,"path":"source/01_homelab-configs-worktree/docs/operations/homelab-cluster-context-live.md"},{"bytes":84145,"path":"source/03_operations/p0-edge-cleanup-preflight-20260624T192250Z.md"},{"bytes":84145,"path":"source/02_docs/operations/p0-edge-cleanup-preflight-20260624T192250Z.md"},{"bytes":84145,"path":"source/01_homelab-configs-worktree/docs/operations/p0-edge-cleanup-preflight-20260624T192250Z.md"},{"bytes":81129,"path":"source/01_homelab-configs-worktree/reports/homelab-service-inventory-ru-detailed-20260618T225817Z.txt"},{"bytes":75334,"path":"source/03_operations/p2-05-crowdsec-lapi-monitoring-coverage-inventory-20260625T225709Z.json"}],"packages":[],"stored_bytes":25135855,"stored_files":4163},"source_snapshots":[{"source_root":"/root/homelab-configs-worktree","stored_bytes":9347306,"stored_files":1322,"truncated":false},{"source_root":"/root/homelab-configs-worktree/docs","stored_bytes":6362627,"stored_files":764,"truncated":false},{"source_root":"/root/homelab-configs-worktree/docs/operations","stored_bytes":5969079,"stored_files":699,"truncated":false},{"source_root":"/srv/homelab-desired-state","stored_bytes":1274899,"stored_files":957,"truncated":false},{"source_root":"/srv/homelab-desired-state/health","stored_bytes":231477,"stored_files":493,"truncated":false}],"sqlite_database_count":0,"systemd_service_count":12,"webserver_probes":{}},{"candidate_source_roots":[{"markers":[],"path":"/root/evidence/forum-prod-diag-20260629T032514Z","reasons":["domain_match_parent"],"score":2},{"markers":[],"path":"/root/evidence/forum-prod-os-baseline-20260629T034119Z","reasons":["domain_match_parent"],"score":2},{"markers":[],"path":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z","reasons":["domain_match_parent"],"score":1},{"markers":[],"path":"/root/evidence/forum-prod-recover-20260629T025511Z","reasons":["domain_match_parent"],"score":1},{"markers":[],"path":"/root/evidence/forum-prod-recreate-20260629T030810Z","reasons":["domain_match_parent"],"score":1},{"markers":[],"path":"/srv/homelab-desired-state/routerguard-tuya","reasons":["domain_match_parent"],"score":1}],"certificate_reference_count":0,"container_count":0,"container_inventory":{},"deployment_evidence":[{"line":22,"path":"systemd/units/kmod-static-nodes.service.cat.txt","text":"ExecStart=/usr/bin/kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/static-nodes.conf"},{"line":1,"path":"systemd/units/kmod-static-nodes.service.show.txt","text":"ExecStart={ path=/usr/bin/kmod ; argv[]=/usr/bin/kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/static-nodes.conf ; ignore_errors=no ; start_time=[Tue 2026-07-28 14:05:03 MSK] ; stop_time=[Tue 2026-07-28 14:05:03 MSK] ; pid=304 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/kmod-static-nodes.service.show.txt","text":"WorkingDirectory="},{"line":8,"path":"systemd/units/prometheus-node-exporter-apt.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/share/prometheus-node-exporter-collectors/apt_info.py | sponge /var/lib/prometheus/node-exporter/apt.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-apt.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/apt_info.py | sponge /var/lib/prometheus/node-exporter/apt.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:35:25 MSK] ; stop_time=[Fri 2026-07-31 10:35:26 MSK] ; pid=1765199 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-apt.service.show.txt","text":"WorkingDirectory="},{"line":10,"path":"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/bin/ipmitool sensor | /usr/share/prometheus-node-exporter-collectors/ipmitool | sponge /var/lib/prometheus/node-exporter/ipmitool_sensor.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/bin/ipmitool sensor | /usr/share/prometheus-node-exporter-collectors/ipmitool | sponge /var/lib/prometheus/node-exporter/ipmitool_sensor.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.show.txt","text":"WorkingDirectory="},{"line":9,"path":"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/share/prometheus-node-exporter-collectors/mellanox_hca_temp | sponge /var/lib/prometheus/node-exporter/mellanox_hca_temp.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/mellanox_hca_temp | sponge /var/lib/prometheus/node-exporter/mellanox_hca_temp.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.show.txt","text":"WorkingDirectory="},{"line":8,"path":"systemd/units/prometheus-node-exporter-nvme.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/share/prometheus-node-exporter-collectors/nvme_metrics.py | sponge /var/lib/prometheus/node-exporter/nvme.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-nvme.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/nvme_metrics.py | sponge /var/lib/prometheus/node-exporter/nvme.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:36:25 MSK] ; stop_time=[Fri 2026-07-31 10:36:25 MSK] ; pid=1765583 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-nvme.service.show.txt","text":"WorkingDirectory="},{"line":8,"path":"systemd/units/prometheus-node-exporter-smartmon.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/share/prometheus-node-exporter-collectors/smartmon.sh | sponge /var/lib/prometheus/node-exporter/smartmon.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-smartmon.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/smartmon.sh | sponge /var/lib/prometheus/node-exporter/smartmon.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:37:22 MSK] ; stop_time=[Fri 2026-07-31 10:37:23 MSK] ; pid=1765901 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-smartmon.service.show.txt","text":"WorkingDirectory="},{"line":9,"path":"systemd/units/prometheus-node-exporter.service.cat.txt","text":"EnvironmentFile=/etc/default/prometheus-node-exporter"},{"line":10,"path":"systemd/units/prometheus-node-exporter.service.cat.txt","text":"ExecStart=/usr/bin/prometheus-node-exporter $ARGS"},{"line":20,"path":"systemd/units/prometheus-node-exporter.service.cat.txt","text":"ExecStart="},{"line":21,"path":"systemd/units/prometheus-node-exporter.service.cat.txt","text":"ExecStart=/usr/bin/prometheus-node-exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector"},{"line":1,"path":"systemd/units/prometheus-node-exporter.service.show.txt","text":"ExecStart={ path=/usr/bin/prometheus-node-exporter ; argv[]=/usr/bin/prometheus-node-exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector ; ignore_errors=no ; start_time=[Tue 2026-07-28 14:05:06 MSK] ; stop_time=[n/a] ; pid=725 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter.service.show.txt","text":"EnvironmentFiles=/etc/default/prometheus-node-exporter (ignore_errors=no)"},{"line":3,"path":"systemd/units/prometheus-node-exporter.service.show.txt","text":"WorkingDirectory="},{"line":10,"path":"systemd/units/proxmox-boot-cleanup.service.cat.txt","text":"ExecStart=/usr/sbin/proxmox-boot-tool kernel unpin --next-boot"},{"line":11,"path":"systemd/units/proxmox-boot-cleanup.service.cat.txt","text":"ExecStart=/usr/sbin/proxmox-boot-tool refresh"},{"line":1,"path":"systemd/units/proxmox-boot-cleanup.service.show.txt","text":"ExecStart={ path=/usr/sbin/proxmox-boot-tool ; argv[]=/usr/sbin/proxmox-boot-tool kernel unpin --next-boot ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/proxmox-boot-cleanup.service.show.txt","text":"ExecStart={ path=/usr/sbin/proxmox-boot-tool ; argv[]=/usr/sbin/proxmox-boot-tool refresh ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":3,"path":"systemd/units/proxmox-boot-cleanup.service.show.txt","text":"WorkingDirectory="},{"line":24,"path":"systemd/units/systemd-tmpfiles-setup-dev-early.service.cat.txt","text":"ExecStart=systemd-tmpfiles --prefix=/dev --create --boot --graceful"},{"line":1,"path":"systemd/units/systemd-tmpfiles-setup-dev-early.service.show.txt","text":"ExecStart={ path=systemd-tmpfiles ; argv[]=systemd-tmpfiles --prefix=/dev --create --boot --graceful ; ignore_errors=no ; start_time=[Tue 2026-07-28 14:05:03 MSK] ; stop_time=[Tue 2026-07-28 14:05:03 MSK] ; pid=323 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/systemd-tmpfiles-setup-dev-early.service.show.txt","text":"WorkingDirectory="},{"line":25,"path":"systemd/units/systemd-tmpfiles-setup-dev.service.cat.txt","text":"ExecStart=systemd-tmpfiles --prefix=/dev --create --boot"},{"line":1,"path":"systemd/units/systemd-tmpfiles-setup-dev.service.show.txt","text":"ExecStart={ path=systemd-tmpfiles ; argv[]=systemd-tmpfiles --prefix=/dev --create --boot ; ignore_errors=no ; start_time=[Tue 2026-07-28 14:05:03 MSK] ; stop_time=[Tue 2026-07-28 14:05:04 MSK] ; pid=337 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/systemd-tmpfiles-setup-dev.service.show.txt","text":"WorkingDirectory="},{"line":15,"path":"source/01_forum-prod-diag-20260629T032514Z/cloudinit-network.txt","text":"- 'gram1.ru'"},{"line":4,"path":"source/01_forum-prod-diag-20260629T032514Z/cloudinit-user.txt","text":"fqdn: forum-prod.gram1.ru"},{"line":1,"path":"source/02_forum-prod-os-baseline-20260629T034119Z/ops-proof.txt","text":"forum-prod.gram1.ru"},{"line":259,"path":"source/02_forum-prod-os-baseline-20260629T034119Z/root-baseline.txt","text":"forum-prod.gram1.ru"},{"line":1,"path":"source/03_forum-prod-offline-fix2-20260629T033832Z/ssh-proof.txt","text":"forum-prod.gram1.ru"},{"line":18,"path":"source/04_forum-prod-recover-20260629T025511Z/qm-config.txt","text":"searchdomain: gram1.ru"},{"line":18,"path":"source/05_forum-prod-recreate-20260629T030810Z/qm-config.txt","text":"searchdomain: gram1.ru"}],"detected_frameworks":[],"directory":"hosts/pve02","domain_match_count":16,"domain_matches":[{"lines":[{"line":13,"text":" \"pve01.gram1.ru\": \"pve01\","},{"line":14,"text":" \"pve02.gram1.ru\": \"pve02\","},{"line":15,"text":" \"pve03.gram1.ru\": \"pve03\","},{"line":16,"text":" \"edge-vm.gram1.ru\": \"edge\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","mtime_ns":1784020546000000000,"path":"/opt/cluster-admin-probe-target/responder.py","sha256":"3e7585050d734ef0e3ccec7f98bde3626db31a6fd05e60dfb6f9976b371dea3c","size":2648,"uid":0},"path":"/opt/cluster-admin-probe-target/responder.py"},{"lines":[{"line":6,"text":"case \"$HOST\" in pve02.gram1.ru|pve02) ;; *) echo REMOTE_HOST_CHECK_FAILED=\"$HOST\"; exit 2;; esac"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1783806967597496107,"path":"/srv/homelab-desired-state/routerguard-tuya/routerguard-hard-power-cycle","sha256":"3e0e48c055264fffa741fa9c0ef2c973081cc9c592a0ec7866d068b30edc30d6","size":2264,"uid":0},"path":"/srv/homelab-desired-state/routerguard-tuya/routerguard-hard-power-cycle"},{"lines":[{"line":2,"text":"remote_host=pve02.gram1.ru"},{"line":9,"text":"dns2.gram1.ru"},{"line":69,"text":"-rw-------|root:root|2026-06-15 21:58|/opt/AdGuardHome/AdGuardHome.yaml.before-backup.gram1.ru-20260616T033835Z"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782259800407032864,"path":"/root/dns2-AdGuardHome-diagnostic-20260624T000953Z.txt","sha256":"198c31f7f56ba91077e535e3f06410e720ab3dbc3e9f1c15ef4feb79e6c54e49","size":3288,"uid":0},"path":"/root/dns2-AdGuardHome-diagnostic-20260624T000953Z.txt"},{"lines":[{"line":6,"text":"DOMAINS=\"dozzle.gram1.ru paper.gram1.ru memos.gram1.ru photos.gram1.ru auth.gram1.ru\""}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o700","mtime_ns":1781560689562602745,"path":"/root/ag-add-new-service-rewrites.sh","sha256":"77b2f72cc6887898c31ded5a6932b1ed4f2e8d386519f40e2ece7073a8ebe694","size":1648,"uid":0},"path":"/root/ag-add-new-service-rewrites.sh"},{"lines":[{"line":3,"text":"pve02.gram1.ru"},{"line":63,"text":"[PRIVATE_IP] pve01.gram1.ru pve01"},{"line":64,"text":"[PRIVATE_IP] pve02.gram1.ru pve02"},{"line":65,"text":"[PRIVATE_IP] pve03.gram1.ru pve03"},{"line":69,"text":"search netbird.selfhosted gram1.ru"},{"line":201,"text":"searchdomain: gram1.ru"},{"line":229,"text":"searchdomain: gram1.ru"},{"line":248,"text":"searchdomain: gram1.ru"},{"line":262,"text":"searchdomain: gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782753340842274201,"path":"/root/cluster-audit-20260629T201245/02_pve02_audit.txt","sha256":"1fd6205a7f0cbc9097fb90cb60b65c17c0458ecf1d6dd9b03f630633a674f6cf","size":24786,"uid":0},"path":"/root/cluster-audit-20260629T201245/02_pve02_audit.txt"},{"lines":[{"line":13,"text":"searchdomain: gram1.ru"},{"line":18,"text":"dns2.gram1.ru"},{"line":36,"text":"search gram1.ru"},{"line":83,"text":"/opt/AdGuardHome/AdGuardHome.yaml.before-backup.gram1.ru-20260616T033835Z"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782754881727248578,"path":"/root/cluster-audit-20260629T201245/16_pve02_ct_111_audit.txt","sha256":"38d3eaf0f8423e2fa997c6c588318525638ae7cd13db876590f43c1ec31d3b98","size":4758,"uid":0},"path":"/root/cluster-audit-20260629T201245/16_pve02_ct_111_audit.txt"},{"lines":[{"line":13,"text":"searchdomain: gram1.ru"},{"line":18,"text":"unbound2.gram1.ru"},{"line":36,"text":"search gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782754884344262178,"path":"/root/cluster-audit-20260629T201245/16_pve02_ct_113_audit.txt","sha256":"7373f92fc5820ee30981764a0aadeb55ae15205d62f7b1d10b5a35998861b25d","size":4843,"uid":0},"path":"/root/cluster-audit-20260629T201245/16_pve02_ct_113_audit.txt"},{"lines":[{"line":10,"text":"[PRIVATE_IP],forum-prod.gram1.ru ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIfJmXrEKDwKx50N0gQn6DhOGNjAl46lA2vPrlW1c1IM"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784142417367697254,"path":"[SENSITIVE_PATH] ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIfJmXrEKDwKx50N0gQn6DhOGNjAl46lA2vPrlW1c1IM"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784142517352899074,"path":"[SENSITIVE_PATH] gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782701714548111338,"path":"/root/evidence/forum-prod-recover-20260629T025511Z/qm-config.txt","sha256":"276a07fee699041e6c1468c8bf8c712308b30e0cb49d724e11c6c02d493352ac","size":1373,"uid":0},"path":"/root/evidence/forum-prod-recover-20260629T025511Z/qm-config.txt"},{"lines":[{"line":259,"text":"forum-prod.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782704555400405080,"path":"/root/evidence/forum-prod-os-baseline-20260629T034119Z/root-baseline.txt","sha256":"e348fee67be7c81a9a0de9979bc4a6a920fa004d8e11bd8b8f11d966c24b8c61","size":14409,"uid":0},"path":"/root/evidence/forum-prod-os-baseline-20260629T034119Z/root-baseline.txt"},{"lines":[{"line":1,"text":"forum-prod.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782704556627411307,"path":"/root/evidence/forum-prod-os-baseline-20260629T034119Z/ops-proof.txt","sha256":"c01181e5db2ba4ee512b826b3203780337c755e568039f87f8a862b1ca81f48e","size":86,"uid":0},"path":"/root/evidence/forum-prod-os-baseline-20260629T034119Z/ops-proof.txt"},{"lines":[{"line":18,"text":"searchdomain: gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782702507057056227,"path":"/root/evidence/forum-prod-recreate-20260629T030810Z/qm-config.txt","sha256":"b7fe1a7e6838b4a12c435a3a09e5915eba6f182d42a13385761beebd81cebd9e","size":3425,"uid":0},"path":"/root/evidence/forum-prod-recreate-20260629T030810Z/qm-config.txt"},{"lines":[{"line":1,"text":"forum-prod.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782704328177251854,"path":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z/ssh-proof.txt","sha256":"d5ec41ddb54be604240e4201cf55f3d90f81dc26051d55bd161c4386ee2e2232","size":161,"uid":0},"path":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z/ssh-proof.txt"},{"lines":[{"line":4,"text":"fqdn: forum-prod.gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782703517302135262,"path":"/root/evidence/forum-prod-diag-20260629T032514Z/cloudinit-user.txt","sha256":"aaeb24e5cf66792fd3143dcd0c3714e5877d81a3a5acb60608c97dadb67077ee","size":360,"uid":0},"path":"/root/evidence/forum-prod-diag-20260629T032514Z/cloudinit-user.txt"},{"lines":[{"line":15,"text":" - 'gram1.ru'"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782703516506131218,"path":"/root/evidence/forum-prod-diag-20260629T032514Z/cloudinit-network.txt","sha256":"0dcc214f6dc501b413a3bbfd42372c160c020648782e44edde4c3e1f0ea8a63d","size":320,"uid":0},"path":"/root/evidence/forum-prod-diag-20260629T032514Z/cloudinit-network.txt"}],"fqdn":"pve02.gram1.ru","hostname":"pve02","log_summaries":{},"log_summary_count":0,"source_inventory":{"extension_counts":{".err":4,".json":2,".txt":11},"framework_markers":[],"largest_files":[{"bytes":14281,"path":"source/02_forum-prod-os-baseline-20260629T034119Z/root-baseline.txt"},{"bytes":8930,"path":"source/snapshots_manifest.json"},{"bytes":3425,"path":"source/05_forum-prod-recreate-20260629T030810Z/qm-config.txt"},{"bytes":1373,"path":"source/04_forum-prod-recover-20260629T025511Z/qm-config.txt"},{"bytes":370,"path":"source/01_forum-prod-diag-20260629T032514Z/cloudinit-user.txt"},{"bytes":320,"path":"source/01_forum-prod-diag-20260629T032514Z/cloudinit-network.txt"},{"bytes":162,"path":"source/01_forum-prod-diag-20260629T032514Z/ping.txt"},{"bytes":161,"path":"source/03_forum-prod-offline-fix2-20260629T033832Z/ssh-proof.txt"},{"bytes":86,"path":"source/02_forum-prod-os-baseline-20260629T034119Z/ops-proof.txt"},{"bytes":81,"path":"source/03_forum-prod-offline-fix2-20260629T033832Z/ssh-proof.err"},{"bytes":65,"path":"source/05_forum-prod-recreate-20260629T030810Z/ssh-proof.err"},{"bytes":65,"path":"source/04_forum-prod-recover-20260629T025511Z/ssh-proof.err"},{"bytes":3,"path":"source/git_metadata.json"},{"bytes":0,"path":"source/05_forum-prod-recreate-20260629T030810Z/ssh-proof.txt"},{"bytes":0,"path":"source/04_forum-prod-recover-20260629T025511Z/ssh-proof.txt"},{"bytes":0,"path":"source/03_forum-prod-offline-fix2-20260629T033832Z/sshd-test.err"},{"bytes":0,"path":"source/02_forum-prod-os-baseline-20260629T034119Z/qga-ping.txt"}],"packages":[],"stored_bytes":29322,"stored_files":17},"source_snapshots":[{"source_root":"/root/evidence/forum-prod-diag-20260629T032514Z","stored_bytes":852,"stored_files":3,"truncated":false},{"source_root":"/root/evidence/forum-prod-os-baseline-20260629T034119Z","stored_bytes":14367,"stored_files":3,"truncated":false},{"source_root":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z","stored_bytes":242,"stored_files":3,"truncated":false},{"source_root":"/root/evidence/forum-prod-recover-20260629T025511Z","stored_bytes":1438,"stored_files":3,"truncated":false},{"source_root":"/root/evidence/forum-prod-recreate-20260629T030810Z","stored_bytes":3490,"stored_files":3,"truncated":false}],"sqlite_database_count":0,"systemd_service_count":10,"webserver_probes":{}},{"candidate_source_roots":[],"certificate_reference_count":0,"container_count":0,"container_inventory":{},"deployment_evidence":[{"line":22,"path":"systemd/units/kmod-static-nodes.service.cat.txt","text":"ExecStart=/usr/bin/kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/static-nodes.conf"},{"line":1,"path":"systemd/units/kmod-static-nodes.service.show.txt","text":"ExecStart={ path=/usr/bin/kmod ; argv[]=/usr/bin/kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/static-nodes.conf ; ignore_errors=no ; start_time=[Mon 2026-04-13 22:38:05 MSK] ; stop_time=[Mon 2026-04-13 22:38:05 MSK] ; pid=360 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/kmod-static-nodes.service.show.txt","text":"WorkingDirectory="},{"line":8,"path":"systemd/units/prometheus-node-exporter-apt.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/share/prometheus-node-exporter-collectors/apt_info.py | sponge /var/lib/prometheus/node-exporter/apt.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-apt.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/apt_info.py | sponge /var/lib/prometheus/node-exporter/apt.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:36:26 MSK] ; stop_time=[Fri 2026-07-31 10:36:27 MSK] ; pid=1039571 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-apt.service.show.txt","text":"WorkingDirectory="},{"line":10,"path":"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/bin/ipmitool sensor | /usr/share/prometheus-node-exporter-collectors/ipmitool | sponge /var/lib/prometheus/node-exporter/ipmitool_sensor.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/bin/ipmitool sensor | /usr/share/prometheus-node-exporter-collectors/ipmitool | sponge /var/lib/prometheus/node-exporter/ipmitool_sensor.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-ipmitool-sensor.service.show.txt","text":"WorkingDirectory="},{"line":9,"path":"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/share/prometheus-node-exporter-collectors/mellanox_hca_temp | sponge /var/lib/prometheus/node-exporter/mellanox_hca_temp.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/mellanox_hca_temp | sponge /var/lib/prometheus/node-exporter/mellanox_hca_temp.prom ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-mellanox-hca-temp.service.show.txt","text":"WorkingDirectory="},{"line":8,"path":"systemd/units/prometheus-node-exporter-nvme.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/share/prometheus-node-exporter-collectors/nvme_metrics.py | sponge /var/lib/prometheus/node-exporter/nvme.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-nvme.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/nvme_metrics.py | sponge /var/lib/prometheus/node-exporter/nvme.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:36:26 MSK] ; stop_time=[Fri 2026-07-31 10:36:26 MSK] ; pid=1039574 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-nvme.service.show.txt","text":"WorkingDirectory="},{"line":8,"path":"systemd/units/prometheus-node-exporter-smartmon.service.cat.txt","text":"ExecStart=/bin/sh -o pipefail -c \"/usr/share/prometheus-node-exporter-collectors/smartmon.sh | sponge /var/lib/prometheus/node-exporter/smartmon.prom\""},{"line":1,"path":"systemd/units/prometheus-node-exporter-smartmon.service.show.txt","text":"ExecStart={ path=/bin/sh ; argv[]=/bin/sh -o pipefail -c /usr/share/prometheus-node-exporter-collectors/smartmon.sh | sponge /var/lib/prometheus/node-exporter/smartmon.prom ; ignore_errors=no ; start_time=[Fri 2026-07-31 10:36:26 MSK] ; stop_time=[Fri 2026-07-31 10:36:26 MSK] ; pid=1039577 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter-smartmon.service.show.txt","text":"WorkingDirectory="},{"line":9,"path":"systemd/units/prometheus-node-exporter.service.cat.txt","text":"EnvironmentFile=/etc/default/prometheus-node-exporter"},{"line":10,"path":"systemd/units/prometheus-node-exporter.service.cat.txt","text":"ExecStart=/usr/bin/prometheus-node-exporter $ARGS"},{"line":20,"path":"systemd/units/prometheus-node-exporter.service.cat.txt","text":"ExecStart="},{"line":21,"path":"systemd/units/prometheus-node-exporter.service.cat.txt","text":"ExecStart=/usr/bin/prometheus-node-exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector"},{"line":1,"path":"systemd/units/prometheus-node-exporter.service.show.txt","text":"ExecStart={ path=/usr/bin/prometheus-node-exporter ; argv[]=/usr/bin/prometheus-node-exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector ; ignore_errors=no ; start_time=[Mon 2026-04-13 22:38:08 MSK] ; stop_time=[n/a] ; pid=805 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/prometheus-node-exporter.service.show.txt","text":"EnvironmentFiles=/etc/default/prometheus-node-exporter (ignore_errors=no)"},{"line":3,"path":"systemd/units/prometheus-node-exporter.service.show.txt","text":"WorkingDirectory="},{"line":10,"path":"systemd/units/proxmox-boot-cleanup.service.cat.txt","text":"ExecStart=/usr/sbin/proxmox-boot-tool kernel unpin --next-boot"},{"line":11,"path":"systemd/units/proxmox-boot-cleanup.service.cat.txt","text":"ExecStart=/usr/sbin/proxmox-boot-tool refresh"},{"line":1,"path":"systemd/units/proxmox-boot-cleanup.service.show.txt","text":"ExecStart={ path=/usr/sbin/proxmox-boot-tool ; argv[]=/usr/sbin/proxmox-boot-tool kernel unpin --next-boot ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":2,"path":"systemd/units/proxmox-boot-cleanup.service.show.txt","text":"ExecStart={ path=/usr/sbin/proxmox-boot-tool ; argv[]=/usr/sbin/proxmox-boot-tool refresh ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }"},{"line":3,"path":"systemd/units/proxmox-boot-cleanup.service.show.txt","text":"WorkingDirectory="},{"line":24,"path":"systemd/units/systemd-tmpfiles-setup-dev-early.service.cat.txt","text":"ExecStart=systemd-tmpfiles --prefix=/dev --create --boot --graceful"},{"line":1,"path":"systemd/units/systemd-tmpfiles-setup-dev-early.service.show.txt","text":"ExecStart={ path=systemd-tmpfiles ; argv[]=systemd-tmpfiles --prefix=/dev --create --boot --graceful ; ignore_errors=no ; start_time=[Mon 2026-04-13 22:38:05 MSK] ; stop_time=[Mon 2026-04-13 22:38:05 MSK] ; pid=382 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/systemd-tmpfiles-setup-dev-early.service.show.txt","text":"WorkingDirectory="},{"line":25,"path":"systemd/units/systemd-tmpfiles-setup-dev.service.cat.txt","text":"ExecStart=systemd-tmpfiles --prefix=/dev --create --boot"},{"line":1,"path":"systemd/units/systemd-tmpfiles-setup-dev.service.show.txt","text":"ExecStart={ path=systemd-tmpfiles ; argv[]=systemd-tmpfiles --prefix=/dev --create --boot ; ignore_errors=no ; start_time=[Mon 2026-04-13 22:38:05 MSK] ; stop_time=[Mon 2026-04-13 22:38:05 MSK] ; pid=392 ; code=exited ; status=0 }"},{"line":2,"path":"systemd/units/systemd-tmpfiles-setup-dev.service.show.txt","text":"WorkingDirectory="}],"detected_frameworks":[],"directory":"hosts/pve03","domain_match_count":6,"domain_matches":[{"lines":[{"line":13,"text":" \"pve01.gram1.ru\": \"pve01\","},{"line":14,"text":" \"pve02.gram1.ru\": \"pve02\","},{"line":15,"text":" \"pve03.gram1.ru\": \"pve03\","},{"line":16,"text":" \"edge-vm.gram1.ru\": \"edge\","}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o750","mtime_ns":1784020546000000000,"path":"/opt/cluster-admin-probe-target/responder.py","sha256":"3e7585050d734ef0e3ccec7f98bde3626db31a6fd05e60dfb6f9976b371dea3c","size":2648,"uid":0},"path":"/opt/cluster-admin-probe-target/responder.py"},{"lines":[{"line":17,"text":"searchdomain: gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1781551729197506026,"path":"/root/qm-130-config-before-resource-resize-20260615T192848Z.txt","sha256":"d8322afb35c6cec30972916adeec6415460b57b1159093787d3bb95fe8aecf4c","size":710,"uid":0},"path":"/root/qm-130-config-before-resource-resize-20260615T192848Z.txt"},{"lines":[{"line":34,"text":"searchdomain: gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1781515691185146730,"path":"/root/run-pve03-manual-backups-20260615T092743Z.log","sha256":"f7e62a23cfe0a28c2ec15c28fd74bb4801a3a1ba6eb403eb0409c105dc8fd601","size":4395,"uid":0},"path":"/root/run-pve03-manual-backups-20260615T092743Z.log"},{"lines":[{"line":61,"text":"STATUS=\"OK\"; NOTES=\"none\"; timeout 90 ssh -o BatchMode=yes -o ConnectTimeout=30 -o ConnectionAttempts=1 debian@[PRIVATE_IP] 'sudo docker compose -f /opt/stacks/immich/docker-compose.yml stop >/tmp/recovery-stop-immich.log 2>&1 || true; if [ -d /opt/stacks/authentik ]; then cd /opt/stacks/authentik && sudo docker compose stop >/tmp/recovery-stop-authentik.log 2>&1 || true; fi; sudo docker ps --format \"{{.Names}} {{.Status}}\" | head -n 30; uptime; free -h' >/tmp/edge-ssh-recovery.log 2>&1; SSH_RECOVERY_RC=\"$?\"; sleep 20; PING_EDGE=\"$(ping -c 1 -W 2 [PRIVATE_IP] >/dev/null 2>&1 && echo ok || echo fail)\"; PORT22=\"$(timeout 2 bash -c '</dev/tcp/[PRIVATE_IP]/22' >/dev/null 2>&1 && echo open || echo closed)\"; PORT80=\"$(timeout 2 bash -c '</dev/tcp/[PRIVATE_IP]/80' >/dev/null 2>&1 && echo open || echo closed)\"; PORT443=\"$(timeout 2 bash -c '</dev/tcp/[PRIVATE_IP]/443' >/dev/null 2>&1 && echo open || echo closed)\"; SSH_TEST=\"$(timeout 20 ssh -o BatchMode=yes -o ConnectTimeout=10 debian@192"},{"line":62,"text":"VMID=130; STATUS=\"OK\"; NOTES=\"none\"; TS=\"$(date -u +%Y%m%dT%H%M%SZ)\"; CFG_BAK=\"/root/qm-${VMID}-config-before-resource-resize-${TS}.txt\"; TARGET_MEM=12288; TARGET_CORES=4; qm config \"$VMID\" > \"$CFG_BAK\"; BEFORE_STATUS=\"$(qm status \"$VMID\" 2>&1 | tr '\\n' ' ')\"; BEFORE_MEM=\"$(qm config \"$VMID\" | awk -F': ' '/^memory:/{print $2}')\"; BEFORE_CORES=\"$(qm config \"$VMID\" | awk -F': ' '/^cores:/{print $2}')\"; HOST_AVAIL_MB=\"$(free -m | awk '/Mem:/{print $7}')\"; if [ \"${HOST_AVAIL_MB:-0}\" -lt 16000 ]; then STATUS=\"ERROR\"; NOTES=\"host_available_ram_too_low_${HOST_AVAIL_MB}MB\"; STOP_RC=\"not_run\"; SET_RC=\"not_run\"; START_RC=\"not_run\"; else timeout 90 qm stop \"$VMID\" >/tmp/edge-vm-hard-stop.log 2>&1; STOP_RC=\"$?\"; sleep 5; STOP_STATUS=\"$(qm status \"$VMID\" 2>&1 | tr '\\n' ' ')\"; if ! echo \"$STOP_STATUS\" | grep -q \"stopped\"; then STATUS=\"ERROR\"; NOTES=\"hard_stop_failed\"; SET_RC=\"not_run\"; START_RC=\"not_run\"; else qm set \"$VMID\" --memory \"$TARGET_MEM\" --cores \"$TARGET_CORES\" >/tmp/edge-vm-resize.log 2>&"},{"line":63,"text":"cd /root; STATUS=\"OK\"; NOTES=\"none\"; SSH_EDGE=\"$(timeout 25 ssh -o BatchMode=yes -o ConnectTimeout=10 debian@[PRIVATE_IP] 'echo ok' 2>/tmp/edge-ssh-from-pve01.err || echo fail)\"; SSH_ERR=\"$(cat /tmp/edge-ssh-from-pve01.err 2>/dev/null | tail -n 5 | tr '\\n' ';' | cut -c1-500)\"; HOME_HTTP=\"$(curl -k -sS -o /dev/null -w '%{http_code}' --max-time 10 --resolve home.gram1.ru:443:[PRIVATE_IP] https://home.gram1.ru/ 2>/dev/null || echo error)\"; GIT_HTTP=\"$(curl -k -sS -o /dev/null -w '%{http_code}' --max-time 10 --resolve git.gram1.ru:443:[PRIVATE_IP] https://git.gram1.ru/ 2>/dev/null || echo error)\"; DOZZLE_HTTP=\"$(curl -sS -o /dev/null -w '%{http_code}' --max-time 5 http://[PRIVATE_IP]:9999/ 2>/dev/null || echo error)\"; PAPERLESS_HTTP=\"$(curl -sS -o /dev/null -w '%{http_code}' --max-time 5 http://[PRIVATE_IP]:8010/ 2>/dev/null || echo error)\"; MEMOS_HTTP=\"$(curl -sS -o /dev/null -w '%{http_code}' --max-time 5 http://[PRIVATE_IP]:5230/ 2>/dev/null || echo error)\"; IMMICH_HTTP=\"$(curl -s"},{"line":67,"text":"( set -Eeuo pipefail; umask 077; export SYSTEMD_PAGER=cat PAGER=cat SYSTEMD_LESS=FRXMK SYSTEMD_COLORS=0 GIT_PAGER=cat; printf 'SCOPE=READ_ONLY_VM160_PART_0108_EXACT_CLOUD_EOF_RCA_ACCOUNT_A_ACCOUNT_B_AND_LOCAL_SLICE\\nROLLBACK=NOT_REQUIRED_NO_WRITES_NO_DELETE_NO_WORKER_INSTALL_NO_PHASE_EXECUTION\\nVERIFY=PART_0108_OBJECT_SIZE_AND_SHA256_AGAINST_LOCAL_ARCHIVE_SLICE_WITH_ONE_BOUNDED_RETRY_PER_ACCOUNT_AND_ALL_STATE_UNCHANGED\\n'; MAIN=/srv/homelab-ops; COMMIT=25b275f96b54551e26f07516c72651d85f235ad0; ID=cluster-cloud-quorum-vm160-canary-v1; TASK=\"$MAIN/tasks/$ID\"; SRC=\"$TASK/assets/vm160-cloud-quorum-worker.sh\"; GENERATION=vm160-pve02-20260717T223819Z; ARCH=\"/mnt/staging/vzdump/$GENERATION/vzdump-qemu-160-20260717T223819Z.vma.zst\"; LINK=/mnt/staging/vzdump/vm160-pve02-latest; WORKER=/usr/local/libexec/homelab-vm160-cloud-quorum-worker; REMOTE_STATE=\"/var/lib/homelab-backup/cloud-quorum/vm160/$GENERATION.json\"; PART_NAME=part-0108; PART_INDEX=108; EXPECTED_ARCHIVE_SIZE=84995216465; SSH=(-o Bat"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o600","mtime_ns":1784404543977886435,"path":"/root/.bash_history","sha256":"6d2fea880793d82566f7f489ce4b8be8b0d4f8211c2cccc3d3478d39d9550222","size":25100,"uid":0},"path":"/root/.bash_history"},{"lines":[{"line":17,"text":"searchdomain: gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1781552367226481311,"path":"/root/qm-130-config-before-sshkey-20260615T193926Z.txt","sha256":"2875eea619ee15143394c75c963d08d8a0d45a700331ec911288cd14e5dc2adc","size":711,"uid":0},"path":"/root/qm-130-config-before-sshkey-20260615T193926Z.txt"},{"lines":[{"line":3,"text":"pve03.gram1.ru"},{"line":55,"text":"[PRIVATE_IP] pve01.gram1.ru pve01"},{"line":56,"text":"[PRIVATE_IP] pve02.gram1.ru pve02"},{"line":57,"text":"[PRIVATE_IP] pve03.gram1.ru pve03"},{"line":61,"text":"search netbird.selfhosted gram1.ru"},{"line":184,"text":"searchdomain: gram1.ru"}],"metadata":{"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0o644","mtime_ns":1782753384220604944,"path":"/root/cluster-audit-20260629T201245/03_pve03_audit.txt","sha256":"d988a63859d8a9faac154ef84bb45bd28fadaa070d81256400bf37debe820744","size":16842,"uid":0},"path":"/root/cluster-audit-20260629T201245/03_pve03_audit.txt"}],"fqdn":"pve03.gram1.ru","hostname":"pve03","log_summaries":{},"log_summary_count":0,"source_inventory":{"extension_counts":{".json":2},"framework_markers":[],"largest_files":[{"bytes":3,"path":"source/snapshots_manifest.json"},{"bytes":3,"path":"source/git_metadata.json"}],"packages":[],"stored_bytes":6,"stored_files":2},"source_snapshots":[],"sqlite_database_count":0,"systemd_service_count":10,"webserver_probes":{}}],"identity":{"branch":"site-gram1-ru-baseline-20260731","capture_capsule_sha256":"a7ad06c722755f0398118f4e20383e339bf2dd48d24e26c451d8644a6be7f515","capture_command_id":"GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z","commit_sha":"f9d3ba8caf65005605aa8aee2ede7e4e7e94ee49","contract_sha256":"25eda14e622fd33864289d1515b2d3c4a92de0a1073aae81093afaae5a98788e","repo":"https://git.gram1.ru/homelab-admin/homelab-ops.git","snapshot_path":"sites/gram1.ru/baseline/20260731T071400Z"},"mutation_outcome":"NO_MUTATION","production_site_changed":false,"public_http":{"asset_count":0,"assets":[],"page_count":15,"pages":[{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonicals":[],"content_type":"text/html; charset=utf-8","error":null,"final_url":"https://gram1.ru/login","forms":[{"action":"","enctype":"","inputs":[{"autocomplete":"current-password","name":"password","required":"True","tag":"input","type":"password"},{"autocomplete":"","name":"","required":"","tag":"button","type":""}],"method":"post"}],"headings":[{"tag":"h1","text":"Gram Crypto"}],"meta":[{"charset":"utf-8"},{"content":"width=device-width,initial-scale=1","name":"viewport"}],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["140"],"Content-Type":["text/html"],"Date":["Fri, 31 Jul 2026 07:37:19 GMT"],"Location":["https://gram1.ru/"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Permitted-Cross-Domain-Policies":["none"]},"status":301,"url":"http://gram1.ru/"},{"headers":{"Connection":["close"],"Content-Length":["0"],"Date":["Fri, 31 Jul 2026 07:37:19 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"],"location":["/login"],"vary":["Cookie"]},"status":303,"url":"https://gram1.ru/"},{"headers":{"Connection":["close"],"Content-Length":["1088"],"Content-Type":["text/html; charset=utf-8"],"Date":["Fri, 31 Jul 2026 07:37:19 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding","Cookie"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"],"vary":["Accept-Encoding","Cookie"]},"status":200,"url":"https://gram1.ru/login"}],"requested_url":"http://gram1.ru/","scripts":[],"status":200,"stored_body":"external/http/bodies/f1c7eeb4207a4757_root.txt","styles":[],"title":"Gram Crypto"},{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonicals":[],"content_type":"text/html; charset=utf-8","error":null,"final_url":"https://www.gram1.ru/login","forms":[{"action":"","enctype":"","inputs":[{"autocomplete":"current-password","name":"password","required":"True","tag":"input","type":"password"},{"autocomplete":"","name":"","required":"","tag":"button","type":""}],"method":"post"}],"headings":[{"tag":"h1","text":"Gram Crypto"}],"meta":[{"charset":"utf-8"},{"content":"width=device-width,initial-scale=1","name":"viewport"}],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["140"],"Content-Type":["text/html"],"Date":["Fri, 31 Jul 2026 07:37:19 GMT"],"Location":["https://www.gram1.ru/"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Permitted-Cross-Domain-Policies":["none"]},"status":301,"url":"http://www.gram1.ru/"},{"headers":{"Connection":["close"],"Content-Length":["0"],"Date":["Fri, 31 Jul 2026 07:37:19 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"],"location":["/login"],"vary":["Cookie"]},"status":303,"url":"https://www.gram1.ru/"},{"headers":{"Connection":["close"],"Content-Length":["1088"],"Content-Type":["text/html; charset=utf-8"],"Date":["Fri, 31 Jul 2026 07:37:19 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding","Cookie"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"],"vary":["Accept-Encoding","Cookie"]},"status":200,"url":"https://www.gram1.ru/login"}],"requested_url":"http://www.gram1.ru/","scripts":[],"status":200,"stored_body":"external/http/bodies/f8830a3e7b126322_root.txt","styles":[],"title":"Gram Crypto"},{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonicals":[],"content_type":"text/html; charset=utf-8","error":null,"final_url":"https://gram1.ru/login","forms":[{"action":"","enctype":"","inputs":[{"autocomplete":"current-password","name":"password","required":"True","tag":"input","type":"password"},{"autocomplete":"","name":"","required":"","tag":"button","type":""}],"method":"post"}],"headings":[{"tag":"h1","text":"Gram Crypto"}],"meta":[{"charset":"utf-8"},{"content":"width=device-width,initial-scale=1","name":"viewport"}],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["0"],"Date":["Fri, 31 Jul 2026 07:37:19 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"],"location":["/login"],"vary":["Cookie"]},"status":303,"url":"https://gram1.ru/"},{"headers":{"Connection":["close"],"Content-Length":["1088"],"Content-Type":["text/html; charset=utf-8"],"Date":["Fri, 31 Jul 2026 07:37:19 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding","Cookie"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"],"vary":["Accept-Encoding","Cookie"]},"status":200,"url":"https://gram1.ru/login"}],"requested_url":"https://gram1.ru/","scripts":[],"status":200,"stored_body":"external/http/bodies/88ee3a1bbf568bf5_root.txt","styles":[],"title":"Gram Crypto"},{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonicals":[],"content_type":"text/html; charset=utf-8","error":null,"final_url":"https://www.gram1.ru/login","forms":[{"action":"","enctype":"","inputs":[{"autocomplete":"current-password","name":"password","required":"True","tag":"input","type":"password"},{"autocomplete":"","name":"","required":"","tag":"button","type":""}],"method":"post"}],"headings":[{"tag":"h1","text":"Gram Crypto"}],"meta":[{"charset":"utf-8"},{"content":"width=device-width,initial-scale=1","name":"viewport"}],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["0"],"Date":["Fri, 31 Jul 2026 07:37:19 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"],"location":["/login"],"vary":["Cookie"]},"status":303,"url":"https://www.gram1.ru/"},{"headers":{"Connection":["close"],"Content-Length":["1088"],"Content-Type":["text/html; charset=utf-8"],"Date":["Fri, 31 Jul 2026 07:37:19 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding","Cookie"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"],"vary":["Accept-Encoding","Cookie"]},"status":200,"url":"https://www.gram1.ru/login"}],"requested_url":"https://www.gram1.ru/","scripts":[],"status":200,"stored_body":"external/http/bodies/183b8e2be9f07ccc_root.txt","styles":[],"title":"Gram Crypto"},{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonicals":[],"content_type":"text/html; charset=utf-8","error":null,"final_url":"https://gram1.ru/login","forms":[{"action":"","enctype":"","inputs":[{"autocomplete":"current-password","name":"password","required":"True","tag":"input","type":"password"},{"autocomplete":"","name":"","required":"","tag":"button","type":""}],"method":"post"}],"headings":[{"tag":"h1","text":"Gram Crypto"}],"meta":[{"charset":"utf-8"},{"content":"width=device-width,initial-scale=1","name":"viewport"}],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["1088"],"Content-Type":["text/html; charset=utf-8"],"Date":["Fri, 31 Jul 2026 07:37:19 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding","Cookie"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"],"vary":["Accept-Encoding","Cookie"]},"status":200,"url":"https://gram1.ru/login"}],"requested_url":"https://gram1.ru/login","scripts":[],"status":200,"stored_body":"external/http/bodies/aff9673434bebfe5_login.txt","styles":[],"title":"Gram Crypto"},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonicals":[],"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/robots.txt","forms":[],"headings":[],"meta":[],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["22"],"Content-Type":["application/json"],"Date":["Fri, 31 Jul 2026 07:37:22 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"]},"status":404,"url":"https://gram1.ru/robots.txt"}],"requested_url":"https://gram1.ru/robots.txt","scripts":[],"status":404,"stored_body":"external/http/bodies/edbbd7b271782d53_robots.txt.txt","styles":[],"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonicals":[],"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/sitemap.xml","forms":[],"headings":[],"meta":[],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["22"],"Content-Type":["application/json"],"Date":["Fri, 31 Jul 2026 07:37:22 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"]},"status":404,"url":"https://gram1.ru/sitemap.xml"}],"requested_url":"https://gram1.ru/sitemap.xml","scripts":[],"status":404,"stored_body":"external/http/bodies/52a1325278d3a13d_sitemap.xml.txt","styles":[],"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonicals":[],"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/.well-known/security.txt","forms":[],"headings":[],"meta":[],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["22"],"Content-Type":["application/json"],"Date":["Fri, 31 Jul 2026 07:37:22 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"]},"status":404,"url":"https://gram1.ru/.well-known/security.txt"}],"requested_url":"https://gram1.ru/.well-known/security.txt","scripts":[],"status":404,"stored_body":"external/http/bodies/c906cb4a0a35b417_.well-known_security.txt.txt","styles":[],"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonicals":[],"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/favicon.ico","forms":[],"headings":[],"meta":[],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["22"],"Content-Type":["application/json"],"Date":["Fri, 31 Jul 2026 07:37:22 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"]},"status":404,"url":"https://gram1.ru/favicon.ico"}],"requested_url":"https://gram1.ru/favicon.ico","scripts":[],"status":404,"stored_body":"external/http/bodies/9c05181266b58e78_favicon.ico.txt","styles":[],"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonicals":[],"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/manifest.json","forms":[],"headings":[],"meta":[],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["22"],"Content-Type":["application/json"],"Date":["Fri, 31 Jul 2026 07:37:22 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"]},"status":404,"url":"https://gram1.ru/manifest.json"}],"requested_url":"https://gram1.ru/manifest.json","scripts":[],"status":404,"stored_body":"external/http/bodies/08f529ca3577730d_manifest.json.txt","styles":[],"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonicals":[],"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/site.webmanifest","forms":[],"headings":[],"meta":[],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["22"],"Content-Type":["application/json"],"Date":["Fri, 31 Jul 2026 07:37:22 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"]},"status":404,"url":"https://gram1.ru/site.webmanifest"}],"requested_url":"https://gram1.ru/site.webmanifest","scripts":[],"status":404,"stored_body":"external/http/bodies/1d956b2695802e6c_site.webmanifest.txt","styles":[],"title":""},{"body_bytes":66,"body_sha256":"fd4986bd7a591f1af722b4ec29bedeb8b7137d0e296fe22f086a1122b61d94e0","canonicals":[],"content_type":"application/json","error":null,"final_url":"https://gram1.ru/health","forms":[],"headings":[],"meta":[],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["66"],"Content-Type":["application/json"],"Date":["Fri, 31 Jul 2026 07:37:22 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"]},"status":200,"url":"https://gram1.ru/health"}],"requested_url":"https://gram1.ru/health","scripts":[],"status":200,"stored_body":"external/http/bodies/b64f958427c2b88c_health.txt","styles":[],"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonicals":[],"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/status","forms":[],"headings":[],"meta":[],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["22"],"Content-Type":["application/json"],"Date":["Fri, 31 Jul 2026 07:37:22 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"]},"status":404,"url":"https://gram1.ru/status"}],"requested_url":"https://gram1.ru/status","scripts":[],"status":404,"stored_body":"external/http/bodies/51ed0c6c8fc0be64_status.txt","styles":[],"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonicals":[],"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/api","forms":[],"headings":[],"meta":[],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["22"],"Content-Type":["application/json"],"Date":["Fri, 31 Jul 2026 07:37:22 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"]},"status":404,"url":"https://gram1.ru/api"}],"requested_url":"https://gram1.ru/api","scripts":[],"status":404,"stored_body":"external/http/bodies/3b8355bc91b62cb9_api.txt","styles":[],"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonicals":[],"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/api/health","forms":[],"headings":[],"meta":[],"redirect_chain":[{"headers":{"Connection":["close"],"Content-Length":["22"],"Content-Type":["application/json"],"Date":["Fri, 31 Jul 2026 07:37:22 GMT"],"Origin-Agent-Cluster":["?1"],"Referrer-Policy":["strict-origin-when-cross-origin"],"Vary":["Accept-Encoding"],"X-Content-Type-Options":["nosniff"],"X-DNS-Prefetch-Control":["off"],"X-Parked-Domains":["managed"],"X-Permitted-Cross-Domain-Policies":["none"]},"status":404,"url":"https://gram1.ru/api/health"}],"requested_url":"https://gram1.ru/api/health","scripts":[],"status":404,"stored_body":"external/http/bodies/b5da3bfec28e3a0f_api_health.txt","styles":[],"title":""}],"stored_asset_bytes":0},"public_security":{"responses":[{"final_url":"https://gram1.ru/login","forms":[{"action":"","enctype":"","inputs":["<dict:5>","<dict:5>"],"method":"post"}],"headers":{"cache-control":null,"content-security-policy":null,"cross-origin-embedder-policy":null,"cross-origin-opener-policy":null,"cross-origin-resource-policy":null,"permissions-policy":null,"referrer-policy":["strict-origin-when-cross-origin"],"strict-transport-security":null,"x-content-type-options":["nosniff"],"x-frame-options":null},"missing_security_headers":["strict-transport-security","content-security-policy","x-frame-options","permissions-policy","cross-origin-opener-policy","cross-origin-resource-policy","cross-origin-embedder-policy"],"powered_by":null,"server":null,"set_cookie_present":"<REDACTED>","status":200,"url":"https://gram1.ru/"},{"final_url":"https://www.gram1.ru/login","forms":[{"action":"","enctype":"","inputs":["<dict:5>","<dict:5>"],"method":"post"}],"headers":{"cache-control":null,"content-security-policy":null,"cross-origin-embedder-policy":null,"cross-origin-opener-policy":null,"cross-origin-resource-policy":null,"permissions-policy":null,"referrer-policy":["strict-origin-when-cross-origin"],"strict-transport-security":null,"x-content-type-options":["nosniff"],"x-frame-options":null},"missing_security_headers":["strict-transport-security","content-security-policy","x-frame-options","permissions-policy","cross-origin-opener-policy","cross-origin-resource-policy","cross-origin-embedder-policy"],"powered_by":null,"server":null,"set_cookie_present":"<REDACTED>","status":200,"url":"https://www.gram1.ru/"},{"final_url":"https://gram1.ru/login","forms":[{"action":"","enctype":"","inputs":["<dict:5>","<dict:5>"],"method":"post"}],"headers":{"cache-control":null,"content-security-policy":null,"cross-origin-embedder-policy":null,"cross-origin-opener-policy":null,"cross-origin-resource-policy":null,"permissions-policy":null,"referrer-policy":["strict-origin-when-cross-origin"],"strict-transport-security":null,"x-content-type-options":["nosniff"],"x-frame-options":null},"missing_security_headers":["strict-transport-security","content-security-policy","x-frame-options","permissions-policy","cross-origin-opener-policy","cross-origin-resource-policy","cross-origin-embedder-policy"],"powered_by":null,"server":null,"set_cookie_present":"<REDACTED>","status":200,"url":"https://gram1.ru/login"}]},"quarantine":[],"rc":0,"rollback_restored":null,"rollback_started":false,"schema":1,"status":"OK","tls":{"gram1.ru":{"leaf_sha256":"a220b18eb34ac86d8b788cd376cecc5fbd580e07813adf8bd6c4df13c723afe6","s_client_rc":0,"s_client_sha256":"252948b384136b41faf17a21f655ba1147b6c44c207780e9a40584072882da1f","x509":"subject=CN=gram1.ru\nissuer=C=US, O=Let's Encrypt, CN=YE2\nserial=052057227168416710CA1BAA064E96106D77\nnotBefore=Jul 1 16:15:31 2026 GMT\nnotAfter=Sep 29 16:15:30 2026 GMT\nsha256 Fingerprint=C6:60:DE:36:30:D6:18:C9:CD:F0:19:DD:52:24:90:87:1F:70:0E:27:BD:E9:0E:5B:2A:6C:54:1E:65:49:39:9F\nX509v3 CRL Distribution Points: \n Full Name:\n URI:http://ye2.c.lencr.org/120.crl\n\n","x509_rc":0},"www.gram1.ru":{"leaf_sha256":"a220b18eb34ac86d8b788cd376cecc5fbd580e07813adf8bd6c4df13c723afe6","s_client_rc":0,"s_client_sha256":"04bd359acaa02b5481d9812adbd06630e277423563455bddf7985b6434f1f6b2","x509":"subject=CN=gram1.ru\nissuer=C=US, O=Let's Encrypt, CN=YE2\nserial=052057227168416710CA1BAA064E96106D77\nnotBefore=Jul 1 16:15:31 2026 GMT\nnotAfter=Sep 29 16:15:30 2026 GMT\nsha256 Fingerprint=C6:60:DE:36:30:D6:18:C9:CD:F0:19:DD:52:24:90:87:1F:70:0E:27:BD:E9:0E:5B:2A:6C:54:1E:65:49:39:9F\nX509v3 CRL Distribution Points: \n Full Name:\n URI:http://ye2.c.lencr.org/120.crl\n\n","x509_rc":0}},"verification":{"anomalies":[{"basename_length":36,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"03f2ff4c2e76505c2381f369a4e377442a546153331cf9dae7cb43247394a8df"},"kind":"missing_from_checkout","path_sha256":"1831ab715f1a23930712ec363c2df210519d9a8e63ab21050af976806c462319","sensitive_path":true,"suffix":".tsv"},{"basename_length":34,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"047676a85d8479d57bc3895ccfd651d02ee971b84338c80aab36bece3a52e3ee"},"kind":"missing_from_checkout","path_sha256":"c2068a915ab0f0cd8086e7251b2406b4de17cd813988229b179a71e6eea49a0c","sensitive_path":true,"suffix":".tsv"},{"basename_length":20,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:1:*.env\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/APP05-monitoring.env\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"66b5259ef62561b83fb0a2303c912122cbf5c014e6c31d8a626f7ea5e09a6633"},"kind":"missing_from_checkout","path_sha256":"eb860700333344be2f70c57bfab9fcdb5fc959fc241019e0e55898793e2c530c","sensitive_path":true,"suffix":".env"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ03-shellcheck-repo-scan.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1a221a76afc8ec4b5704e76e1108ac709b5ad35c55ec0a59e747ab77f81accb9"},"kind":"missing_from_checkout","path_sha256":"f1a246ef882c692f3e7676d2009a5a0738904f4aee2e5b23ac832e6442e23159","sensitive_path":true,"suffix":".log"},{"basename_length":19,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ04-yaml-scan.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"5935691291c6ab9f8eca95314af9ea915a8bed577fae6d1e2df310518cdb3b4f"},"kind":"missing_from_checkout","path_sha256":"46c726ae03ab26e7d67c925492f53ea0fa143a2d93f9fc91f4766da8cadb865e","sensitive_path":true,"suffix":".log"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:26:*.log\tsites/gram1.<REDACTED_TOKEN>.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"c99ff35147a0efb6f140e5b87bc960634c887ecc4218581429a5ef73976bd664"},"kind":"missing_from_checkout","path_sha256":"683a786ccd0903852c34e18b2ee47a3270fc44a8a174c7ae37d27260ed35d870","sensitive_path":true,"suffix":".log"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"808fd4bfc3df94d117481ba3a3a8a630079251d1e76a3e7514c64b6995828e9a"},"kind":"missing_from_checkout","path_sha256":"d70b5961cf40d476336611938313bf4f984caa86367034f982e63f4f335ff9af","sensitive_path":true,"suffix":".tsv"},{"basename_length":21,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ06-dotenv-scan.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1c47dd82be44861aa786c9aa2589d9641c1126e6e1fbd44a54648c53f737b8b6"},"kind":"missing_from_checkout","path_sha256":"87fddbce4d9ee1002e548ca86665cb89db8d789c1df8ef3b0cc60ea183d7477e","sensitive_path":true,"suffix":".log"},{"basename_length":40,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08-precommit-config-syntax-review.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"119530731ea7e805303a0998f971cf40bceba98d06ddaa8a4a18ec56b3721e13"},"kind":"missing_from_checkout","path_sha256":"206c0b2917281b76b3cc6113e55545a2d037982a20970eefdb7ae7bbbae71443","sensitive_path":true,"suffix":".log"},{"basename_length":42,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08R2-precommit-config-syntax-review.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"67831af293e57808753270db02a81ca060194fcf195d87cf2fe7105427416395"},"kind":"missing_from_checkout","path_sha256":"89150ce2e53b3a822590fac08a069419a5fe087dadb20c07f54d7574935d3bd0","sensitive_path":true,"suffix":".log"},{"basename_length":33,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08R3-precommit-yaml-repair.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"4e3e110774e148db6e2a0b25465caf1b4adf220ffe7fd258c9199ca2c79f0652"},"kind":"missing_from_checkout","path_sha256":"325d9502c86190630eb0c655b0c9d84c4bf098e6ba4a6f8faf93d0cc2bde5b40","sensitive_path":true,"suffix":".log"},{"basename_length":42,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"aa4d5dd3a43785dbfad1e76726bcdee209cc4b96b39601d2135d0a9af8dcdbec"},"kind":"missing_from_checkout","path_sha256":"f192560f9e1fb9fad21ad81749d8f69aaecd79bb442735aa5c01d42d8f18f3d9","sensitive_path":true,"suffix":".tsv"},{"basename_length":41,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"650c68d3d7f9c5237028a8c4966350b8e1b59ba1e7d4eeb39ad92d48661ac5ee"},"kind":"missing_from_checkout","path_sha256":"b76d9833fe6db3eacc435aa2903d5a66cc477cbcd49300bec1fdd4190eb0d66e","sensitive_path":true,"suffix":".tsv"},{"basename_length":36,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d9ede7c80ced2339333a1fe0eb7593387ba71fed69ce9c0e344d21b2c002e844"},"kind":"missing_from_checkout","path_sha256":"0a37f3428e86c3b86e72e2ff56aabd60e73f01f9970cf50962c1295636e805d8","sensitive_path":true,"suffix":".tsv"},{"basename_length":29,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"7f59ba740e83a41db3384eae87e82169322bbee48ba12e1c7b4f56660bcaeea0"},"kind":"missing_from_checkout","path_sha256":"a2ac117952ccea622345bb6148acbff3ef5ed20a3e5ec4d9925190dac39f26f3","sensitive_path":true,"suffix":".tsv"},{"basename_length":39,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"6cd44b62ad80d0f9338ac669ea5984b8d32ab261140e07cd2f6d9bf95470835e"},"kind":"missing_from_checkout","path_sha256":"262f0dc79b7997d36058b3937c925c85d21784c07ab6b5ba4043cb11e6a762f0","sensitive_path":true,"suffix":".txt"},{"basename_length":43,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"02514e588fc1d8bbf50242cb78c45cbfc23cd4508c4d65f6d7fbab1ff3806a89"},"kind":"missing_from_checkout","path_sha256":"55d7edc8a6446a60ce484b35c64c88647508903264c20a2188c959d4498620ce","sensitive_path":true,"suffix":".tsv"},{"basename_length":41,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"8a03fa69b7bfe09c8b2c0e5f4defb12245ed51faf2bd2c03099ab13919cbd968"},"kind":"missing_from_checkout","path_sha256":"1f146757dd427ba94db10f8cb7a28b442f7dfbc3dc7db97738faa37bbd6cab64","sensitive_path":true,"suffix":".md"},{"basename_length":42,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"9b282098628ad289a6f4bdea7ea04a28a473545ab44f5823faf1af34c0945355"},"kind":"missing_from_checkout","path_sha256":"b3b3d8296f1af449d288c2736bfbfa2accbcde10ae34b0efe8bde8375c9388ec","sensitive_path":true,"suffix":".tsv"},{"basename_length":39,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\tsites/gram1.<REDACTED_TOKEN>.state\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"b0c5d1d773fa3f1844f1f3cfa309082cc8672c2c78289d5f1752f480242040a0"},"kind":"missing_from_checkout","path_sha256":"12f015430ad9424a19dfe30db5b95dad23ecf63e7815f10af4ceb815267d5cc9","sensitive_path":true,"suffix":".state"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172508Z-SEC02-4-to-3\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d5b8b7ddf4135fe2e4a84563c2904c5108fed062c880d2ef7fd3d7ce0a25437e"},"kind":"missing_from_checkout","path_sha256":"f8e733dec894be535a3f55bec4243442f1b90fac15fef5356ebdf9c912d9923d","sensitive_path":true,"suffix":".bak-20260626t172508z-sec02-4-to-3"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172523Z-SEC03-3-to-2\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"3123820d65de7be54ccf53e5ccc4ea06f36cfe74772031c3ea2bf60785d5a90e"},"kind":"missing_from_checkout","path_sha256":"8c29698be41912729278dacb43ab65afecfd575c1b4f2e2b4c36b43da49c8247","sensitive_path":true,"suffix":".bak-20260626t172523z-sec03-3-to-2"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172535Z-SEC04-2-to-1\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"58390eebf40c037ad26ed36255abe05677080000eb99a32e9e61c4cf99e2a523"},"kind":"missing_from_checkout","path_sha256":"aaf18ffde71b6473596bb7c92040719cbfc119ecc93fa87487250a9d071fb301","sensitive_path":true,"suffix":".bak-20260626t172535z-sec04-2-to-1"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172547Z-SEC05-1-to-0\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d6a967aa21691825de7e26409a894c8f9b4d33dd016cb1792ca12c38a23ee4e2"},"kind":"missing_from_checkout","path_sha256":"e62fcb5f18e96be2401274c6e4bfe4a00b083e06433909d6b39f4b20351476cb","sensitive_path":true,"suffix":".bak-20260626t172547z-sec05-1-to-0"},{"basename_length":29,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"26add47b447812492386a7841eaff1600964beb7d9ee32d8487ee0ccba7eca23"},"kind":"missing_from_checkout","path_sha256":"221cbee473501ee3e126b8e29602ad5fbf9842b9746137aff0a33eb30d6c2ed4","sensitive_path":true,"suffix":".tsv"},{"basename_length":43,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1c3b1c497c5b3f915a056adf6fc8057d251e4564a4c1bb84ac7bf9d184164846"},"kind":"missing_from_checkout","path_sha256":"99565b640d90eb8ddbd13d276ab6aa01aad1ea72771cd5a2b12e928723171ba6","sensitive_path":true,"suffix":".tsv"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"8385fcbff8e32b20a491f241d44139451a2d01e42da23e02adc916206d718b81"},"kind":"missing_from_checkout","path_sha256":"315926ca6f4f110ee475ea3392cc3e34f03856f87fdd1e1c23b6c013f3f7ae20","sensitive_path":true,"suffix":".tsv"},{"basename_length":38,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"95f3a9ad4434bae963aa8571d12482f456bf6e625c5d6a5bd2eea0f6ab5811b6"},"kind":"missing_from_checkout","path_sha256":"d0a1f552e44ee3cc70c58a889001f15abab3d5105c7392997bbfe052379c42c9","sensitive_path":true,"suffix":".md"},{"basename_length":34,"depth":8,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0b40be06fa1569553dfcb1268f259bc244e3e9749962c310c902ea585bf6aed6"},"kind":"missing_from_checkout","path_sha256":"72a8c29f3c2e8e99a038a3447e7f459881cafb9be6b59ccbdb87b5056613a21a","sensitive_path":true,"suffix":".md"},{"basename_length":24,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p0-restore-drill-20260624T122122Z/edge-health-redacted.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1d5c441b47ab4c8ce70ad3d8da8ad8e4f63b55ac276a68134aad17f915e81378"},"kind":"missing_from_checkout","path_sha256":"b5dba4d253ce4cfce27a99d1a2cc7aeeb4eb607bfc628c6e7d5e49498fa6eda1","sensitive_path":true,"suffix":".txt"},{"basename_length":29,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p0-restore-drill-20260624T122122Z/nextcloud-health-redacted.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"8ffa9e5091874e8dc2ab0ee11c77d4e0991f0e8968aa9276ab3c6bb1c45ee349"},"kind":"missing_from_checkout","path_sha256":"8b6160f09289bf95e9011d5d2532bdfdace7151018bf14cddc167f61f39a05eb","sensitive_path":true,"suffix":".txt"},{"basename_length":23,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-disk-retention-20260624T122906Z/edge-disk-retention.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"88184ac4e6712127751e95a372fea3c4a962dcbb1b6f337479d96d9fd80ab9ab"},"kind":"missing_from_checkout","path_sha256":"7491d29ffb10110b9780e4c7b17379e5c92cc8b3b13a4cec215977c362aa7d89","sensitive_path":true,"suffix":".txt"},{"basename_length":26,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-gotify-bind-local-20260624T142534Z/edge-gotify-bind-local.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"b539d8ab20e1c3d7ae183e62a758517970c84e1526eacd74ca52e16821c698c7"},"kind":"missing_from_checkout","path_sha256":"c7a26319f7ce7a28a5d2652b0971d750620337110fb656676c98c5ed76f2d9ae","sensitive_path":true,"suffix":".txt"},{"basename_length":23,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-gotify-bind-local-20260624T142534Z/pve01-gotify-checks.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0f7f7148f79dd4ebb21c675c7148338706c14059f639f83635ac5adb9410c70f"},"kind":"missing_from_checkout","path_sha256":"a7bee84809250a23b6e273c1663691bb7aa08f1f6e41dc2241bf6fd664220dca","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-npmplus-admin-bind-20260624T141458Z/edge-npmplus-admin-bind.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"2282ec1067cddacb51705ed0ed31c14136871dd45abad0220a409aa4eee553d2"},"kind":"missing_from_checkout","path_sha256":"af4f654bca9d5e77acb1ac87dc25551aace1adc3a1530bbeb3dd201177034d3d","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-private-vpn-real-fix-20260624T140710Z/edge-private-vpn-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"edec1d3140869a10e9b292b7fc2160ad7635b535b7148a499cb9ab18d87ca3ba"},"kind":"missing_from_checkout","path_sha256":"0926fcd8278044b8e3e7ac54865790187ca3ba21c304055b9632f4e656bf0c66","sensitive_path":true,"suffix":".txt"},{"basename_length":28,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-private-vpn-real-fix-20260624T140710Z/pve01-private-vpn-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"66c2985c8bc9946d9c9a5e6933690564f0237b887f1e172b69897ddfa579fb72"},"kind":"missing_from_checkout","path_sha256":"df2357b50958070a518d8712dda0d0b0ff4dba9c56562ccc208b7e76e8fd9107","sensitive_path":true,"suffix":".txt"},{"basename_length":21,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-20260624T133115Z/edge-final-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"a85ae485f382cee6a2b0bb9aacc17a7efd24b47da313633cf927ba357a42ca7f"},"kind":"missing_from_checkout","path_sha256":"d5a2d14f9ee2d03202d4a9f9d75e4c09264e896aa470af23471a3e5a4c0e62c5","sensitive_path":true,"suffix":".txt"},{"basename_length":21,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-20260624T133115Z/pve01-final-state.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"019e69a626941daf634eda8a19d0456d017143f98db96091c4eeab77bc833ae0"},"kind":"missing_from_checkout","path_sha256":"536ebafe24b85ae222b2a5af56cb5cb5c876d5d73509bb938f7338d563e31ac8","sensitive_path":true,"suffix":".txt"},{"basename_length":15,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-kuma-fix-20260624T133456Z/edge-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"fd15af0ea3cbe0e2b3d6155b4900d95744ca386450aa388c03e321f097274fbf"},"kind":"missing_from_checkout","path_sha256":"c5684c73fe33566cba19bfc41131dd3794e305cfc3690e97ec47b83b802f6e55","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-kuma-fix-20260624T133456Z/pve01-private-vpn-hosts.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"025d903f5f632e06c2e383d5bf57b25ad34138b913e5ccda38f7ece8f8ab01be"},"kind":"missing_from_checkout","path_sha256":"9cfbd1460ca38ec3f446d9f3d0ee0cc596e930c3fad3296308b8516e2ba6d43c","sensitive_path":true,"suffix":".txt"},{"basename_length":22,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/edge-router-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0942367c3059c732b0b573aa92f1953bf1a06264e5f8c2942ccb3e374a4a19c2"},"kind":"missing_from_checkout","path_sha256":"1a2815578e337b7334268bd26030da8ad67dab65e7b05995d3f2884d868f0c31","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/nextcloud-turn-router-state.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"4e00d28ba20e8271c7791515143b9d9d01a23e8ec54a4b1348dfdb5309a1a16a"},"kind":"missing_from_checkout","path_sha256":"ac066c46b9e0b9ea72d698ed93c6b54ae2471412551fd147e207df6cf863ba59","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/pve01-router-hairpin-probes.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"26116733b46159e8fd195f2b63902401234fffec19bd8d479933cd96d689f5b2"},"kind":"missing_from_checkout","path_sha256":"0dbd50676c80dca8ab0c5fda3529a2827908092d046fb6ae41413db3d7693fbc","sensitive_path":true,"suffix":".txt"},{"basename_length":28,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/targeted-udp-tag-summary.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"96efef84756c9eede803867db1385590f67db29052a2d761b345afffa21e0172"},"kind":"missing_from_checkout","path_sha256":"603499f9228d7bff75161418bd6edd568d5333e6406abd87915f2d6262329189","sensitive_path":true,"suffix":".txt"},{"basename_length":25,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-hardening-20260624T125534Z/edge-router-hardening.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"92ecf926a745ba9ba3417d86b19e7531683e82b223b20a4888521c4627834ca1"},"kind":"missing_from_checkout","path_sha256":"3b602efd8d7209b2fb372b830ebc57ab10647ed060b3538d35e44cb009c5fc39","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.<REDACTED_TOKEN>.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"720f06b9c143aa5b7c076b595302eee0e9c7b11e328c78220480112036f3f61f"},"kind":"missing_from_checkout","path_sha256":"aa93d47b4e8337b1eb74f195cb5fc25a51d821f0d4fbd17bebda61e25e645884","sensitive_path":true,"suffix":".txt"},{"basename_length":30,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.<REDACTED_TOKEN>.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0a2e2b004aea530f98353fd1970302d7dbca63f45fc0e79b61069edd198e419d"},"kind":"missing_from_checkout","path_sha256":"5b40627afbcc850a12211e2c4486456b84075a3e45e2a16a96f94a6e817f427e","sensitive_path":true,"suffix":".txt"},{"basename_length":20,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-turn-3478-20260624T143023Z/edge-turn-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0602b60258928991089d7c408309cc1b12386a1b9ca4744d0cbdaf2181a45755"},"kind":"missing_from_checkout","path_sha256":"aeb6473b0194be1ee5311743ff57e751d2a1e65377c1be7417c04937eea5ff9e","sensitive_path":true,"suffix":".txt"},{"basename_length":24,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-turn-3478-20260624T143023Z/nextcloud-turn-state.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"a4c1926f01dc80bd1995968ebedb218c86ba90d0ef44fb196bfcbea0f709e06b"},"kind":"missing_from_checkout","path_sha256":"2b6e5bfb31cce087b75cc373f2fe676d84a4e09a5de1028aa47c9a280fcddbd4","sensitive_path":true,"suffix":".txt"},{"basename_length":18,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/backup-summary.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"5b988574d368c653a905be750f9126d128c3693bc9b75f7f58faa2a8ed203924"},"kind":"missing_from_checkout","path_sha256":"911a07e99ec8925526151a0183830f33a6e183fbe3066ce6eb8140f4c89fff66","sensitive_path":true,"suffix":".txt"},{"basename_length":24,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/current-fingerprints.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"21aa40c6b652a0fe7e97d9ad89ad6291b1591de6f4368f085a33cb28732815df"},"kind":"missing_from_checkout","path_sha256":"11efcb2cdb6caa4bc0d7cf2f5082d511a60e203034c7838355f5544f227cdf74","sensitive_path":true,"suffix":".txt"},{"basename_length":24,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/current-known-hosts.scan\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"b896fc8c0ee39a86615c06725f20457f74c453fc7b93532af86dfcf4e2eeffe6"},"kind":"missing_from_checkout","path_sha256":"ea1bbc4d7326bf99f603aea2fc69219e183114138222164c1fa34425f701ae2b","sensitive_path":true,"suffix":".scan"},{"basename_length":25,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-alias-known-hosts.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"9d826962f206a6098a00be141ddfa1524b179e9f58449feceb16ce79af38d4d4"},"kind":"missing_from_checkout","path_sha256":"0a60da401257e8d3d62622d35675b0aeeaa5b0c9987ae470f389bb9a84f67107","sensitive_path":true,"suffix":".txt"},{"basename_length":20,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-fingerprints.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"cf597d287845f317164b4f3c4820f2bd66e5c0aeddae242ff237e7e7d583c7dd"},"kind":"missing_from_checkout","path_sha256":"4eae326a00f039ed3f44104064c4c2fdea14fe9d76e3af66e3379669d2916022","sensitive_path":true,"suffix":".txt"},{"basename_length":22,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-ip-known-hosts.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"c4dcbfa2ce0571f34143c736f4f9472ede1fdeb4919af4c3228bc2a9e26caa56"},"kind":"missing_from_checkout","path_sha256":"fe70268e02c773df3fbb87dba01c95c40da5d948585327ec65fd5290860aa913","sensitive_path":true,"suffix":".txt"},{"basename_length":19,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-known-hosts.raw\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"f5e2ae1ac3302e9947120b1e49e7365406c3495170767fe7c137197f5127ac06"},"kind":"missing_from_checkout","path_sha256":"639767b08819a36ef1d907e1934e6bbd354e621488194f75aa06ced3e854074d","sensitive_path":true,"suffix":".raw"},{"basename_length":22,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/vps-identity-audit.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"4ddb0c2029d99c580cc682650c6c79f7644b7d1b73d8ecbad8868e7288a7e122"},"kind":"missing_from_checkout","path_sha256":"fcf87d70165391a6f54c5d6b1fe815822c9469a81287680eaee9ebd1d832ea16","sensitive_path":true,"suffix":".txt"},{"basename_length":22,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-audit.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"2fd7bf68b51afd18f259fc90ba3895a9cae6ea843df35bdaafef822f03b588c8"},"kind":"missing_from_checkout","path_sha256":"4f4cdc4688bc2f146c33ec604a925e52063653b83ca317a59436b246b8694443","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-final-evidence.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"2c1b158668e4fe2672bac68ce1cb071e550cb4aec018c4f8ecc63f9d081372dd"},"kind":"missing_from_checkout","path_sha256":"d0aa3459b11ba93537c86181bee9d357fdec62098c580a6d1c0cea83d2852d75","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-peer-discovery.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1b423c085d60c40f192b2678dbeb9d7782a5039bd2ff46ab2bac94c5803491a5"},"kind":"missing_from_checkout","path_sha256":"d1e501c34794fae94b0636e4df7638d766f5114ff2e5fcf5f7c0b52143368354","sensitive_path":true,"suffix":".txt"},{"basename_length":56,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:7:*token*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"073ca6c91b04c783635be196a401f7b215611e8ea26e3d16996a5320c3099884"},"kind":"missing_from_checkout","path_sha256":"cf0a58341719e872b49bc4b02cd11e7d83b548e3581c8c8cd26cbd228b1e1d46","sensitive_path":true,"suffix":".md"},{"basename_length":49,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:7:*token*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"a41753864159c835e8400ef003eb23c1d539eb0b2868b68eb233c963adc5c126"},"kind":"missing_from_checkout","path_sha256":"e9d73c2c02c4b77e4d1a1e9ca03a3f5a29318aa80c4de6c5ac17763b36aa135d","sensitive_path":true,"suffix":".md"},{"basename_length":57,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:7:*token*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"c233f7881d2c4ca39f986a7e2d40b6bee169c8295ec1141ee62bef961cababdb"},"kind":"missing_from_checkout","path_sha256":"dab0b2de30b5cbe7ddb7c0af562cad07f3a08a463f77b7d7a3c464ef17c4b32d","sensitive_path":true,"suffix":".md"},{"basename_length":51,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:7:*token*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"470407ef09a236e66b2aa41a5b7bf3b923aae05baf7ea3e276e89046d2de1f6d"},"kind":"missing_from_checkout","path_sha256":"4db3c5f77435bc717163e8571e894eabf122de91be97b532ca5b93d322d82f62","sensitive_path":true,"suffix":".md"},{"basename_length":43,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"330700b68162ec69d2c2984a09d8f4ecde481de627fbc2a2d2f4523682b01845"},"kind":"missing_from_checkout","path_sha256":"6a1ee1d3f3c2e845f44b24f8c4ebf1607aa47a7eaf7d7b51672e88a5b035e342","sensitive_path":true,"suffix":".md"},{"basename_length":43,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"44d895e37c4d7efb5b2a940d8427d58f95ac085a5f47f0de32ae9f6a37095764"},"kind":"missing_from_checkout","path_sha256":"32416b898e71d162602268191d7cb0aed22e9d5788fd96945c496759ca555875","sensitive_path":true,"suffix":".md"},{"basename_length":28,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d82c5c23ede0b4952bf49c531772ce2c450eb5c32d1c3e1112632099c3cecc3c"},"kind":"missing_from_checkout","path_sha256":"6335de79a3ccf4b63c70083a7ad96b5654143ca78290afca3a40f836f4a199b4","sensitive_path":true,"suffix":".md"},{"basename_length":26,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"6bed7eb9432a31b217f0e34b25fcb715631bc05f3e1949e7678f06cc6cc6e993"},"kind":"missing_from_checkout","path_sha256":"6a0f236132211b9633e1af76a22dc681b2a0a5c3127cff28fb273c23c696e9ba","sensitive_path":true,"suffix":".md"},{"basename_length":33,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"03a40752aff61bc454e2087a0b32de4dfc8441d8dcf968d1a5ca726995e0e8df"},"kind":"missing_from_checkout","path_sha256":"d7a9c39ea6d0c8a7a32946ad5f6ea9d5c05f9d043fb2fac37d35fae7f7db2135","sensitive_path":true,"suffix":""},{"basename_length":9,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:47:secrets/*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"497890c3ee641ac24cb043e3d1c4d3097e785f90541fd6f46fc58a94cf1fad59"},"kind":"missing_from_checkout","path_sha256":"3c04304cd1f920c5da0b385e24e0c58089655809ecf01afdb4118da559a0bff0","sensitive_path":true,"suffix":".md"},{"basename_length":16,"depth":8,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.sh\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"9658a5115eee789ce42083a24b49f428846e564cd8dc50efe3fdce5955b4f6cd"},"kind":"missing_from_checkout","path_sha256":"535e8fd31db685820b50c7d2b39ef39231de37a09ba5721896bfe93ef6e4caad","sensitive_path":true,"suffix":".sh"},{"basename_length":22,"depth":8,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.sh\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"65f40742fc1ec0d09a9acb6877eb0b147d7ade8ae13d54a35af65602f843096f"},"kind":"missing_from_checkout","path_sha256":"e7a87f3d36d8f47b6bb474e00c9a58d6559461add004344555b2dc54ae4a7712","sensitive_path":true,"suffix":".sh"},{"basename_length":36,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.py\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"09ee779100f326a11557a44c8046d16e2134c5d530e9ccb4c9c17b59ea6e9d3c"},"kind":"missing_from_checkout","path_sha256":"b9e6fb675276fcc5dd88fc842e96ccc14c53b610ed0cd9822864f686fc4eb03b","sensitive_path":true,"suffix":".py"}],"anomalies_truncated":0,"commit_tree_matches_capture_report":false,"expected_file_count":4383,"expected_total_bytes":28903906,"expected_tree_sha256":"ee05dc5ea7ab8ad354a66a5c5ffee7a982734125719d94d351d677ca75674062","file_count":4309,"file_count_matches_capture_report":false,"ignored_missing_count":74,"manifest_command_id":"GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z","manifest_consistent_with_commit":false,"manifest_entries":4382,"manifest_invalid_paths":0,"manifest_missing_files":74,"manifest_only_count":74,"manifest_only_path_hashes":[{"basename_length":36,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"1831ab715f1a23930712ec363c2df210519d9a8e63ab21050af976806c462319","sensitive_path":true,"suffix":".tsv"},{"basename_length":34,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"c2068a915ab0f0cd8086e7251b2406b4de17cd813988229b179a71e6eea49a0c","sensitive_path":true,"suffix":".tsv"},{"basename_length":20,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"eb860700333344be2f70c57bfab9fcdb5fc959fc241019e0e55898793e2c530c","sensitive_path":true,"suffix":".env"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"f1a246ef882c692f3e7676d2009a5a0738904f4aee2e5b23ac832e6442e23159","sensitive_path":true,"suffix":".log"},{"basename_length":19,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"46c726ae03ab26e7d67c925492f53ea0fa143a2d93f9fc91f4766da8cadb865e","sensitive_path":true,"suffix":".log"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"683a786ccd0903852c34e18b2ee47a3270fc44a8a174c7ae37d27260ed35d870","sensitive_path":true,"suffix":".log"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"d70b5961cf40d476336611938313bf4f984caa86367034f982e63f4f335ff9af","sensitive_path":true,"suffix":".tsv"},{"basename_length":21,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"87fddbce4d9ee1002e548ca86665cb89db8d789c1df8ef3b0cc60ea183d7477e","sensitive_path":true,"suffix":".log"},{"basename_length":40,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"206c0b2917281b76b3cc6113e55545a2d037982a20970eefdb7ae7bbbae71443","sensitive_path":true,"suffix":".log"},{"basename_length":42,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"89150ce2e53b3a822590fac08a069419a5fe087dadb20c07f54d7574935d3bd0","sensitive_path":true,"suffix":".log"},{"basename_length":33,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"325d9502c86190630eb0c655b0c9d84c4bf098e6ba4a6f8faf93d0cc2bde5b40","sensitive_path":true,"suffix":".log"},{"basename_length":42,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"f192560f9e1fb9fad21ad81749d8f69aaecd79bb442735aa5c01d42d8f18f3d9","sensitive_path":true,"suffix":".tsv"},{"basename_length":41,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"b76d9833fe6db3eacc435aa2903d5a66cc477cbcd49300bec1fdd4190eb0d66e","sensitive_path":true,"suffix":".tsv"},{"basename_length":36,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"0a37f3428e86c3b86e72e2ff56aabd60e73f01f9970cf50962c1295636e805d8","sensitive_path":true,"suffix":".tsv"},{"basename_length":29,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"a2ac117952ccea622345bb6148acbff3ef5ed20a3e5ec4d9925190dac39f26f3","sensitive_path":true,"suffix":".tsv"},{"basename_length":39,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"262f0dc79b7997d36058b3937c925c85d21784c07ab6b5ba4043cb11e6a762f0","sensitive_path":true,"suffix":".txt"},{"basename_length":43,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"55d7edc8a6446a60ce484b35c64c88647508903264c20a2188c959d4498620ce","sensitive_path":true,"suffix":".tsv"},{"basename_length":41,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"1f146757dd427ba94db10f8cb7a28b442f7dfbc3dc7db97738faa37bbd6cab64","sensitive_path":true,"suffix":".md"},{"basename_length":42,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"b3b3d8296f1af449d288c2736bfbfa2accbcde10ae34b0efe8bde8375c9388ec","sensitive_path":true,"suffix":".tsv"},{"basename_length":39,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"12f015430ad9424a19dfe30db5b95dad23ecf63e7815f10af4ceb815267d5cc9","sensitive_path":true,"suffix":".state"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"f8e733dec894be535a3f55bec4243442f1b90fac15fef5356ebdf9c912d9923d","sensitive_path":true,"suffix":".bak-20260626t172508z-sec02-4-to-3"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"8c29698be41912729278dacb43ab65afecfd575c1b4f2e2b4c36b43da49c8247","sensitive_path":true,"suffix":".bak-20260626t172523z-sec03-3-to-2"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"aaf18ffde71b6473596bb7c92040719cbfc119ecc93fa87487250a9d071fb301","sensitive_path":true,"suffix":".bak-20260626t172535z-sec04-2-to-1"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"e62fcb5f18e96be2401274c6e4bfe4a00b083e06433909d6b39f4b20351476cb","sensitive_path":true,"suffix":".bak-20260626t172547z-sec05-1-to-0"},{"basename_length":29,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"221cbee473501ee3e126b8e29602ad5fbf9842b9746137aff0a33eb30d6c2ed4","sensitive_path":true,"suffix":".tsv"},{"basename_length":43,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"99565b640d90eb8ddbd13d276ab6aa01aad1ea72771cd5a2b12e928723171ba6","sensitive_path":true,"suffix":".tsv"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"315926ca6f4f110ee475ea3392cc3e34f03856f87fdd1e1c23b6c013f3f7ae20","sensitive_path":true,"suffix":".tsv"},{"basename_length":38,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"d0a1f552e44ee3cc70c58a889001f15abab3d5105c7392997bbfe052379c42c9","sensitive_path":true,"suffix":".md"},{"basename_length":34,"depth":8,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"72a8c29f3c2e8e99a038a3447e7f459881cafb9be6b59ccbdb87b5056613a21a","sensitive_path":true,"suffix":".md"},{"basename_length":24,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"b5dba4d253ce4cfce27a99d1a2cc7aeeb4eb607bfc628c6e7d5e49498fa6eda1","sensitive_path":true,"suffix":".txt"},{"basename_length":29,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"8b6160f09289bf95e9011d5d2532bdfdace7151018bf14cddc167f61f39a05eb","sensitive_path":true,"suffix":".txt"},{"basename_length":23,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"7491d29ffb10110b9780e4c7b17379e5c92cc8b3b13a4cec215977c362aa7d89","sensitive_path":true,"suffix":".txt"},{"basename_length":26,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"c7a26319f7ce7a28a5d2652b0971d750620337110fb656676c98c5ed76f2d9ae","sensitive_path":true,"suffix":".txt"},{"basename_length":23,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"a7bee84809250a23b6e273c1663691bb7aa08f1f6e41dc2241bf6fd664220dca","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"af4f654bca9d5e77acb1ac87dc25551aace1adc3a1530bbeb3dd201177034d3d","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"0926fcd8278044b8e3e7ac54865790187ca3ba21c304055b9632f4e656bf0c66","sensitive_path":true,"suffix":".txt"},{"basename_length":28,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"df2357b50958070a518d8712dda0d0b0ff4dba9c56562ccc208b7e76e8fd9107","sensitive_path":true,"suffix":".txt"},{"basename_length":21,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"d5a2d14f9ee2d03202d4a9f9d75e4c09264e896aa470af23471a3e5a4c0e62c5","sensitive_path":true,"suffix":".txt"},{"basename_length":21,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"536ebafe24b85ae222b2a5af56cb5cb5c876d5d73509bb938f7338d563e31ac8","sensitive_path":true,"suffix":".txt"},{"basename_length":15,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"c5684c73fe33566cba19bfc41131dd3794e305cfc3690e97ec47b83b802f6e55","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"9cfbd1460ca38ec3f446d9f3d0ee0cc596e930c3fad3296308b8516e2ba6d43c","sensitive_path":true,"suffix":".txt"},{"basename_length":22,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"1a2815578e337b7334268bd26030da8ad67dab65e7b05995d3f2884d868f0c31","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"ac066c46b9e0b9ea72d698ed93c6b54ae2471412551fd147e207df6cf863ba59","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"0dbd50676c80dca8ab0c5fda3529a2827908092d046fb6ae41413db3d7693fbc","sensitive_path":true,"suffix":".txt"},{"basename_length":28,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"603499f9228d7bff75161418bd6edd568d5333e6406abd87915f2d6262329189","sensitive_path":true,"suffix":".txt"},{"basename_length":25,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"3b602efd8d7209b2fb372b830ebc57ab10647ed060b3538d35e44cb009c5fc39","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"aa93d47b4e8337b1eb74f195cb5fc25a51d821f0d4fbd17bebda61e25e645884","sensitive_path":true,"suffix":".txt"},{"basename_length":30,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"5b40627afbcc850a12211e2c4486456b84075a3e45e2a16a96f94a6e817f427e","sensitive_path":true,"suffix":".txt"},{"basename_length":20,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"aeb6473b0194be1ee5311743ff57e751d2a1e65377c1be7417c04937eea5ff9e","sensitive_path":true,"suffix":".txt"},{"basename_length":24,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"2b6e5bfb31cce087b75cc373f2fe676d84a4e09a5de1028aa47c9a280fcddbd4","sensitive_path":true,"suffix":".txt"},{"basename_length":18,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"911a07e99ec8925526151a0183830f33a6e183fbe3066ce6eb8140f4c89fff66","sensitive_path":true,"suffix":".txt"},{"basename_length":24,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"11efcb2cdb6caa4bc0d7cf2f5082d511a60e203034c7838355f5544f227cdf74","sensitive_path":true,"suffix":".txt"},{"basename_length":24,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"ea1bbc4d7326bf99f603aea2fc69219e183114138222164c1fa34425f701ae2b","sensitive_path":true,"suffix":".scan"},{"basename_length":25,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"0a60da401257e8d3d62622d35675b0aeeaa5b0c9987ae470f389bb9a84f67107","sensitive_path":true,"suffix":".txt"},{"basename_length":20,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"4eae326a00f039ed3f44104064c4c2fdea14fe9d76e3af66e3379669d2916022","sensitive_path":true,"suffix":".txt"},{"basename_length":22,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"fe70268e02c773df3fbb87dba01c95c40da5d948585327ec65fd5290860aa913","sensitive_path":true,"suffix":".txt"},{"basename_length":19,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"639767b08819a36ef1d907e1934e6bbd354e621488194f75aa06ced3e854074d","sensitive_path":true,"suffix":".raw"},{"basename_length":22,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"fcf87d70165391a6f54c5d6b1fe815822c9469a81287680eaee9ebd1d832ea16","sensitive_path":true,"suffix":".txt"},{"basename_length":22,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"4f4cdc4688bc2f146c33ec604a925e52063653b83ca317a59436b246b8694443","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"d0aa3459b11ba93537c86181bee9d357fdec62098c580a6d1c0cea83d2852d75","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"d1e501c34794fae94b0636e4df7638d766f5114ff2e5fcf5f7c0b52143368354","sensitive_path":true,"suffix":".txt"},{"basename_length":56,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"cf0a58341719e872b49bc4b02cd11e7d83b548e3581c8c8cd26cbd228b1e1d46","sensitive_path":true,"suffix":".md"},{"basename_length":49,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"e9d73c2c02c4b77e4d1a1e9ca03a3f5a29318aa80c4de6c5ac17763b36aa135d","sensitive_path":true,"suffix":".md"},{"basename_length":57,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"dab0b2de30b5cbe7ddb7c0af562cad07f3a08a463f77b7d7a3c464ef17c4b32d","sensitive_path":true,"suffix":".md"},{"basename_length":51,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"4db3c5f77435bc717163e8571e894eabf122de91be97b532ca5b93d322d82f62","sensitive_path":true,"suffix":".md"},{"basename_length":43,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"6a1ee1d3f3c2e845f44b24f8c4ebf1607aa47a7eaf7d7b51672e88a5b035e342","sensitive_path":true,"suffix":".md"},{"basename_length":43,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"32416b898e71d162602268191d7cb0aed22e9d5788fd96945c496759ca555875","sensitive_path":true,"suffix":".md"},{"basename_length":28,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"6335de79a3ccf4b63c70083a7ad96b5654143ca78290afca3a40f836f4a199b4","sensitive_path":true,"suffix":".md"},{"basename_length":26,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"6a0f236132211b9633e1af76a22dc681b2a0a5c3127cff28fb273c23c696e9ba","sensitive_path":true,"suffix":".md"},{"basename_length":33,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"d7a9c39ea6d0c8a7a32946ad5f6ea9d5c05f9d043fb2fac37d35fae7f7db2135","sensitive_path":true,"suffix":""},{"basename_length":9,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"3c04304cd1f920c5da0b385e24e0c58089655809ecf01afdb4118da559a0bff0","sensitive_path":true,"suffix":".md"},{"basename_length":36,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"b9e6fb675276fcc5dd88fc842e96ccc14c53b610ed0cd9822864f686fc4eb03b","sensitive_path":true,"suffix":".py"},{"basename_length":16,"depth":8,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"535e8fd31db685820b50c7d2b39ef39231de37a09ba5721896bfe93ef6e4caad","sensitive_path":true,"suffix":".sh"},{"basename_length":22,"depth":8,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"e7a87f3d36d8f47b6bb474e00c9a58d6559461add004344555b2dc54ae4a7712","sensitive_path":true,"suffix":".sh"}],"manifest_sha256":"e561f275b7d1c6656e1fa80ee77b6fe4858d1178b4d8a592450ac4036adec459","manifest_sha_mismatches":0,"manifest_size_mismatches":0,"manifest_snapshot_id":"20260731T071400Z","manifest_symlinks":0,"manifest_verified_files":4308,"nonignored_missing_count":0,"total_bytes":28684549,"total_bytes_matches_capture_report":false,"tracked_only_count":1,"tracked_only_path_hashes":[{"basename_length":19,"depth":1,"display":"manifest.final.json","path_sha256":"7e4eafd21b9aade5cc9f63c802f08c1efee3bd6fb0e7225c0e69179e7ac31adb","sensitive_path":false,"suffix":".json"}],"tree_sha256":"fdac2c317221e056500efb4c4750c5cf0b4325102f99f67bb566f818bca9d231","tree_sha_matches_capture_report":false,"unexpected_tracked_only_count":0}} +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +{"baseline_integrity":{"capture_report_tree_matches_commit":false,"commit_identity_verified":true,"manifest_matches_commit":false,"repair_required_before_site_editing":true,"status":"DEGRADED"},"capture_coverage":{"hosts_attempted":12,"hosts_failed":9,"hosts_successful":3,"public_http_assets":0,"public_http_pages":15,"quarantined_file_count":0,"site_host_count":3,"snapshot_id":"20260731T071400Z"},"changes_made":false,"command_id":"GRAM1-SITE-BASELINE-V7-COMPACT-VERIFIED-AUDIT-20260731T084000Z","editing_candidates":[{"detected_frameworks":["Docker Compose"],"discovery_score":144,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":1510,"snapshot":{"source_root":"/root/homelab-configs-worktree","stored_bytes":9347306,"stored_files":1322,"truncated":false},"source_root":"/root/homelab-configs-worktree"},{"detected_frameworks":["Docker Compose"],"discovery_score":129,"domain_match_count":1000,"host":"pve01","markers":[],"priority_score":1360,"snapshot":{"source_root":"/root/homelab-configs-worktree/docs","stored_bytes":6362627,"stored_files":764,"truncated":false},"source_root":"/root/homelab-configs-worktree/docs"},{"detected_frameworks":["Docker Compose"],"discovery_score":110,"domain_match_count":1000,"host":"pve01","markers":[],"priority_score":1170,"snapshot":{"source_root":"/root/homelab-configs-worktree/docs/operations","stored_bytes":5969079,"stored_files":699,"truncated":false},"source_root":"/root/homelab-configs-worktree/docs/operations"},{"detected_frameworks":["Docker Compose"],"discovery_score":95,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":1020,"snapshot":{"source_root":"/srv/homelab-desired-state","stored_bytes":1274899,"stored_files":957,"truncated":false},"source_root":"/srv/homelab-desired-state"},{"detected_frameworks":["Docker Compose"],"discovery_score":63,"domain_match_count":1000,"host":"pve01","markers":[],"priority_score":700,"snapshot":{"source_root":"/srv/homelab-desired-state/health","stored_bytes":231477,"stored_files":493,"truncated":false},"source_root":"/srv/homelab-desired-state/health"},{"detected_frameworks":["Docker Compose"],"discovery_score":32,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":370,"snapshot":null,"source_root":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation"},{"detected_frameworks":["Docker Compose"],"discovery_score":26,"domain_match_count":1000,"host":"pve01","markers":[],"priority_score":310,"snapshot":null,"source_root":"/srv/homelab-desired-state/sbin"},{"detected_frameworks":["Docker Compose"],"discovery_score":23,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":280,"snapshot":null,"source_root":"/srv/homelab-ops-worktrees/cr-2026-0015"},{"detected_frameworks":["Docker Compose"],"discovery_score":19,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":240,"snapshot":null,"source_root":"/root/homelab-ops-cr-2026-0004"},{"detected_frameworks":["Docker Compose"],"discovery_score":17,"domain_match_count":1000,"host":"pve01","markers":[".git"],"priority_score":220,"snapshot":null,"source_root":"/root/homelab-ops-cr-2026-0012"},{"detected_frameworks":[],"discovery_score":2,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":56,"snapshot":{"source_root":"/root/evidence/forum-prod-diag-20260629T032514Z","stored_bytes":852,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-diag-20260629T032514Z"},{"detected_frameworks":[],"discovery_score":2,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":56,"snapshot":{"source_root":"/root/evidence/forum-prod-os-baseline-20260629T034119Z","stored_bytes":14367,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-os-baseline-20260629T034119Z"},{"detected_frameworks":[],"discovery_score":1,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":46,"snapshot":{"source_root":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z","stored_bytes":242,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z"},{"detected_frameworks":[],"discovery_score":1,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":46,"snapshot":{"source_root":"/root/evidence/forum-prod-recover-20260629T025511Z","stored_bytes":1438,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-recover-20260629T025511Z"},{"detected_frameworks":[],"discovery_score":1,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":46,"snapshot":{"source_root":"/root/evidence/forum-prod-recreate-20260629T030810Z","stored_bytes":3490,"stored_files":3,"truncated":false},"source_root":"/root/evidence/forum-prod-recreate-20260629T030810Z"},{"detected_frameworks":[],"discovery_score":1,"domain_match_count":16,"host":"pve02","markers":[],"priority_score":26,"snapshot":null,"source_root":"/srv/homelab-desired-state/routerguard-tuya"}],"editing_start_here":"# Editing start: `gram1.ru`\n\nThis document lists the highest-confidence source and deployment roots discovered by the baseline.\n\n## Host `pve01`\n\n- Source candidate `/root/homelab-configs-worktree` — score 144; markers: .git.\n- Source candidate `/root/homelab-configs-worktree/docs` — score 129; markers: none.\n- Source candidate `/root/homelab-configs-worktree/docs/operations` — score 110; markers: none.\n- Source candidate `/srv/homelab-desired-state` — score 95; markers: .git.\n- Source candidate `/srv/homelab-desired-state/health` — score 63; markers: none.\n- Source candidate `/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation` — score 32; markers: .git.\n- Source candidate `/srv/homelab-desired-state/sbin` — score 26; markers: none.\n- Source candidate `/srv/homelab-ops-worktrees/cr-2026-0015` — score 23; markers: .git.\n- Source candidate `/root/homelab-ops-cr-2026-0004` — score 19; markers: .git.\n- Source candidate `/root/homelab-ops-cr-2026-0012` — score 17; markers: .git.\n- Snapshot `/root/homelab-configs-worktree`: 1322 files / 9347306 bytes; truncated=False.\n- Snapshot `/root/homelab-configs-worktree/docs`: 764 files / 6362627 bytes; truncated=False.\n- Snapshot `/root/homelab-configs-worktree/docs/operations`: 699 files / 5969079 bytes; truncated=False.\n- Snapshot `/srv/homelab-desired-state`: 957 files / 1274899 bytes; truncated=False.\n- Snapshot `/srv/homelab-desired-state/health`: 493 files / 231477 bytes; truncated=False.\n\n## Host `pve02`\n\n- Source candidate `/root/evidence/forum-prod-diag-20260629T032514Z` — score 2; markers: none.\n- Source candidate `/root/evidence/forum-prod-os-baseline-20260629T034119Z` — score 2; markers: none.\n- Source candidate `/root/evidence/forum-prod-offline-fix2-20260629T033832Z` — score 1; markers: none.\n- Source candidate `/root/evidence/forum-prod-recover-20260629T025511Z` — score 1; markers: none.\n- Source candidate `/root/evidence/forum-prod-recreate-20260629T030810Z` — score 1; markers: none.\n- Source candidate `/srv/homelab-desired-state/routerguard-tuya` — score 1; markers: none.\n- Snapshot `/root/evidence/forum-prod-diag-20260629T032514Z`: 3 files / 852 bytes; truncated=False.\n- Snapshot `/root/evidence/forum-prod-os-baseline-20260629T034119Z`: 3 files / 14367 bytes; truncated=False.\n- Snapshot `/root/evidence/forum-prod-offline-fix2-20260629T033832Z`: 3 files / 242 bytes; truncated=False.\n- Snapshot `/root/evidence/forum-prod-recover-20260629T025511Z`: 3 files / 1438 bytes; truncated=False.\n- Snapshot `/root/evidence/forum-prod-recreate-20260629T030810Z`: 3 files / 3490 bytes; truncated=False.\n\n## Host `pve03`\n\n- No source root, but domain/config evidence exists.\n\nBefore changing production, compare the selected source snapshot with the live source root and create a separate transactional change capsule with byte-for-byte backup and automatic rollback.\n","failed_hosts":[{"duration_seconds":10.366,"rc":142,"ssh_target":"root@[PRIVATE_IP]","stderr_excerpt":"","stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","target":"[PRIVATE_IP]"},{"duration_seconds":10.262,"rc":142,"ssh_target":"root@[PRIVATE_IP]","stderr_excerpt":"","stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","target":"[PRIVATE_IP]"},{"duration_seconds":7.011,"rc":255,"ssh_target":"root@95.84.154.183","stderr_excerpt":"ssh: connect to host 95.84.154.183 port 22: Connection timed out\n","stderr_sha256":"822e7fe8675a92bba9ea2fa5be5e7f07fc1732fad6587e4a2782ab7aa3a13ab2","target":"95.84.154.183"},{"duration_seconds":0.043,"rc":255,"ssh_target":"core-apps","stderr_excerpt":"ssh: Could not resolve hostname core-apps: Name or service not known\n","stderr_sha256":"86bbe345e27c855214639ebf8b3720a3bf1c37b869ad752d716acc184c0d685a","target":"core-apps"},{"duration_seconds":0.045,"rc":255,"ssh_target":"edge-vm","stderr_excerpt":"No ED25519 host key is known for edge-vm and you have requested strict checking.\nHost key verification failed.\n","stderr_sha256":"13687874591b23c2d4952604e4ab0452eddd1a96cb85f19569837efbc80c9252","target":"edge-vm"},{"duration_seconds":7.012,"rc":255,"ssh_target":"gram1.ru","stderr_excerpt":"ssh: connect to host gram1.ru port 22: Connection timed out\n","stderr_sha256":"ad807aa07abc5fbcc1f440ba12260b8b729eb6190945528d4a2b0a59356dcdf8","target":"gram1.ru"},{"duration_seconds":0.026,"rc":255,"ssh_target":"pve02.gram1.ru","stderr_excerpt":"No ED25519 host key is known for pve02.gram1.ru and you have requested strict checking.\nHost key verification failed.\n","stderr_sha256":"d8e727c5cd664102acb30b4c0cb37af5821351638c2a8682b07e89b7981242ec","target":"pve02.gram1.ru"},{"duration_seconds":0.025,"rc":255,"ssh_target":"pve03.gram1.ru","stderr_excerpt":"No ED25519 host key is known for pve03.gram1.ru and you have requested strict checking.\nHost key verification failed.\n","stderr_sha256":"5816dfdac31569bd9866c40dd0aeae58c8301f832c1cf07a5c9307250d3d570e","target":"pve03.gram1.ru"},{"duration_seconds":7.013,"rc":255,"ssh_target":"www.gram1.ru","stderr_excerpt":"ssh: connect to host www.gram1.ru port 22: Connection timed out\n","stderr_sha256":"f372535ea680bb6507bf04d94ab0ea76d7d6cd3ffe3948d8558550299211731b","target":"www.gram1.ru"}],"gitea_changed":false,"hosts":[{"candidate_source_roots":[{"markers":[".git"],"path":"/root/homelab-configs-worktree","reasons":["domain_match_parent"],"score":144},{"markers":[],"path":"/root/homelab-configs-worktree/docs","reasons":["domain_match_parent"],"score":129},{"markers":[],"path":"/root/homelab-configs-worktree/docs/operations","reasons":["domain_match_parent"],"score":110},{"markers":[".git"],"path":"/srv/homelab-desired-state","reasons":["domain_match_parent"],"score":95},{"markers":[],"path":"/srv/homelab-desired-state/health","reasons":["domain_match_parent"],"score":63},{"markers":[".git"],"path":"/srv/homelab-ops-worktrees/cr-2026-0017-inventory-foundation","reasons":["domain_match_parent"],"score":32},{"markers":[],"path":"/srv/homelab-desired-state/sbin","reasons":["domain_match_parent"],"score":26},{"markers":[".git"],"path":"/srv/homelab-ops-worktrees/cr-2026-0015","reasons":["domain_match_parent"],"score":23},{"markers":[".git"],"path":"/root/homelab-ops-cr-2026-0004","reasons":["domain_match_parent"],"score":19},{"markers":[".git"],"path":"/root/homelab-ops-cr-2026-0012","reasons":["domain_match_parent"],"score":17}],"container_count":1,"detected_frameworks":["Docker Compose"],"directory":"hosts/local","domain_match_count":1000,"fqdn":"pve01.gram1.ru","hostname":"pve01","packages":[],"source_inventory_totals":{"framework_marker_count":1,"package_count":0,"stored_bytes":25135855,"stored_files":4163},"source_snapshots":[{"source_root":"/root/homelab-configs-worktree","stored_bytes":9347306,"stored_files":1322,"truncated":false},{"source_root":"/root/homelab-configs-worktree/docs","stored_bytes":6362627,"stored_files":764,"truncated":false},{"source_root":"/root/homelab-configs-worktree/docs/operations","stored_bytes":5969079,"stored_files":699,"truncated":false},{"source_root":"/srv/homelab-desired-state","stored_bytes":1274899,"stored_files":957,"truncated":false},{"source_root":"/srv/homelab-desired-state/health","stored_bytes":231477,"stored_files":493,"truncated":false}],"systemd_service_count":12},{"candidate_source_roots":[{"markers":[],"path":"/root/evidence/forum-prod-diag-20260629T032514Z","reasons":["domain_match_parent"],"score":2},{"markers":[],"path":"/root/evidence/forum-prod-os-baseline-20260629T034119Z","reasons":["domain_match_parent"],"score":2},{"markers":[],"path":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z","reasons":["domain_match_parent"],"score":1},{"markers":[],"path":"/root/evidence/forum-prod-recover-20260629T025511Z","reasons":["domain_match_parent"],"score":1},{"markers":[],"path":"/root/evidence/forum-prod-recreate-20260629T030810Z","reasons":["domain_match_parent"],"score":1},{"markers":[],"path":"/srv/homelab-desired-state/routerguard-tuya","reasons":["domain_match_parent"],"score":1}],"container_count":0,"detected_frameworks":[],"directory":"hosts/pve02","domain_match_count":16,"fqdn":"pve02.gram1.ru","hostname":"pve02","packages":[],"source_inventory_totals":{"framework_marker_count":0,"package_count":0,"stored_bytes":29322,"stored_files":17},"source_snapshots":[{"source_root":"/root/evidence/forum-prod-diag-20260629T032514Z","stored_bytes":852,"stored_files":3,"truncated":false},{"source_root":"/root/evidence/forum-prod-os-baseline-20260629T034119Z","stored_bytes":14367,"stored_files":3,"truncated":false},{"source_root":"/root/evidence/forum-prod-offline-fix2-20260629T033832Z","stored_bytes":242,"stored_files":3,"truncated":false},{"source_root":"/root/evidence/forum-prod-recover-20260629T025511Z","stored_bytes":1438,"stored_files":3,"truncated":false},{"source_root":"/root/evidence/forum-prod-recreate-20260629T030810Z","stored_bytes":3490,"stored_files":3,"truncated":false}],"systemd_service_count":10},{"candidate_source_roots":[],"container_count":0,"detected_frameworks":[],"directory":"hosts/pve03","domain_match_count":6,"fqdn":"pve03.gram1.ru","hostname":"pve03","packages":[],"source_inventory_totals":{"framework_marker_count":0,"package_count":0,"stored_bytes":6,"stored_files":2},"source_snapshots":[],"systemd_service_count":10}],"identity":{"branch":"site-gram1-ru-baseline-20260731","capture_capsule_sha256":"a7ad06c722755f0398118f4e20383e339bf2dd48d24e26c451d8644a6be7f515","capture_command_id":"GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z","commit_sha":"f9d3ba8caf65005605aa8aee2ede7e4e7e94ee49","contract_sha256":"25eda14e622fd33864289d1515b2d3c4a92de0a1073aae81093afaae5a98788e","repo":"https://git.gram1.ru/homelab-admin/homelab-ops.git","snapshot_path":"sites/gram1.ru/baseline/20260731T071400Z"},"mutation_outcome":"NO_MUTATION","next_decision":"REPAIR_BASELINE_METADATA_BEFORE_EDITING","output_json_bytes_before_size_field":72880,"output_json_sha256_before_hash_field":"41dcf79b1a601f1f065089fce34cd808986b98e4f568d0c5b19dea405e3c1cf3","production_site_changed":false,"public_http":{"asset_count":0,"page_count":15,"pages":[{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonical_count":0,"content_type":"text/html; charset=utf-8","error":"","final_url":"https://gram1.ru/login","form_count":1,"heading_count":1,"requested_url":"http://gram1.ru/","script_count":0,"status":200,"style_count":0,"title":"Gram Crypto"},{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonical_count":0,"content_type":"text/html; charset=utf-8","error":"","final_url":"https://www.gram1.ru/login","form_count":1,"heading_count":1,"requested_url":"http://www.gram1.ru/","script_count":0,"status":200,"style_count":0,"title":"Gram Crypto"},{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonical_count":0,"content_type":"text/html; charset=utf-8","error":"","final_url":"https://gram1.ru/login","form_count":1,"heading_count":1,"requested_url":"https://gram1.ru/","script_count":0,"status":200,"style_count":0,"title":"Gram Crypto"},{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonical_count":0,"content_type":"text/html; charset=utf-8","error":"","final_url":"https://www.gram1.ru/login","form_count":1,"heading_count":1,"requested_url":"https://www.gram1.ru/","script_count":0,"status":200,"style_count":0,"title":"Gram Crypto"},{"body_bytes":1088,"body_sha256":"66b06909949879d84757d0f96be74eebf1db40f35de22b625ea67e85e1bbdae2","canonical_count":0,"content_type":"text/html; charset=utf-8","error":"","final_url":"https://gram1.ru/login","form_count":1,"heading_count":1,"requested_url":"https://gram1.ru/login","script_count":0,"status":200,"style_count":0,"title":"Gram Crypto"},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/robots.txt","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/robots.txt","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/sitemap.xml","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/sitemap.xml","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/.well-known/security.txt","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/.well-known/security.txt","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/favicon.ico","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/favicon.ico","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/manifest.json","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/manifest.json","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/site.webmanifest","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/site.webmanifest","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":66,"body_sha256":"fd4986bd7a591f1af722b4ec29bedeb8b7137d0e296fe22f086a1122b61d94e0","canonical_count":0,"content_type":"application/json","error":"","final_url":"https://gram1.ru/health","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/health","script_count":0,"status":200,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/status","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/status","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/api","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/api","script_count":0,"status":404,"style_count":0,"title":""},{"body_bytes":22,"body_sha256":"37ec4665a8102d115ffd1ac20dae94c98b4dac64b0c1a68228aa2a531caeb35d","canonical_count":0,"content_type":"application/json","error":"HTTPError:404","final_url":"https://gram1.ru/api/health","form_count":0,"heading_count":0,"requested_url":"https://gram1.ru/api/health","script_count":0,"status":404,"style_count":0,"title":""}],"stored_asset_bytes":0},"rc":0,"rollback_restored":null,"rollback_started":false,"schema":1,"status":"OK","verification":{"anomalies":[{"basename_length":36,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"03f2ff4c2e76505c2381f369a4e377442a546153331cf9dae7cb43247394a8df"},"kind":"missing_from_checkout","path_sha256":"1831ab715f1a23930712ec363c2df210519d9a8e63ab21050af976806c462319","sensitive_path":true,"suffix":".tsv"},{"basename_length":34,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"047676a85d8479d57bc3895ccfd651d02ee971b84338c80aab36bece3a52e3ee"},"kind":"missing_from_checkout","path_sha256":"c2068a915ab0f0cd8086e7251b2406b4de17cd813988229b179a71e6eea49a0c","sensitive_path":true,"suffix":".tsv"},{"basename_length":20,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:1:*.env\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/APP05-monitoring.env\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"66b5259ef62561b83fb0a2303c912122cbf5c014e6c31d8a626f7ea5e09a6633"},"kind":"missing_from_checkout","path_sha256":"eb860700333344be2f70c57bfab9fcdb5fc959fc241019e0e55898793e2c530c","sensitive_path":true,"suffix":".env"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ03-shellcheck-repo-scan.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1a221a76afc8ec4b5704e76e1108ac709b5ad35c55ec0a59e747ab77f81accb9"},"kind":"missing_from_checkout","path_sha256":"f1a246ef882c692f3e7676d2009a5a0738904f4aee2e5b23ac832e6442e23159","sensitive_path":true,"suffix":".log"},{"basename_length":19,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ04-yaml-scan.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"5935691291c6ab9f8eca95314af9ea915a8bed577fae6d1e2df310518cdb3b4f"},"kind":"missing_from_checkout","path_sha256":"46c726ae03ab26e7d67c925492f53ea0fa143a2d93f9fc91f4766da8cadb865e","sensitive_path":true,"suffix":".log"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:26:*.log\tsites/gram1.<REDACTED_TOKEN>.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"c99ff35147a0efb6f140e5b87bc960634c887ecc4218581429a5ef73976bd664"},"kind":"missing_from_checkout","path_sha256":"683a786ccd0903852c34e18b2ee47a3270fc44a8a174c7ae37d27260ed35d870","sensitive_path":true,"suffix":".log"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"808fd4bfc3df94d117481ba3a3a8a630079251d1e76a3e7514c64b6995828e9a"},"kind":"missing_from_checkout","path_sha256":"d70b5961cf40d476336611938313bf4f984caa86367034f982e63f4f335ff9af","sensitive_path":true,"suffix":".tsv"},{"basename_length":21,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ06-dotenv-scan.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1c47dd82be44861aa786c9aa2589d9641c1126e6e1fbd44a54648c53f737b8b6"},"kind":"missing_from_checkout","path_sha256":"87fddbce4d9ee1002e548ca86665cb89db8d789c1df8ef3b0cc60ea183d7477e","sensitive_path":true,"suffix":".log"},{"basename_length":40,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08-precommit-config-syntax-review.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"119530731ea7e805303a0998f971cf40bceba98d06ddaa8a4a18ec56b3721e13"},"kind":"missing_from_checkout","path_sha256":"206c0b2917281b76b3cc6113e55545a2d037982a20970eefdb7ae7bbbae71443","sensitive_path":true,"suffix":".log"},{"basename_length":42,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08R2-precommit-config-syntax-review.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"67831af293e57808753270db02a81ca060194fcf195d87cf2fe7105427416395"},"kind":"missing_from_checkout","path_sha256":"89150ce2e53b3a822590fac08a069419a5fe087dadb20c07f54d7574935d3bd0","sensitive_path":true,"suffix":".log"},{"basename_length":33,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/.gitignore:26:*.log\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/docs/operations/ideal-cluster-run-state/ideal-cluster-20260626T054800Z-evidence/CIQ08R3-precommit-yaml-repair.log\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"4e3e110774e148db6e2a0b25465caf1b4adf220ffe7fd258c9199ca2c79f0652"},"kind":"missing_from_checkout","path_sha256":"325d9502c86190630eb0c655b0c9d84c4bf098e6ba4a6f8faf93d0cc2bde5b40","sensitive_path":true,"suffix":".log"},{"basename_length":42,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"aa4d5dd3a43785dbfad1e76726bcdee209cc4b96b39601d2135d0a9af8dcdbec"},"kind":"missing_from_checkout","path_sha256":"f192560f9e1fb9fad21ad81749d8f69aaecd79bb442735aa5c01d42d8f18f3d9","sensitive_path":true,"suffix":".tsv"},{"basename_length":41,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"650c68d3d7f9c5237028a8c4966350b8e1b59ba1e7d4eeb39ad92d48661ac5ee"},"kind":"missing_from_checkout","path_sha256":"b76d9833fe6db3eacc435aa2903d5a66cc477cbcd49300bec1fdd4190eb0d66e","sensitive_path":true,"suffix":".tsv"},{"basename_length":36,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d9ede7c80ced2339333a1fe0eb7593387ba71fed69ce9c0e344d21b2c002e844"},"kind":"missing_from_checkout","path_sha256":"0a37f3428e86c3b86e72e2ff56aabd60e73f01f9970cf50962c1295636e805d8","sensitive_path":true,"suffix":".tsv"},{"basename_length":29,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"7f59ba740e83a41db3384eae87e82169322bbee48ba12e1c7b4f56660bcaeea0"},"kind":"missing_from_checkout","path_sha256":"a2ac117952ccea622345bb6148acbff3ef5ed20a3e5ec4d9925190dac39f26f3","sensitive_path":true,"suffix":".tsv"},{"basename_length":39,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"6cd44b62ad80d0f9338ac669ea5984b8d32ab261140e07cd2f6d9bf95470835e"},"kind":"missing_from_checkout","path_sha256":"262f0dc79b7997d36058b3937c925c85d21784c07ab6b5ba4043cb11e6a762f0","sensitive_path":true,"suffix":".txt"},{"basename_length":43,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"02514e588fc1d8bbf50242cb78c45cbfc23cd4508c4d65f6d7fbab1ff3806a89"},"kind":"missing_from_checkout","path_sha256":"55d7edc8a6446a60ce484b35c64c88647508903264c20a2188c959d4498620ce","sensitive_path":true,"suffix":".tsv"},{"basename_length":41,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"8a03fa69b7bfe09c8b2c0e5f4defb12245ed51faf2bd2c03099ab13919cbd968"},"kind":"missing_from_checkout","path_sha256":"1f146757dd427ba94db10f8cb7a28b442f7dfbc3dc7db97738faa37bbd6cab64","sensitive_path":true,"suffix":".md"},{"basename_length":42,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"9b282098628ad289a6f4bdea7ea04a28a473545ab44f5823faf1af34c0945355"},"kind":"missing_from_checkout","path_sha256":"b3b3d8296f1af449d288c2736bfbfa2accbcde10ae34b0efe8bde8375c9388ec","sensitive_path":true,"suffix":".tsv"},{"basename_length":39,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\tsites/gram1.<REDACTED_TOKEN>.state\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"b0c5d1d773fa3f1844f1f3cfa309082cc8672c2c78289d5f1752f480242040a0"},"kind":"missing_from_checkout","path_sha256":"12f015430ad9424a19dfe30db5b95dad23ecf63e7815f10af4ceb815267d5cc9","sensitive_path":true,"suffix":".state"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172508Z-SEC02-4-to-3\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d5b8b7ddf4135fe2e4a84563c2904c5108fed062c880d2ef7fd3d7ce0a25437e"},"kind":"missing_from_checkout","path_sha256":"f8e733dec894be535a3f55bec4243442f1b90fac15fef5356ebdf9c912d9923d","sensitive_path":true,"suffix":".bak-20260626t172508z-sec02-4-to-3"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172523Z-SEC03-3-to-2\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"3123820d65de7be54ccf53e5ccc4ea06f36cfe74772031c3ea2bf60785d5a90e"},"kind":"missing_from_checkout","path_sha256":"8c29698be41912729278dacb43ab65afecfd575c1b4f2e2b4c36b43da49c8247","sensitive_path":true,"suffix":".bak-20260626t172523z-sec03-3-to-2"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172535Z-SEC04-2-to-1\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"58390eebf40c037ad26ed36255abe05677080000eb99a32e9e61c4cf99e2a523"},"kind":"missing_from_checkout","path_sha256":"aaf18ffde71b6473596bb7c92040719cbfc119ecc93fa87487250a9d071fb301","sensitive_path":true,"suffix":".bak-20260626t172535z-sec04-2-to-1"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:4:*SECRET*\tsites/gram1.<REDACTED_TOKEN>.state.bak-20260626T172547Z-SEC05-1-to-0\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d6a967aa21691825de7e26409a894c8f9b4d33dd016cb1792ca12c38a23ee4e2"},"kind":"missing_from_checkout","path_sha256":"e62fcb5f18e96be2401274c6e4bfe4a00b083e06433909d6b39f4b20351476cb","sensitive_path":true,"suffix":".bak-20260626t172547z-sec05-1-to-0"},{"basename_length":29,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"26add47b447812492386a7841eaff1600964beb7d9ee32d8487ee0ccba7eca23"},"kind":"missing_from_checkout","path_sha256":"221cbee473501ee3e126b8e29602ad5fbf9842b9746137aff0a33eb30d6c2ed4","sensitive_path":true,"suffix":".tsv"},{"basename_length":43,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1c3b1c497c5b3f915a056adf6fc8057d251e4564a4c1bb84ac7bf9d184164846"},"kind":"missing_from_checkout","path_sha256":"99565b640d90eb8ddbd13d276ab6aa01aad1ea72771cd5a2b12e928723171ba6","sensitive_path":true,"suffix":".tsv"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.tsv\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"8385fcbff8e32b20a491f241d44139451a2d01e42da23e02adc916206d718b81"},"kind":"missing_from_checkout","path_sha256":"315926ca6f4f110ee475ea3392cc3e34f03856f87fdd1e1c23b6c013f3f7ae20","sensitive_path":true,"suffix":".tsv"},{"basename_length":38,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"95f3a9ad4434bae963aa8571d12482f456bf6e625c5d6a5bd2eea0f6ab5811b6"},"kind":"missing_from_checkout","path_sha256":"d0a1f552e44ee3cc70c58a889001f15abab3d5105c7392997bbfe052379c42c9","sensitive_path":true,"suffix":".md"},{"basename_length":34,"depth":8,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0b40be06fa1569553dfcb1268f259bc244e3e9749962c310c902ea585bf6aed6"},"kind":"missing_from_checkout","path_sha256":"72a8c29f3c2e8e99a038a3447e7f459881cafb9be6b59ccbdb87b5056613a21a","sensitive_path":true,"suffix":".md"},{"basename_length":24,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p0-restore-drill-20260624T122122Z/edge-health-redacted.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1d5c441b47ab4c8ce70ad3d8da8ad8e4f63b55ac276a68134aad17f915e81378"},"kind":"missing_from_checkout","path_sha256":"b5dba4d253ce4cfce27a99d1a2cc7aeeb4eb607bfc628c6e7d5e49498fa6eda1","sensitive_path":true,"suffix":".txt"},{"basename_length":29,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p0-restore-drill-20260624T122122Z/nextcloud-health-redacted.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"8ffa9e5091874e8dc2ab0ee11c77d4e0991f0e8968aa9276ab3c6bb1c45ee349"},"kind":"missing_from_checkout","path_sha256":"8b6160f09289bf95e9011d5d2532bdfdace7151018bf14cddc167f61f39a05eb","sensitive_path":true,"suffix":".txt"},{"basename_length":23,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-disk-retention-20260624T122906Z/edge-disk-retention.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"88184ac4e6712127751e95a372fea3c4a962dcbb1b6f337479d96d9fd80ab9ab"},"kind":"missing_from_checkout","path_sha256":"7491d29ffb10110b9780e4c7b17379e5c92cc8b3b13a4cec215977c362aa7d89","sensitive_path":true,"suffix":".txt"},{"basename_length":26,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-gotify-bind-local-20260624T142534Z/edge-gotify-bind-local.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"b539d8ab20e1c3d7ae183e62a758517970c84e1526eacd74ca52e16821c698c7"},"kind":"missing_from_checkout","path_sha256":"c7a26319f7ce7a28a5d2652b0971d750620337110fb656676c98c5ed76f2d9ae","sensitive_path":true,"suffix":".txt"},{"basename_length":23,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-gotify-bind-local-20260624T142534Z/pve01-gotify-checks.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0f7f7148f79dd4ebb21c675c7148338706c14059f639f83635ac5adb9410c70f"},"kind":"missing_from_checkout","path_sha256":"a7bee84809250a23b6e273c1663691bb7aa08f1f6e41dc2241bf6fd664220dca","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-npmplus-admin-bind-20260624T141458Z/edge-npmplus-admin-bind.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"2282ec1067cddacb51705ed0ed31c14136871dd45abad0220a409aa4eee553d2"},"kind":"missing_from_checkout","path_sha256":"af4f654bca9d5e77acb1ac87dc25551aace1adc3a1530bbeb3dd201177034d3d","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-private-vpn-real-fix-20260624T140710Z/edge-private-vpn-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"edec1d3140869a10e9b292b7fc2160ad7635b535b7148a499cb9ab18d87ca3ba"},"kind":"missing_from_checkout","path_sha256":"0926fcd8278044b8e3e7ac54865790187ca3ba21c304055b9632f4e656bf0c66","sensitive_path":true,"suffix":".txt"},{"basename_length":28,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-private-vpn-real-fix-20260624T140710Z/pve01-private-vpn-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"66c2985c8bc9946d9c9a5e6933690564f0237b887f1e172b69897ddfa579fb72"},"kind":"missing_from_checkout","path_sha256":"df2357b50958070a518d8712dda0d0b0ff4dba9c56562ccc208b7e76e8fd9107","sensitive_path":true,"suffix":".txt"},{"basename_length":21,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-20260624T133115Z/edge-final-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"a85ae485f382cee6a2b0bb9aacc17a7efd24b47da313633cf927ba357a42ca7f"},"kind":"missing_from_checkout","path_sha256":"d5a2d14f9ee2d03202d4a9f9d75e4c09264e896aa470af23471a3e5a4c0e62c5","sensitive_path":true,"suffix":".txt"},{"basename_length":21,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-20260624T133115Z/pve01-final-state.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"019e69a626941daf634eda8a19d0456d017143f98db96091c4eeab77bc833ae0"},"kind":"missing_from_checkout","path_sha256":"536ebafe24b85ae222b2a5af56cb5cb5c876d5d73509bb938f7338d563e31ac8","sensitive_path":true,"suffix":".txt"},{"basename_length":15,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-kuma-fix-20260624T133456Z/edge-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"fd15af0ea3cbe0e2b3d6155b4900d95744ca386450aa388c03e321f097274fbf"},"kind":"missing_from_checkout","path_sha256":"c5684c73fe33566cba19bfc41131dd3794e305cfc3690e97ec47b83b802f6e55","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-repo-hygiene-kuma-fix-20260624T133456Z/pve01-private-vpn-hosts.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"025d903f5f632e06c2e383d5bf57b25ad34138b913e5ccda38f7ece8f8ab01be"},"kind":"missing_from_checkout","path_sha256":"9cfbd1460ca38ec3f446d9f3d0ee0cc596e930c3fad3296308b8516e2ba6d43c","sensitive_path":true,"suffix":".txt"},{"basename_length":22,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/edge-router-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0942367c3059c732b0b573aa92f1953bf1a06264e5f8c2942ccb3e374a4a19c2"},"kind":"missing_from_checkout","path_sha256":"1a2815578e337b7334268bd26030da8ad67dab65e7b05995d3f2884d868f0c31","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/nextcloud-turn-router-state.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"4e00d28ba20e8271c7791515143b9d9d01a23e8ec54a4b1348dfdb5309a1a16a"},"kind":"missing_from_checkout","path_sha256":"ac066c46b9e0b9ea72d698ed93c6b54ae2471412551fd147e207df6cf863ba59","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/pve01-router-hairpin-probes.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"26116733b46159e8fd195f2b63902401234fffec19bd8d479933cd96d689f5b2"},"kind":"missing_from_checkout","path_sha256":"0dbd50676c80dca8ab0c5fda3529a2827908092d046fb6ae41413db3d7693fbc","sensitive_path":true,"suffix":".txt"},{"basename_length":28,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-audit-20260624T144403Z/targeted-udp-tag-summary.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"96efef84756c9eede803867db1385590f67db29052a2d761b345afffa21e0172"},"kind":"missing_from_checkout","path_sha256":"603499f9228d7bff75161418bd6edd568d5333e6406abd87915f2d6262329189","sensitive_path":true,"suffix":".txt"},{"basename_length":25,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-router-hardening-20260624T125534Z/edge-router-hardening.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"92ecf926a745ba9ba3417d86b19e7531683e82b223b20a4888521c4627834ca1"},"kind":"missing_from_checkout","path_sha256":"3b602efd8d7209b2fb372b830ebc57ab10647ed060b3538d35e44cb009c5fc39","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.<REDACTED_TOKEN>.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"720f06b9c143aa5b7c076b595302eee0e9c7b11e328c78220480112036f3f61f"},"kind":"missing_from_checkout","path_sha256":"aa93d47b4e8337b1eb74f195cb5fc25a51d821f0d4fbd17bebda61e25e645884","sensitive_path":true,"suffix":".txt"},{"basename_length":30,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.<REDACTED_TOKEN>.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0a2e2b004aea530f98353fd1970302d7dbca63f45fc0e79b61069edd198e419d"},"kind":"missing_from_checkout","path_sha256":"5b40627afbcc850a12211e2c4486456b84075a3e45e2a16a96f94a6e817f427e","sensitive_path":true,"suffix":".txt"},{"basename_length":20,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-turn-3478-20260624T143023Z/edge-turn-health.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"0602b60258928991089d7c408309cc1b12386a1b9ca4744d0cbdaf2181a45755"},"kind":"missing_from_checkout","path_sha256":"aeb6473b0194be1ee5311743ff57e751d2a1e65377c1be7417c04937eea5ff9e","sensitive_path":true,"suffix":".txt"},{"basename_length":24,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-turn-3478-20260624T143023Z/nextcloud-turn-state.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"a4c1926f01dc80bd1995968ebedb218c86ba90d0ef44fb196bfcbea0f709e06b"},"kind":"missing_from_checkout","path_sha256":"2b6e5bfb31cce087b75cc373f2fe676d84a4e09a5de1028aa47c9a280fcddbd4","sensitive_path":true,"suffix":".txt"},{"basename_length":18,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/backup-summary.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"5b988574d368c653a905be750f9126d128c3693bc9b75f7f58faa2a8ed203924"},"kind":"missing_from_checkout","path_sha256":"911a07e99ec8925526151a0183830f33a6e183fbe3066ce6eb8140f4c89fff66","sensitive_path":true,"suffix":".txt"},{"basename_length":24,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/current-fingerprints.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"21aa40c6b652a0fe7e97d9ad89ad6291b1591de6f4368f085a33cb28732815df"},"kind":"missing_from_checkout","path_sha256":"11efcb2cdb6caa4bc0d7cf2f5082d511a60e203034c7838355f5544f227cdf74","sensitive_path":true,"suffix":".txt"},{"basename_length":24,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/current-known-hosts.scan\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"b896fc8c0ee39a86615c06725f20457f74c453fc7b93532af86dfcf4e2eeffe6"},"kind":"missing_from_checkout","path_sha256":"ea1bbc4d7326bf99f603aea2fc69219e183114138222164c1fa34425f701ae2b","sensitive_path":true,"suffix":".scan"},{"basename_length":25,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-alias-known-hosts.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"9d826962f206a6098a00be141ddfa1524b179e9f58449feceb16ce79af38d4d4"},"kind":"missing_from_checkout","path_sha256":"0a60da401257e8d3d62622d35675b0aeeaa5b0c9987ae470f389bb9a84f67107","sensitive_path":true,"suffix":".txt"},{"basename_length":20,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-fingerprints.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"cf597d287845f317164b4f3c4820f2bd66e5c0aeddae242ff237e7e7d583c7dd"},"kind":"missing_from_checkout","path_sha256":"4eae326a00f039ed3f44104064c4c2fdea14fe9d76e3af66e3379669d2916022","sensitive_path":true,"suffix":".txt"},{"basename_length":22,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-ip-known-hosts.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"c4dcbfa2ce0571f34143c736f4f9472ede1fdeb4919af4c3228bc2a9e26caa56"},"kind":"missing_from_checkout","path_sha256":"fe70268e02c773df3fbb87dba01c95c40da5d948585327ec65fd5290860aa913","sensitive_path":true,"suffix":".txt"},{"basename_length":19,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/old-known-hosts.raw\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"f5e2ae1ac3302e9947120b1e49e7365406c3495170767fe7c137197f5127ac06"},"kind":"missing_from_checkout","path_sha256":"639767b08819a36ef1d907e1934e6bbd354e621488194f75aa06ced3e854074d","sensitive_path":true,"suffix":".raw"},{"basename_length":22,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-20260624T130007Z/vps-identity-audit.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"4ddb0c2029d99c580cc682650c6c79f7644b7d1b73d8ecbad8868e7288a7e122"},"kind":"missing_from_checkout","path_sha256":"fcf87d70165391a6f54c5d6b1fe815822c9469a81287680eaee9ebd1d832ea16","sensitive_path":true,"suffix":".txt"},{"basename_length":22,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-audit.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"2fd7bf68b51afd18f259fc90ba3895a9cae6ea843df35bdaafef822f03b588c8"},"kind":"missing_from_checkout","path_sha256":"4f4cdc4688bc2f146c33ec604a925e52063653b83ca317a59436b246b8694443","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-final-evidence.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"2c1b158668e4fe2672bac68ce1cb071e550cb4aec018c4f8ecc63f9d081372dd"},"kind":"missing_from_checkout","path_sha256":"d0aa3459b11ba93537c86181bee9d357fdec62098c580a6d1c0cea83d2852d75","sensitive_path":true,"suffix":".txt"},{"basename_length":31,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":".gitignore:9:evidence/\tsites/gram1.ru/baseline/20260731T071400Z/hosts/local/source/01_homelab-configs-worktree/evidence/p1-vps-identity-closure-20260624T130435Z/vps-identity-peer-discovery.txt\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"1b423c085d60c40f192b2678dbeb9d7782a5039bd2ff46ab2bac94c5803491a5"},"kind":"missing_from_checkout","path_sha256":"d1e501c34794fae94b0636e4df7638d766f5114ff2e5fcf5f7c0b52143368354","sensitive_path":true,"suffix":".txt"},{"basename_length":56,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:7:*token*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"073ca6c91b04c783635be196a401f7b215611e8ea26e3d16996a5320c3099884"},"kind":"missing_from_checkout","path_sha256":"cf0a58341719e872b49bc4b02cd11e7d83b548e3581c8c8cd26cbd228b1e1d46","sensitive_path":true,"suffix":".md"},{"basename_length":49,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:7:*token*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"a41753864159c835e8400ef003eb23c1d539eb0b2868b68eb233c963adc5c126"},"kind":"missing_from_checkout","path_sha256":"e9d73c2c02c4b77e4d1a1e9ca03a3f5a29318aa80c4de6c5ac17763b36aa135d","sensitive_path":true,"suffix":".md"},{"basename_length":57,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:7:*token*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"c233f7881d2c4ca39f986a7e2d40b6bee169c8295ec1141ee62bef961cababdb"},"kind":"missing_from_checkout","path_sha256":"dab0b2de30b5cbe7ddb7c0af562cad07f3a08a463f77b7d7a3c464ef17c4b32d","sensitive_path":true,"suffix":".md"},{"basename_length":51,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:7:*token*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"470407ef09a236e66b2aa41a5b7bf3b923aae05baf7ea3e276e89046d2de1f6d"},"kind":"missing_from_checkout","path_sha256":"4db3c5f77435bc717163e8571e894eabf122de91be97b532ca5b93d322d82f62","sensitive_path":true,"suffix":".md"},{"basename_length":43,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"330700b68162ec69d2c2984a09d8f4ecde481de627fbc2a2d2f4523682b01845"},"kind":"missing_from_checkout","path_sha256":"6a1ee1d3f3c2e845f44b24f8c4ebf1607aa47a7eaf7d7b51672e88a5b035e342","sensitive_path":true,"suffix":".md"},{"basename_length":43,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"44d895e37c4d7efb5b2a940d8427d58f95ac085a5f47f0de32ae9f6a37095764"},"kind":"missing_from_checkout","path_sha256":"32416b898e71d162602268191d7cb0aed22e9d5788fd96945c496759ca555875","sensitive_path":true,"suffix":".md"},{"basename_length":28,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"d82c5c23ede0b4952bf49c531772ce2c450eb5c32d1c3e1112632099c3cecc3c"},"kind":"missing_from_checkout","path_sha256":"6335de79a3ccf4b63c70083a7ad96b5654143ca78290afca3a40f836f4a199b4","sensitive_path":true,"suffix":".md"},{"basename_length":26,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"6bed7eb9432a31b217f0e34b25fcb715631bc05f3e1949e7678f06cc6cc6e993"},"kind":"missing_from_checkout","path_sha256":"6a0f236132211b9633e1af76a22dc681b2a0a5c3127cff28fb273c23c696e9ba","sensitive_path":true,"suffix":".md"},{"basename_length":33,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"03a40752aff61bc454e2087a0b32de4dfc8441d8dcf968d1a5ca726995e0e8df"},"kind":"missing_from_checkout","path_sha256":"d7a9c39ea6d0c8a7a32946ad5f6ea9d5c05f9d043fb2fac37d35fae7f7db2135","sensitive_path":true,"suffix":""},{"basename_length":9,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:47:secrets/*\tsites/gram1.<REDACTED_TOKEN>.md\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"497890c3ee641ac24cb043e3d1c4d3097e785f90541fd6f46fc58a94cf1fad59"},"kind":"missing_from_checkout","path_sha256":"3c04304cd1f920c5da0b385e24e0c58089655809ecf01afdb4118da559a0bff0","sensitive_path":true,"suffix":".md"},{"basename_length":16,"depth":8,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.sh\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"9658a5115eee789ce42083a24b49f428846e564cd8dc50efe3fdce5955b4f6cd"},"kind":"missing_from_checkout","path_sha256":"535e8fd31db685820b50c7d2b39ef39231de37a09ba5721896bfe93ef6e4caad","sensitive_path":true,"suffix":".sh"},{"basename_length":22,"depth":8,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.sh\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"65f40742fc1ec0d09a9acb6877eb0b147d7ade8ae13d54a35af65602f843096f"},"kind":"missing_from_checkout","path_sha256":"e7a87f3d36d8f47b6bb474e00c9a58d6559461add004344555b2dc54ae4a7712","sensitive_path":true,"suffix":".sh"},{"basename_length":36,"depth":6,"display":"<SENSITIVE_PATH_REDACTED>","git_ignore":{"evidence":"sites/gram1.<REDACTED_TOKEN>.gitignore:3:*secret*\tsites/gram1.<REDACTED_TOKEN>.py\n","matched":true,"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"09ee779100f326a11557a44c8046d16e2134c5d530e9ccb4c9c17b59ea6e9d3c"},"kind":"missing_from_checkout","path_sha256":"b9e6fb675276fcc5dd88fc842e96ccc14c53b610ed0cd9822864f686fc4eb03b","sensitive_path":true,"suffix":".py"}],"anomalies_truncated":0,"commit_tree_matches_capture_report":false,"expected_file_count":4383,"expected_total_bytes":28903906,"expected_tree_sha256":"ee05dc5ea7ab8ad354a66a5c5ffee7a982734125719d94d351d677ca75674062","file_count":4309,"file_count_matches_capture_report":false,"ignored_missing_count":74,"manifest_command_id":"GRAM1-SITE-BASELINE-CAPTURE-GITEA-V1-20260731T071400Z","manifest_consistent_with_commit":false,"manifest_entries":4382,"manifest_invalid_paths":0,"manifest_missing_files":74,"manifest_only_count":74,"manifest_only_path_hashes":[{"basename_length":36,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"1831ab715f1a23930712ec363c2df210519d9a8e63ab21050af976806c462319","sensitive_path":true,"suffix":".tsv"},{"basename_length":34,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"c2068a915ab0f0cd8086e7251b2406b4de17cd813988229b179a71e6eea49a0c","sensitive_path":true,"suffix":".tsv"},{"basename_length":20,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"eb860700333344be2f70c57bfab9fcdb5fc959fc241019e0e55898793e2c530c","sensitive_path":true,"suffix":".env"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"f1a246ef882c692f3e7676d2009a5a0738904f4aee2e5b23ac832e6442e23159","sensitive_path":true,"suffix":".log"},{"basename_length":19,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"46c726ae03ab26e7d67c925492f53ea0fa143a2d93f9fc91f4766da8cadb865e","sensitive_path":true,"suffix":".log"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"683a786ccd0903852c34e18b2ee47a3270fc44a8a174c7ae37d27260ed35d870","sensitive_path":true,"suffix":".log"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"d70b5961cf40d476336611938313bf4f984caa86367034f982e63f4f335ff9af","sensitive_path":true,"suffix":".tsv"},{"basename_length":21,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"87fddbce4d9ee1002e548ca86665cb89db8d789c1df8ef3b0cc60ea183d7477e","sensitive_path":true,"suffix":".log"},{"basename_length":40,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"206c0b2917281b76b3cc6113e55545a2d037982a20970eefdb7ae7bbbae71443","sensitive_path":true,"suffix":".log"},{"basename_length":42,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"89150ce2e53b3a822590fac08a069419a5fe087dadb20c07f54d7574935d3bd0","sensitive_path":true,"suffix":".log"},{"basename_length":33,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"325d9502c86190630eb0c655b0c9d84c4bf098e6ba4a6f8faf93d0cc2bde5b40","sensitive_path":true,"suffix":".log"},{"basename_length":42,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"f192560f9e1fb9fad21ad81749d8f69aaecd79bb442735aa5c01d42d8f18f3d9","sensitive_path":true,"suffix":".tsv"},{"basename_length":41,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"b76d9833fe6db3eacc435aa2903d5a66cc477cbcd49300bec1fdd4190eb0d66e","sensitive_path":true,"suffix":".tsv"},{"basename_length":36,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"0a37f3428e86c3b86e72e2ff56aabd60e73f01f9970cf50962c1295636e805d8","sensitive_path":true,"suffix":".tsv"},{"basename_length":29,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"a2ac117952ccea622345bb6148acbff3ef5ed20a3e5ec4d9925190dac39f26f3","sensitive_path":true,"suffix":".tsv"},{"basename_length":39,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"262f0dc79b7997d36058b3937c925c85d21784c07ab6b5ba4043cb11e6a762f0","sensitive_path":true,"suffix":".txt"},{"basename_length":43,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"55d7edc8a6446a60ce484b35c64c88647508903264c20a2188c959d4498620ce","sensitive_path":true,"suffix":".tsv"},{"basename_length":41,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"1f146757dd427ba94db10f8cb7a28b442f7dfbc3dc7db97738faa37bbd6cab64","sensitive_path":true,"suffix":".md"},{"basename_length":42,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"b3b3d8296f1af449d288c2736bfbfa2accbcde10ae34b0efe8bde8375c9388ec","sensitive_path":true,"suffix":".tsv"},{"basename_length":39,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"12f015430ad9424a19dfe30db5b95dad23ecf63e7815f10af4ceb815267d5cc9","sensitive_path":true,"suffix":".state"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"f8e733dec894be535a3f55bec4243442f1b90fac15fef5356ebdf9c912d9923d","sensitive_path":true,"suffix":".bak-20260626t172508z-sec02-4-to-3"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"8c29698be41912729278dacb43ab65afecfd575c1b4f2e2b4c36b43da49c8247","sensitive_path":true,"suffix":".bak-20260626t172523z-sec03-3-to-2"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"aaf18ffde71b6473596bb7c92040719cbfc119ecc93fa87487250a9d071fb301","sensitive_path":true,"suffix":".bak-20260626t172535z-sec04-2-to-1"},{"basename_length":73,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"e62fcb5f18e96be2401274c6e4bfe4a00b083e06433909d6b39f4b20351476cb","sensitive_path":true,"suffix":".bak-20260626t172547z-sec05-1-to-0"},{"basename_length":29,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"221cbee473501ee3e126b8e29602ad5fbf9842b9746137aff0a33eb30d6c2ed4","sensitive_path":true,"suffix":".tsv"},{"basename_length":43,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"99565b640d90eb8ddbd13d276ab6aa01aad1ea72771cd5a2b12e928723171ba6","sensitive_path":true,"suffix":".tsv"},{"basename_length":30,"depth":9,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"315926ca6f4f110ee475ea3392cc3e34f03856f87fdd1e1c23b6c013f3f7ae20","sensitive_path":true,"suffix":".tsv"},{"basename_length":38,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"d0a1f552e44ee3cc70c58a889001f15abab3d5105c7392997bbfe052379c42c9","sensitive_path":true,"suffix":".md"},{"basename_length":34,"depth":8,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"72a8c29f3c2e8e99a038a3447e7f459881cafb9be6b59ccbdb87b5056613a21a","sensitive_path":true,"suffix":".md"},{"basename_length":24,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"b5dba4d253ce4cfce27a99d1a2cc7aeeb4eb607bfc628c6e7d5e49498fa6eda1","sensitive_path":true,"suffix":".txt"},{"basename_length":29,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"8b6160f09289bf95e9011d5d2532bdfdace7151018bf14cddc167f61f39a05eb","sensitive_path":true,"suffix":".txt"},{"basename_length":23,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"7491d29ffb10110b9780e4c7b17379e5c92cc8b3b13a4cec215977c362aa7d89","sensitive_path":true,"suffix":".txt"},{"basename_length":26,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"c7a26319f7ce7a28a5d2652b0971d750620337110fb656676c98c5ed76f2d9ae","sensitive_path":true,"suffix":".txt"},{"basename_length":23,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"a7bee84809250a23b6e273c1663691bb7aa08f1f6e41dc2241bf6fd664220dca","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"af4f654bca9d5e77acb1ac87dc25551aace1adc3a1530bbeb3dd201177034d3d","sensitive_path":true,"suffix":".txt"},{"basename_length":27,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"0926fcd8278044b8e3e7ac54865790187ca3ba21c304055b9632f4e656bf0c66","sensitive_path":true,"suffix":".txt"},{"basename_length":28,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"df2357b50958070a518d8712dda0d0b0ff4dba9c56562ccc208b7e76e8fd9107","sensitive_path":true,"suffix":".txt"},{"basename_length":21,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"d5a2d14f9ee2d03202d4a9f9d75e4c09264e896aa470af23471a3e5a4c0e62c5","sensitive_path":true,"suffix":".txt"},{"basename_length":21,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"536ebafe24b85ae222b2a5af56cb5cb5c876d5d73509bb938f7338d563e31ac8","sensitive_path":true,"suffix":".txt"},{"basename_length":15,"depth":7,"display":"<SENSITIVE_PATH_REDACTED>","path_sha256":"c5684c73fe33566cba19bfc41131dd3794e305cfc3690e97ec47b83b802f6e55","sensitive_path":true,"suffix":".txt"}],"manifest_sha256":"e561f275b7d1c6656e1fa80ee77b6fe4858d1178b4d8a592450ac4036adec459","manifest_sha_mismatches":0,"manifest_size_mismatches":0,"manifest_snapshot_id":"20260731T071400Z","manifest_symlinks":0,"manifest_verified_files":4308,"nonignored_missing_count":0,"total_bytes":28684549,"total_bytes_matches_capture_report":false,"tracked_only_count":1,"tracked_only_path_hashes":[{"basename_length":19,"depth":1,"display":"manifest.final.json","path_sha256":"7e4eafd21b9aade5cc9f63c802f08c1efee3bd6fb0e7225c0e69179e7ac31adb","sensitive_path":false,"suffix":".json"}],"tree_sha256":"fdac2c317221e056500efb4c4750c5cf0b4325102f99f67bb566f818bca9d231","tree_sha_matches_capture_report":false,"unexpected_tracked_only_count":0}} OUTPUT_END CHAT_OUTPUT_END