2114 lines
255 KiB
Plaintext
2114 lines
255 KiB
Plaintext
CHAT_OUTPUT_BEGIN
|
|
COMMAND_ID=SUPPORT-260923-HOMELAB-MOLDOVA-RETIRE-PREFLIGHT-1130R1
|
|
STATUS=OK
|
|
RC=0
|
|
HOST=pve01
|
|
MODE=read-only
|
|
COMPONENT=homelab-moldova-retire-preflight
|
|
REFERENCE_REGISTER_CHECK=OK
|
|
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
|
|
ERROR_REGISTER_CHECK=OK
|
|
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
|
|
COMMAND_SHA256=724447a90ca704066487f2c058f6cbf14e3086e7b399e385e5bca6df62d1cd70
|
|
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=f75ed52bc7c1eb7c5418acf9a6f3c7d372de8ddb2bf445b6eb507958c8172cf8
|
|
SANITIZED_OUTPUT_SHA256=c0f54cefd55350849427898c5de7f25cde594a78aba7943a1b3599863593f6ac
|
|
OUTPUT_BEGIN
|
|
WORKERS2_MOLDOVA_RETIRE_PREFLIGHT_BEGIN=1
|
|
COMMAND_ID=SUPPORT-260923-HOMELAB-MOLDOVA-RETIRE-PREFLIGHT-1130R1
|
|
MODE=read-only
|
|
COMPONENT=homelab-moldova-retire-preflight
|
|
MUTATION_BOUNDARY=NONE;LOCAL_DEPENDENCY_DISCOVERY_ONLY;NO_PROVIDER_CALL;NO_TARGET_SSH;NO_NETWORK_MUTATION;NO_SYSTEMD_ACTION;NO_DNS_CHANGE;NO_BACKUP_MUTATION;NO_GIT_WRITE;NO_SECRET_VALUE_READOUT
|
|
PREFLIGHT_PURPOSE=PROVE_WHAT_MUST_BE_DETACHED_OR_REPLACED_BEFORE_MOLDOVA_VPS_CAN_BE_QUARANTINED_OR_DELETED
|
|
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
|
|
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
|
|
RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d
|
|
AUTHORITY_GATE=PASS
|
|
FRESH_CONTEXT_BEGIN=1
|
|
NOW_UTC=2026-09-23T20:58:51Z
|
|
HOSTNAME=pve01
|
|
FRESH_CONTEXT_END=1
|
|
HANDOFF_CANDIDATES_BEGIN=1
|
|
HANDOFF_CANDIDATE_COUNT=4
|
|
HANDOFF_FILE=/srv/homelab-ops/kb/current/04_P0_NEXT.md
|
|
HANDOFF_MTIME=2026-08-21 00:06:53.672037607 +0300
|
|
HANDOFF_SHA256=0f6eb8b23382becc1868e8a22318d5b7629184568205bad47c3c38967a346b8f
|
|
5:3. Canonical post-migration CR including NetBird new USA, Postbox/Null MX, Moldova V3/Gotify, old-USA retirement window and dependencies.
|
|
7:5. VM160 backup-state audit.
|
|
12:Do not mix unrelated changes into these gates (e.g. NetBird version upgrade/hostname change during SSH hardening).
|
|
HANDOFF_FILE=/srv/homelab-ops/kb/changes/CR-2026-0087-HANDOFF.md
|
|
HANDOFF_MTIME=2026-08-21 00:06:53.671922428 +0300
|
|
HANDOFF_SHA256=a8d91b33b36e462bf3bb48defd12e121ed06edcb12d2dab3a9be50b2c5cdcb4d
|
|
13:- Scrutiny and crypto chart-health runtime are removed.
|
|
HANDOFF_FILE=/srv/homelab-ops/kb/changes/CR-2026-0086-HANDOFF.md
|
|
HANDOFF_MTIME=2026-08-21 00:06:53.671835127 +0300
|
|
HANDOFF_SHA256=faab79cda5c6b31162b68812fc468359c0b9b94892c8f1e3b31c626d6704264a
|
|
26:3. load regression/error registry;
|
|
68:Failure: clean clone had no Git `user.name` / `user.email`.
|
|
138:V4 service was deployed side-by-side and later verified healthy, but public
|
|
199:- regression registry
|
|
HANDOFF_FILE=/srv/homelab-ops/kb/AI_CONTEXT.md
|
|
HANDOFF_MTIME=2026-08-21 00:06:53.671629955 +0300
|
|
HANDOFF_SHA256=5fc43e34a1f0714ddacf7c00ed5c4bbaf788df3b8407dcfebd1333a23a623acc
|
|
15:- pve01 `[IP]`, operator historical NetBird path `root@[IP]`, MobaXterm key label `eddsa-key-20260617`.
|
|
26:## Mail/forums
|
|
30:## NetBird migration
|
|
32:Production NetBird is new USA `[IP]`, Debian 12, hostname `nb2`, NetBird `0.73.2`. Exact deployment caveat: `/api/health` = 404 and combined `:9000/health` = 503; these are not generic readiness gates for this deployment. Old USA `[IP]` has Mailcow/NetBird server stopped and observer disabled, but remains in rollback window. Permanent new-USA operator SSH hardening is still P0.
|
|
34:## Moldova
|
|
38:## Backups/cloud
|
|
40:Canonical production backup remotes remain Mail A/B. Full SITE-DR is SEALED; do not rerun merely because architecture changed. Cloud.ru bucket `homelab-dr-backup`: versioning **ON** (this supersedes older OFF docs), writer/reader OFF, no real workload. Yandex Object Storage bucket not created; latest verified billing threshold is `-600 RUB`, target 0, support request pending. Bucket creation remains blocked until live 0 proof.
|
|
HANDOFF_CANDIDATES_END=1
|
|
REFERENCE_MOLDOVA_SNIPPETS_BEGIN=1
|
|
4:SUPERSEDES_OLDER_TOPOLOGY_AND_BACKUP_SNAPSHOTS=YES
|
|
23:- VM180 cluster-admin | DESTROYED | backup registry lifecycle=RETIRED_PRESERVE
|
|
24:- CT200 skladchik-mod | DESTROYED | backup registry lifecycle=RETIRED_PRESERVE
|
|
25:- Scrutiny | RETIRED | active service/Podman removed | backup registry lifecycle=RETIRED_PRESERVE | historical recovery evidence preserved
|
|
28:### BACKUP_CURRENT
|
|
29:BACKUP_STATUS=GREEN
|
|
30:BACKUP_REGISTRY_TOTAL=21
|
|
31:BACKUP_ACTIVE_VM=11
|
|
32:BACKUP_RETIRED_VM=2
|
|
33:BACKUP_ACTIVE_APP=4
|
|
34:BACKUP_RETIRED_APP=3
|
|
35:BACKUP_ACTIVE_CONTROL=1
|
|
36:BACKUP_FRESH_TARGETS=15
|
|
37:BACKUP_SOURCE_DRIFT=0
|
|
38:BACKUP_RESUME=0
|
|
39:BACKUP_PAYLOAD_LEAKS=0
|
|
40:BACKUP_VM_QUEUE=inactive/success
|
|
41:BACKUP_APP_QUEUE=inactive/success
|
|
55:- Immich machine-learning runtime recovered; current stock healthcheck passes and server-to-ML /ping returns HTTP 200.
|
|
72:HEALTH_WARN_ERROR_COUNT=14
|
|
74:NOTE forum-prod VMID160 is not in homelab-nightly-all; it has separate local/cloud backup chain
|
|
75:NOTE edge-vm disk scsi1 backup=0 risk must be documented
|
|
77:NOTE edge health WARN/ERROR items should be documented as known current states
|
|
79:HEALTH_NOT_OK
|
|
81:HEALTH_NOT_OK item=backup-restore-coverage-slo.txt line=STATUS=WARN
|
|
82:HEALTH_NOT_OK item=backup-restore-dashboard.txt line=STATUS=WARN TS=2026-06-29T18:10:09Z ITEMS=80 NOT_OK=13
|
|
83:HEALTH_NOT_OK item=container-image-lifecycle-slo.txt line=STATUS=WARN
|
|
84:HEALTH_NOT_OK item=cron-job-monitoring-slo.txt line=STATUS=WARN
|
|
85:HEALTH_NOT_OK item=direct-heartbeat-pilot-readiness.txt line=STATUS=WARN
|
|
86:HEALTH_NOT_OK item=healthchecks-heartbeat-coverage.txt line=STATUS=WARN
|
|
87:HEALTH_NOT_OK item=healthchecks-job-coverage.txt line=STATUS=WARN
|
|
88:HEALTH_NOT_OK item=healthchecks-job-monitoring-slo.txt line=STATUS=WARN
|
|
89:HEALTH_NOT_OK item=homepage-service-catalog-slo.txt line=STATUS=WARN
|
|
90:HEALTH_NOT_OK item=ingress-dns-route-slo.txt line=STATUS=WARN
|
|
91:HEALTH_NOT_OK item=job-monitoring-slo.txt line=STATUS=WARN
|
|
92:HEALTH_NOT_OK item=observability-health-surface-slo.txt line=STATUS=WARN
|
|
REFERENCE_MOLDOVA_SNIPPETS_END=1
|
|
SYSTEMD_STATE_BEGIN=1
|
|
UNIT|name=pvepro-relay-healthcheck.timer|load=not-found|active=inactive|sub=dead|result=success|enabled=not-found
|
|
UNIT|name=pvepro-relay-healthcheck.service|load=not-found|active=inactive|sub=dead|result=success|enabled=not-found
|
|
UNIT|name=homelab-backup-v2.timer|load=loaded|active=active|sub=waiting|result=success|enabled=enabled
|
|
UNIT|name=homelab-backup-v2.service|load=loaded|active=inactive|sub=dead|result=success|enabled=static
|
|
UNIT|name=homelab-backup-audit.timer|load=loaded|active=active|sub=waiting|result=success|enabled=enabled
|
|
UNIT|name=homelab-backup-audit.service|load=loaded|active=failed|sub=failed|result=exit-code|enabled=static
|
|
UNIT|name=homelab-alertmanager-backup-health.timer|load=loaded|active=active|sub=waiting|result=success|enabled=enabled
|
|
UNIT|name=homelab-alertmanager-backup-health.service|load=loaded|active=inactive|sub=dead|result=success|enabled=static
|
|
UNIT|name=netbird-peers-health.timer|load=loaded|active=active|sub=waiting|result=success|enabled=enabled
|
|
UNIT|name=netbird-peers-health.service|load=loaded|active=failed|sub=failed|result=exit-code|enabled=static
|
|
UNIT|name=netbird.service|load=loaded|active=active|sub=running|result=success|enabled=enabled
|
|
UNIT|name=netbird-vps-backup.timer|load=not-found|active=inactive|sub=dead|result=success|enabled=not-found
|
|
UNIT|name=netbird-vps-backup.service|load=not-found|active=inactive|sub=dead|result=success|enabled=not-found
|
|
UNIT|name=netbird-vps-offhost-sync.timer|load=not-found|active=inactive|sub=dead|result=success|enabled=not-found
|
|
UNIT|name=netbird-vps-offhost-sync.service|load=not-found|active=inactive|sub=dead|result=success|enabled=not-found
|
|
UNIT|name=homelab-crowdsec-capi-netbird-egress.service|load=not-found|active=inactive|sub=dead|result=success|enabled=not-found
|
|
UNIT|name=privoxy.service|load=not-found|active=inactive|sub=dead|result=success|enabled=not-found
|
|
SYSTEMD_STATE_END=1
|
|
BACKUP_AUDIT_FAILURE_EVIDENCE_BEGIN=1
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=app-filebrowser|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=14746|generation=app-filebrowser-pve01-20260923T143005Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=app-hbarhub|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=14574|generation=app-hbarhub-pve01-20260923T143158Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=app-immich|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=14674|generation=app-immich-pve01-20260923T143041Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=app-skladchik-reports-monitor|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=14724|generation=app-skladchik-reports-monitor-pve01-20260923T143025Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=control-bootstrap-v2|kind=CONTROL|state=FRESH|age_seconds=36576|generation=control-bootstrap-v2-pve01-20260916T120057Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=vm110|kind=VM|state=FRESH|source=V2|v2_age_seconds=20203|legacy_age_seconds=1688189|replica_count=2|state_id=ct110|generation=v2-ct110-20260923T125546Z-34408ffe4182
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=vm111|kind=VM|state=FRESH|source=V2|v2_age_seconds=18061|replica_count=2|state_id=ct111|generation=v2-ct111-20260923T133222Z-0d3f5fae9c35
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=vm112|kind=VM|state=FRESH|source=V2|v2_age_seconds=71147|legacy_age_seconds=1726684|replica_count=2|state_id=ct112|generation=v2-ct112-20260922T224902Z-8457b570052f
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=vm113|kind=VM|state=FRESH|source=V2|v2_age_seconds=69278|replica_count=2|state_id=ct113|generation=v2-ct113-20260922T231959Z-9fe7d084a330
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=vm130|kind=VM|state=FRESH|source=V2|v2_age_seconds=61252|replica_count=2|state_id=vm130|generation=v2-vm130-20260923T011558Z-c9498d37d3d7
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=vm150|kind=VM|state=FRESH|source=V2|v2_age_seconds=66934|legacy_age_seconds=1688305|replica_count=2|state_id=vm150|generation=v2-vm150-20260922T235842Z-71b8fcec59c9
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=vm160|kind=VM|state=FRESH|source=V2|v2_age_seconds=60152|replica_count=2|state_id=vm160|generation=v2-vm160-20260923T014608Z-f76d7671af5a
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=vm170|kind=VM|state=FRESH|source=V2|v2_age_seconds=51801|legacy_age_seconds=632926|replica_count=2|state_id=vm170|generation=v2-vm170-20260923T035958Z-923adacbc94b
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=vm171|kind=VM|state=FRESH|source=V2|v2_age_seconds=58355|legacy_age_seconds=662458|replica_count=2|state_id=vm171|generation=v2-vm171-20260923T021946Z-4d6e4f578075
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=vm190|kind=VM|state=FRESH|source=V2|v2_age_seconds=54272|replica_count=2|state_id=vm190|generation=v2-vm190-20260923T032759Z-314d9ba2ec35
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: TARGET|logical_id=vm9130|kind=VM|state=FRESH|source=V2|v2_age_seconds=39367|replica_count=2|state_id=vm9130|generation=v2-vm9130-20260923T071932Z-c0492db6535b
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: ISSUE|severity=HIGH|code=LOCK_BUSY|logical_id=/run/homelab-backup-heavy.lock|root_cause=ACTIVE_OR_ORPHAN_LOCK
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2268991]: SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=RED|ACTIVE_COUNT=16|ISSUE_COUNT=1|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK
|
|
Sep 23 [IPV6] pve01 systemd[1]: homelab-backup-audit.service: Main process exited, code=exited, status=1/FAILURE
|
|
Sep 23 [IPV6] pve01 systemd[1]: homelab-backup-audit.service: Failed with result 'exit-code'.
|
|
Sep 23 [IPV6] pve01 systemd[1]: Failed to start homelab-backup-audit.service - Homelab unified backup and DR audit.
|
|
Sep 23 [IPV6] pve01 systemd[1]: homelab-backup-audit.service: Consumed 2.367s CPU time, 148.3M memory peak.
|
|
Sep 23 [IPV6] pve01 systemd[1]: Starting homelab-backup-audit.service - Homelab unified backup and DR audit...
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=app-filebrowser|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=16586|generation=app-filebrowser-pve01-20260923T143005Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=app-hbarhub|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=16414|generation=app-hbarhub-pve01-20260923T143158Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=app-immich|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=16514|generation=app-immich-pve01-20260923T143041Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=app-skladchik-reports-monitor|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=16564|generation=app-skladchik-reports-monitor-pve01-20260923T143025Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=control-bootstrap-v2|kind=CONTROL|state=FRESH|age_seconds=38415|generation=control-bootstrap-v2-pve01-20260916T120057Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=vm110|kind=VM|state=FRESH|source=V2|v2_age_seconds=22042|legacy_age_seconds=1690029|replica_count=2|state_id=ct110|generation=v2-ct110-20260923T125546Z-34408ffe4182
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=vm111|kind=VM|state=FRESH|source=V2|v2_age_seconds=19900|replica_count=2|state_id=ct111|generation=v2-ct111-20260923T133222Z-0d3f5fae9c35
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=vm112|kind=VM|state=STALE|source=NONE|v2_age_seconds=72986|legacy_age_seconds=1728524|replica_count=2|state_id=ct112|generation=vm112-pve01-20260903T185707Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=vm113|kind=VM|state=FRESH|source=V2|v2_age_seconds=71117|replica_count=2|state_id=ct113|generation=v2-ct113-20260922T231959Z-9fe7d084a330
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=vm130|kind=VM|state=FRESH|source=V2|v2_age_seconds=63091|replica_count=2|state_id=vm130|generation=v2-vm130-20260923T011558Z-c9498d37d3d7
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=vm150|kind=VM|state=FRESH|source=V2|v2_age_seconds=68773|legacy_age_seconds=1690145|replica_count=2|state_id=vm150|generation=v2-vm150-20260922T235842Z-71b8fcec59c9
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=vm160|kind=VM|state=FRESH|source=V2|v2_age_seconds=61991|replica_count=2|state_id=vm160|generation=v2-vm160-20260923T014608Z-f76d7671af5a
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=vm170|kind=VM|state=FRESH|source=V2|v2_age_seconds=53640|legacy_age_seconds=634766|replica_count=2|state_id=vm170|generation=v2-vm170-20260923T035958Z-923adacbc94b
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=vm171|kind=VM|state=FRESH|source=V2|v2_age_seconds=60194|legacy_age_seconds=664298|replica_count=2|state_id=vm171|generation=v2-vm171-20260923T021946Z-4d6e4f578075
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=vm190|kind=VM|state=FRESH|source=V2|v2_age_seconds=56111|replica_count=2|state_id=vm190|generation=v2-vm190-20260923T032759Z-314d9ba2ec35
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: TARGET|logical_id=vm9130|kind=VM|state=FRESH|source=V2|v2_age_seconds=41206|replica_count=2|state_id=vm9130|generation=v2-vm9130-20260923T071932Z-c0492db6535b
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm112|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: ISSUE|severity=HIGH|code=LOCK_BUSY|logical_id=/run/homelab-backup-heavy.lock|root_cause=ACTIVE_OR_ORPHAN_LOCK
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2372997]: SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=RED|ACTIVE_COUNT=16|ISSUE_COUNT=2|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK
|
|
Sep 23 [IPV6] pve01 systemd[1]: homelab-backup-audit.service: Main process exited, code=exited, status=1/FAILURE
|
|
Sep 23 [IPV6] pve01 systemd[1]: homelab-backup-audit.service: Failed with result 'exit-code'.
|
|
Sep 23 [IPV6] pve01 systemd[1]: Failed to start homelab-backup-audit.service - Homelab unified backup and DR audit.
|
|
Sep 23 [IPV6] pve01 systemd[1]: homelab-backup-audit.service: Consumed 2.438s CPU time, 148.4M memory peak.
|
|
Sep 23 [IPV6] pve01 systemd[1]: Starting homelab-backup-audit.service - Homelab unified backup and DR audit...
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=app-filebrowser|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=18320|generation=app-filebrowser-pve01-20260923T143005Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=app-hbarhub|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=18148|generation=app-hbarhub-pve01-20260923T143158Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=app-immich|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=18248|generation=app-immich-pve01-20260923T143041Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=app-skladchik-reports-monitor|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=18298|generation=app-skladchik-reports-monitor-pve01-20260923T143025Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=control-bootstrap-v2|kind=CONTROL|state=FRESH|age_seconds=40150|generation=control-bootstrap-v2-pve01-20260916T120057Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=vm110|kind=VM|state=FRESH|source=V2|v2_age_seconds=23777|legacy_age_seconds=1691763|replica_count=2|state_id=ct110|generation=v2-ct110-20260923T125546Z-34408ffe4182
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=vm111|kind=VM|state=FRESH|source=V2|v2_age_seconds=21635|replica_count=2|state_id=ct111|generation=v2-ct111-20260923T133222Z-0d3f5fae9c35
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=vm112|kind=VM|state=STALE|source=NONE|v2_age_seconds=74721|legacy_age_seconds=1730258|replica_count=2|state_id=ct112|generation=vm112-pve01-20260903T185707Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=vm113|kind=VM|state=STALE|source=NONE|v2_age_seconds=72852|replica_count=2|state_id=ct113
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=vm130|kind=VM|state=FRESH|source=V2|v2_age_seconds=64826|replica_count=2|state_id=vm130|generation=v2-vm130-20260923T011558Z-c9498d37d3d7
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=vm150|kind=VM|state=FRESH|source=V2|v2_age_seconds=70508|legacy_age_seconds=1691879|replica_count=2|state_id=vm150|generation=v2-vm150-20260922T235842Z-71b8fcec59c9
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=vm160|kind=VM|state=FRESH|source=V2|v2_age_seconds=63726|replica_count=2|state_id=vm160|generation=v2-vm160-20260923T014608Z-f76d7671af5a
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=vm170|kind=VM|state=FRESH|source=V2|v2_age_seconds=55375|legacy_age_seconds=636500|replica_count=2|state_id=vm170|generation=v2-vm170-20260923T035958Z-923adacbc94b
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=vm171|kind=VM|state=FRESH|source=V2|v2_age_seconds=61929|legacy_age_seconds=666032|replica_count=2|state_id=vm171|generation=v2-vm171-20260923T021946Z-4d6e4f578075
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=vm190|kind=VM|state=FRESH|source=V2|v2_age_seconds=57846|replica_count=2|state_id=vm190|generation=v2-vm190-20260923T032759Z-314d9ba2ec35
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: TARGET|logical_id=vm9130|kind=VM|state=FRESH|source=V2|v2_age_seconds=42941|replica_count=2|state_id=vm9130|generation=v2-vm9130-20260923T071932Z-c0492db6535b
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm112|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm113|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2466119]: SUMMARY|AUDIT_STATUS=OK|BACKUP_STATUS=RED|ACTIVE_COUNT=16|ISSUE_COUNT=2|CLOUD_A=OK|CLOUD_B=OK|CLOUD_B_DRILL=OK|DR_PROVEN=YES|SOURCE_OFFHOST=OK
|
|
Sep 23 [IPV6] pve01 systemd[1]: homelab-backup-audit.service: Main process exited, code=exited, status=1/FAILURE
|
|
Sep 23 [IPV6] pve01 systemd[1]: homelab-backup-audit.service: Failed with result 'exit-code'.
|
|
Sep 23 [IPV6] pve01 systemd[1]: Failed to start homelab-backup-audit.service - Homelab unified backup and DR audit.
|
|
Sep 23 [IPV6] pve01 systemd[1]: homelab-backup-audit.service: Consumed 2.421s CPU time, 148M memory peak.
|
|
Sep 23 [IPV6] pve01 systemd[1]: Starting homelab-backup-audit.service - Homelab unified backup and DR audit...
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=app-filebrowser|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=20177|generation=app-filebrowser-pve01-20260923T143005Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=app-hbarhub|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=20005|generation=app-hbarhub-pve01-20260923T143158Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=app-immich|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=20105|generation=app-immich-pve01-20260923T143041Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=app-skladchik-reports-monitor|kind=APP|state=FRESH|decision=SKIP_FRESH|legacy_age_seconds=20155|generation=app-skladchik-reports-monitor-pve01-20260923T143025Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=control-bootstrap-v2|kind=CONTROL|state=FRESH|age_seconds=42006|generation=control-bootstrap-v2-pve01-20260916T120057Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=vm110|kind=VM|state=FRESH|source=V2|v2_age_seconds=25633|legacy_age_seconds=1693620|replica_count=2|state_id=ct110|generation=v2-ct110-20260923T125546Z-34408ffe4182
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=vm111|kind=VM|state=FRESH|source=V2|v2_age_seconds=23491|replica_count=2|state_id=ct111|generation=v2-ct111-20260923T133222Z-0d3f5fae9c35
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=vm112|kind=VM|state=STALE|source=NONE|v2_age_seconds=76577|legacy_age_seconds=1732115|replica_count=2|state_id=ct112|generation=vm112-pve01-20260903T185707Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=vm113|kind=VM|state=STALE|source=NONE|v2_age_seconds=74708|replica_count=2|state_id=ct113
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=vm130|kind=VM|state=FRESH|source=V2|v2_age_seconds=66682|replica_count=2|state_id=vm130|generation=v2-vm130-20260923T011558Z-c9498d37d3d7
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=vm150|kind=VM|state=STALE|source=NONE|v2_age_seconds=72364|legacy_age_seconds=1693736|replica_count=2|state_id=vm150|generation=vm150-pve01-20260904T053517Z
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=vm160|kind=VM|state=FRESH|source=V2|v2_age_seconds=65582|replica_count=2|state_id=vm160|generation=v2-vm160-20260923T014608Z-f76d7671af5a
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=vm170|kind=VM|state=FRESH|source=V2|v2_age_seconds=57231|legacy_age_seconds=638357|replica_count=2|state_id=vm170|generation=v2-vm170-20260923T035958Z-923adacbc94b
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=vm171|kind=VM|state=FRESH|source=V2|v2_age_seconds=63785|legacy_age_seconds=667889|replica_count=2|state_id=vm171|generation=v2-vm171-20260923T021946Z-4d6e4f578075
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=vm190|kind=VM|state=FRESH|source=V2|v2_age_seconds=59702|replica_count=2|state_id=vm190|generation=v2-vm190-20260923T032759Z-314d9ba2ec35
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: TARGET|logical_id=vm9130|kind=VM|state=FRESH|source=V2|v2_age_seconds=44797|replica_count=2|state_id=vm9130|generation=v2-vm9130-20260923T071932Z-c0492db6535b
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm112|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm113|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM
|
|
Sep 23 [IPV6] pve01 homelab-backup-audit[2565382]: ISSUE|severity=HIGH|code=RPO_BREACH|logical_id=vm150|root_cause=NO_FRESH_V2_OR_SEALED_QUORUM
|
|
BACKUP_AUDIT_FAILURE_EVIDENCE_END=1
|
|
HEALTH_FILES_BEGIN=1
|
|
HEALTH_FILE=cluster-admin-vm-mail-cloud-backup.txt|mtime=2026-07-09 08:07:47.213452046 +0300|sha256=e03b236f41f8d66f070ecd3234b3ff0836a44d972fd6f6abc721b9683fa22053
|
|
STATUS=OK TS=2026-07-09T05:07:47Z TYPE=cluster-admin-vm-mail-cloud-backup BAD=0 VMID=180 NODE=pve02 MODE=MAIL_CLOUD_2COPY_VERIFY_OK LOCAL_STATUS=OK REPORT=/var/lib/homelab-cluster-admin-vm-mail-cloud-backup/latest.md
|
|
HEALTH_FILE=alertmanager-backup.txt|mtime=2026-07-09 10:50:17.826712693 +0300|sha256=f5a8a0ad29606ebbdcdcb52a997e9ee07ddec9ab7eab6bb0932c3f4e14eba97a
|
|
STATUS=OK TS=2026-07-09T07:50:16Z TYPE=alertmanager-backup JOB=homelab-pve01-app-alertmanager-20260709T075016Z SOURCE=alertmanager_config SIZE=1842 SHA256=58fb1b3467a962acff44bf75cb274e3a17c06afdbd3a25314a904f75c8048728 LOCAL_BACKUP_DELETED=true NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=mealie-backup.txt|mtime=2026-07-09 19:17:35.017044807 +0300|sha256=8043626489c0b50dc30f11771e15940c0cb27c99cebdf482cf7dfba83571d074
|
|
STATUS=OK TS=2026-07-09T16:17:31Z TYPE=mealie-backup JOB=homelab-pve01-app-mealie-20260709T051713Z SOURCE=latest-appbackup SIZE=912487 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-mealie.json NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=karakeep-backup.txt|mtime=2026-07-09 22:28:35.572436986 +0300|sha256=79a25462c21ee9006462c6dc6fb7c2b21a4e7c297f585b770ed1e9a77e718230
|
|
STATUS=OK TS=2026-07-09T19:28:34Z TYPE=karakeep-backup BAD=0 APP=karakeep JOB=homelab-pve01-app-karakeep-20260709T051713Z SIZE=23140 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-karakeep.json
|
|
HEALTH_FILE=backup-restore-dashboard.txt|mtime=2026-07-03 00:45:30.941379161 +0300|sha256=51b95b7465dc040ff080c8a8341b23c9c0fdd90cfe0675ccd3f705b55590d815
|
|
STATUS=OK
|
|
TS=20260702T214530Z
|
|
TYPE=backup-restore-dashboard-rebuilt
|
|
ITEMS=13
|
|
NOT_OK=0
|
|
NOT_OK_LIST=none
|
|
ITEM name=backup.txt exists=true ok=true
|
|
ITEM name=restore-drill-index.txt exists=true ok=true
|
|
ITEM name=paperless-backup.txt exists=true ok=true
|
|
ITEM name=paperless-offhost.txt exists=true ok=true
|
|
ITEM name=paperless-restore.txt exists=true ok=true
|
|
ITEM name=npmplus-kuma-config-backup.txt exists=true ok=true
|
|
ITEM name=npmplus-kuma-config-offhost.txt exists=true ok=true
|
|
ITEM name=npmplus-kuma-config-restore.txt exists=true ok=true
|
|
ITEM name=netbird-peers.txt exists=true ok=true
|
|
ITEM name=crowdsec-capi-netbird-final.txt exists=true ok=true
|
|
ITEM name=adguard-rewrite-sync.txt exists=true ok=true
|
|
ITEM name=router-running-config-mail-cloud.txt exists=true ok=true
|
|
ITEM name=mail-cloud-restore-drill.txt exists=true ok=true
|
|
HEALTH_FILE=backup-matrix-cluster-final-seal.txt|mtime=2026-07-13 20:51:32.422338540 +0300|sha256=dcd06c2ff207c2922fc68d4df4b42ffa4b6680785e532783772e764feb828aa1
|
|
STATUS=OK TS=2026-07-13T17:51:31Z TYPE=backup-matrix-cluster-final-seal BAD=0 CURRENT_STAGE_COMPLETE=YES MATRIX_STATUS=OK JOBS_TOTAL=35 JOBS_OK=31 JOBS_BAD=0 JOBS_UNMAPPED=0 JOBS_DISABLED=4 READ_WRITE_OVERLAP=0 VM_BACKUP_HEALTH=OK VM_FULL_BACKUP=OK EDGE_VM_CANONICAL_BACKUP=homelab-edge-vm-offhost-freshness.timer OLD_EDGE_TIMER_REENABLED=NO CLUSTER_PASSPORT=OK FINAL_READINESS=OK FINAL_READINESS_PASS=53 FINAL_READINESS_FAIL=0 OVERALL=OK CLUSTER_ADMIN=OK PROBE_OK=4 PROBE_BAD=0 WEBPANEL=OK FAILED_UNITS=0 CLUSTER_NODES=3 QUORATE=YES GENERATED_SYNC_HEAD=597119391e7b265b85fd9a76644e4e33af47e469 DESIRED_STATE_DIRTY=0 MATRIX_SHA256=7613bcb25d32e61fac114da13af81e38354ec22a012a6deeaa168ee4cc454f87 MATRIX_STATE_SHA256=14a31112aac5d577ae01df567921b093b2fedcf7189c4cc8f009216ee0749380 CLUSTER_PASSPORT_SHA256=1b8b924ae0e5ce6872fe5671318094ce494806c2db7efe28299b5ff49adc0d0d FINAL_READINESS_SHA256=ac5159fa8c497afe021b5cb232f08cfec0e1a4d516d8aae966ba03f7034f1412 OVERALL_SHA256=6ae529bfdf5811f686d3b53978f453ce4f8757c74fc1be105de219b13a61ba46 PRESEAL_SHA256=7ea1f710cd311bd51dba05a313b4c540f57d97407f008881e502fc213b4b3c99 EVIDENCE_MANIFEST_SHA256=b4c68312026e1328b208a74090891f4809ab31ec69069e94a3d6902429bf3566 BACKUP_RUN=NO RESTORE_RUN=NO CLOUD_WRITE_RUN=NO RETENTION_RUN=NO NEXT_ACTION=AUDIT_AND_MIGRATE_SPECIAL_VM_EMERGENCY_AND_NON_APP_BACKUP_FAMILIES EVIDENCE_ROOT=/var/lib/homelab-change-sets/backup-matrix-cluster-final-seal/20260713T175131Z
|
|
HEALTH_FILE=actual-backup.txt|mtime=2026-07-09 15:53:45.248005185 +0300|sha256=72d1b31e22e22ac91af66e3d8ae46b20b3b9297809ace524eece22031458fb05
|
|
STATUS=OK TS=2026-07-09T12:53:43Z TYPE=actual-budget-backup JOB=homelab-pve01-app-actual-budget-20260709T051713Z SOURCE=latest-appbackup SIZE=2011 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-actual-budget.json NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=authentik-backup.txt|mtime=2026-08-30 21:08:08.459821635 +0300|sha256=8888712fdc8c5fd18ef0b691eb5d379fbd71af8f5dbda4e917b5a1493d12c046
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=homelab_appbackup_postgres_batch
|
|
JOB_NAME=homelab-appbackup-postgres-batch
|
|
MATRIX_MODE=authoritative
|
|
TIMER=homelab-appbackup-postgres-batch.timer
|
|
SERVICE=homelab-appbackup-postgres-batch.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=systemd
|
|
EVIDENCE_LEVEL=execution_only
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=systemd:homelab-appbackup-postgres-batch.service
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-07-24T02:18:04Z
|
|
AGE_SECONDS=3253804
|
|
MAX_AGE_SECONDS=172800
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/authentik-backup.txt
|
|
CANONICAL_JOB_ID=homelab_appbackup_postgres_batch
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=cluster-admin-stage3-postapply-backup.txt|mtime=2026-07-13 06:44:42.760995774 +0300|sha256=c00feef82c76522380776c84bf5bdb742ca2105c0dc2eeb1b596db2880facef9
|
|
STATUS=OK TS=2026-07-13T03:43:59Z TYPE=cluster-admin-stage3-postapply-backup BAD=0 COMMAND_PHYSICAL_LINES=1 PRODUCTION_CHANGED=POSTAPPLY_BACKUP_AND_CONTROLLED_COLLECTOR_RUN PRODUCTION_DATABASE_CHANGED=COLLECTOR_NORMAL_OPERATION_ONLY PRODUCTION_SCHEMA_CHANGED=NO LIVE_APPLICATION_CODE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=YES_CONTROLLED_POSTAPPLY_BACKUP LIVE_APP_SHA256=a330a2d33ee5a8a57778e3541179e3faebcc0531600a504df744435e80a93b34 DESIRED_STATE_HEAD=b974057b536ece861299d0b230c06cc0e6702c39 APPBACKUP=VERIFIED APPBACKUP_JOB=homelab-pve01-app-cluster-admin-incident-engine-20260713T034400Z APPBACKUP_SIZE_BYTES=1791603 APPBACKUP_RESTORE_CHECK=OK APPBACKUP_ROUTING=VERIFIED COLLECTOR_CONTROL_RUN=OK COLLECTOR_RUN_ID=3113 CANONICAL_CONSISTENCY=0|0|0|0|0 INCIDENT_ENGINE=ACTIVE COLLECTOR_TIMER=ACTIVE VM180_FAILED_UNITS=0 READY_FOR_STAGE3_FINAL_SEAL=YES STAGE3_CLOSED=NO POSTAPPLY_ROOT=/var/lib/homelab-stage3-postapply/20260713T034359Z
|
|
HEALTH_FILE=netbird-vps-trust.txt|mtime=2026-07-18 01:54:49.485000918 +0300|sha256=643c858c4b1cfa77a7914349ccb05434a94e27a358320b687658684665d5c1ac
|
|
STATUS=OK
|
|
TS=2026-07-17T04:52:15Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=netbird_vps_backup
|
|
JOB_NAME=netbird-vps-backup
|
|
MATRIX_MODE=authoritative
|
|
TIMER=netbird-vps-backup.timer
|
|
SERVICE=netbird-vps-backup.service
|
|
TIMER_ENABLED=enabled
|
|
TIMER_ACTIVE=active
|
|
SOURCE_KIND=health_file
|
|
EVIDENCE_LEVEL=artifact_or_health
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=/var/lib/homelab-backup-matrix/evidence/netbird_vps_backup/0-netbird-vps-trust.txt
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-07-07T15:24:59Z
|
|
AGE_SECONDS=826036
|
|
MAX_AGE_SECONDS=864000
|
|
FRESHNESS=FRESH
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/netbird-vps-trust.txt
|
|
CANONICAL_JOB_ID=netbird_vps_backup
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=extended-appbackup.txt|mtime=2026-08-30 21:08:08.661414778 +0300|sha256=00167921437640beadbd7c5cc7323845b3893f85c161781d0899da9fba63f991
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=homelab_extended_appbackup
|
|
JOB_NAME=homelab-extended-appbackup
|
|
MATRIX_MODE=authoritative
|
|
TIMER=homelab-extended-appbackup.timer
|
|
SERVICE=homelab-extended-appbackup.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=health_file
|
|
EVIDENCE_LEVEL=artifact_or_health
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=/var/lib/homelab-backup-matrix/evidence/homelab_extended_appbackup/0-extended-appbackup.txt
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-08-06T21:34:02Z
|
|
AGE_SECONDS=2061246
|
|
MAX_AGE_SECONDS=172800
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/extended-appbackup.txt
|
|
CANONICAL_JOB_ID=homelab_extended_appbackup
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=healthchecks-backup.txt|mtime=2026-07-09 11:51:31.108386138 +0300|sha256=f2012e88374f88b98e419adb29ee39db9dd58540ed8f20d7894813eabad36301
|
|
STATUS=OK TS=2026-07-09T08:51:29Z TYPE=healthchecks-backup JOB=homelab-pve01-app-healthchecks-20260709T051713Z SOURCE=latest-appbackup SIZE=687 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-healthchecks.json NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=backup-scheduler-rpo-hardening.json|mtime=2026-08-10 13:51:49.375986623 +0300|sha256=e73927d669e1d066d03cd711449f9533ce018da041a86432c8550624a5a6c55f
|
|
{
|
|
"status": "OK",
|
|
"root_cause_count": 0,
|
|
"production_changed": true,
|
|
"cloud_changed": false,
|
|
"backup_started": false,
|
|
"applied_at_utc": "2026-08-10T10:51:49Z",
|
|
"target_bytes": true,
|
|
"persistent_stamps_rebased": true,
|
|
"timers_started": true,
|
|
"no_immediate_service_start": true,
|
|
"next": {
|
|
"vm": "Mon 2026-08-10 [IPV6] MSK",
|
|
"app": "Mon 2026-08-10 [IPV6] MSK"
|
|
}
|
|
}
|
|
HEALTH_FILE=minio-backup.txt|mtime=2026-07-09 15:13:16.876111706 +0300|sha256=e4965b27706d848070d5ca6c2e974a14c520465f3b1575fda1ab671d6cf0e124
|
|
STATUS=OK TS=2026-07-09T12:13:14Z TYPE=minio-backup JOB=homelab-pve01-app-minio-20260709T051713Z SOURCE=latest-appbackup SIZE=4585 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-minio.json NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=backup-framework.txt|mtime=2026-08-30 21:08:08.850863900 +0300|sha256=192caeb6ecfd0d386aa32fcf838229854ea73f3abb7d46343cd8f1b4acf7b2ab
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=homelab_verified_backup_health
|
|
JOB_NAME=homelab-verified-backup-health
|
|
MATRIX_MODE=authoritative
|
|
TIMER=homelab-verified-backup-health.timer
|
|
SERVICE=homelab-verified-backup-health.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=health_file
|
|
EVIDENCE_LEVEL=artifact_or_health
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=/var/lib/homelab-backup-matrix/evidence/homelab_verified_backup_health/1-latest-emergency-pack.json
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-08-06T20:59:56Z
|
|
AGE_SECONDS=2063292
|
|
MAX_AGE_SECONDS=172800
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/backup-framework.txt
|
|
CANONICAL_JOB_ID=homelab_verified_backup_health
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=audiobookshelf-backup.txt|mtime=2026-07-09 21:22:25.670486930 +0300|sha256=fb81212dd08251ede49f921b0fb61b86a8f4446af80bdd42172acbbaf60b8e32
|
|
STATUS=OK TS=2026-07-09T18:22:24Z TYPE=audiobookshelf-backup BAD=0 APP=audiobookshelf JOB=homelab-pve01-app-audiobookshelf-20260709T051713Z SIZE=23094 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-audiobookshelf.json
|
|
HEALTH_FILE=filebrowser-backup.txt|mtime=2026-08-30 21:08:08.363475316 +0300|sha256=e8d06faa33f0c464b6074e5c121ec8aea9406d532097400a339764bcc71b009c
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=filebrowser_backup
|
|
JOB_NAME=filebrowser-backup
|
|
MATRIX_MODE=authoritative
|
|
TIMER=filebrowser-backup.timer
|
|
SERVICE=filebrowser-backup.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=health_file
|
|
EVIDENCE_LEVEL=artifact_or_health
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=/var/lib/homelab-backup/apps/latest-filebrowser.json
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-08-06T21:28:05Z
|
|
AGE_SECONDS=2061603
|
|
MAX_AGE_SECONDS=259200
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/filebrowser-backup.txt
|
|
CANONICAL_JOB_ID=filebrowser_backup
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=netbox-backup.txt|mtime=2026-07-09 13:23:55.693530989 +0300|sha256=0cf3e80b9d64332d56d5d6bb6fd0b09e3de366a6817b7cf4ce2fcca80f5ccd0c
|
|
STATUS=OK TS=2026-07-09T10:23:50Z TYPE=netbox-backup JOB=homelab-pve01-app-netbox-20260709T072101Z SOURCE=latest-appbackup SIZE=25860637 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-netbox.json NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=linkding-backup.txt|mtime=2026-07-09 20:00:19.838194359 +0300|sha256=cb3766255eec88a3a0a70447fb507ced5065345636fce5c4d760012f7e7944ab
|
|
STATUS=OK TS=2026-07-09T17:00:18Z TYPE=linkding-backup BAD=0 APP=linkding JOB=homelab-pve01-app-linkding-20260709T051713Z SIZE=40380 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-linkding.json
|
|
HEALTH_FILE=n8n-backup.txt|mtime=2026-07-09 22:39:24.237551932 +0300|sha256=723af1f45fc9e9e68e95cccc9747fb25b6bfef068c71060de1aaf260c0534774
|
|
STATUS=OK TS=2026-07-09T19:39:23Z TYPE=n8n-backup BAD=0 APP=n8n JOB=homelab-pve01-app-n8n-20260709T051713Z SIZE=92667 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-n8n.json
|
|
HEALTH_FILE=crypto-portfolio-backup.txt|mtime=2026-07-13 11:12:13.302397603 +0300|sha256=cf13d8b15a64fbb2fa412e32ce4eafdc732b045fe82e789928e768ace92361eb
|
|
STATUS=OK TS=2026-07-13T08:12:13Z TYPE=crypto-portfolio-backup APP=crypto-portfolio JOB=homelab-pve01-app-crypto-portfolio-20260713T075801Z PATH_REL=hb/a/cp-260713-075801 ARCHIVE_SIZE_BYTES=137496 FILE_COUNT=19 ARCHIVE_SHA256=d6d3f6a397c5e73b1df0ceaeeef0f313db557b163bc6b36f32e8a084e54e975a DATABASE_INTEGRITY=ok TWO_CLOUDS=OK LOCAL_STAGING_DELETED=YES
|
|
HEALTH_FILE=backup-audit-v2.json|mtime=2026-09-23 23:47:36.447938462 +0300|sha256=b193b9fc04ed47f247d4c981468387ceff69cf1415e4295ec5b4de9e08d1b6fe
|
|
{"cloud":{"A":{"free":592249131673,"free_fraction":0.538647,"readable":true,"top_dirs":27,"total":1099511627776,"used":507262496103},"B":{"free":592249067814,"free_fraction":0.538647,"readable":true,"top_dirs":27,"total":1099511627776,"used":507262559962}},"cloud_b_restore_drill":true,"dr_proven":true,"generated_at_epoch":1790196452,"issues":[{"code":"RPO_BREACH","logical_id":"vm150","root_cause":"NO_FRESH_V2_OR_SEALED_QUORUM","severity":"HIGH"},{"code":"SOURCE_OFFHOST_MISSING","logical_id":"-","root_cause":"CR_BRANCH_SHA_NOT_EXACT","severity":"MEDIUM"}],"schema":"homelab-backup-audit-v3","source":{"local_head":"6401ea1e99988b9d2550de544c9e45bd7e829bdd","pushurl_disabled":true,"remote_head":null},"status":"RED","targets":[{"decision":"SKIP_FRESH","generation":"app-filebrowser-pve01-20260923T143005Z","kind":"APP","legacy_age_seconds":22640,"logical_id":"app-filebrowser","state":"FRESH"},{"decision":"SKIP_FRESH","generation":"app-hbarhub-pve01-20260923T143158Z","kind":"APP","legacy_age_seconds":22468,"logical_id":"app-hbarhub","state":"FRESH"},{"decision":"SKIP_FRESH","generation":"app-immich-pve01-20260923T143041Z","kind":"APP","legacy_age_seconds":22568,"logical_id":"app-immich","state":"FRESH"},{"decision":"SKIP_FRESH","generation":"app-skladchik-reports-monitor-pve01-20260923T143025Z","kind":"APP","legacy_age_seconds":22618,"logical_id":"app-skladchik-reports-monitor","state":"FRESH"},{"age_seconds":44470,"generation":"control-bootstrap-v2-pve01-20260916T120057Z","kind":"CONTROL","logical_id":"control-bootstrap-v2","state":"FRESH"},{"generation":"v2-ct110-20260923T125546Z-34408ffe4182","kind":"VM","legacy_age_seconds":1696083,"logical_id":"vm110","replica_count":2,"source":"V2","state":"FRESH","state_id":"ct110","v2_age_seconds":28097},{"generation":"v2-ct111-20260923T133222Z-0d3f5fae9c35","kind":"VM","legacy_age_seconds":null,"logical_id":"vm111","replica_count":2,"source":"V2","state":"FRESH","state_id":"ct111","v2_age_seconds":25955},{"generation":"v2-ct112-20260923T200600Z-c1b47cc67dad","kind":"VM","legacy_age_seconds":1734578,"logical_id":"vm112","replica_count":2,"source":"V2","state":"FRESH","state_id":"ct112","v2_age_seconds":2422},{"generation":"v2-ct113-20260923T203800Z-bd913a8e8930","kind":"VM","legacy_age_seconds":null,"logical_id":"vm113","replica_count":2,"source":"V2","state":"FRESH","state_id":"ct113","v2_age_seconds":497},{"generation":"v2-vm130-20260923T011558Z-c9498d37d3d7","kind":"VM","legacy_age_seconds":null,"logical_id":"vm130","replica_count":2,"source":"V2","state":"FRESH","state_id":"vm130","v2_age_seconds":69146},{"generation":"vm150-pve01-20260904T053517Z","kind":"VM","legacy_age_seconds":1696199,"logical_id":"vm150","replica_count":2,"source":"NONE","state":"STALE","state_id":"vm150","v2_age_seconds":74828},{"generation":"v2-vm160-20260923T014608Z-f76d7671af5a","kind":"VM","legacy_age_seconds":null,"logical_id":"vm160","replica_count":2,"source":"V2","state":"FRESH","state_id":"vm160","v2_age_seconds":68046},{"generation":"v2-vm170-20260923T035958Z-923adacbc94b","kind":"VM","legacy_age_seconds":640820,"logical_id":"vm170","replica_count":2,"source":"V2","state":"FRESH","state_id":"vm170","v2_age_seconds":59695},{"generation":"v2-vm171-20260923T021946Z-4d6e4f578075","kind":"VM","legacy_age_seconds":670352,"logical_id":"vm171","replica_count":2,"source":"V2","state":"FRESH","state_id":"vm171","v2_age_seconds":66249},{"generation":"v2-vm190-20260923T032759Z-314d9ba2ec35","kind":"VM","legacy_age_seconds":null,"logical_id":"vm190","replica_count":2,"source":"V2","state":"FRESH","state_id":"vm190","v2_age_seconds":62166},{"generation":"v2-vm9130-20260923T071932Z-c0492db6535b","kind":"VM","legacy_age_seconds":null,"logical_id":"vm9130","replica_count":2,"source":"V2","state":"FRESH","state_id":"vm9130","v2_age_seconds":47261}]}
|
|
HEALTH_FILE=netbird-old-usa-poweroff-observation.txt|mtime=2026-08-22 05:33:01.774623609 +0300|sha256=0307f121dba0190d02875321ed3ca2c433f8a2902678f46814d39cdc476a4a00
|
|
STATUS=OBSERVING
|
|
START_EPOCH=1787365981
|
|
START_UTC=2026-08-22T02:33:01Z
|
|
MIN_SECONDS=86400
|
|
MAX_SECONDS=172800
|
|
NEW_IP=[IP]
|
|
OLD_USA_PROVIDER_DELETION=USER_ATTESTED
|
|
OLD_PUBLIC_IP_REACHABILITY=NOT_USED_AS_HOST_IDENTITY
|
|
NEW_OPERATOR_KEY_ONLY=PROVEN
|
|
NEW_NETBIRD_STACK=3_OF_3
|
|
NEW_PUBLIC_PLANE=GREEN
|
|
FINAL_RETIREMENT=PENDING_OBSERVATION
|
|
HEALTH_FILE=crypto-portfolio-remove-grt-prechange-backup.txt|mtime=2026-07-13 08:10:44.727781612 +0300|sha256=59de8a4e38310ef8236d167be536aa2f0f1d0fa3dd0ad3ac7fd49e67ed6206f3
|
|
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=6cc505f7e13a02b0ddfc9fd3a9700903d7aaf70d8c8ae3f630a4fea69aeb4b1f ROLLBACK_DATABASE_INTEGRITY=ok ROLLBACK_GRT_ROWS=1|1|729 TWO_CLOUD_BACKUP=OK BACKUP_JOB=homelab-pve01-app-crypto-portfolio-20260713T051015Z BACKUP_ARCHIVE_SIZE_BYTES=172776 BACKUP_FILE_COUNT=19 BACKUP_DATABASE_INTEGRITY=ok BACKUP_LOCAL_STAGING_DELETED=YES RESTORE_CHECK=OK_BOTH_CLOUDS PRODUCTION_SOURCE_HASHES_UNCHANGED=YES PRODUCTION_CONTAINER_IDS_AND_RESTARTS_UNCHANGED=YES PRODUCTION_DATABASE_INTEGRITY=ok PRODUCTION_GRT_STATE_PRESERVED=YES PUBLIC_PRODUCTION_STATE_PRESERVED=YES READY_FOR_GRT_PRODUCTION_APPLY=YES PRECHANGE_ROOT=/var/lib/homelab-change-sets/crypto-portfolio-remove-grt-prechange-backup/20260713T051013Z
|
|
HEALTH_FILE=beszel-backup.txt|mtime=2026-07-09 11:38:36.118613080 +0300|sha256=951a25a876714a6b36934a96ae7f85bab06b480633c052b0850ba02d5e0e106c
|
|
STATUS=OK TS=2026-07-09T08:38:10Z TYPE=beszel-backup JOB=homelab-pve01-app-beszel-20260709T083810Z SOURCE=beszel_stack_data SIZE=20030 SHA256=a3d7069dce01b7e7b336268cfe383dc1b0842a974bd5dc9f455442ed86c912e4 LOCAL_BACKUP_DELETED=true NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=gotify-backup.txt|mtime=2026-07-09 23:39:37.911441599 +0300|sha256=e86e933ad71df820106148796cdccbde701c986034c7e49684f3d9e84bc0d17f
|
|
STATUS=OK TS=2026-07-09T20:39:29Z TYPE=gotify-backup BAD=0 APP=gotify JOB=homelab-pve01-app-gotify-20260709T072202Z SIZE=44431 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-gotify.json
|
|
HEALTH_FILE=minio-console-backup.txt|mtime=2026-07-09 15:13:16.876111706 +0300|sha256=e4965b27706d848070d5ca6c2e974a14c520465f3b1575fda1ab671d6cf0e124
|
|
STATUS=OK TS=2026-07-09T12:13:14Z TYPE=minio-backup JOB=homelab-pve01-app-minio-20260709T051713Z SOURCE=latest-appbackup SIZE=4585 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-minio.json NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=netbird-vps-restore.txt|mtime=2026-06-17 10:54:28.050678269 +0300|sha256=800a5462a6173c8749059462e39a3263cae2b4db012c1dc3ad336aa3429ab2cb
|
|
STATUS=OK
|
|
SERVICE=netbird-vps-restore-validation
|
|
TIMESTAMP_UTC=20260617T075428Z
|
|
LATEST=20260617T074922Z
|
|
ARCHIVE=/mnt/staging/netbird-vps-backups/snapshots/20260617T074922Z/netbird-vps-backup.tgz
|
|
SIZE=32M
|
|
SHA256=8e0c6538268b4e5dc463e008e59acb9d77873873915bec74ac2a85a9d1523a84
|
|
TOP_ARCHIVE_ENTRIES=9
|
|
ROOT_NETBIRD_ENTRIES=7
|
|
CHECKS=compose,config,dashboard_env
|
|
HEALTH_FILE=bookstack-backup.txt|mtime=2026-07-09 20:58:33.528404671 +0300|sha256=80a1b54e2027c39a6b2c298e558d1352b976e0cd1795cf8f26ae9249b8c2e1dd
|
|
STATUS=OK TS=2026-07-09T17:58:30Z TYPE=bookstack-backup BAD=0 APP=bookstack JOB=homelab-pve01-app-bookstack-20260709T024714Z SIZE=18108 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-bookstack.json
|
|
HEALTH_FILE=backup-last-run.log|mtime=2026-07-24 07:04:41.713444052 +0300|sha256=8618b97d2ffa65b7cc2218710c2add4283285038eaca633a7bffbda898d1e5c7
|
|
===== HOMELAB BACKUP HEALTHCHECK =====
|
|
2026-07-24T07:04:28+03:00
|
|
|
|
LATEST=/mnt/staging/vzdump/auto-full-backup-20260719T004537Z
|
|
AGE_HOURS=123
|
|
MAX_AGE_HOURS=192
|
|
|
|
===== REQUIRED FILES =====
|
|
OK: pve01/vzdump-lxc-110-*.tar.zst
|
|
OK: pve01/vzdump-lxc-112-*.tar.zst
|
|
OK: pve01/vzdump-qemu-150-*.vma.zst
|
|
OK: pve02/vzdump-lxc-111-*.tar.zst
|
|
OK: pve02/vzdump-lxc-113-*.tar.zst
|
|
OK: pve03/vzdump-qemu-130-*.vma.zst
|
|
OK: MASTER_SHA256SUMS.txt
|
|
OK: README_AUTO_FULL_BACKUP.txt
|
|
|
|
===== SIZE CHECK =====
|
|
SIZE_BYTES=19102676192
|
|
SIZE_GB_APPROX=17
|
|
|
|
===== SHA256 CHECK =====
|
|
pve01/SHA256SUMS.txt: OK
|
|
pve01/vzdump-lxc-110-2026_07_19-03_45_38.log: OK
|
|
pve01/vzdump-lxc-110-2026_07_19-03_45_38.tar.zst: OK
|
|
pve01/vzdump-lxc-112-2026_07_19-03_45_47.log: OK
|
|
pve01/vzdump-lxc-112-2026_07_19-03_45_47.tar.zst: OK
|
|
pve01/vzdump-qemu-150-2026_07_19-03_45_58.log: OK
|
|
pve01/vzdump-qemu-150-2026_07_19-03_45_58.vma.zst: OK
|
|
pve02/SHA256SUMS.txt: OK
|
|
pve02/vzdump-lxc-111-2026_07_19-03_47_26.log: OK
|
|
pve02/vzdump-lxc-111-2026_07_19-03_47_26.tar.zst: OK
|
|
pve02/vzdump-lxc-113-2026_07_19-03_47_43.log: OK
|
|
pve02/vzdump-lxc-113-2026_07_19-03_47_43.tar.zst: OK
|
|
pve03/SHA256SUMS.txt: OK
|
|
pve03/vzdump-qemu-130-2026_07_19-03_48_01.log: OK
|
|
pve03/vzdump-qemu-130-2026_07_19-03_48_01.vma.zst: OK
|
|
README_AUTO_FULL_BACKUP.txt: OK
|
|
|
|
===== STORAGE SPACE =====
|
|
Filesystem Type Size Used Avail Use% Mounted on
|
|
/dev/mapper/pve-homelab--staging ext4 295G 148G 132G 53% /mnt/staging
|
|
/dev/mapper/pve-root ext4 98G 41G 53G 44% /
|
|
|
|
STATUS=OK
|
|
REASON=latest backup exists, fresh, complete, and sha256 verified
|
|
HEALTH_FILE=cluster-admin-stage2-preapply-backup.txt|mtime=2026-07-13 04:24:04.995755658 +0300|sha256=82a0a705c46b2cf757dc37ce6a06a981c4cbe3ea3d580459ac7f8c6ae17a153d
|
|
STATUS=OK TS=2026-07-13T01:23:18Z TYPE=cluster-admin-stage2-preapply-backup BAD=0 PREAPPLY_GENERATION=V2_DYNAMIC PRODUCTION_CHANGED=BACKUP_ARTIFACTS_ONLY PRODUCTION_DATABASE_CHANGED=NO PRODUCTION_SCHEMA_CHANGED=NO INCIDENT_ENGINE_RESTARTED=NO COLLECTOR_ONESHOT_RUN=NO CLOUD_WRITE_RUN=YES_CONTROLLED_BACKUP_ONLY ROLLBACK_POINT=VERIFIED DIRECT_DB_SNAPSHOT=VERIFIED DIRECT_DB_RESTORE_TEST=OK DIRECT_DB_DUMP_SIZE_BYTES=1818083 DIRECT_DB_DUMP_SHA256=c0fe2161bb6e61b423bc72d809bdd579ac29dc4f7bac79ba4c493bfa9f8b1d5e PRECHANGE_COLLECTOR_SHA256=a83abde2290d8392b1c631122671bcb680f9271d0b576fafacb8876d3c8034f1 CANDIDATE_COLLECTOR_SHA256=5dda66a1878046223af9c28a393129b44991a8083b430a76302767b460e7cbbe FOUNDATION_COUNTS=84|21|1|227|26|0 DYNAMIC_INVARIANTS=0|0|21|21|0|0|0|0|0|0 RETIRED_PLACEHOLDERS_ALLOWED=YES FIXED_TOTAL_ENTITIES_REQUIRED=NO FIXED_TOTAL_ALIASES_REQUIRED=NO APPBACKUP_JOB=homelab-pve01-app-cluster-admin-incident-engine-20260713T012320Z APPBACKUP_STATUS=success APPBACKUP_RESTORE_CHECK=OK APPBACKUP_ROUTING_DOCKGE_UNCHANGED=YES MIGRATION_PATCH_REQUIRED=NO COLLECTOR_PATCH_REQUIRED=NO APPLY_VERIFIER_PATCH_REQUIRED=YES PREFLIGHT_TRANSACTION_ROLLBACK_REQUIRED=YES ROLLBACK_AFTER_COMMITTED_SYNC=PRESERVE_APPLIED_STATE_AND_DIAGNOSE PRODUCTION_UNCHANGED=YES OVERALL=OK DUTY_ADMIN=OK READY_FOR_DYNAMIC_PRODUCTION_APPLY=YES DESIRED_STATE_HEAD=4d0d03395d2baf4024ad7c9d5870f21bdaee9f99 PREAPPLY_ROOT=/var/lib/homelab-stage2-preapply-v2/20260713T012318Z REMOTE_SNAPSHOT_DIR=/var/lib/cluster-admin-stage2-preapply-v2/20260713T012318Z CONTRACT=/var/lib/homelab-change-sets/stage2-dynamic-redryrun/20260713T012006Z/dynamic-acceptance-contract.json EVIDENCE_MANIFEST=/var/lib/homelab-stage2-preapply-v2/20260713T012318Z/SHA256SUMS
|
|
HEALTH_FILE=blackbox-exporter-two-cloud-backup.txt|mtime=2026-07-10 22:20:26.139732318 +0300|sha256=ab822f689cc4b7c38a0eed3c6a3164993ceb54fa05033250c68d934d3df0f259
|
|
STATUS=OK TS=2026-07-10T19:20:26Z TYPE=blackbox-exporter-two-cloud-backup BAD=0 JOB=homelab-pve01-app-blackbox-exporter-20260710T191958Z ARCHIVE_SIZE_BYTES=592 LOCAL_STAGING_DELETED=true OFFHOST=OK RESTORE=OK
|
|
HEALTH_FILE=backup.json|mtime=2026-07-24 07:04:41.723802122 +0300|sha256=550e7a326c46e3e765a6db01da2ddcaddd83808adfa638d980685286bebb45cb
|
|
{
|
|
"status": "OK",
|
|
"reason": "latest backup exists, fresh, complete, and sha256 verified",
|
|
"latest": "/mnt/staging/vzdump/auto-full-backup-20260719T004537Z",
|
|
"age_hours": "123",
|
|
"start": "2026-07-24T07:04:28+03:00",
|
|
"end": "2026-07-24T07:04:41+03:00",
|
|
"rc": 0
|
|
}
|
|
HEALTH_FILE=cluster-admin-backup-webpanel-final-seal.txt|mtime=2026-07-09 08:24:54.072015305 +0300|sha256=9739e2a0d2bbb859b25255fd7acae984ee05a16fb79cd9e59ff81529c4acf3fd
|
|
STATUS=OK TS=2026-07-09T05:24:54Z TYPE=cluster-admin-backup-webpanel-final-seal BAD=0 VMID=180 URL=http://[IP]:8080/ BACKUP=MAIL_CLOUD_2COPY_VERIFY_OK WEBPANEL=OK WEBPANEL_SYNC=OK OVERALL_HARDGATE=YES FINAL_READINESS_HARDGATE=YES FAILED_UNITS=pve01:0,pve02:0,pve03:0,edge:0 DIRTY_COUNT=0 REPORT=/var/lib/homelab-ideal-cluster/cluster-admin-backup-webpanel-final-seal-latest.md
|
|
HEALTH_FILE=immich-backup.txt|mtime=2026-07-09 23:09:25.074550210 +0300|sha256=8ef28f515f12888a7b1ff5b949d09b0eef90c1fc11da523b388ddd905167b52d
|
|
STATUS=OK TS=2026-07-09T20:09:12Z TYPE=immich-backup BAD=0 APP=immich JOB=homelab-pve01-app-immich-20260709T072002Z SIZE=328392286 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-immich.json MEDIA_BACKUP_HEALTH=/var/lib/homelab-health/immich-media-backup.txt
|
|
HEALTH_FILE=grafana-backup.txt|mtime=2026-07-09 10:46:00.905608392 +0300|sha256=1347e0bba67dd249caa8d4e46faf4d6bb2fd573255c1f78449995f97eea30014
|
|
STATUS=OK TS=2026-07-09T07:46:00Z TYPE=grafana-backup JOB=homelab-pve01-app-grafana-20260709T074600Z SOURCE=grafana_sqlite_backup_plus_provisioning SIZE=129929 SHA256=582537912f306666f04d9e855491f7275bdb31b39b4c9b0156444a297f8c1641 LOCAL_BACKUP_DELETED=true NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=appbackupctl-routing.txt|mtime=2026-07-13 03:29:40.002577636 +0300|sha256=d8ddbdb46b42bcefb4f03b50ef4b88bdc5e3cd1cea087dd035fd90fd78e1a252
|
|
STATUS=OK TS=2026-07-13T00:29:36Z TYPE=appbackupctl-routing BAD=0 RESULT=APPLIED PRODUCTION_CHANGED=BACKUP_CLI_ROUTING_AND_DESIRED_STATE_ONLY PRODUCTION_DATABASE_CHANGED=NO PRODUCTION_SCHEMA_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=NO DEFAULT_ROUTE=dockge-stacks CLUSTER_ADMIN_ROUTE=homelab-cluster-admin-incident-engine-backup.service UNSUPPORTED_TARGET_POLICY=REFUSE_RC_2 ROUTE_TEST_DOCKGE=OK ROUTE_TEST_CLUSTER_ADMIN=OK ROUTE_TEST_DEFAULT=OK ROUTE_TEST_UNSUPPORTED=OK FRAMEWORK_CHECK=OK UNSUPPORTED_ROUTE_BACKUP_CREATED=NO LIVE_MATCH_DESIRED_STATE=YES PVE01_FAILED_UNITS=0 OVERALL=OK DUTY_ADMIN=OK STAGE1_CLOSED=YES STAGE2_READY=YES OLD_HEAD=bd5eb856a8d61a5fb83c2bcaf74cb8ac98f075c5 NEW_HEAD=4d0d03395d2baf4024ad7c9d5870f21bdaee9f99 CHANGE_SET=/var/lib/homelab-change-sets/appbackupctl-routing/20260713T002936Z
|
|
HEALTH_FILE=vaultwarden-backup.txt|mtime=2026-08-30 21:08:08.480614603 +0300|sha256=ba016970c3d244955b82977178290fea97126dbcc2a44e4758ecd28ad720a499
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=homelab_appbackup_sqlite_batch
|
|
JOB_NAME=homelab-appbackup-sqlite-batch
|
|
MATRIX_MODE=authoritative
|
|
TIMER=homelab-appbackup-sqlite-batch.timer
|
|
SERVICE=homelab-appbackup-sqlite-batch.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=systemd
|
|
EVIDENCE_LEVEL=execution_only
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=systemd:homelab-appbackup-sqlite-batch.service
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-07-24T01:46:28Z
|
|
AGE_SECONDS=3255700
|
|
MAX_AGE_SECONDS=172800
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/vaultwarden-backup.txt
|
|
CANONICAL_JOB_ID=homelab_appbackup_sqlite_batch
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=hapusya-site-preapply-backup.txt|mtime=2026-07-13 14:03:06.015223430 +0300|sha256=00e05707281a8d6e841ec0f6d2b8c95ee0f9fbc090ab90b718e85530d41854f8
|
|
STATUS=OK TS=2026-07-13T11:03:06Z TYPE=hapusya-site-preapply-backup BAD=0 NPMPLUS_JOB=homelab-pve01-app-npmplus-edge-20260713T110238Z TWO_CLOUDS=OK RESTORE_CHECK=OK ROLLBACK=/var/lib/homelab-incidents/hapusya-site-preapply-20260713T110305Z ROLLBACK_MANIFEST_SHA256=6b4020425c5d6c581c48a5dc95b20d54fd7906468e4ba8d27c0f0325e2df81a3 CANDIDATE_BROWSER=OK BROWSER_RUNS=4 PRODUCTION_CHANGED=NO
|
|
HEALTH_FILE=pve01-backup.txt|mtime=2026-07-09 15:29:41.985138298 +0300|sha256=2b8ca75eeec121d7e2b0c6a309d43798da5f864b57fef327f37a56b9ced3b5a8
|
|
STATUS=OK TS=2026-07-09T12:29:38Z TYPE=proxmox-pve01-backup JOB=homelab-pve01-app-proxmox-pve01-20260709T122938Z SOURCE=safe_pve01_config_facts SIZE=4314 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-proxmox-pve01.json NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=backup-observability-history.jsonl|mtime=2026-09-21 07:07:33.804291373 +0300|sha256=24fa8197552d64778c83071fb94a64accd398075ce5d1e675dcdf6c97a84c36b
|
|
{"clouds":[{"free_bytes":792267937635,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":307243690141},{"free_bytes":792267873776,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":307243754000}],"observed_at_epoch":1788438952,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":474143241,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369191552,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223627414,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221521137,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10622796310,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":890940072,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3469023634,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7824247513,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026787893,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1176306536,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1551688736,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":11005893463,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":383573170,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3193,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":152745,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193536,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75298798,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959200,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":792267937635,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":307243690141},{"free_bytes":792267873776,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":307243754000}],"observed_at_epoch":1788442632,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":474143241,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369191552,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223627414,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221521137,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10622796310,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":890940072,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3469023634,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7824247513,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026787893,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1176306536,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1551688736,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":11005893463,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":383573170,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3193,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":152745,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193536,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75298798,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959200,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":792267937635,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":307243690141},{"free_bytes":792267873776,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":307243754000}],"observed_at_epoch":1788447976,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":474143241,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369191552,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223627414,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221521137,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10622796310,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":890940072,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3469023634,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7824247513,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026787893,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1176306536,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1551688736,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":11005893463,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":383573170,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3193,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":152745,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193536,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75298798,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959200,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":792267937635,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":307243690141},{"free_bytes":792267873776,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":307243754000}],"observed_at_epoch":1788451586,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":474143241,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369191552,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223627414,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221521137,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10622796310,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":890940072,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3469023634,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7824247513,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026787893,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1176306536,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1551688736,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":11005893463,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":383573170,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3193,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":152745,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193536,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75298798,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959200,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":771612988784,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":327898638992},{"free_bytes":771612924925,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":327898702851}],"observed_at_epoch":1788456981,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":476345840,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369191552,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223627414,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221521137,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":892033158,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3469023634,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7937058725,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026787893,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1176306536,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1551688736,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":11005893463,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":386825665,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3192,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":153389,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193550,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75379068,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959200,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":755855450788,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":343656176988},{"free_bytes":755855386929,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":343656240847}],"observed_at_epoch":1788460613,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":476345840,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369191552,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223627414,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221521137,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10611899437,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":892033158,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3469023634,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7937058725,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026047659,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1171789442,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":386825665,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3192,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":153389,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193550,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75379068,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959200,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":751486275845,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":348025351931},{"free_bytes":751486211986,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":348025415790}],"observed_at_epoch":1788465932,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":476345840,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10611899437,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":892033158,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3553006761,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7937058725,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026047659,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1171789442,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":386825665,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3192,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":153389,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193550,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75379068,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959200,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":751477313023,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":348034314753},{"free_bytes":751477249164,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":348034378612}],"observed_at_epoch":1788469583,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":476345840,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10611899437,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":892033158,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3553006761,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7937058725,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026047659,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1171789442,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":386825665,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3192,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":153389,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193550,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75379068,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959291,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":751477313023,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":348034314753},{"free_bytes":751477249164,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":348034378612}],"observed_at_epoch":1788474989,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":476345840,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10611899437,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":892033158,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3553006761,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7937058725,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026047659,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1171789442,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":386825665,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3192,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":153389,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193550,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75379068,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959291,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":751477313023,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":348034314753},{"free_bytes":751477249164,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":348034378612}],"observed_at_epoch":1788478603,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":476345840,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10611899437,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":892033158,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3553006761,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7937058725,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026047659,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1171789442,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":386825665,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3192,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":153389,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193550,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75379068,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959291,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":751477313023,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":348034314753},{"free_bytes":751477249164,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":348034378612}],"observed_at_epoch":1788482209,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":476345840,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10611899437,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":892033158,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3553006761,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7937058725,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026047659,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1171789442,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":386825665,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3192,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":153389,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193550,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75379068,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959291,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":751477313023,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":348034314753},{"free_bytes":751477249164,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":348034378612}],"observed_at_epoch":1788487523,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":476345840,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10611899437,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":892033158,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3553006761,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7937058725,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026047659,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1171789442,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":386825665,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3192,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":153389,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193550,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75379068,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959291,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":751477313023,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":348034314753},{"free_bytes":751477249164,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":348034378612}],"observed_at_epoch":1788491188,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":476345840,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10611899437,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":892033158,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3553006761,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7937058725,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026047659,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1171789442,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":386825665,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3192,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":153389,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193550,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75379068,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959291,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":835463704954,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":264047922822},{"free_bytes":835463641095,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":264047986681}],"observed_at_epoch":1788496558,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":476345840,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10611899437,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":892033158,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3553006761,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7937058725,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026047659,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1171789442,"id":"180","kind":"VM","logical_id":"vm180"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":386825665,"id":"200","kind":"VM","logical_id":"vm200"},{"archive_size_bytes":3192,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":153389,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193550,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75379068,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959291,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":815114087404,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":284397540372},{"free_bytes":815114023545,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":284397604231}],"observed_at_epoch":1788503153,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3553006761,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7974616162,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2026047659,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3192,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":153389,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193550,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75379068,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959291,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":812739438805,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":286772188971},{"free_bytes":812739374946,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":286772252830}],"observed_at_epoch":1788507354,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10620176786,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3553006761,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7974616162,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2028255985,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3197,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":154716,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193492,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75453412,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959291,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":809167318295,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":290344309481},{"free_bytes":809167254436,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":290344373340}],"observed_at_epoch":1788512752,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10620176786,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3571246511,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7974616162,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2028255985,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3197,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":154716,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193492,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75453412,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8959291,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":809158344080,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":290353283696},{"free_bytes":809158280221,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":290353347555}],"observed_at_epoch":1788516392,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10620176786,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3571246511,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7974616162,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2028255985,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3197,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":154716,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193492,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75453412,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8970684,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":809158344080,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":290353283696},{"free_bytes":809158280221,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":290353347555}],"observed_at_epoch":1788520010,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10620176786,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3571246511,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7974616162,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2028255985,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3197,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":154716,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193492,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75453412,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8970684,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":809158344080,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":290353283696},{"free_bytes":809158280221,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":290353347555}],"observed_at_epoch":1788525352,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10620176786,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3571246511,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7974616162,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2028255985,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3197,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":154716,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193492,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75453412,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8970684,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":809158344080,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":290353283696},{"free_bytes":809158280221,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":290353347555}],"observed_at_epoch":1788528952,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10620176786,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3571246511,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7974616162,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2028255985,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3197,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":154716,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193492,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75453412,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8970684,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":809158344080,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":290353283696},{"free_bytes":809158280221,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":290353347555}],"observed_at_epoch":1788532552,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10620176786,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3571246511,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7974616162,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2028255985,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3197,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":154716,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193492,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75453412,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8970684,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":809158344080,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":290353283696},{"free_bytes":809158280221,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":290353347555}],"observed_at_epoch":1788536192,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10620176786,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3571246511,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7974616162,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2028255985,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3197,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":154716,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193492,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75453412,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8970684,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":809158344080,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":290353283696},{"free_bytes":809158280221,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":290353347555}],"observed_at_epoch":1788541532,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10620176786,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3571246511,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7974616162,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2028255985,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3197,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":154716,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193492,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75453412,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8970684,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":809158344080,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":290353283696},{"free_bytes":809158280221,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":290353347555}],"observed_at_epoch":1788545210,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10620176786,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3571246511,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":7974616162,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2028255985,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3197,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":154716,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193492,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75453412,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8970684,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":789729590488,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":309782037288},{"free_bytes":789729526629,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":309782101147}],"observed_at_epoch":1788550592,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10614525791,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3571246511,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6440615330,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3182,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156203,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193546,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75522547,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8970684,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":789729589363,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":309782038413},{"free_bytes":789729525504,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":309782102272}],"observed_at_epoch":1788554210,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10614525791,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3571246511,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6440615330,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2022982219,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3182,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156203,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193546,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75522547,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8970684,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":786104095977,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":313407531799},{"free_bytes":786113009899,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":313398617877}],"observed_at_epoch":1788559610,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10614525791,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3615630758,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6440615330,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2022982219,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3182,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156203,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193546,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75522547,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"}]}
|
|
{"clouds":[{"free_bytes":786104094818,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":313407532958},{"free_bytes":786104030959,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":313407596817}],"observed_at_epoch":1788564916,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10614525791,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3615630758,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6440615330,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2022982219,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3182,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156203,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193546,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75522547,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8975409,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":786104094818,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":313407532958},{"free_bytes":786104030959,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":313407596817}],"observed_at_epoch":1788568552,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10614525791,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3615630758,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6440615330,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2022982219,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3182,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156203,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193546,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75522547,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8975409,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":786104094818,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":313407532958},{"free_bytes":786104030959,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":313407596817}],"observed_at_epoch":1788572153,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10614525791,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3615630758,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6440615330,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2022982219,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3182,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156203,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193546,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75522547,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8975409,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":786104094818,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":313407532958},{"free_bytes":786104030959,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":313407596817}],"observed_at_epoch":1788575770,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10614525791,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3615630758,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6440615330,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2022982219,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3182,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156203,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193546,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75522547,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8975409,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":786104094818,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":313407532958},{"free_bytes":786104030959,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":313407596817}],"observed_at_epoch":1788579413,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10614525791,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3615630758,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6440615330,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2022982219,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3182,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156203,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193546,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75522547,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8975409,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":786104094818,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":313407532958},{"free_bytes":786104030959,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":313407596817}],"observed_at_epoch":1788583036,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10614525791,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3615630758,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6440615330,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2022982219,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3182,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156203,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193546,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75522547,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8975409,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":786104095252,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":313407532524},{"free_bytes":786104031393,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":313407596383}],"observed_at_epoch":1788588332,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10614525791,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3615630758,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6440615330,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2022982219,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3182,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156203,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193546,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75522547,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8975409,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":786104095252,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":313407532524},{"free_bytes":786104031393,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":313407596383}],"observed_at_epoch":1788591953,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10614525791,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3615630758,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6440615330,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2022982219,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3182,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156203,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193546,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75522547,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8975409,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":786104095252,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":313407532524},{"free_bytes":786104031393,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":313407596383}],"observed_at_epoch":1788595592,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10614525791,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3615630758,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6440615330,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2022982219,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3182,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156203,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193546,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75522547,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8975409,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":767079957393,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":332431670383},{"free_bytes":768690899582,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":330820728194}],"observed_at_epoch":1788600970,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10591109796,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3615630758,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6471807402,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3189,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156634,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193548,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75598903,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8975409,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":763045869314,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":336465758462},{"free_bytes":763045805455,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":336465822321}],"observed_at_epoch":1788604613,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10591109796,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":6471807402,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2023943350,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3189,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156634,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193548,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75598903,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8975409,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":763036886053,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":336474741723},{"free_bytes":763036822194,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":336474805582}],"observed_at_epoch":1788609912,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10591109796,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3619770210,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6471807402,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2023943350,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3189,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156634,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193548,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75598903,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8978589,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":763036886053,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":336474741723},{"free_bytes":763036822194,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":336474805582}],"observed_at_epoch":1788613592,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10591109796,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3619770210,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6471807402,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2023943350,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3189,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156634,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193548,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75598903,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8978589,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":763036886053,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":336474741723},{"free_bytes":763036822194,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":336474805582}],"observed_at_epoch":1788618970,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10591109796,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3619770210,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6471807402,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2023943350,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3189,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156634,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193548,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75598903,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8978589,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":763036886053,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":336474741723},{"free_bytes":763036822194,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":336474805582}],"observed_at_epoch":1788624358,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10591109796,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3619770210,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6471807402,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2023943350,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3189,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156634,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193548,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75598903,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8978589,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":763036886053,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":336474741723},{"free_bytes":763036822194,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":336474805582}],"observed_at_epoch":1788628013,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10591109796,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3619770210,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6471807402,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2023943350,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3189,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156634,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193548,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75598903,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8978589,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":763036886053,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":336474741723},{"free_bytes":763036822194,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":336474805582}],"observed_at_epoch":1788633392,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10591109796,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3619770210,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6471807402,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2023943350,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3189,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156634,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193548,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75598903,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8978589,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":763036886053,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":336474741723},{"free_bytes":763036822194,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":336474805582}],"observed_at_epoch":1788638772,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10591109796,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3619770210,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6471807402,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2023943350,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3189,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156634,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193548,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75598903,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8978589,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":756548494504,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":342963133272},{"free_bytes":763036822194,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":336474805582}],"observed_at_epoch":1788644170,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10591109796,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3619770210,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":2023943350,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3189,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":156634,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193548,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75598903,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8978589,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":743574336966,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":355937290810},{"free_bytes":743574273107,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":355937354669}],"observed_at_epoch":1788649558,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10588466039,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3619770210,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6486807437,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2027528282,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3191,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":157473,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193543,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75669106,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8958389,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":743574336966,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":355937290810},{"free_bytes":743574273107,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":355937354669}],"observed_at_epoch":1788653194,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10588466039,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3619770210,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6486807437,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2027528282,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3191,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":157473,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193543,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75669106,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8958389,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
{"clouds":[{"free_bytes":739949922534,"remote":"pve01-mail-01-crypt","total_bytes":1099511627776,"used_bytes":359561705242},{"free_bytes":739949858675,"remote":"pve01-mail-02-crypt","total_bytes":1099511627776,"used_bytes":359561769101}],"observed_at_epoch":1788656802,"schema":"homelab-backup-observability-snapshot-v1","targets":[{"archive_size_bytes":478357303,"id":"110","kind":"VM","logical_id":"vm110"},{"archive_size_bytes":369892675,"id":"111","kind":"VM","logical_id":"vm111"},{"archive_size_bytes":223672749,"id":"112","kind":"VM","logical_id":"vm112"},{"archive_size_bytes":221529138,"id":"113","kind":"VM","logical_id":"vm113"},{"archive_size_bytes":10588466039,"id":"130","kind":"VM","logical_id":"vm130"},{"archive_size_bytes":887338816,"id":"150","kind":"VM","logical_id":"vm150"},{"archive_size_bytes":3623527665,"id":"160","kind":"VM","logical_id":"vm160"},{"archive_size_bytes":6486807437,"id":"170","kind":"VM","logical_id":"vm170"},{"archive_size_bytes":2027528282,"id":"171","kind":"VM","logical_id":"vm171"},{"archive_size_bytes":1557482946,"id":"190","kind":"VM","logical_id":"vm190"},{"archive_size_bytes":10998362942,"id":"9130","kind":"VM","logical_id":"vm9130"},{"archive_size_bytes":3191,"id":"filebrowser","kind":"APP","logical_id":"app-filebrowser"},{"archive_size_bytes":157473,"id":"skladchik-reports-monitor","kind":"APP","logical_id":"app-skladchik-reports-monitor"},{"archive_size_bytes":270193543,"id":"immich","kind":"APP","logical_id":"app-immich"},{"archive_size_bytes":75669106,"id":"hbarhub","kind":"APP","logical_id":"app-hbarhub"},{"archive_size_bytes":8958389,"id":"control-bootstrap-v2","kind":"CONTROL","logical_id":"control-bootstrap-v2"}]}
|
|
HEALTH_FILE=homebox-backup.txt|mtime=2026-07-09 19:01:20.790193328 +0300|sha256=b388a7150af8169744f923e78e519408710c482afa7c2a3fcc334d1a1d3006e6
|
|
STATUS=OK TS=2026-07-09T16:01:19Z TYPE=homebox-backup JOB=homelab-pve01-app-homebox-20260709T051713Z SOURCE=latest-appbackup SIZE=8873 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-homebox.json NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=edge-vm-vzdump-backup.txt|mtime=2026-08-30 21:08:08.621601440 +0300|sha256=35e1b1b24eea8e1ca6506ef437b49606f1e691544f70965db8d30b9b075f9b12
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=homelab_edge_vm_vzdump_backup
|
|
JOB_NAME=homelab-edge-vm-offhost-freshness
|
|
MATRIX_MODE=authoritative
|
|
TIMER=homelab-edge-vm-offhost-freshness.timer
|
|
SERVICE=homelab-edge-vm-offhost-freshness.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=health_file
|
|
EVIDENCE_LEVEL=artifact_or_health
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=/var/lib/homelab-health/edge-vm-offhost-freshness.txt
|
|
SOURCE_STATUS=FAIL
|
|
SOURCE_MTIME_UTC=2026-08-08T01:50:13Z
|
|
AGE_SECONDS=1959475
|
|
MAX_AGE_SECONDS=172800
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/edge-vm-vzdump-backup.txt
|
|
CANONICAL_JOB_ID=homelab_edge_vm_vzdump_backup
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=npmplus-kuma-config-backup.txt|mtime=2026-08-30 21:08:08.440410577 +0300|sha256=be5d4aaace4430857d61615081e8a8ac9fcc577aed6224356cf154114ae08250
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=homelab_appbackup_npmplus_edge
|
|
JOB_NAME=homelab-appbackup-npmplus-edge
|
|
MATRIX_MODE=authoritative
|
|
TIMER=homelab-appbackup-npmplus-edge.timer
|
|
SERVICE=homelab-appbackup-npmplus-edge.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=health_file
|
|
EVIDENCE_LEVEL=artifact_or_health
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=/var/lib/homelab-backup-matrix/evidence/homelab_appbackup_npmplus_edge/0-latest-npmplus-edge.json
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-08-06T21:21:34Z
|
|
AGE_SECONDS=2061994
|
|
MAX_AGE_SECONDS=172800
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/npmplus-kuma-config-backup.txt
|
|
CANONICAL_JOB_ID=homelab_appbackup_npmplus_edge
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=backup-coverage-matrix.txt|mtime=2026-08-30 21:08:08.539509156 +0300|sha256=48b3b20a0dc225b93e0f7b8b1c2746649eb6f965d12f996030cc8ec8791604ff
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=homelab_backup_coverage_matrix
|
|
JOB_NAME=homelab-backup-coverage-matrix
|
|
MATRIX_MODE=authoritative
|
|
TIMER=homelab-backup-coverage-matrix.timer
|
|
SERVICE=homelab-backup-coverage-matrix.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=health_file
|
|
EVIDENCE_LEVEL=artifact_or_health
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=/var/lib/homelab-backup-matrix/evidence/homelab_backup_coverage_matrix/0-backup-coverage-matrix.txt
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-08-06T21:34:03Z
|
|
AGE_SECONDS=2061245
|
|
MAX_AGE_SECONDS=172800
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/backup-coverage-matrix.txt
|
|
CANONICAL_JOB_ID=homelab_backup_coverage_matrix
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=vm160-remote-backup.txt|mtime=2026-07-21 02:39:14.312087060 +0300|sha256=de5897d501d5bc25ca6fe964bf2643b2f8cac6957f9f577a1ae0cf4c68c3587e
|
|
STATUS=FAIL
|
|
SERVICE=homelab-vm160-remote-backup
|
|
TIMESTAMP_UTC=20260720T233913Z
|
|
VMID=160
|
|
TARGET_DIR=/mnt/staging/vzdump/vm160-pve02-20260720T233913Z
|
|
RC=1
|
|
HEALTH_FILE=vm-backup.txt|mtime=2026-07-24 07:43:04.241966168 +0300|sha256=78f0d0c132ea4b61be884501f342913fc13805900c083d82a59ddd30d067d980
|
|
STATUS=OK TS=2026-07-24T04:43:04Z TYPE=vm-backup BAD=0 auto-vmct=OK edge-vm-backup=OK edge-vm-offhost=OK edge-vm-restore=OK auto-timer=active edge-freshness-timer=active
|
|
HEALTH_FILE=app-stacks-batch-backup.txt|mtime=2026-07-09 10:22:35.530260317 +0300|sha256=9218b8b34426e4ce79310c8713e165e9e1ebee79f426f29eb2efe155076b3c36
|
|
STATUS=OK TS=2026-07-09T07:19:28Z TYPE=app-stacks-batch-backup SOURCE=backup-sla STATUS_SOURCE=OK NOTE=legacy-health-refresh-for-prometheus-readiness
|
|
HEALTH_FILE=blackbox-exporter-backup.txt|mtime=2026-07-09 11:04:19.961323675 +0300|sha256=2c46d63ab44ad8bd8f161a547103d8aef937643044b8b326e2b1ff609e9178d0
|
|
STATUS=OK TS=2026-07-09T08:04:14Z TYPE=blackbox-exporter-backup JOB=homelab-pve01-app-blackbox-exporter-20260709T080414Z SOURCE=blackbox_exporter_config SIZE=512 SHA256=31d9f2a61d820629c0e173c0e1a24cd65e24d1ef55ba0670d7fda06225cb8146 LOCAL_BACKUP_DELETED=true NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=node-exporter-backup.txt|mtime=2026-07-09 11:14:05.435232618 +0300|sha256=9312b7986eeb48f06f3f3722fcf970624a423b4c398652d83226e59aaff4fefa
|
|
STATUS=OK TS=2026-07-09T08:13:40Z TYPE=node-exporter-backup JOB=homelab-pve01-app-node-exporter-20260709T081340Z SOURCE=multi_host_node_exporter_config_textfile SIZE=19018 SHA256=bb7db78e6e79c104f89c7735922e2a2e311fba242d34728e64cd60cefe69e647 LOCAL_BACKUP_DELETED=true PVE01_TEXTFILE_REPAIR=OK NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=stirling-pdf-backup.txt|mtime=2026-07-09 21:08:55.532973745 +0300|sha256=d292f237702fbead21f1597ac86dd610f8d3a6f70b81d18d2a3e3bbd8aced551
|
|
STATUS=OK TS=2026-07-09T18:08:38Z TYPE=stirling-pdf-backup BAD=0 APP=stirling-pdf JOB=homelab-pve01-app-stirling-pdf-20260709T180838Z SIZE=40071 LOCAL_BACKUP_DELETED=true ENGINE=files JSON=/var/lib/homelab-backup/apps/latest-stirling-pdf.json
|
|
HEALTH_FILE=backup-audit.json|mtime=2026-09-23 23:47:36.448063169 +0300|sha256=b193b9fc04ed47f247d4c981468387ceff69cf1415e4295ec5b4de9e08d1b6fe
|
|
{"cloud":{"A":{"free":592249131673,"free_fraction":0.538647,"readable":true,"top_dirs":27,"total":1099511627776,"used":507262496103},"B":{"free":592249067814,"free_fraction":0.538647,"readable":true,"top_dirs":27,"total":1099511627776,"used":507262559962}},"cloud_b_restore_drill":true,"dr_proven":true,"generated_at_epoch":1790196452,"issues":[{"code":"RPO_BREACH","logical_id":"vm150","root_cause":"NO_FRESH_V2_OR_SEALED_QUORUM","severity":"HIGH"},{"code":"SOURCE_OFFHOST_MISSING","logical_id":"-","root_cause":"CR_BRANCH_SHA_NOT_EXACT","severity":"MEDIUM"}],"schema":"homelab-backup-audit-v3","source":{"local_head":"6401ea1e99988b9d2550de544c9e45bd7e829bdd","pushurl_disabled":true,"remote_head":null},"status":"RED","targets":[{"decision":"SKIP_FRESH","generation":"app-filebrowser-pve01-20260923T143005Z","kind":"APP","legacy_age_seconds":22640,"logical_id":"app-filebrowser","state":"FRESH"},{"decision":"SKIP_FRESH","generation":"app-hbarhub-pve01-20260923T143158Z","kind":"APP","legacy_age_seconds":22468,"logical_id":"app-hbarhub","state":"FRESH"},{"decision":"SKIP_FRESH","generation":"app-immich-pve01-20260923T143041Z","kind":"APP","legacy_age_seconds":22568,"logical_id":"app-immich","state":"FRESH"},{"decision":"SKIP_FRESH","generation":"app-skladchik-reports-monitor-pve01-20260923T143025Z","kind":"APP","legacy_age_seconds":22618,"logical_id":"app-skladchik-reports-monitor","state":"FRESH"},{"age_seconds":44470,"generation":"control-bootstrap-v2-pve01-20260916T120057Z","kind":"CONTROL","logical_id":"control-bootstrap-v2","state":"FRESH"},{"generation":"v2-ct110-20260923T125546Z-34408ffe4182","kind":"VM","legacy_age_seconds":1696083,"logical_id":"vm110","replica_count":2,"source":"V2","state":"FRESH","state_id":"ct110","v2_age_seconds":28097},{"generation":"v2-ct111-20260923T133222Z-0d3f5fae9c35","kind":"VM","legacy_age_seconds":null,"logical_id":"vm111","replica_count":2,"source":"V2","state":"FRESH","state_id":"ct111","v2_age_seconds":25955},{"generation":"v2-ct112-20260923T200600Z-c1b47cc67dad","kind":"VM","legacy_age_seconds":1734578,"logical_id":"vm112","replica_count":2,"source":"V2","state":"FRESH","state_id":"ct112","v2_age_seconds":2422},{"generation":"v2-ct113-20260923T203800Z-bd913a8e8930","kind":"VM","legacy_age_seconds":null,"logical_id":"vm113","replica_count":2,"source":"V2","state":"FRESH","state_id":"ct113","v2_age_seconds":497},{"generation":"v2-vm130-20260923T011558Z-c9498d37d3d7","kind":"VM","legacy_age_seconds":null,"logical_id":"vm130","replica_count":2,"source":"V2","state":"FRESH","state_id":"vm130","v2_age_seconds":69146},{"generation":"vm150-pve01-20260904T053517Z","kind":"VM","legacy_age_seconds":1696199,"logical_id":"vm150","replica_count":2,"source":"NONE","state":"STALE","state_id":"vm150","v2_age_seconds":74828},{"generation":"v2-vm160-20260923T014608Z-f76d7671af5a","kind":"VM","legacy_age_seconds":null,"logical_id":"vm160","replica_count":2,"source":"V2","state":"FRESH","state_id":"vm160","v2_age_seconds":68046},{"generation":"v2-vm170-20260923T035958Z-923adacbc94b","kind":"VM","legacy_age_seconds":640820,"logical_id":"vm170","replica_count":2,"source":"V2","state":"FRESH","state_id":"vm170","v2_age_seconds":59695},{"generation":"v2-vm171-20260923T021946Z-4d6e4f578075","kind":"VM","legacy_age_seconds":670352,"logical_id":"vm171","replica_count":2,"source":"V2","state":"FRESH","state_id":"vm171","v2_age_seconds":66249},{"generation":"v2-vm190-20260923T032759Z-314d9ba2ec35","kind":"VM","legacy_age_seconds":null,"logical_id":"vm190","replica_count":2,"source":"V2","state":"FRESH","state_id":"vm190","v2_age_seconds":62166},{"generation":"v2-vm9130-20260923T071932Z-c0492db6535b","kind":"VM","legacy_age_seconds":null,"logical_id":"vm9130","replica_count":2,"source":"V2","state":"FRESH","state_id":"vm9130","v2_age_seconds":47261}]}
|
|
HEALTH_FILE=crypto-portfolio-ui-preapply-backup.txt|mtime=2026-07-13 10:42:57.148769166 +0300|sha256=7b4b3faf518b57a01b5bb1302377fc1fb13ad9a206f9e8211edfd8bbbc0bf395
|
|
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=b29eb55820ec46c474f51e995e92e371251b6df717ac98182d807d1dbf8473f5 BACKUP_LOCAL_STAGING_DELETED=YES CANONICAL_TWO_CLOUD_RESTORE_CHECK=OK APPBACKUPCTL_RESTORE_CHECK=OK_BOTH_CLOUDS ROLLBACK_PATH=/var/lib/homelab-incidents/crypto-ui-center-alert-currency-prechange-20260713T071125Z ROLLBACK_MANIFEST_SHA256=0ef56c8f021f549777131ffe878cd5a263bdfb6f1dfb8bb080cefdd554573aca ROLLBACK_INDEX_SHA256=8bbe88f5f420fe429d479c598e1f3f904521eb166d4707e32e579851e84c205e PRODUCTION_UNCHANGED=YES PRODUCTION_HEALTH=200 VM170_FAILED_UNITS=0 PVE01_UNRELATED_FAILED_BASELINE_UNCHANGED=YES CHART_HEALTH_TIMER=ACTIVE BACKUP_TIMER=ACTIVE DESIRED_STATE_HEAD=80763a6c62b94cde4f3293f3b529980f76919d25 DESIRED_STATE_CLEAN=YES DESIRED_STATE_REMOTE_COUNT=0 READY_FOR_UI_PRODUCTION_APPLY=YES PREAPPLY_ROOT=/var/lib/homelab-change-sets/crypto-portfolio-ui-preapply-backup-canonical-close/20260713T074253Z
|
|
HEALTH_FILE=backup-matrix-vm-health-feedback-fix.txt|mtime=2026-07-13 20:29:02.896780731 +0300|sha256=b359a93e09405221e25670600e4b45503ac30c7a8ada2f4e06f0cd9734a6e803
|
|
STATUS=OK TS=2026-07-13T17:29:02Z TYPE=backup-matrix-vm-health-feedback-fix BAD=0 VM_BACKUP_HEALTH_TIMER=homelab-edge-vm-offhost-freshness.timer OLD_TIMER_REENABLED=NO MATRIX_STATUS=OK JOBS_TOTAL=35 JOBS_BAD=0 JOBS_UNMAPPED=0 JOBS_DISABLED=4 READ_WRITE_OVERLAP=0 HEAVY_BACKUP_RUN=NO LIVE_SCRIPT_SHA256=a795ad5cacd48ac72e85c3a7908ad456d1e7c563ef4399e6957725146463faf2 MATRIX_CONFIG_SHA256=7613bcb25d32e61fac114da13af81e38354ec22a012a6deeaa168ee4cc454f87 MATRIX_STATE_SHA256=75f8c749e25df7842ea3be2679119b922c94c2f5ea99700b56c823cfbaedd539 ROLLBACK=/var/lib/homelab-incidents/vm-backup-health-matrix-feedback-fix-20260713T172901Z
|
|
HEALTH_FILE=beszel-two-cloud-backup.txt|mtime=2026-07-10 22:05:25.857040628 +0300|sha256=31278a684937710c66cdabb2c4eff0c0fda078e7fef976ab8f4c49ea5778a5ca
|
|
STATUS=OK TS=2026-07-10T19:05:25Z TYPE=beszel-two-cloud-backup BAD=0 JOB=homelab-pve01-app-beszel-20260710T190453Z ARCHIVE_SIZE_BYTES=20068 LOCAL_STAGING_DELETED=true OFFHOST=OK RESTORE=OK
|
|
HEALTH_FILE=cluster-admin-incident-engine-backup.txt|mtime=2026-07-11 02:30:49.625263708 +0300|sha256=5f56ac6b48e94a81f7a9ffa073525dc255b1fede76fcc04f7b629e0f51cb98ed
|
|
STATUS=OK TS=2026-07-10T23:30:49Z TYPE=cluster-admin-incident-engine-backup BAD=0 JOB=homelab-pve01-app-cluster-admin-incident-engine-20260710T232958Z ARCHIVE_SIZE_BYTES=157380 LOCAL_STAGING_DELETED=true OFFHOST=OK RESTORE=OK POST_FIX_CODE=included
|
|
HEALTH_FILE=backup-unified-audit.json|mtime=2026-09-21 07:36:42.412067103 +0300|sha256=5da55c119b77511b150a6c2c7380842551293e5d3d12e807ab25291a4d9031b6
|
|
{
|
|
"schema": "homelab-backup-unified-audit-v1",
|
|
"task_id": "backup-unified-monitoring-v1",
|
|
"change_id": "CR-2026-0032",
|
|
"updated_at_utc": "2026-09-21T04:36:42Z",
|
|
"audit_status": "OK",
|
|
"backup_status": "RED",
|
|
"risk_severity": "CRITICAL",
|
|
"risk_reasons": [
|
|
"SOURCE_DRIFT",
|
|
"INFRASTRUCTURE_INVARIANT",
|
|
"RPO_BREACH",
|
|
"CAPACITY_CRITICAL",
|
|
"RESUME_PENDING"
|
|
],
|
|
"dr_readiness": "PROVEN",
|
|
"dr_proof_status": "PROVEN",
|
|
"control_freshness": "STALE_PROVEN",
|
|
"lifecycle_status": "CLOSED_PROVEN",
|
|
"vm_count": 11,
|
|
"app_count": 4,
|
|
"fresh_count": 4,
|
|
"stale_count": 10,
|
|
"resume_count": 1,
|
|
"unverified_count": 0,
|
|
"cloud_ok_count": 2,
|
|
"scheduler_ok_count": 6,
|
|
"source_ok_count": 28,
|
|
"source_drift_count": 1,
|
|
"payload_leaks": 0,
|
|
"control_status": "STALE_PROVEN",
|
|
"control_source_coverage": "RESTORE_EVIDENCE",
|
|
"staging_status": "OK",
|
|
"staging_bad_count": 0,
|
|
"staging_warn_count": 0,
|
|
"staging_node_count": 3,
|
|
"escrow_status": "OK",
|
|
"retention_status": "ACTIVE_OWNER_AWARE",
|
|
"historical_gc_proven": false,
|
|
"owner_aware_gc_proven": true,
|
|
"observability_status": "ATTENTION",
|
|
"size_anomaly_count": 0,
|
|
"size_learning_count": 0,
|
|
"capacity_status": "CRIT",
|
|
"capacity_worst_used_percent": 74,
|
|
"capacity_worst_days_to_80": 3,
|
|
"observability_history_snapshot_count": 336,
|
|
"provider_worm_proven": false,
|
|
"provider_worm_skipped_by_policy": true,
|
|
"clean_machine_bootstrap_proven": true,
|
|
HEALTH_FILE=legacy-monitoring-backups-migrated.txt|mtime=2026-07-10 23:00:03.116834953 +0300|sha256=3d8a60e0d8aeb25aed50f6eb2a92df4ef2f544b7409711f0afec378099b635c7
|
|
STATUS=OK TS=2026-07-10T20:00:03Z TYPE=legacy-monitoring-backups-migrated BAD=0 APPS=6 RESTORE_FAILURES=0 ACTIVE_LEGACY_STATES=0 OFFHOST=OK RESTORE=OK
|
|
HEALTH_FILE=backup-boot-drill.json|mtime=2026-09-20 07:40:22.416980264 +0300|sha256=5cf6ed79fdec1f2901a868b05a57f17d1388189dcc2fb32e191b0ee4fd1f5d97
|
|
{
|
|
"drill_executed": false,
|
|
"reason": "BACKUP_LOCK_BUSY",
|
|
"schema": "homelab-backup-boot-drill-health-v1",
|
|
"status": "DEFERRED",
|
|
"updated_at_utc": "2026-09-20T04:40:22Z"
|
|
}
|
|
HEALTH_FILE=vm170-vm171-full-backup.txt|mtime=2026-08-30 21:08:08.908433073 +0300|sha256=dec2afb6c8b47c0c6be4f5a98e226ac3285524bc997cd93dd73942314e4367ee
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=homelab_vm_full_backup
|
|
JOB_NAME=homelab-vm-full-backup
|
|
MATRIX_MODE=authoritative
|
|
TIMER=homelab-vm-full-backup.timer
|
|
SERVICE=homelab-vm-full-backup.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=health_file
|
|
EVIDENCE_LEVEL=artifact_or_health
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=/var/lib/homelab-backup-matrix/evidence/homelab_vm_full_backup/0-vm170-vm171-full-backup.txt
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-07-24T00:10:18Z
|
|
AGE_SECONDS=3261470
|
|
MAX_AGE_SECONDS=172800
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/vm170-vm171-full-backup.txt
|
|
CANONICAL_JOB_ID=homelab_vm_full_backup
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=uptime-kuma-backup.txt|mtime=2026-07-09 23:39:50.594635691 +0300|sha256=62270c278bd63d2068eca9c0ee8a8036436328334a9393b357353eb8d52cc079
|
|
STATUS=OK TS=2026-07-09T20:39:29Z TYPE=uptime-kuma-backup BAD=0 APP=uptime-kuma JOB=homelab-pve01-app-uptime-kuma-20260709T072138Z SIZE=99851064 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-uptime-kuma.json
|
|
HEALTH_FILE=calibre-web-backup.txt|mtime=2026-07-09 21:46:20.933829215 +0300|sha256=2e841d7edd46668242924dae527480ead9c298abeb30a4c96734c382b09c90d7
|
|
STATUS=OK TS=2026-07-09T18:46:20Z TYPE=calibre-web-backup BAD=0 APP=calibre-web JOB=homelab-pve01-app-calibre-web-20260709T051713Z SIZE=6630 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-calibre-web.json
|
|
HEALTH_FILE=syncthing-backup.txt|mtime=2026-07-09 22:55:13.502354244 +0300|sha256=f9afb07a38c097b42a37b5a710917fafa6d31c943953d8daf6db72b7b91d9c24
|
|
STATUS=OK TS=2026-07-09T19:55:12Z TYPE=syncthing-backup BAD=0 APP=syncthing JOB=homelab-pve01-app-syncthing-20260709T051713Z SIZE=6732 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-syncthing.json
|
|
HEALTH_FILE=dozzle-backup.txt|mtime=2026-07-09 11:32:11.068758347 +0300|sha256=cc3f0d96c68c610cad9c1c38c70c89387617d43e1df6e0d304e4b7ae6b0464bb
|
|
STATUS=OK TS=2026-07-09T08:32:09Z TYPE=dozzle-backup JOB=homelab-pve01-app-dozzle-20260709T083209Z SOURCE=dozzle_stack_config SIZE=1328 SHA256=a571ee6f6012b25c16cdf15693dba29d8dd3acc3ce872b52f5c34edb81aa1ec8 LOCAL_BACKUP_DELETED=true NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=vm-backup-policy.txt|mtime=2026-08-30 21:08:08.889182826 +0300|sha256=947eef16fbfd3815d6f823c3bc990415a33c5611342bc0d32fe959cb9e95b799
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=homelab_vm_backup_policy
|
|
JOB_NAME=homelab-vm-backup-policy
|
|
MATRIX_MODE=authoritative
|
|
TIMER=homelab-vm-backup-policy.timer
|
|
SERVICE=homelab-vm-backup-policy.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=health_file
|
|
EVIDENCE_LEVEL=artifact_or_health
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=/var/lib/homelab-backup-matrix/evidence/homelab_vm_backup_policy/0-vm-backup-policy.txt
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-07-24T05:26:24Z
|
|
AGE_SECONDS=3242504
|
|
MAX_AGE_SECONDS=172800
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/vm-backup-policy.txt
|
|
CANONICAL_JOB_ID=homelab_vm_backup_policy
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=netbird-peers.txt|mtime=2026-09-23 23:58:22.533880166 +0300|sha256=77fdd7924a7623499cc18560449d2190a7123fe7f0277c469a8a1360f440c869
|
|
STATUS=ERROR
|
|
SERVICE=netbird-peers
|
|
TIMESTAMP_UTC=20260923T205759Z
|
|
ATTEMPT_USED=2
|
|
pve01 service=active/enabled wt0_ip=[IP]/16 management=no signal=no peers=2/11 Connected
|
|
pve02 service=active/enabled wt0_ip=[IP]/16 management=no signal=no peers=2/11 Connected
|
|
pve03 service=active/enabled wt0_ip=[IP]/16 management=no signal=no peers=2/11 Connected
|
|
edge-vm service=active/enabled wt0_ip=[IP]/16 management=yes signal=yes peers=2/11 Connected
|
|
HEALTH_FILE=hapusya-site-backup-path-mapping.txt|mtime=2026-07-13 15:10:58.138221543 +0300|sha256=fb9db1095347b4db4dc7e37d1085cb758a5608ff8c6f3b934da00f44a905142c
|
|
STATUS=OK TS=2026-07-13T12:10:58Z TYPE=hapusya-site-backup-path-mapping BAD=0 MAP_SHA256=815b52dcedf7e3e92e07939bade32c7e8ed6acc0f9e064b65db6daec9f559c63 SHORT=hps LEGACY_STATE_PATH=pve01/apps/hapusya-site/homelab-pve01-app-hapusya-site-20260713T115259Z DESIRED_STATE_SNAPSHOT=/srv/homelab-desired-state/config/homelab-backup-paths.map RESTORE_CHECK=OK_BOTH_CLOUDS RETENTION=OK PRODUCTION_CHANGED=YES_COMMIT_POINT_PRESERVED
|
|
HEALTH_FILE=crowdsec-capi-netbird-final.txt|mtime=2026-07-02 22:30:48.260143650 +0300|sha256=20b03407e972e39c3a8b7e8ca008bf4a4b6928ed3e0e9a822be886c3cd63fae0
|
|
STATUS=OK
|
|
TS=20260702T193048Z
|
|
CHECK=crowdsec-capi-netbird-final
|
|
DETAIL=CrowdSec CAPI/LAPI stable through NetBird exit route relay [IP]; WARP absent; route smoke OK; documentation and error register updated.
|
|
EDGE=edge-vm
|
|
EDGE_IP=[IP]
|
|
EDGE_NETBIRD_IP=[IP]
|
|
PRIMARY_EXIT=relay.netbird.selfhosted
|
|
PRIMARY_EXIT_NETBIRD_IP=[IP]
|
|
BACKUP_EXIT=mail.netbird.selfhosted
|
|
BACKUP_EXIT_NETBIRD_IP=[IP]
|
|
TRACE_IP=[IP]
|
|
TRACE_COLO=OTP
|
|
PROOFS=771AC_REGISTER_CROWDSEC_CAPI_AFTER_EXIT_ROUTE,771AD_FINAL_CROWDSEC_CAPI_NETBIRD_CLOSURE,771AE_CROWDSEC_CAPI_SOAK_FINAL,771AF_CROWDSEC_CAPI_PROOF_INDEX
|
|
HEALTH_FILE=cluster-admin-stage3-preapply-backup.txt|mtime=2026-07-13 06:15:56.239623410 +0300|sha256=95632c844cbdafe9be502b9164b1ec4351e55a1a0f1ae55668426c8affaa657c
|
|
STATUS=OK TS=2026-07-13T03:15:54Z TYPE=cluster-admin-stage3-preapply-backup BAD=0 COMMAND_PHYSICAL_LINES=1 PRODUCTION_CHANGED=EVIDENCE_ONLY LIVE_APPLICATION_CODE_CHANGED=NO DESIRED_STATE_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=NO_REUSE_VERIFIED_EXISTING_BACKUP APP_PRECHANGE_SHA256=c2748b8f96df842f491b5d2790790594222549853d0e2336cf60ecd6d4de0020 APP_CANDIDATE_SHA256=672d6a2975dd0e093788e7eb81a76e7f901ea6374ca4092a25ba0091aba1cb50 ROLLBACK_CHECKPOINT=VERIFIED REMOTE_CHECKPOINT_DIR=/var/lib/cluster-admin-stage3-preapply/20260713T030540Z CHECKPOINT_MANIFEST_SHA256=ede8c349a3456384f11460477d7cabc1a2aa0d18189ef3aa772471f2ebb26c77 CHECKPOINT_VALIDATION_WORKDIR=CORRECTED APPBACKUP=VERIFIED APPBACKUP_JOB=homelab-pve01-app-cluster-admin-incident-engine-20260713T031116Z APPBACKUP_SIZE_BYTES=1767199 APPBACKUP_RUN_LOG_EMPTY=ACCEPTED APPBACKUP_RESTORE_CHECK=OK APPBACKUP_ROUTING=VERIFIED LIVE_APP_UNCHANGED=YES PRODUCTION_RUNTIME_HEALTH=OK DESIRED_STATE_HEAD=8f888e5f2063e49da918b31584c9ea4bcf53af3a PREAPPLY_ROOT=/var/lib/homelab-stage3-preapply-appbackup/20260713T031116Z READY_FOR_STAGE3_PRODUCTION_APPLY=YES
|
|
HEALTH_FILE=node-red-backup.txt|mtime=2026-07-09 22:46:45.732436363 +0300|sha256=cf53c240e74a9f8670ab0af52681ce9de4e45f332e70fc142925c357eaf9f00c
|
|
STATUS=OK TS=2026-07-09T19:46:42Z TYPE=node-red-backup BAD=0 APP=node-red JOB=homelab-pve01-app-node-red-20260709T051713Z SIZE=10521 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-node-red.json
|
|
HEALTH_FILE=proxmox-pve01-backup.txt|mtime=2026-07-09 15:29:41.985138298 +0300|sha256=2b8ca75eeec121d7e2b0c6a309d43798da5f864b57fef327f37a56b9ced3b5a8
|
|
STATUS=OK TS=2026-07-09T12:29:38Z TYPE=proxmox-pve01-backup JOB=homelab-pve01-app-proxmox-pve01-20260709T122938Z SOURCE=safe_pve01_config_facts SIZE=4314 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-proxmox-pve01.json NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=service-readiness-backup-health.txt|mtime=2026-07-09 09:41:40.097970342 +0300|sha256=f8074ea30fd108c0db7c85caebaaaa4a3600ea49fbea717f372bf5e6218753b4
|
|
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
|
|
HEALTH_FILE=hapusya-site-backup.txt|mtime=2026-07-13 15:10:58.137221528 +0300|sha256=5f8d4f49cf5cf6dba74912589dcd3c7fa0542171bfa31c649f6d94292fb8bb64
|
|
STATUS=OK TS=2026-07-13T12:10:58Z TYPE=hapusya-site-backup JOB=homelab-pve01-app-hapusya-site-20260713T115259Z ARCHIVE_SHA256=bf284292974600384c43c47fc99be6fedf0ebd68f722b402a7260f1df680d167 ARCHIVE_SIZE_BYTES=7895834 LOCAL_BACKUP_DELETED=true TWO_CLOUDS=OK ROUTE_SHA256=02d65cb0082a04cae282126cc829a002f171e863291c18ba04d788dc2d6282ca UNIT_SHA256=b3b07137b25ac0a0b4bdadadad654cf209387ade86a2ef2cdca58e8a7c0cc212 RELATIVE_TREE_SHA256=9dadf21da041bc4d6ee4a42f5b3ac7719c16bcc39052de32af895c6cd28286cb
|
|
HEALTH_FILE=backup.txt|mtime=2026-07-24 07:04:41.721444174 +0300|sha256=88d791f9955261ebe5a65303dc418c70dca25ba23c29a92769a6785a9cd9e5bb
|
|
STATUS=OK
|
|
REASON=latest backup exists, fresh, complete, and sha256 verified
|
|
LATEST=/mnt/staging/vzdump/auto-full-backup-20260719T004537Z
|
|
AGE_HOURS=123
|
|
START=2026-07-24T07:04:28+03:00
|
|
END=2026-07-24T07:04:41+03:00
|
|
RC=0
|
|
HEALTH_FILE=npmplus-edge-backup.txt|mtime=2026-07-09 13:02:56.571425663 +0300|sha256=83e492c51913e884cad62305314e153c49bad522b9d65cddaefe337b7ed10e2d
|
|
STATUS=OK TS=2026-07-09T10:02:52Z TYPE=npmplus-edge-backup JOB=homelab-pve01-app-npmplus-edge-20260709T071928Z SOURCE=latest-appbackup SIZE=50316 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-npmplus-edge.json NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=p1-safe-data-backup.txt|mtime=2026-07-07 01:09:37.332826625 +0300|sha256=c1f7e49cbb188b0c1b13aed8508d267d47212490e92b6cb85a3b70ab167fd13d
|
|
HEALTH_FILE=gitea-backup.txt|mtime=2026-08-30 21:08:08.480366809 +0300|sha256=5474fdacc557aef613bf14e7830fac12d9e616320519074a228a0a81ff6e8e68
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=homelab_appbackup_sqlite_batch
|
|
JOB_NAME=homelab-appbackup-sqlite-batch
|
|
MATRIX_MODE=authoritative
|
|
TIMER=homelab-appbackup-sqlite-batch.timer
|
|
SERVICE=homelab-appbackup-sqlite-batch.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=systemd
|
|
EVIDENCE_LEVEL=execution_only
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=systemd:homelab-appbackup-sqlite-batch.service
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-07-24T01:46:28Z
|
|
AGE_SECONDS=3255700
|
|
MAX_AGE_SECONDS=172800
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/gitea-backup.txt
|
|
CANONICAL_JOB_ID=homelab_appbackup_sqlite_batch
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=homeassistant-backup.txt|mtime=2026-07-09 22:04:04.073386425 +0300|sha256=03ce1462f536f5c3e3eb7b5224465292d1810b063946f859eb6e504eb5bd0a19
|
|
STATUS=OK TS=2026-07-09T19:04:00Z TYPE=homeassistant-backup BAD=0 APP=homeassistant JOB=homelab-pve01-app-homeassistant-20260709T051713Z SIZE=1855722 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-homeassistant.json
|
|
HEALTH_FILE=backup-matrix-desired-state-persistence.txt|mtime=2026-07-13 20:40:37.065354772 +0300|sha256=3d5bdf5d8ec15131c0d801287f324cbe0b6099e1fd079776ce0e3df8a5fa6144
|
|
STATUS=OK TS=2026-07-13T17:40:37Z TYPE=backup-matrix-desired-state-persistence BAD=0 GENERATED_HEAD=af26ec3c4829b1330d49656205ac580ce1706263 GENERATED_PARENT=25568fab24c0594418b3676dc511c8234b4e1ae5 GENERATOR_SHA256=19da7f049b4f7f7286faf292c5419c37cc1e1768c2d8fe36b257ab0cf9c18874 MATRIX_SHA256=7613bcb25d32e61fac114da13af81e38354ec22a012a6deeaa168ee4cc454f87 DESIRED_MATRIX_SHA256=7613bcb25d32e61fac114da13af81e38354ec22a012a6deeaa168ee4cc454f87 MATRIX_STATUS=OK JOBS_BAD=0 FAILED_UNITS=0 BACKUP_RUN=NO RESTORE_RUN=NO CLOUD_WRITE_RUN=NO RETENTION_RUN=NO ROLLBACK=/var/lib/homelab-incidents/backup-matrix-desired-state-persistence-20260713T174036Z
|
|
HEALTH_FILE=alertmanager-two-cloud-backup.txt|mtime=2026-07-10 21:46:36.960914147 +0300|sha256=d90562fac18f643e765e60e54c673839c4ea57e580896241beb0ecc0ea45dea2
|
|
STATUS=OK TS=2026-07-10T18:46:36Z TYPE=alertmanager-two-cloud-backup BAD=0 JOB=homelab-pve01-app-alertmanager-20260710T184605Z ARCHIVE_SIZE_BYTES=1107 LOCAL_STAGING_DELETED=true OFFHOST=OK RESTORE=OK
|
|
HEALTH_FILE=netbird-vps-trust-closure.txt|mtime=2026-07-07 18:29:49.166816011 +0300|sha256=6db8ee1ffbd2c371959917cac5ded56af3ec1829b01bd9c190e3334d6593a4a0
|
|
STATUS=OK TS=2026-07-07T15:29:49Z TYPE=netbird-vps-trust-closure BAD=0 WARN=0 MODE=TRUST_CLOSURE_NO_KNOWN_HOSTS_CHANGE TRUSTED_NETBIRD_IDENTITY=edge-vm TRUSTED_NETBIRD_IP=[IP] PUBLIC_VPS_IP=[IP] PUBLIC_VPS_DECISION=REJECTED_HOSTKEY_MISMATCH PUBLIC_IP_STRICT_BLOCKED=YES PUBLIC_IP_KEYSCAN_MATCH=NO EDGE_REF_OK=1 NETBIRD_PEER_OK=1 REPORT=/var/lib/homelab-netbird-vps-trust/closure-latest.md
|
|
HEALTH_FILE=netbird-vps-trust-clean-seal.txt|mtime=2026-07-07 18:55:43.910666513 +0300|sha256=092eaa2c4f3a5f623e9440135d36e6bae7d8ae46a03d380d14a5e95657812b61
|
|
HEALTH_FILE=searxng-backup.txt|mtime=2026-07-09 12:39:46.404327448 +0300|sha256=c1b03d9b8fee369c584a2c8f725639ed3ca77701d05dbe3b46fe5abb0f37a6b1
|
|
STATUS=OK TS=2026-07-09T09:39:15Z TYPE=searxng-backup JOB=homelab-pve01-app-searxng-20260709T093915Z SOURCE=searxng_stack_config_cache SIZE=738 SHA256=352c9c54437b8ceabc491452d1d7150624eda8c4bf99c28dc78fd488ec06f28c LOCAL_BACKUP_DELETED=true NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=it-tools-backup.txt|mtime=2026-07-09 22:13:14.698027428 +0300|sha256=1481a6d2014b4caf49b7258d1922b575fadb4645a1a1878457c1f8f3eb8ca525
|
|
STATUS=OK TS=2026-07-09T19:13:00Z TYPE=it-tools-backup BAD=0 APP=it-tools JOB=homelab-pve01-app-it-tools-20260709T191300Z SIZE=689 LOCAL_BACKUP_DELETED=true ENGINE=files JSON=/var/lib/homelab-backup/apps/latest-it-tools.json
|
|
HEALTH_FILE=netbird-vps-offhost.txt|mtime=2026-07-17 04:59:42.647642040 +0300|sha256=04ddca2c2a89ab344726695210540c4ca1358033f2edd22e2c97f1ab0aff4e0b
|
|
STATUS=OK
|
|
SERVICE=netbird-vps-offhost
|
|
TIMESTAMP_UTC=20260717T015941Z
|
|
DST_HOST=[IP]
|
|
DST=/mnt/staging/offhost/netbird-vps-backups-from-pve01
|
|
LOCAL_LATEST=20260701T013054Z
|
|
REMOTE_LATEST=20260701T013054Z
|
|
REMOTE_FILES=30
|
|
REMOTE_SIZE=466M
|
|
HEALTH_FILE=backup-scheduler-fairness-granularity.json|mtime=2026-08-10 20:50:58.416755115 +0300|sha256=5ae14f32dd777dbf4c6dee305db5767e69b9d47edac900d014ad243d8b108fbb
|
|
{
|
|
"status": "OK",
|
|
"root_cause_count": 0,
|
|
"production_changed": true,
|
|
"cloud_changed": false,
|
|
"backup_started": false,
|
|
"applied_at_utc": "2026-08-10T17:50:58Z",
|
|
"target_bytes": true,
|
|
"global_dispatcher": true,
|
|
"fairness_changed": true,
|
|
"granularity_changed": true,
|
|
"one_heavy_target_per_decision": true,
|
|
"heavy_lock_released_between_targets": true,
|
|
"no_progress_guard": true,
|
|
"frozen_dependencies": true,
|
|
"systemd_changed": false,
|
|
"no_immediate_service_start": true,
|
|
"targets": {
|
|
"vm": "b0ca03aff1635a134b1638bf842df65e6fa26d965001b05eeb3ce68bf99811e5",
|
|
"app": "2c52087ea5f25c2763b9126120babdaf3535afff2203bab388ba3a2372a68819",
|
|
"dispatcher": "e83bf96c2e8290f6099e9e63033641fffd983947212ea3392d6197556a199849"
|
|
}
|
|
}
|
|
HEALTH_FILE=p2-media-backup.txt|mtime=2026-07-07 03:57:33.000124656 +0300|sha256=dccd8a9b1c9ae449783cbb8dc16ef9f2ead867b0fec20992722ec5f0aa9a4032
|
|
HEALTH_FILE=actual-budget-backup.txt|mtime=2026-07-09 15:53:45.248005185 +0300|sha256=72d1b31e22e22ac91af66e3d8ae46b20b3b9297809ace524eece22031458fb05
|
|
STATUS=OK TS=2026-07-09T12:53:43Z TYPE=actual-budget-backup JOB=homelab-pve01-app-actual-budget-20260709T051713Z SOURCE=latest-appbackup SIZE=2011 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-actual-budget.json NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=backup-retention-safe-gc.json|mtime=2026-09-23 03:25:17.780212301 +0300|sha256=d5b48a3782e4181807fa6191ff5de57a1586afc151ec4cc7ba905f6764c03517
|
|
{
|
|
"schema": "homelab-backup-retention-v1",
|
|
"status": "OK",
|
|
"task_id": "backup-retention-safe-gc-v1",
|
|
"change_id": "CR-2026-0033",
|
|
"updated_at_utc": "2026-09-23T00:25:17Z",
|
|
"policy": {
|
|
"vm_keep": 2,
|
|
"app_keep": 7,
|
|
"control_keep": 4,
|
|
"min_delete_age_seconds": 86400,
|
|
"gfs": {
|
|
"enabled": true,
|
|
"critical_vm_count": 8,
|
|
"weekly_completed_buckets": 4,
|
|
"monthly_completed_buckets": 6,
|
|
"completed_periods_only": true
|
|
}
|
|
},
|
|
"owner_aware_gc_proven": true,
|
|
"destructive_canary_proven": true,
|
|
"historical_gc_proven": false,
|
|
"last_plan": {
|
|
"delete_candidates": 4,
|
|
"protected": 0,
|
|
"kept": 139,
|
|
"gfs_kept": 28
|
|
},
|
|
"last_run_deleted": 4,
|
|
"legacy_namespaces_protected": [
|
|
"hb",
|
|
"pve01",
|
|
"control-bootstrap"
|
|
],
|
|
"provider_worm_proven": false
|
|
}
|
|
HEALTH_FILE=backup-matrix-cluster-desired-state-sync.txt|mtime=2026-07-13 20:51:32.416338448 +0300|sha256=c2530de4aaee5f4c2746d4e97b7e6d9ab70c3f4059afc9bacc75fd5e1980d659
|
|
STATUS=OK TS=2026-07-13T17:51:31Z TYPE=backup-matrix-cluster-desired-state-sync BAD=0 PRE_SYNC_HEAD=af26ec3c4829b1330d49656205ac580ce1706263 GENERATED_SYNC_HEAD=597119391e7b265b85fd9a76644e4e33af47e469 GENERATED_SYNC_MODE=NEW_GENERATED_COMMIT GENERATED_SYNC_COMMIT_DELTA=1 MATRIX_STATUS=OK JOBS_TOTAL=35 JOBS_OK=31 JOBS_BAD=0 JOBS_UNMAPPED=0 JOBS_DISABLED=4 CLUSTER_PASSPORT=OK FINAL_READINESS=OK OVERALL=OK CLUSTER_ADMIN=OK PROBE_OK=4 PROBE_BAD=0 FAILED_UNITS=0 DESIRED_STATE_DIRTY=0 MATRIX_SHA256=7613bcb25d32e61fac114da13af81e38354ec22a012a6deeaa168ee4cc454f87 MATRIX_STATE_SHA256=14a31112aac5d577ae01df567921b093b2fedcf7189c4cc8f009216ee0749380 PRESEAL_SHA256=7ea1f710cd311bd51dba05a313b4c540f57d97407f008881e502fc213b4b3c99 BACKUP_RUN=NO RESTORE_RUN=NO CLOUD_WRITE_RUN=NO RETENTION_RUN=NO EVIDENCE_ROOT=/var/lib/homelab-change-sets/backup-matrix-cluster-final-seal/20260713T175131Z
|
|
HEALTH_FILE=control-backup.json|mtime=2026-09-23 11:26:22.485179218 +0300|sha256=0755695105c316d7ee6f3926a1ded277c1c878f92e0691e62eed98f90836dc0b
|
|
{
|
|
"schema": "homelab-control-backup-health-v1",
|
|
"status": "OK",
|
|
"generation": "control-bootstrap-v2-pve01-20260916T120057Z",
|
|
"state_file": "/var/lib/homelab-backup/cloud-quorum/control-bootstrap-v2/control-bootstrap-v2-pve01-20260916T120057Z.json",
|
|
"restore_evidence": "/var/lib/homelab-backup/control-restore-validation/control-bootstrap/control-bootstrap-v2-pve01-20260916T120057Z.json",
|
|
"archive_sha256": "6fa394732cc1cafbf311a022b5fbdb6cf41a6562d9b3503666525c9392503e29",
|
|
"cloud_quorum": 2,
|
|
"control_freshness": "FRESH",
|
|
"full_site_dr_proven": false,
|
|
"updated_at_utc": "2026-09-23T08:26:22Z"
|
|
}
|
|
HEALTH_FILE=homelab-backup-baseline.txt|mtime=2026-06-17 23:02:13.952559036 +0300|sha256=4959757d29bb503315c60468dc0eb080b43cefde23d48e8ab192f6bd93b564d3
|
|
STATUS=OK
|
|
SERVICE=homelab-backup-baseline
|
|
TIMESTAMP_UTC=20260617T200213Z
|
|
ENDPOINT_TOTAL=17
|
|
ENDPOINT_OK=17
|
|
ENDPOINT_BAD=0
|
|
KUMA_TOTAL=18
|
|
KUMA_UP=18
|
|
KUMA_BAD=0
|
|
ENDPOINT_SUMMARY=disk-space.txt:OK;immich-media-backup.txt:OK;immich-media-offhost.txt:OK;memos-backup.txt:OK;memos-offhost.txt:OK;paperless-backup.txt:OK;paperless-offhost.txt:OK;netbird-vps-backup.txt:OK;netbird-vps-offhost.txt:OK;netbird-vps-restore.txt:OK;netbird-peers.txt:OK;filebrowser-backup.txt:OK;filebrowser-offhost.txt:OK;filebrowser-restore.txt:OK;app-stacks-batch-backup.txt:OK;app-stacks-batch-offhost.txt:OK;app-stacks-batch-restore.txt:OK;
|
|
KUMA_MONITORS=1|Homelab Backup Health|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/backup.txt;24|Immich Media Backup|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/immich-media-backup.txt;25|Immich Media Offhost Backup|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/immich-media-offhost.txt;26|Disk Space Health|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/disk-space.txt;27|Memos Backup|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/memos-backup.txt;28|Memos Offhost Backup|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/memos-offhost.txt;29|Paperless Backup|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/paperless-backup.txt;30|Paperless Offhost Backup|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/paperless-offhost.txt;31|NetBird VPS Backup|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/netbird-vps-backup.txt;32|NetBird VPS Offhost Backup|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/netbird-vps-offhost.txt;33|NetBird VPS Restore Validation|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/netbird-vps-restore.txt;34|NetBird Homelab Peers|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/netbird-peers.txt;35|File Browser Backup|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/filebrowser-backup.txt;36|File Browser Offhost Backup|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/filebrowser-offhost.txt;37|File Browser Restore Validation|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/filebrowser-restore.txt;38|App Stacks Batch Backup|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/app-stacks-batch-backup.txt;39|App Stacks Batch Offhost|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/app-stacks-batch-offhost.txt;40|App Stacks Batch Restore|active=1|user_id=1|latest_status=1|url=http://[IP]:9101/app-stacks-batch-restore.txt;
|
|
NOTES=none
|
|
HEALTH_FILE=memos-backup.txt|mtime=2026-08-30 21:08:09.015289529 +0300|sha256=01edf9ba034eb56e7a2ae8abd4ff6ee677fd19c320b4aedefe85d574fc46ee35
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=memos_backup
|
|
JOB_NAME=memos-backup
|
|
MATRIX_MODE=authoritative
|
|
TIMER=memos-backup.timer
|
|
SERVICE=memos-backup.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=health_file
|
|
EVIDENCE_LEVEL=artifact_or_health
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=/var/lib/homelab-backup/apps/latest-memos.json
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-08-06T21:26:13Z
|
|
AGE_SECONDS=2061715
|
|
MAX_AGE_SECONDS=259200
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/memos-backup.txt
|
|
CANONICAL_JOB_ID=memos_backup
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=netbird-vps-backup.txt|mtime=2026-07-01 04:31:05.433646905 +0300|sha256=372804695d6dba94e29e254f2175701e976692e7b15ee83fdcb6f10e05ca624e
|
|
STATUS=OK
|
|
SERVICE=netbird-vps-backup
|
|
TIMESTAMP_UTC=20260701T013054Z
|
|
VPS_IP=[IP]
|
|
SNAPSHOT=/mnt/staging/netbird-vps-backups/snapshots/20260701T013054Z
|
|
LATEST_SYMLINK=/mnt/staging/netbird-vps-backups/snapshots/latest
|
|
FILES=2
|
|
SIZE=32M
|
|
SHA256=0226dd820cb9ede0ea9e8ea4af6cef656ffa54cfb819048c222a88f4c14d8db9
|
|
HEALTH_FILE=backup-matrix-cluster-preseal-convergence.txt|mtime=2026-07-13 20:48:14.631325305 +0300|sha256=7ea1f710cd311bd51dba05a313b4c540f57d97407f008881e502fc213b4b3c99
|
|
STATUS=OK TS=2026-07-13T17:48:14Z TYPE=backup-matrix-cluster-preseal-convergence BAD=0 MATRIX_STATUS=OK JOBS_TOTAL=35 JOBS_BAD=0 JOBS_UNMAPPED=0 JOBS_DISABLED=4 CLUSTER_PASSPORT=OK FINAL_READINESS=OK OVERALL=OK CLUSTER_ADMIN=OK PROBE_OK=4 PROBE_BAD=0 WEBPANEL=OK FAILED_UNITS=0 DESIRED_STATE_HEAD=af26ec3c4829b1330d49656205ac580ce1706263 DESIRED_STATE_DIRTY=0 MATRIX_SHA256=7613bcb25d32e61fac114da13af81e38354ec22a012a6deeaa168ee4cc454f87 MATRIX_STATE_SHA256=3791fa78cdfb56cd7027f89350dff245abcffc4f935adfc336ceeea00854ac89 CLUSTER_PASSPORT_SHA256=1b8b924ae0e5ce6872fe5671318094ce494806c2db7efe28299b5ff49adc0d0d FINAL_READINESS_SHA256=ac5159fa8c497afe021b5cb232f08cfec0e1a4d516d8aae966ba03f7034f1412 OVERALL_SHA256=6ae529bfdf5811f686d3b53978f453ce4f8757c74fc1be105de219b13a61ba46 BACKUP_RUN=NO RESTORE_RUN=NO CLOUD_WRITE_RUN=NO RETENTION_RUN=NO EVIDENCE_ROOT=/var/lib/homelab-change-sets/backup-matrix-cluster-preseal-resume/20260713T174748Z
|
|
HEALTH_FILE=cluster-admin-stage4f-preapply-backup.txt|mtime=2026-07-14 10:54:50.681548259 +0300|sha256=cc242d1b6e2ef6b6d25f283c7d967bd4985222783ce65050d75e6e61230067ae
|
|
STATUS=OK TS=2026-07-14T07:54:50Z TYPE=cluster-admin-stage4f-preapply-backup-final-seal BAD=0 STAGE4F_CLOSED=YES NEXT_STAGE=4G_PRODUCTION_APPLY_READ_ONLY_ONLY PRODUCTION_CHANGED=NO DATABASE_CHANGED=NO APPLICATION_CHANGED=NO BACKUP_JOB=homelab-pve01-app-cluster-admin-incident-engine-20260714T064327Z ARCHIVE_SIZE_BYTES=2651545 DATABASE_DUMP_SIZE_BYTES=2814735 CURRENT_JOB_VERIFY_MARKERS=2 RESTORE_LIST_CHECK=OK PRODUCTION_STATE=0|0|OK DESIRED_STATE_HEAD=69be75caeecaa242567d2d06c735ac5db3a9c048 DESIRED_STATE_CLEAN=YES REPORT=/var/lib/homelab-cluster-admin-stage4/stage4f-preapply-backup-final-seal-v1/report.txt REPORT_SHA256=9ee244085b9d191370371560690ea87e7bbfe2f14226a06a4e8f6720b3a7439b
|
|
HEALTH_FILE=jellyfin-backup.txt|mtime=2026-07-09 21:16:17.662793576 +0300|sha256=23afe6670bf9250dada540261513ffff2c36ee33963347e5673699d4a10f77a2
|
|
STATUS=OK TS=2026-07-09T18:16:16Z TYPE=jellyfin-backup BAD=0 APP=jellyfin JOB=homelab-pve01-app-jellyfin-20260709T051713Z SIZE=25920 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-jellyfin.json
|
|
HEALTH_FILE=vikunja-backup.txt|mtime=2026-07-09 20:51:20.850795887 +0300|sha256=48bc526e9c24220ad6c15554b85b819d8b6ba35d854ab87da2324b1534e194c6
|
|
STATUS=OK TS=2026-07-09T17:51:14Z TYPE=vikunja-backup BAD=0 APP=vikunja JOB=homelab-pve01-app-vikunja-20260709T051713Z SIZE=34831 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-vikunja.json
|
|
HEALTH_FILE=hapusya-site-v2-preapply-backup.txt|mtime=2026-07-13 14:34:59.208365351 +0300|sha256=506879fe26ddf3c392c4d485d1db145cde846336cd626096555e2021ab2705af
|
|
STATUS=OK TS=2026-07-13T11:34:59Z TYPE=hapusya-site-v2-preapply-backup BAD=0 NPMPLUS_JOB=homelab-pve01-app-npmplus-edge-20260713T113435Z TWO_CLOUDS=OK RESTORE_CHECK=OK ROLLBACK=/var/lib/homelab-incidents/hapusya-site-v2-preapply-20260713T113458Z ROLLBACK_MANIFEST_SHA256=144506c766fe9fd3152e4edf94a8867895b3dc54f29faf1e329773922b8c5640 CANDIDATE_TREE_SHA256=0eb098f91ea706c884d36a8ce806968e82e715ded66bb96f61c2ed8106faca93 CANDIDATE_BROWSER=OK BROWSER_RUNS=5 VIDEO_DESKTOP=OK VIDEO_MOBILE=OK STATIC_FALLBACK=OK PRODUCTION_CHANGED=NO
|
|
HEALTH_FILE=ntfy-backup.txt|mtime=2026-07-09 23:39:41.327493875 +0300|sha256=e28d674bd0ba4c088c6c9f523da493e3674750837ab417223f7405ea61d8b020
|
|
STATUS=OK TS=2026-07-09T20:39:29Z TYPE=ntfy-backup BAD=0 APP=ntfy JOB=homelab-pve01-app-ntfy-20260709T051713Z SIZE=13516 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-ntfy.json
|
|
HEALTH_FILE=immich-media-backup.txt|mtime=2026-08-30 21:08:08.994511799 +0300|sha256=f94d804693a2ca18e51c66ade993a95c9b8ae183730e31013e3886010b03ff63
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=immich_media_backup
|
|
JOB_NAME=immich-media-offhost-sync
|
|
MATRIX_MODE=authoritative
|
|
TIMER=immich-media-offhost-sync.timer
|
|
SERVICE=immich-media-offhost-sync.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=health_file
|
|
EVIDENCE_LEVEL=artifact_or_health
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=/var/lib/homelab-health/immich-media-offhost.txt
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-08-08T05:52:15Z
|
|
AGE_SECONDS=1944953
|
|
MAX_AGE_SECONDS=259200
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/immich-media-backup.txt
|
|
CANONICAL_JOB_ID=immich_media_backup
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=paperless-backup.txt|mtime=2026-07-18 01:52:29.893166209 +0300|sha256=8ae7e31227e48c86412eb9e49fa91ce3cbb97454ea3414e25d10ef5432e6cd46
|
|
STATUS=OK
|
|
TS=2026-07-17T22:52:29Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=paperless_backup
|
|
JOB_NAME=paperless-backup
|
|
MATRIX_MODE=authoritative
|
|
TIMER=paperless-backup.timer
|
|
SERVICE=paperless-backup.service
|
|
TIMER_ENABLED=enabled
|
|
TIMER_ACTIVE=active
|
|
SOURCE_KIND=health_file
|
|
EVIDENCE_LEVEL=artifact_or_health
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=/var/lib/homelab-backup/apps/latest-paperless.json
|
|
SOURCE_STATUS=OK
|
|
SOURCE_MTIME_UTC=2026-07-17T02:30:25Z
|
|
AGE_SECONDS=73324
|
|
MAX_AGE_SECONDS=259200
|
|
FRESHNESS=FRESH
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/paperless-backup.txt
|
|
CANONICAL_JOB_ID=paperless_backup
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=cluster-admin-stage1-preapply-backup.txt|mtime=2026-07-13 03:11:06.700511934 +0300|sha256=a70d7bba3c2b50deaa117e56862659b857e72682ec829ed7724b03dc92111105
|
|
STATUS=OK TS=2026-07-13T00:10:57Z TYPE=cluster-admin-stage1-preapply-backup BAD=0 PRODUCTION_CHANGED=BACKUP_ARTIFACTS_ONLY PRODUCTION_DATABASE_CHANGED=NO SERVICE_RESTARTED=NO CLOUD_WRITE_RUN=NO ROLLBACK_POINT=VERIFIED DIRECT_DB_SNAPSHOT=VERIFIED DIRECT_DB_DUMP_SIZE_BYTES=1710825 DIRECT_DB_DUMP_SHA256=c0f13cec235ab3242eb8da4cad12962df1a2e37b25792a8ce9944c1d7de4312a APPBACKUP_JOB=homelab-pve01-app-cluster-admin-incident-engine-20260713T000543Z APPBACKUP_STATUS=success APPBACKUP_RESTORE_CHECK=OK MIGRATION_DRY_RUN=OK IDEMPOTENCE_TEST=OK ROLLBACK_TEST=OK COLLECTOR_COMPATIBILITY_TRIGGER=OK PRODUCTION_SCHEMA_UNCHANGED=YES READY_FOR_PRODUCTION_APPLY=YES DESIRED_STATE_HEAD=1379b4fb4e809e56e9bc16f0e0b19b0a509192d5 PREAPPLY_ROOT=/var/lib/homelab-stage1-preapply/20260713T000041Z REMOTE_SNAPSHOT_DIR=/var/lib/cluster-admin-preapply/20260713T000041Z EVIDENCE_MANIFEST=/var/lib/homelab-stage1-preapply/20260713T000041Z/SHA256SUMS
|
|
HEALTH_FILE=cadvisor-backup.txt|mtime=2026-07-09 11:25:57.266067724 +0300|sha256=cb0bcacf449ab29e8954014fb689d1022527f0b67aae0d4f0c808358cae55e07
|
|
STATUS=OK TS=2026-07-09T08:25:56Z TYPE=cadvisor-backup JOB=homelab-pve01-app-cadvisor-20260709T082556Z SOURCE=cadvisor_stack_proxy SIZE=1384 SHA256=33e419912291daab19f8039dfe8971f277be0fe577eb3d0e538263bdf918eac8 LOCAL_BACKUP_DELETED=true NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=dockge-stacks-backup.txt|mtime=2026-07-09 13:12:46.609379653 +0300|sha256=f20ebfd8e230858d31286670ccb6a4699d4251209765fb37e3ff4309435113f5
|
|
STATUS=OK TS=2026-07-09T10:12:44Z TYPE=dockge-stacks-backup JOB=homelab-pve01-app-dockge-stacks-20260709T072218Z SOURCE=latest-appbackup SIZE=134913 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-dockge-stacks.json NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=dockge-backup.txt|mtime=2026-07-09 13:12:46.609379653 +0300|sha256=3f5198e9d0eb7852e4ee563109c801be03be268b2b10afeca68fbc39be4d35f7
|
|
STATUS=OK TS=2026-07-09T10:12:44Z TYPE=dockge-backup JOB=homelab-pve01-app-dockge-stacks-20260709T072218Z SOURCE=appbackup-dockge-stacks SIZE=134913 LOCAL_BACKUP_DELETED=true JSON=/var/lib/homelab-backup/apps/latest-dockge.json NOTE=service-readiness-backup-proof
|
|
HEALTH_FILE=backup-lock-fd-hardening.json|mtime=2026-08-10 17:49:25.372646496 +0300|sha256=d64d18259e58525a9549f6d2b40b331ea6cc7b7057fd17050aebc585d73731a5
|
|
{
|
|
"status": "OK",
|
|
"root_cause_count": 0,
|
|
"production_changed": true,
|
|
"cloud_changed": false,
|
|
"backup_started": false,
|
|
"applied_at_utc": "2026-08-10T14:49:25Z",
|
|
"target_bytes": true,
|
|
"fd_child_boundary": true,
|
|
"parent_lock_ownership_preserved": true,
|
|
"systemd_changed": false,
|
|
"no_immediate_service_start": true,
|
|
"targets": {
|
|
"vm": "55c2c30d93590ce0367667c2de4cf8e6436bd10a2a35fb7b775f918ba9b52ffb",
|
|
"app": "adcd592c619c96c99be19777eff98bbf0226e878a9635c718e9113b662960a5a"
|
|
}
|
|
}
|
|
HEALTH_FILE=backup-sla.txt|mtime=2026-08-30 21:08:08.601604759 +0300|sha256=4762bb7cfb98ab1311adbd1e80287f7e18f79983656a888a056ed730ecdf0372
|
|
STATUS=FAIL
|
|
TS=2026-08-30T18:08:08Z
|
|
TYPE=backup-matrix-generated
|
|
JOB_ID=homelab_backup_sla_health
|
|
JOB_NAME=homelab-backup-sla-health
|
|
MATRIX_MODE=authoritative
|
|
TIMER=homelab-backup-sla-health.timer
|
|
SERVICE=homelab-backup-sla-health.service
|
|
TIMER_ENABLED=not-found
|
|
TIMER_ACTIVE=inactive
|
|
SOURCE_KIND=health_file
|
|
EVIDENCE_LEVEL=artifact_or_health
|
|
SERVICE_RESULT=success
|
|
SERVICE_EXEC_MAIN_STATUS=0
|
|
SOURCE_HEALTH=/var/lib/homelab-backup-matrix/evidence/homelab_backup_sla_health/0-backup-sla.txt
|
|
SOURCE_STATUS=WARN
|
|
SOURCE_MTIME_UTC=2026-08-06T21:34:03Z
|
|
AGE_SECONDS=2061245
|
|
MAX_AGE_SECONDS=172800
|
|
FRESHNESS=STALE
|
|
LEGACY_SOURCE_PATH=/var/lib/homelab-health/backup-sla.txt
|
|
CANONICAL_JOB_ID=homelab_backup_sla_health
|
|
CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
HEALTH_FILE=deep-service-backup-audit.txt|mtime=2026-07-10 00:12:45.326483756 +0300|sha256=16dfd49e8f0618a836c473874b7a70fa896771dff5e2613e510e6d0a02eca7b4
|
|
STATUS=OK TS=2026-07-09T21:12:44Z TYPE=deep-service-backup-audit BAD=0 SERVICE_READINESS_OK_COUNT=47 NON_OK=0 APPBACKUP_FLAG_GAPS=0 CONTAINER_GAPS=0 PROM_FIRING=0 BACKUP_SLA=OK ALERTING=OK EXTERNAL_LINKS_CLASSIFIED=OK SERVICES_REMAINING_TOTAL=0 BACKUP_GAPS_TOTAL=0 COMMANDS_REMAINING_TOTAL=0
|
|
HEALTH_FILES_END=1
|
|
DEPENDENCY_FILE_INDEX_BEGIN=1
|
|
DEPENDENCY_FILE_COUNT=34
|
|
DEPENDENCY_FILE|path=/etc/homelab-backup-v2/targets.json|mtime=2026-09-22 12:19:09.941039348 +0300|sha256=decea6b876c8ede15c91cad69c8e15e46021e5e96d25d415139bf2c524e23f7b
|
|
2: "created_by": "SUPPORT-260914-INFRA-DR-BACKUPV2-SHADOW-PERSISTENT-PRODUCERS-STAGE-GREEN1-389R1",
|
|
169: "logical_id": "md-relay",
|
|
193: "logical_id": "us-netbird",
|
|
DEPENDENCY_FILE|path=/etc/systemd/system/netbird-vps-backup.service.d/10-superseded-noop.conf|mtime=2026-07-08 08:25:22.050610124 +0300|sha256=4cf3f2825b770b32447624a611bce605d97987bd2c6e8862c84d35b166f9102a
|
|
3:ExecStart=/usr/local/sbin/homelab-superseded-unit-ok netbird-vps-backup.service superseded_by_current_appbackup_or_trust_proof
|
|
DEPENDENCY_FILE|path=/root/771ad_final_crowdsec_capi_netbird_closure.sh|mtime=2026-07-02 22:10:57.781648619 +0300|sha256=c99d08385f5d7c0a266c1c8002b3c7b054e1bb561eb48b1f8a227f37fe430ab6
|
|
8:PROOF="/root/evidence/771AD_FINAL_CROWDSEC_CAPI_NETBIRD_CLOSURE_${TS}_PROOF.txt"
|
|
24: echo "STEP=771AD_FINAL_CROWDSEC_CAPI_NETBIRD_CLOSURE"
|
|
47: echo NETBIRD_EXIT_ROUTE_VERIFY
|
|
48: netbird status 2>&1 | redact || true
|
|
59: curl -4 -sk --http1.1 --connect-timeout 12 --max-time 45 -o /tmp/771ad_capi.body -w \"CAPI_HTTP=%{http_code}\\n\" https://api.crowdsec.net/v3/watchers/login || true
|
|
61: echo CROWDSEC_STATUS
|
|
62: docker ps --format \"{{.Names}} {{.Status}} {{.Ports}}\" | grep -E \"^(crowdsec|socket-proxy|npmplus)\" || true
|
|
63: docker exec crowdsec cscli lapi status 2>&1 | redact || true
|
|
64: docker exec crowdsec cscli capi status 2>&1 | redact || true
|
|
67: cd /opt/stacks/crowdsec
|
|
78: docker logs --since 10m crowdsec 2>&1 | grep -Ei \"fatal|TLS handshake timeout|unable to run local API|failed to get docker info|lookup socket-proxy|server misbehaving|mapping value is not allowed|missing credentials field|online_api_credentials\" | redact || echo RECENT_FATALS_NONE
|
|
80: echo HEALTH_FILE
|
|
81: cat /var/lib/homelab-health/crowdsec-capi.txt 2>/dev/null | redact || true
|
|
97: if ! grep -q 'CROWDSEC_CAPI_NETBIRD_EXIT_ROUTE_20260702' "$REF"; then
|
|
100:## CROWDSEC_CAPI_NETBIRD_EXIT_ROUTE_20260702
|
|
101:- edge-vm CrowdSec CAPI is registered and enabled through NetBird exit route.
|
|
102:- Client peer: edge-vm.netbird.selfhosted / [IP].
|
|
103:- Primary exit routing peer: relay.netbird.selfhosted / [IP] / Moldova.
|
|
104:- Backup egress peer present: mail.netbird.selfhosted / [IP] / USA.
|
|
105:- NetBird exit route proof on edge-vm: wg allowed-ips includes [IP]/0 via relay; ip route get [IP] uses wt0 table 7120.
|
|
107:- CrowdSec proof: cscli lapi status OK, cscli capi status OK, CAPI sharing/blocklist pull enabled, no DISABLE_ONLINE_API or -no-capi flags in active compose.
|
|
109:- Unauthenticated https://api.crowdsec.net/v3/watchers/login returning HTTP 403 is expected network reachability proof.
|
|
118: if ! grep -q 'LESSON_20260702_CROWDSEC_NETBIRD_EXIT_ROUTE' "$ERR"; then
|
|
121:## LESSON_20260702_CROWDSEC_NETBIRD_EXIT_ROUTE
|
|
122:- Do not treat e3qxxx.netbird.selfhosted / [IP] and e3qxxx-183-106.netbird.selfhosted / [IP] as VPS egress nodes; they are user mobile peers.
|
|
123:- Correct egress candidates are relay.pvepro.ru / relay.netbird.selfhosted / [IP] for Moldova and mail.pvepro.ru / mail.netbird.selfhosted / [IP] for USA.
|
|
124:- Access Policy edge-vm -> relay/mail only proves peer reachability. It is not an internet exit route.
|
|
125:- Required NetBird fix for CrowdSec CAPI was Network Routing exit route [IP]/0 distributed to edge-vm group, routing peer relay, masquerade/NAT enabled.
|
|
126:- Before attempting CrowdSec CAPI, verify on edge-vm: ip route get [IP] uses wt0, wg allowed-ips contains [IP]/0, and Cloudflare trace no longer shows home IP [IP].
|
|
134: echo "STATUS=OK_771AD_FINAL_CROWDSEC_CAPI_NETBIRD_CLOSURE_DONE"
|
|
DEPENDENCY_FILE|path=/root/771ag_publish_final_health_index.sh|mtime=2026-07-02 22:30:48.251143514 +0300|sha256=8b7c814c3893ebb2068d90c29ec01460895aba7cba44d78ba8d7d2a8936c1b7a
|
|
8:PROOF="/root/evidence/771AG_PUBLISH_FINAL_HEALTH_INDEX_${TS}_PROOF.txt"
|
|
10:LOCAL_HEALTH="/var/lib/homelab-health/crowdsec-capi-netbird-final.txt"
|
|
23: echo "STEP=771AG_PUBLISH_FINAL_HEALTH_INDEX"
|
|
26: echo "CONFIG_CHANGE=NO_SERVICE_CHANGE_HEALTH_INDEX_ONLY"
|
|
31: grep -n 'CROWDSEC_CAPI_NETBIRD_EXIT_ROUTE_20260702' /etc/pve/31_HOMELAB_REFERENCE.md || true
|
|
32: grep -n 'LESSON_20260702_CROWDSEC_NETBIRD_EXIT_ROUTE' /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md || true
|
|
34: echo "WRITE_LOCAL_HEALTH_SUMMARY"
|
|
35: mkdir -p /var/lib/homelab-health
|
|
36: cat >"$LOCAL_HEALTH" <<EOF
|
|
39:CHECK=crowdsec-capi-netbird-final
|
|
40:DETAIL=CrowdSec CAPI/LAPI stable through NetBird exit route relay [IP]; WARP absent; route smoke OK; documentation and error register updated.
|
|
43:EDGE_NETBIRD_IP=[IP]
|
|
44:PRIMARY_EXIT=relay.netbird.selfhosted
|
|
45:PRIMARY_EXIT_NETBIRD_IP=[IP]
|
|
46:BACKUP_EXIT=mail.netbird.selfhosted
|
|
47:BACKUP_EXIT_NETBIRD_IP=[IP]
|
|
50:PROOFS=771AC_REGISTER_CROWDSEC_CAPI_AFTER_EXIT_ROUTE,771AD_FINAL_CROWDSEC_CAPI_NETBIRD_CLOSURE,771AE_CROWDSEC_CAPI_SOAK_FINAL,771AF_CROWDSEC_CAPI_PROOF_INDEX
|
|
53: chmod 0644 "$LOCAL_HEALTH"
|
|
54: cat "$LOCAL_HEALTH"
|
|
67: echo EDGE_HEALTH_FILE
|
|
68: cat /var/lib/homelab-health/crowdsec-capi.txt 2>/dev/null | redact || true
|
|
77: echo EDGE_CROWDSEC
|
|
78: docker exec crowdsec cscli lapi status 2>&1 | redact || true
|
|
79: docker exec crowdsec cscli capi status 2>&1 | redact || true
|
|
82: docker inspect crowdsec --format \"RestartCount={{.RestartCount}}\" 2>/dev/null || true
|
|
83: cd /opt/stacks/crowdsec
|
|
93: for cmd in /usr/local/sbin/homelab-health-metrics /usr/local/sbin/homelab-evidence-catalog.sh; do
|
|
111: echo "LOCAL_HEALTH_FINAL"
|
|
112: cat "$LOCAL_HEALTH"
|
|
115: echo "STATUS=OK_771AG_PUBLISH_FINAL_HEALTH_INDEX_DONE"
|
|
DEPENDENCY_FILE|path=/root/771ak_final_done_marker.sh|mtime=2026-07-02 22:34:56.049721292 +0300|sha256=64f3b7e547623a9908eab9f09a1edcaeac8795af30db85e975dfa2e95cbe0d2a
|
|
15: echo "RESULT=CROWDSEC_CAPI_CLOSED"
|
|
18: echo "EXIT_ROUTE=relay.netbird.selfhosted/[IP]"
|
|
23: echo "REFERENCE_MARKER_LINE=$(grep -n 'CROWDSEC_CAPI_NETBIRD_EXIT_ROUTE_20260702' /etc/pve/31_HOMELAB_REFERENCE.md | cut -d: -f1 | head -1)"
|
|
24: echo "ERROR_REGISTER_MARKER_LINE=$(grep -n 'LESSON_20260702_CROWDSEC_NETBIRD_EXIT_ROUTE' /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md | cut -d: -f1 | head -1)"
|
|
25: echo "FINAL_HEALTH=$(grep -m1 '^STATUS=' /var/lib/homelab-health/crowdsec-capi-netbird-final.txt 2>/dev/null || echo MISSING)"
|
|
26: echo "SOAK_HEALTH_ON_EDGE=$(ssh debian@[IP] 'sudo grep -m1 "^STATUS=" /var/lib/homelab-health/crowdsec-capi.txt 2>/dev/null || echo MISSING')"
|
|
28: ls -1 /root/evidence/771AC_REGISTER_CROWDSEC_CAPI_AFTER_EXIT_ROUTE_20260702T190428Z_PROOF.txt \
|
|
29: /root/evidence/771AD_FINAL_CROWDSEC_CAPI_NETBIRD_CLOSURE_20260702T191057Z_PROOF.txt \
|
|
30: /root/evidence/771AE_CROWDSEC_CAPI_SOAK_FINAL_20260702T191745Z_PROOF.txt \
|
|
31: /root/evidence/771AF_CROWDSEC_CAPI_PROOF_INDEX_20260702T192904Z.txt \
|
|
32: /root/evidence/771AG_PUBLISH_FINAL_HEALTH_INDEX_20260702T193048Z_PROOF.txt \
|
|
DEPENDENCY_FILE|path=/root/771l_crowdsec_capi_netbird_vps_egress_remote_20260702T151045Z.sh|mtime=2026-07-02 18:10:45.300196691 +0300|sha256=6a6df3cc085363c2bbbb92b8c3083123fb0e583e14e242c583a321bdb5612002
|
|
5:STACK=/opt/stacks/crowdsec
|
|
7:BACKUP_DIR="$STACK/manual-backups/771l-netbird-vps-egress-$TS"
|
|
8:HEALTH_DIR=/var/lib/homelab-health
|
|
9:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
10:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
11:EGRESS_SERVICE=homelab-crowdsec-capi-netbird-egress.service
|
|
14:mkdir -p "$BACKUP_DIR" "$HEALTH_DIR" "$EGRESS_DIR/profiles"
|
|
20:write_health() {
|
|
26: echo "CHECK=crowdsec-capi"
|
|
29: } > "$HEALTH_FILE"
|
|
33: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
41: crowdsec:
|
|
66: docker compose up -d --force-recreate crowdsec
|
|
74: state="$(docker inspect crowdsec --format 'Running={{.State.Running}} Restarting={{.State.Restarting}} RestartCount={{.RestartCount}} StartedAt={{.State.StartedAt}} ExitCode={{.State.ExitCode}}' 2>/dev/null || true)"
|
|
75: health="$(curl -sk --connect-timeout 3 --max-time 6 -o /tmp/771l_health.html -w '%{http_code}' http://[IP]:8088/health || true)"
|
|
78: fatal="$(docker logs --since 30s crowdsec 2>&1 | grep -Eic 'fatal|unable to run local API|failed to get docker info|lookup socket-proxy|server misbehaving|mapping value is not allowed' || true)"
|
|
79: echo "LAPI_TRY=$n STATE=$state HEALTH=$health LAPI_RC=${lapi_rc:-NA} FATAL_COUNT_30S=$fatal"
|
|
83: && test "$health" = "200" \
|
|
126:remove("/opt/stacks/crowdsec/config/config.yaml")
|
|
127:remove("/opt/stacks/crowdsec/config/user.yaml")
|
|
134:p = Path("/opt/stacks/crowdsec/config/config.yaml")
|
|
165: " credentials_path: /etc/crowdsec/online_api_credentials.yaml",
|
|
177: crowdsec:
|
|
182: NO_PROXY: "[IP],localhost,[IP],[IPV6],socket-proxy,crowdsec"
|
|
221:collect_netbird_peers() {
|
|
222: echo "NETBIRD_STATUS"
|
|
223: if ! command -v netbird >/dev/null 2>&1; then
|
|
224: echo "NETBIRD_CLI_MISSING"
|
|
228: netbird status 2>&1 | redact | tee /tmp/771l_netbird_status.txt || true
|
|
229: netbird status --json >/tmp/771l_netbird_status.json 2>/tmp/771l_netbird_status_json.err || true
|
|
230: netbird ip 2>/tmp/771l_netbird_ip.err | tee /tmp/771l_netbird_ip.txt || true
|
|
232: echo "NETBIRD_INTERFACES"
|
|
233: ip -o -4 addr show | grep -Ei 'wt|netbird|wg|100\.' || true
|
|
235: python3 - <<'PY' >/tmp/771l_netbird_peers.tsv
|
|
240:for p in [Path("/tmp/771l_netbird_ip.txt")]:
|
|
244:text = Path("/tmp/771l_netbird_status.txt").read_text(errors="ignore") if Path("/tmp/771l_netbird_status.txt").exists() else ""
|
|
DEPENDENCY_FILE|path=/root/771l_crowdsec_capi_netbird_vps_egress.sh|mtime=2026-07-02 18:10:45.295356498 +0300|sha256=401396a25d4a5cfa487f67b355b45b27140ed1ac6b49b41e342306cb618dfdb5
|
|
8:PROOF="/root/evidence/771L_CROWDSEC_CAPI_NETBIRD_VPS_EGRESS_${TS}_PROOF.txt"
|
|
10:REMOTE_SCRIPT="/tmp/771l_crowdsec_capi_netbird_vps_egress_${TS}.sh"
|
|
11:LOCAL_REMOTE_SCRIPT="/root/771l_crowdsec_capi_netbird_vps_egress_remote_${TS}.sh"
|
|
18:STACK=/opt/stacks/crowdsec
|
|
20:BACKUP_DIR="$STACK/manual-backups/771l-netbird-vps-egress-$TS"
|
|
21:HEALTH_DIR=/var/lib/homelab-health
|
|
22:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
23:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
24:EGRESS_SERVICE=homelab-crowdsec-capi-netbird-egress.service
|
|
27:mkdir -p "$BACKUP_DIR" "$HEALTH_DIR" "$EGRESS_DIR/profiles"
|
|
33:write_health() {
|
|
39: echo "CHECK=crowdsec-capi"
|
|
42: } > "$HEALTH_FILE"
|
|
46: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
54: crowdsec:
|
|
79: docker compose up -d --force-recreate crowdsec
|
|
87: state="$(docker inspect crowdsec --format 'Running={{.State.Running}} Restarting={{.State.Restarting}} RestartCount={{.RestartCount}} StartedAt={{.State.StartedAt}} ExitCode={{.State.ExitCode}}' 2>/dev/null || true)"
|
|
88: health="$(curl -sk --connect-timeout 3 --max-time 6 -o /tmp/771l_health.html -w '%{http_code}' http://[IP]:8088/health || true)"
|
|
91: fatal="$(docker logs --since 30s crowdsec 2>&1 | grep -Eic 'fatal|unable to run local API|failed to get docker info|lookup socket-proxy|server misbehaving|mapping value is not allowed' || true)"
|
|
92: echo "LAPI_TRY=$n STATE=$state HEALTH=$health LAPI_RC=${lapi_rc:-NA} FATAL_COUNT_30S=$fatal"
|
|
96: && test "$health" = "200" \
|
|
139:remove("/opt/stacks/crowdsec/config/config.yaml")
|
|
140:remove("/opt/stacks/crowdsec/config/user.yaml")
|
|
147:p = Path("/opt/stacks/crowdsec/config/config.yaml")
|
|
178: " credentials_path: /etc/crowdsec/online_api_credentials.yaml",
|
|
190: crowdsec:
|
|
195: NO_PROXY: "[IP],localhost,[IP],[IPV6],socket-proxy,crowdsec"
|
|
234:collect_netbird_peers() {
|
|
235: echo "NETBIRD_STATUS"
|
|
236: if ! command -v netbird >/dev/null 2>&1; then
|
|
237: echo "NETBIRD_CLI_MISSING"
|
|
241: netbird status 2>&1 | redact | tee /tmp/771l_netbird_status.txt || true
|
|
242: netbird status --json >/tmp/771l_netbird_status.json 2>/tmp/771l_netbird_status_json.err || true
|
|
243: netbird ip 2>/tmp/771l_netbird_ip.err | tee /tmp/771l_netbird_ip.txt || true
|
|
245: echo "NETBIRD_INTERFACES"
|
|
246: ip -o -4 addr show | grep -Ei 'wt|netbird|wg|100\.' || true
|
|
DEPENDENCY_FILE|path=/root/771m_purge_warp_fix_netbird_egress.sh|mtime=2026-07-02 18:16:37.903239779 +0300|sha256=0ae3b0e1e8016da55cf1756e868c51a23fe12328fae6ef4baa61c50b9e48e715
|
|
8:PROOF="/root/evidence/771M_PURGE_WARP_FIX_NETBIRD_EGRESS_${TS}_PROOF.txt"
|
|
10:REMOTE_SCRIPT="/tmp/771m_purge_warp_fix_netbird_${TS}.sh"
|
|
11:LOCAL_REMOTE_SCRIPT="/root/771m_purge_warp_fix_netbird_remote_${TS}.sh"
|
|
18:STACK=/opt/stacks/crowdsec
|
|
20:BACKUP_DIR="$STACK/manual-backups/771m-purge-warp-netbird-egress-$TS"
|
|
21:HEALTH_DIR=/var/lib/homelab-health
|
|
22:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
23:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
24:EGRESS_SERVICE=homelab-crowdsec-capi-netbird-egress.service
|
|
28:mkdir -p "$BACKUP_DIR" "$HEALTH_DIR" "$EGRESS_DIR/profiles"
|
|
34:write_health() {
|
|
40: echo "CHECK=crowdsec-capi"
|
|
43: } > "$HEALTH_FILE"
|
|
47: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
55: crowdsec:
|
|
80: docker compose up -d --force-recreate crowdsec
|
|
88: state="$(docker inspect crowdsec --format 'Running={{.State.Running}} Restarting={{.State.Restarting}} RestartCount={{.RestartCount}} StartedAt={{.State.StartedAt}} ExitCode={{.State.ExitCode}}' 2>/dev/null || true)"
|
|
89: health="$(curl -sk --connect-timeout 3 --max-time 6 -o /tmp/771m_health.html -w '%{http_code}' http://[IP]:8088/health || true)"
|
|
92: fatal="$(docker logs --since 30s crowdsec 2>&1 | grep -Eic 'fatal|unable to run local API|failed to get docker info|lookup socket-proxy|server misbehaving|mapping value is not allowed' || true)"
|
|
93: echo "LAPI_TRY=$n STATE=$state HEALTH=$health LAPI_RC=${lapi_rc:-NA} FATAL_COUNT_30S=$fatal"
|
|
97: && test "$health" = "200" \
|
|
140:remove("/opt/stacks/crowdsec/config/config.yaml")
|
|
141:remove("/opt/stacks/crowdsec/config/user.yaml")
|
|
148:p = Path("/opt/stacks/crowdsec/config/config.yaml")
|
|
179: " credentials_path: /etc/crowdsec/online_api_credentials.yaml",
|
|
191: crowdsec:
|
|
196: NO_PROXY: "[IP],localhost,[IP],[IPV6],socket-proxy,crowdsec"
|
|
258:collect_netbird_peers() {
|
|
259: echo "NETBIRD_STATUS"
|
|
260: if ! command -v netbird >/dev/null 2>&1; then
|
|
261: echo "NETBIRD_CLI_MISSING"
|
|
265: netbird status 2>&1 | redact | tee /tmp/771m_netbird_status.txt || true
|
|
266: netbird status --json >/tmp/771m_netbird_status.json 2>/tmp/771m_netbird_status_json.err || true
|
|
267: netbird ip 2>/tmp/771m_netbird_ip.err | tee /tmp/771m_netbird_ip.txt || true
|
|
269: echo "NETBIRD_INTERFACES"
|
|
270: ip -o -4 addr show | grep -Ei 'wt|netbird|wg|100\.' || true
|
|
DEPENDENCY_FILE|path=/root/771m_purge_warp_fix_netbird_remote_20260702T151637Z.sh|mtime=2026-07-02 18:16:37.909445276 +0300|sha256=941f683d148a01d9af9ef6ce938c8ee6874d7af1ac1ac5ee96c7d9ca7cc262a4
|
|
5:STACK=/opt/stacks/crowdsec
|
|
7:BACKUP_DIR="$STACK/manual-backups/771m-purge-warp-netbird-egress-$TS"
|
|
8:HEALTH_DIR=/var/lib/homelab-health
|
|
9:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
10:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
11:EGRESS_SERVICE=homelab-crowdsec-capi-netbird-egress.service
|
|
15:mkdir -p "$BACKUP_DIR" "$HEALTH_DIR" "$EGRESS_DIR/profiles"
|
|
21:write_health() {
|
|
27: echo "CHECK=crowdsec-capi"
|
|
30: } > "$HEALTH_FILE"
|
|
34: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
42: crowdsec:
|
|
67: docker compose up -d --force-recreate crowdsec
|
|
75: state="$(docker inspect crowdsec --format 'Running={{.State.Running}} Restarting={{.State.Restarting}} RestartCount={{.RestartCount}} StartedAt={{.State.StartedAt}} ExitCode={{.State.ExitCode}}' 2>/dev/null || true)"
|
|
76: health="$(curl -sk --connect-timeout 3 --max-time 6 -o /tmp/771m_health.html -w '%{http_code}' http://[IP]:8088/health || true)"
|
|
79: fatal="$(docker logs --since 30s crowdsec 2>&1 | grep -Eic 'fatal|unable to run local API|failed to get docker info|lookup socket-proxy|server misbehaving|mapping value is not allowed' || true)"
|
|
80: echo "LAPI_TRY=$n STATE=$state HEALTH=$health LAPI_RC=${lapi_rc:-NA} FATAL_COUNT_30S=$fatal"
|
|
84: && test "$health" = "200" \
|
|
127:remove("/opt/stacks/crowdsec/config/config.yaml")
|
|
128:remove("/opt/stacks/crowdsec/config/user.yaml")
|
|
135:p = Path("/opt/stacks/crowdsec/config/config.yaml")
|
|
166: " credentials_path: /etc/crowdsec/online_api_credentials.yaml",
|
|
178: crowdsec:
|
|
183: NO_PROXY: "[IP],localhost,[IP],[IPV6],socket-proxy,crowdsec"
|
|
245:collect_netbird_peers() {
|
|
246: echo "NETBIRD_STATUS"
|
|
247: if ! command -v netbird >/dev/null 2>&1; then
|
|
248: echo "NETBIRD_CLI_MISSING"
|
|
252: netbird status 2>&1 | redact | tee /tmp/771m_netbird_status.txt || true
|
|
253: netbird status --json >/tmp/771m_netbird_status.json 2>/tmp/771m_netbird_status_json.err || true
|
|
254: netbird ip 2>/tmp/771m_netbird_ip.err | tee /tmp/771m_netbird_ip.txt || true
|
|
256: echo "NETBIRD_INTERFACES"
|
|
257: ip -o -4 addr show | grep -Ei 'wt|netbird|wg|100\.' || true
|
|
259: python3 - <<'PY' >/tmp/771m_netbird_peers.tsv
|
|
264:p = Path("/tmp/771m_netbird_ip.txt")
|
|
278:jp = Path("/tmp/771m_netbird_status.json")
|
|
DEPENDENCY_FILE|path=/root/771n_netbird_usa_moldova_egress_only.sh|mtime=2026-07-02 18:21:39.746368388 +0300|sha256=420d835318960ae2644dafc93e0427584505acaffa9786927623aeb59ba6ac0e
|
|
8:PROOF="/root/evidence/771N_NETBIRD_USA_MOLDOVA_EGRESS_ONLY_${TS}_PROOF.txt"
|
|
10:REMOTE_SCRIPT="/tmp/771n_netbird_usa_moldova_egress_${TS}.sh"
|
|
11:LOCAL_REMOTE_SCRIPT="/root/771n_netbird_usa_moldova_egress_remote_${TS}.sh"
|
|
18:STACK=/opt/stacks/crowdsec
|
|
20:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
21:HEALTH_DIR=/var/lib/homelab-health
|
|
22:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
25:mkdir -p "$EGRESS_DIR/profiles" "$HEALTH_DIR"
|
|
32: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
35:write_health() {
|
|
41: echo "CHECK=crowdsec-capi"
|
|
44: } > "$HEALTH_FILE"
|
|
47:force_crowdsec_safe() {
|
|
51: crowdsec:
|
|
74: docker compose up -d crowdsec
|
|
84: cat >"$EGRESS_DIR/profiles/${profile}.env" <<EOF
|
|
91: cp -a "$EGRESS_DIR/profiles/${profile}.env" "$EGRESS_DIR/current.env"
|
|
93: cat >/etc/systemd/system/homelab-crowdsec-capi-netbird-egress.service <<'EOF'
|
|
95:Description=Homelab CrowdSec CAPI NetBird VPS SOCKS egress
|
|
96:After=network-online.target docker.service netbird.service
|
|
102:EnvironmentFile=/etc/homelab-crowdsec-capi-netbird-egress/current.env
|
|
111: cat >/usr/local/sbin/homelab-crowdsec-capi-egress-switch <<'EOF'
|
|
115:base=/etc/homelab-crowdsec-capi-netbird-egress
|
|
123:systemctl restart homelab-crowdsec-capi-netbird-egress.service
|
|
126:systemctl --no-pager --full status homelab-crowdsec-capi-netbird-egress.service | sed -n '1,30p'
|
|
128: chmod 755 /usr/local/sbin/homelab-crowdsec-capi-egress-switch
|
|
131: systemctl enable --now homelab-crowdsec-capi-netbird-egress.service
|
|
132: systemctl restart homelab-crowdsec-capi-netbird-egress.service
|
|
134: systemctl is-active homelab-crowdsec-capi-netbird-egress.service || true
|
|
146: if "HOMELAB_771" in line and "CROWDSEC_CAPI" in line and "BEGIN" in line:
|
|
149: if "HOMELAB_771" in line and "CROWDSEC_CAPI" in line and "END" in line:
|
|
160:out.append("# HOMELAB_771N_CROWDSEC_CAPI_NETBIRD_BEGIN")
|
|
163:out.append("# HOMELAB_771N_CROWDSEC_CAPI_NETBIRD_END")
|
|
194: code="$(curl -sk --proxy "socks5h://[IP]:${port}" --connect-timeout 12 --max-time 45 -o /tmp/771n_capi_${profile}.body -w '%{http_code}' https://api.crowdsec.net/v3/watchers/login || true)"
|
|
203: echo "VPS_EGRESS_OK profile=$profile user=$user ip=$ip"
|
|
214: echo "VPS_EGRESS_NOT_READY profile=$profile ip=$ip"
|
|
DEPENDENCY_FILE|path=/root/771n_netbird_usa_moldova_egress_remote_20260702T152139Z.sh|mtime=2026-07-02 18:21:39.750535800 +0300|sha256=1c25cbc13f524d0f6974a71c255c5634c69380818cb1b5ad4f8f6ea9bf8c6a01
|
|
5:STACK=/opt/stacks/crowdsec
|
|
7:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
8:HEALTH_DIR=/var/lib/homelab-health
|
|
9:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
12:mkdir -p "$EGRESS_DIR/profiles" "$HEALTH_DIR"
|
|
19: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
22:write_health() {
|
|
28: echo "CHECK=crowdsec-capi"
|
|
31: } > "$HEALTH_FILE"
|
|
34:force_crowdsec_safe() {
|
|
38: crowdsec:
|
|
61: docker compose up -d crowdsec
|
|
71: cat >"$EGRESS_DIR/profiles/${profile}.env" <<EOF
|
|
78: cp -a "$EGRESS_DIR/profiles/${profile}.env" "$EGRESS_DIR/current.env"
|
|
80: cat >/etc/systemd/system/homelab-crowdsec-capi-netbird-egress.service <<'EOF'
|
|
82:Description=Homelab CrowdSec CAPI NetBird VPS SOCKS egress
|
|
83:After=network-online.target docker.service netbird.service
|
|
89:EnvironmentFile=/etc/homelab-crowdsec-capi-netbird-egress/current.env
|
|
98: cat >/usr/local/sbin/homelab-crowdsec-capi-egress-switch <<'EOF'
|
|
102:base=/etc/homelab-crowdsec-capi-netbird-egress
|
|
110:systemctl restart homelab-crowdsec-capi-netbird-egress.service
|
|
113:systemctl --no-pager --full status homelab-crowdsec-capi-netbird-egress.service | sed -n '1,30p'
|
|
115: chmod 755 /usr/local/sbin/homelab-crowdsec-capi-egress-switch
|
|
118: systemctl enable --now homelab-crowdsec-capi-netbird-egress.service
|
|
119: systemctl restart homelab-crowdsec-capi-netbird-egress.service
|
|
121: systemctl is-active homelab-crowdsec-capi-netbird-egress.service || true
|
|
133: if "HOMELAB_771" in line and "CROWDSEC_CAPI" in line and "BEGIN" in line:
|
|
136: if "HOMELAB_771" in line and "CROWDSEC_CAPI" in line and "END" in line:
|
|
147:out.append("# HOMELAB_771N_CROWDSEC_CAPI_NETBIRD_BEGIN")
|
|
150:out.append("# HOMELAB_771N_CROWDSEC_CAPI_NETBIRD_END")
|
|
181: code="$(curl -sk --proxy "socks5h://[IP]:${port}" --connect-timeout 12 --max-time 45 -o /tmp/771n_capi_${profile}.body -w '%{http_code}' https://api.crowdsec.net/v3/watchers/login || true)"
|
|
190: echo "VPS_EGRESS_OK profile=$profile user=$user ip=$ip"
|
|
201: echo "VPS_EGRESS_NOT_READY profile=$profile ip=$ip"
|
|
206:echo "STEP=771N_NETBIRD_USA_MOLDOVA_EGRESS_ONLY"
|
|
207:echo "RULE=WARP_PURGED_NETBIRD_ONLY"
|
|
215:echo "CROWDSEC_SAFE_STATE"
|
|
DEPENDENCY_FILE|path=/root/771o_netbird_management_acl_discovery.sh|mtime=2026-07-02 18:24:39.066582039 +0300|sha256=50526afeaeb99fa9a8018374abe82731dcb9e93eac4be64934d0c6a8610be322
|
|
8:PROOF="/root/evidence/771O_NETBIRD_MANAGEMENT_ACL_DISCOVERY_${TS}_PROOF.txt"
|
|
14: echo "STEP=771O_NETBIRD_MANAGEMENT_ACL_DISCOVERY"
|
|
17: echo "RULE=WARP_PURGED_NETBIRD_POLICY_DISCOVERY_ONLY"
|
|
24: echo "EDGE_NETBIRD_ACL_DIAG"
|
|
31: echo NETBIRD_STATUS
|
|
34: echo NETBIRD_JSON_TARGETS
|
|
35: netbird status --json >/tmp/771o_netbird_status.json 2>/tmp/771o_netbird_status_json.err || true
|
|
39:p=Path(\"/tmp/771o_netbird_status.json\")
|
|
42: print(Path(\"/tmp/771o_netbird_status_json.err\").read_text(errors=\"ignore\")[:500] if Path(\"/tmp/771o_netbird_status_json.err\").exists() else \"\")
|
|
46:names=(\"e3qxxx\",\"183-106\",\"moldova\",\"usa\")
|
|
82: echo CROWDSEC_SAFE_STATE
|
|
83: sudo docker ps --format \"{{.Names}} {{.Status}} {{.Ports}}\" | grep -E \"^(crowdsec|socket-proxy|npmplus)\" || true
|
|
87: echo "DISCOVER_NETBIRD_MANAGEMENT_ON_KNOWN_HOSTS"
|
|
101: echo DOCKER_NETBIRD_CONTAINERS
|
|
102: docker ps -a --format "{{.Names}} {{.Image}} {{.Status}} {{.Ports}}" 2>/dev/null | grep -Ei "netbird|management|signal|relay|coturn|zitadel|dashboard" || true
|
|
103: echo SYSTEMD_NETBIRD
|
|
104: systemctl list-units --all --no-pager 2>/dev/null | grep -Ei "netbird|signal|relay|coturn|zitadel" || true
|
|
106: find /opt /etc /var/lib -maxdepth 5 \( -iname "*netbird*" -o -iname "*management*.json" -o -iname "store.json" \) 2>/dev/null | sed -n "1,120p"
|
|
111: echo DOCKER_NETBIRD_CONTAINERS
|
|
112: docker ps -a --format \"{{.Names}} {{.Image}} {{.Status}} {{.Ports}}\" 2>/dev/null | grep -Ei \"netbird|management|signal|relay|coturn|zitadel|dashboard\" || true
|
|
113: echo SYSTEMD_NETBIRD
|
|
114: systemctl list-units --all --no-pager 2>/dev/null | grep -Ei \"netbird|signal|relay|coturn|zitadel\" || true
|
|
116: find /opt /etc /var/lib -maxdepth 5 \( -iname \"*netbird*\" -o -iname \"*management*.json\" -o -iname \"store.json\" \) 2>/dev/null | sed -n \"1,120p\"
|
|
122: echo "TRY_PARSE_NETBIRD_STORE_IF_FOUND_LOCALLY"
|
|
124: candidates=$(find /opt /etc /var/lib -maxdepth 7 \( -path "*netbird*" -a \( -iname "store.json" -o -iname "*.db" -o -iname "*.json" \) \) 2>/dev/null | sed -n "1,40p")
|
|
163: echo "STATUS=OK_771O_DISCOVERY_DONE_NEXT_FIX_NETBIRD_POLICY_OR_VPS_AGENT"
|
|
DEPENDENCY_FILE|path=/root/771p_netbird_vps_peer_repair.sh|mtime=2026-07-02 19:32:10.024856543 +0300|sha256=f37aac25cac5b1c3983392070ddaff09e28497efa28884b03d23efc09a825747
|
|
8:PROOF="/root/evidence/771P_NETBIRD_VPS_PEER_REPAIR_${TS}_PROOF.txt"
|
|
11:MOLDOVA_NB=[IP]
|
|
16: echo "STEP=771P_NETBIRD_VPS_PEER_REPAIR"
|
|
19: echo "RULE=NO_WARP_FIX_NETBIRD_USA_MOLDOVA_PEERS_FOR_CROWDSEC_CAPI"
|
|
23: echo "CONFIG_CHANGE=YES_RESTART_NETBIRD_ON_VPS_IF_PUBLIC_SSH_FOUND"
|
|
26: echo "LOCAL_PVE01_NETBIRD_STATUS"
|
|
29: for ip in "$USA_NB" "$MOLDOVA_NB"; do
|
|
35: echo "EDGE_NETBIRD_STATUS_AND_TARGETS"
|
|
42: echo NETBIRD_STATUS
|
|
46: netbird status --json >/tmp/771p_edge_nb.json 2>/tmp/771p_edge_nb.err || true
|
|
57: ip=peer.get(\"netbirdIp\",\"\")
|
|
59: print(\"PEER\", fqdn, ip, \"status=\"+str(peer.get(\"status\")), \"handshake=\"+str(peer.get(\"lastWireguardHandshake\")), \"relay=\"+str(peer.get(\"relayAddress\")), \"conn=\"+str(peer.get(\"connectionType\")))
|
|
80: grep -nEi 'e3qxxx|183-106|moldova|молдов|usa|america|vps|netbird|alexhost|aeza|hetzner|public ip|external ip|ssh' /etc/pve/31_HOMELAB_REFERENCE.md 2>/dev/null | sed -n '1,260p' || true
|
|
81: echo "SOURCE=systemd_netbird_vps"
|
|
84: grep -RHEi 'Host |HostName|User |Port |e3qxxx|183-106|moldova|usa|vps' [SENSITIVE_PATH] /etc/ssh/ssh_config /etc/ssh/ssh_config.d/* 2>/dev/null | sed -n '1,260p' || true
|
|
110: if any(x in low for x in ["183-106", "moldova", "молдов", "chisinau"]):
|
|
111: profile = "moldova"
|
|
123: if "netbird.selfhosted" in host:
|
|
138: echo "TEST_PUBLIC_SSH_AND_RESTART_NETBIRD_ON_VPS_IF_FOUND"
|
|
159: systemctl restart netbird 2>/dev/null || true
|
|
173: echo "CROWDSEC_SAFE_POSTCHECK"
|
|
175: sudo docker ps --format \"{{.Names}} {{.Status}} {{.Ports}}\" | grep -E \"^(crowdsec|socket-proxy|npmplus)\" || true
|
|
182: echo "STATUS=OK_771P_VPS_PUBLIC_ACCESS_FOUND_RESTARTED_NETBIRD_REVIEW_RECHECK"
|
|
DEPENDENCY_FILE|path=/root/771q_netbird_public_vps_repair_then_capi.sh|mtime=2026-07-02 19:45:41.256069566 +0300|sha256=0b6e42e5b4013f7ee2191b140c5c507877fb05e2a4fdd7b39bea7b7c6b108071
|
|
8:PROOF="/root/evidence/771Q_NETBIRD_PUBLIC_VPS_REPAIR_THEN_CAPI_${TS}_PROOF.txt"
|
|
11:MOLDOVA_NB=[IP]
|
|
16: echo "STEP=771Q_NETBIRD_PUBLIC_VPS_REPAIR_THEN_CAPI"
|
|
19: echo "RULE=NO_WARP_REPAIR_NETBIRD_USA_MOLDOVA_THEN_CROWDSEC_CAPI"
|
|
23: echo "CONFIG_CHANGE=YES_RESTART_PUBLIC_VPS_NETBIRD_AND_CAPI_IF_ROUTE_READY"
|
|
38: "echo SSH_OK; echo HOSTNAME=\$(hostname); command -v netbird >/dev/null 2>&1 && netbird status 2>&1 || echo NETBIRD_CLI_MISSING; curl -4 -sk --connect-timeout 8 --max-time 20 -o /tmp/771q_capi.body -w 'DIRECT_CAPI_HTTP=%{http_code}\n' https://api.crowdsec.net/v3/watchers/login || true" \
|
|
58: "moldova|debian|netbird.vpn.gram1.ru" \
|
|
59: "moldova|root|netbird.vpn.gram1.ru" \
|
|
60: "moldova|debian|[IP]" \
|
|
61: "moldova|root|[IP]" \
|
|
62: "netbird-ui|debian|nb.pvepro.ru" \
|
|
63: "netbird-ui|root|nb.pvepro.ru"
|
|
74: echo "RESTART_NETBIRD_ON_REAL_PUBLIC_VPS_ONLY"
|
|
79: netbird.vpn.gram1.ru|[IP]|nb.pvepro.ru)
|
|
87: "echo BEFORE_HOSTNAME=\$(hostname); command -v netbird >/dev/null 2>&1 && netbird status 2>&1 || true; (sudo systemctl restart netbird 2>/dev/null || systemctl restart netbird 2>/dev/null || true); sleep 15; echo AFTER; command -v netbird >/dev/null 2>&1 && netbird status 2>&1 || true; curl -4 -sk --connect-timeout 8 --max-time 20 -o /tmp/771q_capi_after.body -w 'DIRECT_CAPI_HTTP_AFTER=%{http_code}\n' https://api.crowdsec.net/v3/watchers/login || true" \
|
|
106: echo "RECHECK_EDGE_USA_MOLDOVA_AFTER_PUBLIC_RESTART"
|
|
109: systemctl restart netbird 2>/dev/null || true
|
|
112: netbird status --json >/tmp/771q_edge_nb.json 2>/tmp/771q_edge_nb.err || true
|
|
121: ip=peer.get(\"netbirdIp\",\"\")
|
|
123: print(\"PEER\", fqdn, ip, \"status=\"+str(peer.get(\"status\")), \"handshake=\"+str(peer.get(\"lastWireguardHandshake\")), \"relay=\"+str(peer.get(\"relayAddress\")), \"conn=\"+str(peer.get(\"connectionType\")))
|
|
139: echo "EDGE_BUILD_NETBIRD_EGRESS_AND_REGISTER_CAPI_IF_REACHABLE"
|
|
144:STACK=/opt/stacks/crowdsec
|
|
146:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
147:HEALTH_DIR=/var/lib/homelab-health
|
|
148:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
151:mkdir -p "$EGRESS_DIR/profiles" "$HEALTH_DIR"
|
|
158: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
161:write_health() {
|
|
167: echo "CHECK=crowdsec-capi"
|
|
170: } > "$HEALTH_FILE"
|
|
177: crowdsec:
|
|
198: docker compose up -d crowdsec
|
|
206: health="$(curl -sk --connect-timeout 3 --max-time 6 -o /tmp/771q_health.html -w '%{http_code}' http://[IP]:8088/health || true)"
|
|
209: echo "LAPI_TRY=$n HEALTH=$health LAPI_RC=${rc:-NA}"
|
|
211: test "$health" = "200" && test "${rc:-NA}" = "0" && return 0
|
|
241:remove("/opt/stacks/crowdsec/config/config.yaml")
|
|
DEPENDENCY_FILE|path=/root/771r_edge_netbird_egress_capi_20260702T165517Z.sh|mtime=2026-07-02 19:55:17.909628261 +0300|sha256=9c6f911768869c984ec41016b3134be75620100fac8c60a8b21ef6bde58c6868
|
|
5:STACK=/opt/stacks/crowdsec
|
|
7:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
8:HEALTH_DIR=/var/lib/homelab-health
|
|
9:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
12:mkdir -p "$EGRESS_DIR/profiles" "$HEALTH_DIR"
|
|
19: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
22:write_health() {
|
|
29: echo "CHECK=crowdsec-capi"
|
|
32: } > "$HEALTH_FILE"
|
|
39: crowdsec:
|
|
62: docker compose up -d crowdsec
|
|
66: local label n health out rc fatal
|
|
71: health="$(curl -sk --connect-timeout 3 --max-time 6 -o /tmp/771r_health.html -w '%{http_code}' http://[IP]:8088/health || true)"
|
|
74: fatal="$(docker logs --since 30s crowdsec 2>&1 | grep -Eic 'fatal|unable to run local API|failed to get docker info|lookup socket-proxy|server misbehaving|mapping value is not allowed' || true)"
|
|
75: echo "LAPI_TRY=$n HEALTH=$health LAPI_RC=${rc:-NA} FATAL_COUNT_30S=$fatal"
|
|
77: if test "$health" = "200" && test "${rc:-NA}" = "0" && test "$fatal" = "0"; then
|
|
114:remove("/opt/stacks/crowdsec/config/config.yaml")
|
|
115:remove("/opt/stacks/crowdsec/config/user.yaml")
|
|
122:p = Path("/opt/stacks/crowdsec/config/config.yaml")
|
|
153: " credentials_path: /etc/crowdsec/online_api_credentials.yaml",
|
|
166: crowdsec:
|
|
171: NO_PROXY: "[IP],localhost,[IP],[IPV6],socket-proxy,crowdsec"
|
|
196:test_target_ssh_egress() {
|
|
202: echo "TEST_TARGET_SSH_EGRESS profile=$profile ip=$ip"
|
|
212: "echo SSH_OK; hostname; curl -4 -sk --connect-timeout 8 --max-time 20 -o /tmp/771r_capi.body -w 'DIRECT_CAPI_HTTP=%{http_code}\n' https://api.crowdsec.net/v3/watchers/login || true" \
|
|
234: code="$(curl -sk --proxy "socks5h://[IP]:${port}" --connect-timeout 12 --max-time 45 -o /tmp/771r_capi_proxy.body -w '%{http_code}' https://api.crowdsec.net/v3/watchers/login || true)"
|
|
255:install_egress_service() {
|
|
261: echo "INSTALL_EGRESS profile=$profile user=$user ip=$ip bridge=$b"
|
|
263: mkdir -p "$EGRESS_DIR/profiles"
|
|
264: cat >"$EGRESS_DIR/profiles/${profile}.env" <<EOF
|
|
271: cp -a "$EGRESS_DIR/profiles/${profile}.env" "$EGRESS_DIR/current.env"
|
|
273: cat >/etc/systemd/system/homelab-crowdsec-capi-netbird-egress.service <<'EOF'
|
|
275:Description=Homelab CrowdSec CAPI NetBird VPS SOCKS egress
|
|
276:After=network-online.target docker.service netbird.service
|
|
282:EnvironmentFile=/etc/homelab-crowdsec-capi-netbird-egress/current.env
|
|
291: cat >/usr/local/sbin/homelab-crowdsec-capi-egress-switch <<'EOF'
|
|
DEPENDENCY_FILE|path=/root/771r_netbird_public_vps_fixed_then_capi.sh|mtime=2026-07-02 19:55:17.904566554 +0300|sha256=dc8119b6815d60e08f442e77faba6ce6e9899c4120d78490886e222b8510efa7
|
|
8:PROOF="/root/evidence/771R_NETBIRD_PUBLIC_VPS_FIXED_THEN_CAPI_${TS}_PROOF.txt"
|
|
10:EDGE_REMOTE="/tmp/771r_edge_netbird_egress_capi_${TS}.sh"
|
|
11:EDGE_LOCAL="/root/771r_edge_netbird_egress_capi_${TS}.sh"
|
|
31: "echo SSH_OK; echo USER=\$(id -un); echo HOSTNAME=\$(hostname); command -v netbird >/dev/null 2>&1 && netbird status 2>&1 || echo NETBIRD_CLI_MISSING; curl -4 -sk --connect-timeout 8 --max-time 20 -o /tmp/771r_capi.body -w 'DIRECT_CAPI_HTTP=%{http_code}\n' https://api.crowdsec.net/v3/watchers/login || true" \
|
|
49:STACK=/opt/stacks/crowdsec
|
|
51:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
52:HEALTH_DIR=/var/lib/homelab-health
|
|
53:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
56:mkdir -p "$EGRESS_DIR/profiles" "$HEALTH_DIR"
|
|
63: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
66:write_health() {
|
|
73: echo "CHECK=crowdsec-capi"
|
|
76: } > "$HEALTH_FILE"
|
|
83: crowdsec:
|
|
106: docker compose up -d crowdsec
|
|
110: local label n health out rc fatal
|
|
115: health="$(curl -sk --connect-timeout 3 --max-time 6 -o /tmp/771r_health.html -w '%{http_code}' http://[IP]:8088/health || true)"
|
|
118: fatal="$(docker logs --since 30s crowdsec 2>&1 | grep -Eic 'fatal|unable to run local API|failed to get docker info|lookup socket-proxy|server misbehaving|mapping value is not allowed' || true)"
|
|
119: echo "LAPI_TRY=$n HEALTH=$health LAPI_RC=${rc:-NA} FATAL_COUNT_30S=$fatal"
|
|
121: if test "$health" = "200" && test "${rc:-NA}" = "0" && test "$fatal" = "0"; then
|
|
158:remove("/opt/stacks/crowdsec/config/config.yaml")
|
|
159:remove("/opt/stacks/crowdsec/config/user.yaml")
|
|
166:p = Path("/opt/stacks/crowdsec/config/config.yaml")
|
|
197: " credentials_path: /etc/crowdsec/online_api_credentials.yaml",
|
|
210: crowdsec:
|
|
215: NO_PROXY: "[IP],localhost,[IP],[IPV6],socket-proxy,crowdsec"
|
|
240:test_target_ssh_egress() {
|
|
246: echo "TEST_TARGET_SSH_EGRESS profile=$profile ip=$ip"
|
|
256: "echo SSH_OK; hostname; curl -4 -sk --connect-timeout 8 --max-time 20 -o /tmp/771r_capi.body -w 'DIRECT_CAPI_HTTP=%{http_code}\n' https://api.crowdsec.net/v3/watchers/login || true" \
|
|
278: code="$(curl -sk --proxy "socks5h://[IP]:${port}" --connect-timeout 12 --max-time 45 -o /tmp/771r_capi_proxy.body -w '%{http_code}' https://api.crowdsec.net/v3/watchers/login || true)"
|
|
299:install_egress_service() {
|
|
305: echo "INSTALL_EGRESS profile=$profile user=$user ip=$ip bridge=$b"
|
|
307: mkdir -p "$EGRESS_DIR/profiles"
|
|
308: cat >"$EGRESS_DIR/profiles/${profile}.env" <<EOF
|
|
315: cp -a "$EGRESS_DIR/profiles/${profile}.env" "$EGRESS_DIR/current.env"
|
|
317: cat >/etc/systemd/system/homelab-crowdsec-capi-netbird-egress.service <<'EOF'
|
|
DEPENDENCY_FILE|path=/root/771s_edge_capi_netbird_20260702T170251Z.sh|mtime=2026-07-02 20:02:51.044349876 +0300|sha256=c4783c14a3a132616af5db6a065270ccd39a7690f9fd38d0ef27fe5de6bd07e5
|
|
6:PROFILE="${3:-moldova}"
|
|
7:STACK=/opt/stacks/crowdsec
|
|
9:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
10:HEALTH_DIR=/var/lib/homelab-health
|
|
11:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
14:mkdir -p "$EGRESS_DIR/profiles" "$HEALTH_DIR"
|
|
21: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
24:write_health() {
|
|
30: echo "CHECK=crowdsec-capi"
|
|
33: } > "$HEALTH_FILE"
|
|
40: crowdsec:
|
|
62: docker compose up -d crowdsec
|
|
70: health="$(curl -sk --connect-timeout 3 --max-time 6 -o /tmp/771s_health.html -w '%{http_code}' http://[IP]:8088/health || true)"
|
|
73: fatal="$(docker logs --since 30s crowdsec 2>&1 | grep -Eic 'fatal|unable to run local API|failed to get docker info|lookup socket-proxy|server misbehaving|mapping value is not allowed' || true)"
|
|
74: echo "LAPI_TRY=$n HEALTH=$health LAPI_RC=${rc:-NA} FATAL_COUNT_30S=$fatal"
|
|
76: if test "$health" = "200" && test "${rc:-NA}" = "0" && test "$fatal" = "0"; then
|
|
113:remove("/opt/stacks/crowdsec/config/config.yaml")
|
|
114:remove("/opt/stacks/crowdsec/config/user.yaml")
|
|
121:p=Path("/opt/stacks/crowdsec/config/config.yaml")
|
|
153: " credentials_path: /etc/crowdsec/online_api_credentials.yaml",
|
|
165: crowdsec:
|
|
170: NO_PROXY: "[IP],localhost,[IP],[IPV6],socket-proxy,crowdsec"
|
|
195:test_target_ssh_egress() {
|
|
199: echo "TEST_TARGET_SSH_EGRESS profile=$profile ip=$ip"
|
|
209: "echo SSH_OK; hostname; curl -4 -sk --connect-timeout 8 --max-time 20 -o /tmp/771s_capi.body -w 'DIRECT_CAPI_HTTP=%{http_code}\n' https://api.crowdsec.net/v3/watchers/login || true" \
|
|
231: code="$(curl -sk --proxy "socks5h://[IP]:${port}" --connect-timeout 12 --max-time 45 -o /tmp/771s_capi_proxy.body -w '%{http_code}' https://api.crowdsec.net/v3/watchers/login || true)"
|
|
252:install_egress_service() {
|
|
257: echo "INSTALL_EGRESS profile=$profile user=$user ip=$ip bridge=$b"
|
|
259: mkdir -p "$EGRESS_DIR/profiles"
|
|
260: cat >"$EGRESS_DIR/profiles/${profile}.env" <<EOF
|
|
267: cp -a "$EGRESS_DIR/profiles/${profile}.env" "$EGRESS_DIR/current.env"
|
|
269: cat >/etc/systemd/system/homelab-crowdsec-capi-netbird-egress.service <<'EOF'
|
|
271:Description=Homelab CrowdSec CAPI NetBird VPS SOCKS egress
|
|
272:After=network-online.target docker.service netbird.service
|
|
278:EnvironmentFile=/etc/homelab-crowdsec-capi-netbird-egress/current.env
|
|
287: cat >/usr/local/sbin/homelab-crowdsec-capi-egress-switch <<'EOF'
|
|
DEPENDENCY_FILE|path=/root/771s_vps_identity_repair_netbird_capi.sh|mtime=2026-07-02 20:02:51.038348586 +0300|sha256=16121a810320b1517291830ba128baf6c68e7b3e6f78786481dedb78a1f061b9
|
|
8:PROOF="/root/evidence/771S_VPS_IDENTITY_REPAIR_NETBIRD_CAPI_${TS}_PROOF.txt"
|
|
11:VPS_ALIAS=netbird.vpn.gram1.ru
|
|
13:EDGE_REMOTE="/tmp/771s_edge_capi_netbird_${TS}.sh"
|
|
14:EDGE_LOCAL="/root/771s_edge_capi_netbird_${TS}.sh"
|
|
28:PROFILE="${3:-moldova}"
|
|
29:STACK=/opt/stacks/crowdsec
|
|
31:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
32:HEALTH_DIR=/var/lib/homelab-health
|
|
33:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
36:mkdir -p "$EGRESS_DIR/profiles" "$HEALTH_DIR"
|
|
43: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
46:write_health() {
|
|
52: echo "CHECK=crowdsec-capi"
|
|
55: } > "$HEALTH_FILE"
|
|
62: crowdsec:
|
|
84: docker compose up -d crowdsec
|
|
92: health="$(curl -sk --connect-timeout 3 --max-time 6 -o /tmp/771s_health.html -w '%{http_code}' http://[IP]:8088/health || true)"
|
|
95: fatal="$(docker logs --since 30s crowdsec 2>&1 | grep -Eic 'fatal|unable to run local API|failed to get docker info|lookup socket-proxy|server misbehaving|mapping value is not allowed' || true)"
|
|
96: echo "LAPI_TRY=$n HEALTH=$health LAPI_RC=${rc:-NA} FATAL_COUNT_30S=$fatal"
|
|
98: if test "$health" = "200" && test "${rc:-NA}" = "0" && test "$fatal" = "0"; then
|
|
135:remove("/opt/stacks/crowdsec/config/config.yaml")
|
|
136:remove("/opt/stacks/crowdsec/config/user.yaml")
|
|
143:p=Path("/opt/stacks/crowdsec/config/config.yaml")
|
|
175: " credentials_path: /etc/crowdsec/online_api_credentials.yaml",
|
|
187: crowdsec:
|
|
192: NO_PROXY: "[IP],localhost,[IP],[IPV6],socket-proxy,crowdsec"
|
|
217:test_target_ssh_egress() {
|
|
221: echo "TEST_TARGET_SSH_EGRESS profile=$profile ip=$ip"
|
|
231: "echo SSH_OK; hostname; curl -4 -sk --connect-timeout 8 --max-time 20 -o /tmp/771s_capi.body -w 'DIRECT_CAPI_HTTP=%{http_code}\n' https://api.crowdsec.net/v3/watchers/login || true" \
|
|
253: code="$(curl -sk --proxy "socks5h://[IP]:${port}" --connect-timeout 12 --max-time 45 -o /tmp/771s_capi_proxy.body -w '%{http_code}' https://api.crowdsec.net/v3/watchers/login || true)"
|
|
274:install_egress_service() {
|
|
279: echo "INSTALL_EGRESS profile=$profile user=$user ip=$ip bridge=$b"
|
|
281: mkdir -p "$EGRESS_DIR/profiles"
|
|
282: cat >"$EGRESS_DIR/profiles/${profile}.env" <<EOF
|
|
289: cp -a "$EGRESS_DIR/profiles/${profile}.env" "$EGRESS_DIR/current.env"
|
|
291: cat >/etc/systemd/system/homelab-crowdsec-capi-netbird-egress.service <<'EOF'
|
|
DEPENDENCY_FILE|path=/root/771t_temp_hostkey_netbird_identity_then_capi.sh|mtime=2026-07-02 20:10:05.923400398 +0300|sha256=0c3d628b23b67849d52112322ab2e1ee3779012c10578a0b8cece0d8ddf639da
|
|
8:PROOF="/root/evidence/771T_TEMP_HOSTKEY_NETBIRD_IDENTITY_THEN_CAPI_${TS}_PROOF.txt"
|
|
29:STACK=/opt/stacks/crowdsec
|
|
31:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
32:HEALTH_DIR=/var/lib/homelab-health
|
|
33:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
36:mkdir -p "$EGRESS_DIR/profiles" "$HEALTH_DIR"
|
|
43: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
46:write_health() {
|
|
50: echo "CHECK=crowdsec-capi"
|
|
53: } > "$HEALTH_FILE"
|
|
60: crowdsec:
|
|
82: docker compose up -d crowdsec
|
|
90: health="$(curl -sk --connect-timeout 3 --max-time 6 -o /tmp/771t_health.html -w '%{http_code}' http://[IP]:8088/health || true)"
|
|
93: fatal="$(docker logs --since 30s crowdsec 2>&1 | grep -Eic 'fatal|unable to run local API|failed to get docker info|lookup socket-proxy|server misbehaving|mapping value is not allowed' || true)"
|
|
94: echo "LAPI_TRY=$n HEALTH=$health LAPI_RC=${rc:-NA} FATAL_COUNT_30S=$fatal"
|
|
96: if test "$health" = "200" && test "${rc:-NA}" = "0" && test "$fatal" = "0"; then
|
|
131:remove("/opt/stacks/crowdsec/config/config.yaml")
|
|
132:remove("/opt/stacks/crowdsec/config/user.yaml")
|
|
139:p=Path("/opt/stacks/crowdsec/config/config.yaml")
|
|
169: " credentials_path: /etc/crowdsec/online_api_credentials.yaml",
|
|
181: crowdsec:
|
|
186: NO_PROXY: "[IP],localhost,[IP],[IPV6],socket-proxy,crowdsec"
|
|
211:install_egress() {
|
|
213: echo "INSTALL_EGRESS target=$TARGET_NB user=$TARGET_USER profile=$PROFILE bridge=$b"
|
|
215: echo "VERIFY_NETBIRD_SSH_TO_TARGET"
|
|
218: "echo SSH_OK; hostname; curl -4 -sk --connect-timeout 8 --max-time 20 -o /tmp/771t_capi_direct.body -w 'DIRECT_CAPI_HTTP=%{http_code}\n' https://api.crowdsec.net/v3/watchers/login || true" >"$out" 2>&1
|
|
226: mkdir -p "$EGRESS_DIR/profiles"
|
|
227: cat >"$EGRESS_DIR/profiles/${PROFILE}.env" <<EOF
|
|
234: cp -a "$EGRESS_DIR/profiles/${PROFILE}.env" "$EGRESS_DIR/current.env"
|
|
236: cat >/etc/systemd/system/homelab-crowdsec-capi-netbird-egress.service <<'EOF'
|
|
238:Description=Homelab CrowdSec CAPI NetBird VPS SOCKS egress
|
|
239:After=network-online.target docker.service netbird.service
|
|
245:EnvironmentFile=/etc/homelab-crowdsec-capi-netbird-egress/current.env
|
|
254: cat >/usr/local/sbin/homelab-crowdsec-capi-egress-switch <<'EOF'
|
|
258:base=/etc/homelab-crowdsec-capi-netbird-egress
|
|
266:systemctl restart homelab-crowdsec-capi-netbird-egress.service
|
|
DEPENDENCY_FILE|path=/root/771u_find_key_fix_netbird_egress_capi.sh|mtime=2026-07-02 20:19:23.540526618 +0300|sha256=6b6511ec3d614793e3542777ccfcb5e8c5f09cff77ee2d57624b3ac980787bcb
|
|
8:PROOF="/root/evidence/771U_FIND_KEY_FIX_NETBIRD_EGRESS_CAPI_${TS}_PROOF.txt"
|
|
29:STACK=/opt/stacks/crowdsec
|
|
31:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
32:HEALTH_DIR=/var/lib/homelab-health
|
|
33:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
34:SSH_KEY="$EGRESS_DIR/id_ed25519"
|
|
37:mkdir -p "$EGRESS_DIR/profiles" "$HEALTH_DIR"
|
|
38:chmod 700 "$EGRESS_DIR"
|
|
45: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
48:write_health() {
|
|
52: echo "CHECK=crowdsec-capi"
|
|
55: } > "$HEALTH_FILE"
|
|
62: crowdsec:
|
|
84: docker compose up -d crowdsec
|
|
92: health="$(curl -sk --connect-timeout 3 --max-time 6 -o /tmp/771u_health.html -w '%{http_code}' http://[IP]:8088/health || true)"
|
|
95: fatal="$(docker logs --since 30s crowdsec 2>&1 | grep -Eic 'fatal|unable to run local API|failed to get docker info|lookup socket-proxy|server misbehaving|mapping value is not allowed' || true)"
|
|
96: echo "LAPI_TRY=$n HEALTH=$health LAPI_RC=${rc:-NA} FATAL_COUNT_30S=$fatal"
|
|
98: if test "$health" = "200" && test "${rc:-NA}" = "0" && test "$fatal" = "0"; then
|
|
133:remove("/opt/stacks/crowdsec/config/config.yaml")
|
|
134:remove("/opt/stacks/crowdsec/config/user.yaml")
|
|
141:p=Path("/opt/stacks/crowdsec/config/config.yaml")
|
|
170: " credentials_path: /etc/crowdsec/online_api_credentials.yaml",
|
|
182: crowdsec:
|
|
187: NO_PROXY: "[IP],localhost,[IP],[IPV6],socket-proxy,crowdsec"
|
|
213: ssh-keygen -q -t ed25519 -N "" -C "homelab-crowdsec-capi-netbird-egress-edge" -f "$SSH_KEY"
|
|
217: echo "EDGE_EGRESS_PUBKEY_FINGERPRINT"
|
|
221:install_egress() {
|
|
223: echo "INSTALL_EGRESS target=$TARGET_NB user=$TARGET_USER profile=$PROFILE bridge=$b"
|
|
225: echo "VERIFY_NETBIRD_SSH_TO_TARGET"
|
|
234: "echo SSH_OK; hostname; curl -4 -sk --connect-timeout 8 --max-time 20 -o /tmp/771u_capi_direct.body -w 'DIRECT_CAPI_HTTP=%{http_code}\n' https://api.crowdsec.net/v3/watchers/login || true" >"$out" 2>&1
|
|
242: mkdir -p "$EGRESS_DIR/profiles"
|
|
243: cat >"$EGRESS_DIR/profiles/${PROFILE}.env" <<EOF
|
|
251: cp -a "$EGRESS_DIR/profiles/${PROFILE}.env" "$EGRESS_DIR/current.env"
|
|
253: cat >/etc/systemd/system/homelab-crowdsec-capi-netbird-egress.service <<'EOF'
|
|
255:Description=Homelab CrowdSec CAPI NetBird VPS SOCKS egress
|
|
256:After=network-online.target docker.service netbird.service
|
|
DEPENDENCY_FILE|path=/root/771v_deep_key_backup_netbird_capi.sh|mtime=2026-07-02 20:31:17.990220570 +0300|sha256=92191ce6124981ee0468cc8f95c749c47bca5fc61f9aecaeedeef91cdd434170
|
|
8:PROOF="/root/evidence/771V_DEEP_KEY_BACKUP_NETBIRD_CAPI_${TS}_PROOF.txt"
|
|
11:EDGE_LOCAL="/root/771v_edge_netbird_capi_${TS}.sh"
|
|
12:EDGE_REMOTE="/tmp/771v_edge_netbird_capi_${TS}.sh"
|
|
29:STACK=/opt/stacks/crowdsec
|
|
31:EGRESS_DIR=/etc/homelab-crowdsec-capi-netbird-egress
|
|
32:HEALTH_DIR=/var/lib/homelab-health
|
|
33:HEALTH_FILE="$HEALTH_DIR/crowdsec-capi.txt"
|
|
34:SSH_KEY="$EGRESS_DIR/id_ed25519"
|
|
37:mkdir -p "$EGRESS_DIR/profiles" "$HEALTH_DIR"
|
|
38:chmod 700 "$EGRESS_DIR"
|
|
45: docker network inspect crowdsec_default --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || echo "[IP]"
|
|
48:write_health() {
|
|
52: echo "CHECK=crowdsec-capi"
|
|
55: } > "$HEALTH_FILE"
|
|
62: crowdsec:
|
|
84: docker compose up -d crowdsec
|
|
92: health="$(curl -sk --connect-timeout 3 --max-time 6 -o /tmp/771v_health.html -w '%{http_code}' http://[IP]:8088/health || true)"
|
|
95: fatal="$(docker logs --since 30s crowdsec 2>&1 | grep -Eic 'fatal|unable to run local API|failed to get docker info|lookup socket-proxy|server misbehaving|mapping value is not allowed' || true)"
|
|
96: echo "LAPI_TRY=$n HEALTH=$health LAPI_RC=${rc:-NA} FATAL_COUNT_30S=$fatal"
|
|
98: if test "$health" = "200" && test "${rc:-NA}" = "0" && test "$fatal" = "0"; then
|
|
133:remove("/opt/stacks/crowdsec/config/config.yaml")
|
|
134:remove("/opt/stacks/crowdsec/config/user.yaml")
|
|
141:p = Path("/opt/stacks/crowdsec/config/config.yaml")
|
|
172: " credentials_path: /etc/crowdsec/online_api_credentials.yaml",
|
|
184: crowdsec:
|
|
189: NO_PROXY: "[IP],localhost,[IP],[IPV6],socket-proxy,crowdsec"
|
|
216: ssh-keygen -q -t ed25519 -N "" -C "homelab-crowdsec-capi-netbird-egress-edge" -f "$SSH_KEY"
|
|
220: echo "EDGE_EGRESS_PUBKEY_FINGERPRINT"
|
|
224:install_egress() {
|
|
226: echo "INSTALL_EGRESS target=$TARGET_NB user=$TARGET_USER profile=$PROFILE bridge=$b"
|
|
228: echo "VERIFY_NETBIRD_SSH_TO_TARGET"
|
|
237: "echo SSH_OK; hostname; curl -4 -sk --connect-timeout 8 --max-time 20 -o /tmp/771v_capi_direct.body -w 'DIRECT_CAPI_HTTP=%{http_code}\n' https://api.crowdsec.net/v3/watchers/login || true" >"$out" 2>&1
|
|
245: mkdir -p "$EGRESS_DIR/profiles"
|
|
246: cat >"$EGRESS_DIR/profiles/${PROFILE}.env" <<EOF
|
|
254: cp -a "$EGRESS_DIR/profiles/${PROFILE}.env" "$EGRESS_DIR/current.env"
|
|
256: cat >/etc/systemd/system/homelab-crowdsec-capi-netbird-egress.service <<'EOF'
|
|
DEPENDENCY_FILE|path=/root/771z_after_manual_netbird_egress_capi.sh|mtime=2026-07-02 21:37:47.943243883 +0300|sha256=f198ed621fd726ed6f15c4a0dd49fad307befd01e7a58ebbda1ddc379f5b49ee
|
|
8:PROOF="/root/evidence/771Z_AFTER_MANUAL_NETBIRD_EGRESS_CAPI_${TS}_PROOF.txt"
|
|
14: echo "STEP=771Z_AFTER_MANUAL_NETBIRD_EGRESS_CAPI"
|
|
17: echo "RULE=VERIFY_RELAY_MAIL_EGRESS_AND_REGISTER_CROWDSEC_CAPI"
|
|
18: echo "TARGETS=edge-vm:[IP] relay-moldova:[IP] mail-usa:[IP]"
|
|
25:STACK=/opt/stacks/crowdsec
|
|
27:HEALTH=/var/lib/homelab-health/crowdsec-capi.txt
|
|
28:mkdir -p /var/lib/homelab-health
|
|
34:write_health() {
|
|
38: echo "CHECK=crowdsec-capi"
|
|
41: } > "$HEALTH"
|
|
49: health="$(curl -sk --connect-timeout 3 --max-time 6 -o /tmp/771z_health.html -w '%{http_code}' http://[IP]:8088/health || true)"
|
|
52: echo "LAPI_TRY=$n HEALTH=$health LAPI_RC=${rc:-NA}"
|
|
54: test "$health" = "200" && test "${rc:-NA}" = "0" && return 0
|
|
63: crowdsec:
|
|
84: docker compose up -d crowdsec
|
|
91: crowdsec:
|
|
146:remove("/opt/stacks/crowdsec/config/config.yaml")
|
|
147:remove("/opt/stacks/crowdsec/config/user.yaml")
|
|
154:p = Path("/opt/stacks/crowdsec/config/config.yaml")
|
|
183: " credentials_path: /etc/crowdsec/online_api_credentials.yaml",
|
|
194:echo "NETBIRD_RESTART"
|
|
195:systemctl restart netbird 2>/dev/null || true
|
|
198:echo "NETBIRD_STATUS"
|
|
199:netbird status 2>&1 | redact || true
|
|
201:echo "PEERS_RELAY_MAIL_EDGE"
|
|
202:netbird status --json >/tmp/771z_nb.json 2>/tmp/771z_nb.err || true
|
|
211: ip=peer.get("netbirdIp","")
|
|
212: if ip in {"[IP]","[IP]","[IP]"} or any(x in fqdn for x in ["relay","mail","edge-vm"]):
|
|
216:echo "RELAY_MAIL_CONNECTIVITY"
|
|
224:echo "WG_ALLOWED_IPS_RELAY_MAIL"
|
|
226: wg show wt0 allowed-ips 2>/dev/null | sed -E 's/^[A-Za-z0-9+\/=]{20,}/PEERKEY_REDACTED/' | grep -E '100\.100\.19\.1|100\.100\.147\.204|0\.0\.0\.0/0|100\.100\.0\.0/16' || echo RELAY_MAIL_OR_DEFAULT_NOT_IN_ALLOWED_IPS
|
|
229:echo "CAPI_DIRECT_TEST_AFTER_MANUAL_NETBIRD"
|
|
230:capi_code="$(curl -4 -sk --http1.1 --connect-timeout 12 --max-time 45 -o /tmp/771z_capi.body -w '%{http_code}' https://api.crowdsec.net/v3/watchers/login || true)"
|
|
240: write_health "REVIEW_MANUAL_NETBIRD_EGRESS_NOT_READY" "After manual NetBird setup, edge still cannot reach api.crowdsec.net; CrowdSec remains LAPI-only no-capi"
|
|
241: echo "EDGE_STATUS=REVIEW_MANUAL_NETBIRD_EGRESS_NOT_READY_CAPI_NOT_DONE"
|
|
248:mkdir -p "manual-backups/771z-$TS"
|
|
DEPENDENCY_FILE|path=/srv/homelab-ops/kb/current/03_ACCESS_AND_SECRETS.md|mtime=2026-08-21 00:06:53.672037607 +0300|sha256=e750284217dc41b5809268a0bbc54ed0948bdd14680fe2f282f307640937496c
|
|
DEPENDENCY_FILE|path=/usr/local/sbin/homelab-alerting-health|mtime=2026-07-06 17:21:33.211361096 +0300|sha256=2050bac8c2ca8f1116e6d4fabe476292253bf38c56a49456242606980b4eb797
|
|
4:OUT="/var/lib/homelab-health/alerting.txt"
|
|
5:mkdir -p /var/lib/homelab-health
|
|
20:KUMA_STATE="$(ssh -n -o BatchMode=yes -o ConnectTimeout=8 "debian@$MON_HOST" "sudo docker inspect -f '{{.State.Status}} {{if .State.Health}}{{.State.Health.Status}}{{end}}' uptime-kuma" 2>/dev/null || true)"
|
|
23:GOTIFY_STATE="$(ssh -n -o BatchMode=yes -o ConnectTimeout=8 "debian@$MON_HOST" "sudo docker inspect -f '{{.State.Status}}' gotify" 2>/dev/null || true)"
|
|
24:if echo "$GOTIFY_STATE" | grep -q "running"; then ok gotify_container; else bad gotify_container; fi
|
|
26:MON_ROW="$(ssh -n -o BatchMode=yes -o ConnectTimeout=8 "debian@$MON_HOST" "sudo sqlite3 '$KUMA_DB' \"SELECT m.id || '|' || m.active || '|' || m.type || '|' || m.url || '|' || m.keyword || '|' || COALESCE(n.name,'') || '|' || COALESCE(n.active,'') FROM monitor m LEFT JOIN monitor_notification mn ON mn.monitor_id=m.id LEFT JOIN notification n ON n.id=mn.notification_id WHERE m.name='Homelab Overall Health' LIMIT 1;\"" 2>/dev/null || true)"
|
|
30:if [[ "${NNAME:-}" = "Gotify" && "${NACTIVE:-}" = "1" ]]; then ok gotify_link; else bad gotify_link; fi
|
|
33:echo "STATUS=$STATUS TS=$TS TYPE=alerting BAD=$BAD$DETAILS kuma_state=${KUMA_STATE// /_} gotify_state=${GOTIFY_STATE// /_} monitor=${MON_ROW:-missing}" > "$OUT"
|
|
DEPENDENCY_FILE|path=/usr/local/sbin/homelab-kuma-monitor-policy|mtime=2026-07-06 17:21:33.211264665 +0300|sha256=87e1f14bde3e5eb2d0512c949e1e32d7fe3214f38797559b6e3e1a9d855f059a
|
|
4:OUT="/var/lib/homelab-health/kuma-monitor-policy.txt"
|
|
12:PUBLIC_URL="https://backup.gram1.ru/overall.txt"
|
|
14:mkdir -p /var/lib/homelab-health "$ROOT"
|
|
26:SQL="SELECT id||'|'||name||'|'||type||'|'||url||'|'||COALESCE(keyword,'')||'|'||active FROM monitor WHERE name IN ('Homelab Overall Health','Homelab Overall Public Health','File Browser Backup','File Browser Offhost Backup','File Browser Restore Validation','NPMplus Kuma Config Backup','Paperless Restore') ORDER BY id;"
|
|
30:LINKSQL="SELECT m.name||'|'||COALESCE(n.name,'')||'|'||COALESCE(n.active,'') FROM monitor m LEFT JOIN monitor_notification mn ON mn.monitor_id=m.id LEFT JOIN notification n ON n.id=mn.notification_id WHERE m.name IN ('Homelab Overall Health','Homelab Overall Public Health') ORDER BY m.name,n.name;"
|
|
34:printf "%s\n" "$ROWS" | grep -Fq "Homelab Overall Health|keyword|$PRIVATE_URL|STATUS=OK|1" && ok private_monitor || bad private_monitor
|
|
35:printf "%s\n" "$ROWS" | grep -Fq "Homelab Overall Public Health|keyword|$PUBLIC_URL|STATUS=OK|1" && ok public_monitor || bad public_monitor
|
|
36:printf "%s\n" "$LINKS" | grep -Fxq "Homelab Overall Health|Gotify|1" && ok private_gotify || bad private_gotify
|
|
37:printf "%s\n" "$LINKS" | grep -Fxq "Homelab Overall Public Health|Gotify|1" && ok public_gotify || bad public_gotify
|
|
39:LEGACY_FOUND="$(printf "%s\n" "$ROWS" | awk -F'|' '$2=="File Browser Backup" || $2=="File Browser Offhost Backup" || $2=="File Browser Restore Validation" || $2=="NPMplus Kuma Config Backup" || $2=="Paperless Restore" {c++} END{print c+0}')"
|
|
40:LEGACY_ACTIVE="$(printf "%s\n" "$ROWS" | awk -F'|' '($2=="File Browser Backup" || $2=="File Browser Offhost Backup" || $2=="File Browser Restore Validation" || $2=="NPMplus Kuma Config Backup" || $2=="Paperless Restore") && $6=="1" {c++} END{print c+0}')"
|
|
43:KUMA_STATE="$(ssh -n -o BatchMode=yes -o ConnectTimeout=8 "$KUMA_HOST" "sudo docker inspect -f '{{.State.Status}} {{if .State.Health}}{{.State.Health.Status}}{{end}}' uptime-kuma" 2>/dev/null || true)"
|
|
DEPENDENCY_FILE|path=/usr/local/sbin/homelab-runbook-generate|mtime=2026-07-03 14:21:01.771069001 +0300|sha256=956056878b1636369f39f8d79a1c725ebde17ee319bbbb5d5b09f188d656b23e
|
|
7:health = Path("/var/lib/homelab-health/runbooks.txt")
|
|
8:state = Path("/var/lib/homelab-backup/apps")
|
|
12:health.parent.mkdir(parents=True, exist_ok=True)
|
|
32: f"## Current verified backup state\n"
|
|
39: f"- local_staging_deleted_after_two_cloud_verify: {d.get('local_backup_deleted', 'na')}\n\n"
|
|
43: f"jq . /var/lib/homelab-backup/apps/latest-{app}.json\n"
|
|
44: f"appbackupctl restore-check {app}\n"
|
|
50: f"homelab-backupctl audit\n"
|
|
53: f"homelab-overall-health\n"
|
|
73:index += "homelab-overall-health\n"
|
|
74:index += "homelab-backupctl audit\n"
|
|
85: "backupctl restore-check\n"
|
|
86: "appbackupctl restore-check safety-net-control-plane\n"
|
|
91: "cat /var/lib/homelab-health/overall.txt\n"
|
|
92: "cat /var/lib/homelab-health/alerting.txt\n"
|
|
93: "ssh -n debian@[IP] \"sudo docker ps --format '{{.Names}}|{{.Status}}' | egrep 'uptime-kuma|gotify'\"\n"
|
|
96: "If backup verification, dependency map, or alerting health is not OK, stop automation and escalate manually.\n"
|
|
108:health.write_text(line + "\n")
|
|
DEPENDENCY_FILE|path=/usr/local/sbin/homelab-vps-identity-audit|mtime=2026-06-24 16:00:07.135818676 +0300|sha256=b709691c52ae48432b70e197eb4810b6c374a05911cee3b9fdba4ecc67c76c3a
|
|
5:VPS_ALIAS="${VPS_ALIAS:-netbird.vpn.gram1.ru}"
|
|
6:H="/var/lib/homelab-health/vps-identity-audit.txt"
|
|
9:mkdir -p /var/lib/homelab-health
|
|
23:backup="$(find /mnt/staging/netbird-vps-backups/snapshots -maxdepth 2 -type f -name 'netbird-vps-backup.tgz' 2>/dev/null | sort | tail -n1 || true)"
|
|
24:backup_hostkeys=NO
|
|
25:backup_match=NO
|
|
27:if [ -n "$backup" ]; then
|
|
28: if tar -tzf "$backup" | grep -Eq 'ssh_host_.*_key\.pub$'; then
|
|
29: backup_hostkeys=YES
|
|
31: tar -xOzf "$backup" "$k" >> "$TMP/backup-hostkeys.pub" 2>/dev/null || true
|
|
32: done < <(tar -tzf "$backup" | grep -E 'ssh_host_.*_key\.pub$')
|
|
33: ssh-keygen -lf "$TMP/backup-hostkeys.pub" > "$TMP/backup-fingerprints.txt" 2>/dev/null || true
|
|
34: if grep -Fxf "$TMP/current-fingerprints.txt" "$TMP/backup-fingerprints.txt" >/dev/null 2>&1; then
|
|
35: backup_match=YES
|
|
41:[ "$backup_hostkeys" = "YES" ] && trust="BLOCKED_HOSTKEY_MISMATCH"
|
|
42:[ "$backup_match" = "YES" ] && trust="VERIFIED_BACKUP_MATCH"
|
|
46: "$status" "$TS" "$VPS_IP" "$VPS_ALIAS" "${alias_ip:-NONE}" "$trust" "$backup_hostkeys" > "$H"
|
|
DEPENDENCY_FILE|path=/var/lib/homelab-backup-matrix/compat/netbird_vps_backup--netbird-vps-trust.txt--44dfdc0d5d0a.txt|mtime=2026-07-18 01:52:29.872264457 +0300|sha256=c1f8ec2f8be329eba2bed981a6c281a2b5d932ae36e8440b07895ff7db93084a
|
|
3:TYPE=backup-matrix-generated
|
|
4:JOB_ID=netbird_vps_backup
|
|
5:JOB_NAME=netbird-vps-backup
|
|
7:TIMER=netbird-vps-backup.timer
|
|
8:SERVICE=netbird-vps-backup.service
|
|
11:SOURCE_KIND=health_file
|
|
12:EVIDENCE_LEVEL=artifact_or_health
|
|
15:SOURCE_HEALTH=/var/lib/homelab-backup-matrix/evidence/netbird_vps_backup/0-netbird-vps-trust.txt
|
|
21:LEGACY_SOURCE_PATH=/var/lib/homelab-health/netbird-vps-trust.txt
|
|
22:CANONICAL_JOB_ID=netbird_vps_backup
|
|
23:CANONICAL_STATE=/var/lib/homelab-backup-matrix/state.json
|
|
DEPENDENCY_FILE|path=/var/lib/homelab-backup-matrix/evidence/homelab_verified_backup_health/0-backup-registry-latest.txt|mtime=2026-07-24 06:46:41.644124478 +0300|sha256=606f956d0c95435b4547a71a7ed3c5d8d0461700437815d064e3a7363e19ef21
|
|
22:app=gotify job=homelab-pve01-app-gotify-20260724T014943Z status=success size=64413 deleted=true proxy_hosts=na certs=na
|
|
25:app=healthchecks job=homelab-pve01-app-healthchecks-20260724T025849Z status=success size=686 deleted=true proxy_hosts=na certs=na
|
|
53:Sat 2026-07-25 [IPV6] MSK 20h Fri 2026-07-24 [IPV6] MSK 3h 33min ago homelab-emergency-backup.timer homelab-emergency-backup.service
|
|
54:Sat 2026-07-25 [IPV6] MSK 21h Fri 2026-07-24 [IPV6] MSK 2h 58min ago homelab-appbackup-dockge-stacks.timer homelab-appbackup-dockge-stacks.service
|
|
55:Sat 2026-07-25 [IPV6] MSK 21h Fri 2026-07-24 [IPV6] MSK 2h 29min ago homelab-appbackup-npmplus-edge.timer homelab-appbackup-npmplus-edge.service
|
|
56:Sat 2026-07-25 [IPV6] MSK 21h Fri 2026-07-24 [IPV6] MSK 2h 0min ago homelab-appbackup-sqlite-batch.timer homelab-appbackup-sqlite-batch.service
|
|
57:Sat 2026-07-25 [IPV6] MSK 22h Fri 2026-07-24 [IPV6] MSK 1h 28min ago homelab-appbackup-postgres-batch.timer homelab-appbackup-postgres-batch.service
|
|
58:Sat 2026-07-25 [IPV6] MSK 22h Fri 2026-07-24 [IPV6] MSK 52min ago homelab-appbackup-mariadb-batch.timer homelab-appbackup-mariadb-batch.service
|
|
63:/var/lib/homelab-backup/quarantine/20260703T093243Z
|
|
DEPENDENCY_FILE|path=/var/lib/homelab-backup-matrix/evidence-map.json|mtime=2026-07-10 12:47:24.326276710 +0300|sha256=0735c335850b22ee4947e0940c6cfd1cc1525f340f102b7f5bcfef5069f165c4
|
|
6: "job": "filebrowser-backup",
|
|
7: "source_path": "/var/lib/homelab-health/filebrowser-backup.txt",
|
|
8: "evidence_path": "/var/lib/homelab-backup-matrix/evidence/filebrowser_backup/0-filebrowser-backup.txt"
|
|
12: "source_path": "/var/lib/homelab-health/filebrowser-restore.txt",
|
|
13: "evidence_path": "/var/lib/homelab-backup-matrix/evidence/filebrowser_restore_validate/0-filebrowser-restore.txt"
|
|
16: "job": "homelab-appbackup-dockge-stacks",
|
|
17: "source_path": "/var/lib/homelab-backup/apps/latest-dockge-stacks.json",
|
|
18: "evidence_path": "/var/lib/homelab-backup-matrix/evidence/homelab_appbackup_dockge_stacks/0-latest-dockge-stacks.json"
|
|
21: "job": "homelab-appbackup-npmplus-edge",
|
|
22: "source_path": "/var/lib/homelab-backup/apps/latest-npmplus-edge.json",
|
|
23: "evidence_path": "/var/lib/homelab-backup-matrix/evidence/homelab_appbackup_npmplus_edge/0-latest-npmplus-edge.json"
|
|
26: "job": "homelab-authentik-backup",
|
|
27: "source_path": "/var/lib/homelab-health/authentik-backup.txt",
|
|
28: "evidence_path": "/var/lib/homelab-backup-matrix/evidence/homelab_authentik_backup/0-authentik-backup.txt"
|
|
31: "job": "homelab-authentik-backup",
|
|
32: "source_path": "/var/lib/homelab-health/authentik-offhost.txt",
|
|
33: "evidence_path": "/var/lib/homelab-backup-matrix/evidence/homelab_authentik_backup/1-authentik-offhost.txt"
|
|
36: "job": "homelab-authentik-backup",
|
|
37: "source_path": "/var/lib/homelab-health/authentik-restore.txt",
|
|
38: "evidence_path": "/var/lib/homelab-backup-matrix/evidence/homelab_authentik_backup/2-authentik-restore.txt"
|
|
41: "job": "homelab-backup-coverage-matrix",
|
|
42: "source_path": "/var/lib/homelab-health/backup-coverage-matrix.txt",
|
|
43: "evidence_path": "/var/lib/homelab-backup-matrix/evidence/homelab_backup_coverage_matrix/0-backup-coverage-matrix.txt"
|
|
46: "job": "homelab-backup-sla-health",
|
|
47: "source_path": "/var/lib/homelab-health/backup-sla.txt",
|
|
48: "evidence_path": "/var/lib/homelab-backup-matrix/evidence/homelab_backup_sla_health/0-backup-sla.txt"
|
|
51: "job": "homelab-edge-vm-vzdump-backup",
|
|
52: "source_path": "/var/lib/homelab-health/edge-vm-vzdump-backup.txt",
|
|
53: "evidence_path": "/var/lib/homelab-backup-matrix/evidence/homelab_edge_vm_vzdump_backup/0-edge-vm-vzdump-backup.txt"
|
|
56: "job": "homelab-emergency-backup",
|
|
57: "source_path": "/var/lib/homelab-backup/latest-emergency-pack.json",
|
|
58: "evidence_path": "/var/lib/homelab-backup-matrix/evidence/homelab_emergency_backup/0-latest-emergency-pack.json"
|
|
61: "job": "homelab-extended-appbackup",
|
|
62: "source_path": "/var/lib/homelab-health/extended-appbackup.txt",
|
|
63: "evidence_path": "/var/lib/homelab-backup-matrix/evidence/homelab_extended_appbackup/0-extended-appbackup.txt"
|
|
66: "job": "homelab-gitea-backup",
|
|
DEPENDENCY_FILE|path=/var/lib/homelab-backup-matrix/evidence/netbird_vps_backup/0-netbird-vps-backup.txt|mtime=2026-07-01 04:31:05.433646905 +0300|sha256=372804695d6dba94e29e254f2175701e976692e7b15ee83fdcb6f10e05ca624e
|
|
2:SERVICE=netbird-vps-backup
|
|
5:SNAPSHOT=/mnt/staging/netbird-vps-backups/snapshots/20260701T013054Z
|
|
6:LATEST_SYMLINK=/mnt/staging/netbird-vps-backups/snapshots/latest
|
|
DEPENDENCY_FILE|path=/var/lib/homelab-backup-matrix/migration-plan.json|mtime=2026-07-10 13:10:05.080842534 +0300|sha256=260b6ef9d8c3370b6b429694ff642319ece1592f9e7c261e37b9fc3de0d33581
|
|
3: "dpkg-db-backup",
|
|
4: "filebrowser-backup",
|
|
6: "homelab-appbackup-dockge-stacks",
|
|
7: "homelab-appbackup-mariadb-batch",
|
|
8: "homelab-appbackup-npmplus-edge",
|
|
9: "homelab-appbackup-postgres-batch",
|
|
10: "homelab-appbackup-sqlite-batch",
|
|
11: "homelab-auto-backup",
|
|
12: "homelab-backup-coverage-matrix",
|
|
13: "homelab-backup-freshness",
|
|
14: "homelab-backup-healthcheck",
|
|
15: "homelab-backup-sla-health",
|
|
16: "homelab-edge-vm-vzdump-backup",
|
|
17: "homelab-emergency-backup",
|
|
18: "homelab-extended-appbackup",
|
|
19: "homelab-mail-cloud-restore-drill",
|
|
20: "homelab-verified-backup-health",
|
|
21: "homelab-vm-backup-health",
|
|
22: "homelab-vm-backup-policy",
|
|
23: "homelab-vm-full-backup",
|
|
27: "immich-media-backup",
|
|
28: "memos-backup",
|
|
29: "netbird-vps-backup",
|
|
30: "paperless-backup",
|
|
32: "skladchik-reports-monitor-backup-restore-check",
|
|
33: "skladchik-reports-monitor-backup"
|
|
38: "homelab-appbackup-postgres-batch"
|
|
40: "owner_job": "homelab-appbackup-postgres-batch",
|
|
41: "path": "/var/lib/homelab-health/authentik-backup.txt"
|
|
45: "homelab-appbackup-postgres-batch"
|
|
47: "owner_job": "homelab-appbackup-postgres-batch",
|
|
48: "path": "/var/lib/homelab-health/authentik-offhost.txt"
|
|
52: "homelab-appbackup-postgres-batch"
|
|
54: "owner_job": "homelab-appbackup-postgres-batch",
|
|
55: "path": "/var/lib/homelab-health/authentik-restore.txt"
|
|
59: "homelab-backup-coverage-matrix"
|
|
DEPENDENCY_FILE|path=/var/lib/homelab-backup-matrix/rendered/netbird-vps-backup.txt|mtime=2026-08-30 21:08:09.037130131 +0300|sha256=d2d09878e7ccd4159c2c66225fea6bbcf30d7ba9a7e70ab30f5df4fae631620c
|
|
3:TYPE=backup-matrix-generated
|
|
4:JOB_ID=netbird_vps_backup
|
|
5:JOB_NAME=netbird-vps-backup
|
|
7:TIMER=netbird-vps-backup.timer
|
|
8:SERVICE=netbird-vps-backup.service
|
|
11:SOURCE_KIND=health_file
|
|
12:EVIDENCE_LEVEL=artifact_or_health
|
|
15:SOURCE_HEALTH=/var/lib/homelab-backup-matrix/evidence/netbird_vps_backup/0-netbird-vps-backup.txt
|
|
DEPENDENCY_FILE|path=/var/lib/homelab-backup-matrix/state.json|mtime=2026-08-30 21:08:09.112843466 +0300|sha256=bba7caf3207a046105369da4d140f3342dec2e0897d91d5b4e2e099f5aab6b90
|
|
3: "compatibility_map": "/var/lib/homelab-backup-matrix/compat-map.json",
|
|
12: "generated_health_output": "/var/lib/homelab-backup-matrix/rendered/dpkg-db-backup.txt",
|
|
13: "id": "dpkg_db_backup",
|
|
15: "name": "dpkg-db-backup",
|
|
16: "service": "dpkg-db-backup.service",
|
|
19: "source_health": "systemd:dpkg-db-backup.service",
|
|
24: "timer": "dpkg-db-backup.timer",
|
|
32: "evidence_level": "artifact_or_health",
|
|
34: "generated_health_output": "/var/lib/homelab-backup-matrix/rendered/filebrowser-backup.txt",
|
|
35: "id": "filebrowser_backup",
|
|
37: "name": "filebrowser-backup",
|
|
38: "service": "filebrowser-backup.service",
|
|
41: "source_health": "/var/lib/homelab-backup/apps/latest-filebrowser.json",
|
|
42: "source_kind": "health_file",
|
|
46: "timer": "filebrowser-backup.timer",
|
|
54: "evidence_level": "artifact_or_health",
|
|
56: "generated_health_output": "/var/lib/homelab-backup-matrix/rendered/filebrowser-restore-validate.txt",
|
|
63: "source_health": "/var/lib/homelab-backup-matrix/evidence/filebrowser_restore_validate/0-filebrowser-restore.txt",
|
|
64: "source_kind": "health_file",
|
|
76: "evidence_level": "artifact_or_health",
|
|
78: "generated_health_output": "/var/lib/homelab-backup-matrix/rendered/homelab-appbackup-dockge-stacks.txt",
|
|
79: "id": "homelab_appbackup_dockge_stacks",
|
|
81: "name": "homelab-appbackup-dockge-stacks",
|
|
82: "service": "homelab-appbackup-dockge-stacks.service",
|
|
85: "source_health": "/var/lib/homelab-backup-matrix/evidence/homelab_appbackup_dockge_stacks/0-latest-dockge-stacks.json",
|
|
86: "source_kind": "health_file",
|
|
90: "timer": "homelab-appbackup-dockge-stacks.timer",
|
|
100: "generated_health_output": "/var/lib/homelab-backup-matrix/rendered/homelab-appbackup-mariadb-batch.txt",
|
|
101: "id": "homelab_appbackup_mariadb_batch",
|
|
103: "name": "homelab-appbackup-mariadb-batch",
|
|
104: "service": "homelab-appbackup-mariadb-batch.service",
|
|
107: "source_health": "systemd:homelab-appbackup-mariadb-batch.service",
|
|
112: "timer": "homelab-appbackup-mariadb-batch.timer",
|
|
120: "evidence_level": "artifact_or_health",
|
|
122: "generated_health_output": "/var/lib/homelab-backup-matrix/rendered/homelab-appbackup-npmplus-edge.txt",
|
|
123: "id": "homelab_appbackup_npmplus_edge",
|
|
DEPENDENCY_FILE_INDEX_END=1
|
|
RELAY_HEALTHCHECK_ARTIFACT_BEGIN=1
|
|
ARTIFACT_MISSING=/usr/local/sbin/pvepro-relay-healthcheck
|
|
ARTIFACT_MISSING=/etc/systemd/system/pvepro-relay-healthcheck.service
|
|
ARTIFACT_MISSING=/etc/systemd/system/pvepro-relay-healthcheck.timer
|
|
ARTIFACT_MISSING=/etc/systemd/system/pvepro-relay-healthcheck.service.d/20-gotify-notifier.conf
|
|
RELAY_HEALTHCHECK_ARTIFACT_END=1
|
|
NETBIRD_STATE_BEGIN=1
|
|
NETBIRD_STATUS_JSON_RC=0
|
|
NETBIRD_JSON_PARSE=true
|
|
NETBIRD_DAEMON_STATUS=Connected
|
|
NETBIRD_MANAGEMENT_CONNECTED=false
|
|
NETBIRD_SIGNAL_CONNECTED=false
|
|
NETBIRD_RELAYS_TOTAL=2
|
|
NETBIRD_RELAYS_AVAILABLE=0
|
|
NETBIRD_PEER|fqdn=pve02.netbird.selfhosted|status=Connected|connection=P2P
|
|
NETBIRD_PEER|fqdn=home-pc.netbird.selfhosted|status=Connecting|connection=-
|
|
NETBIRD_PEER|fqdn=relay.netbird.selfhosted|status=Connecting|connection=-
|
|
NETBIRD_PEER|fqdn=pve03.netbird.selfhosted|status=Connected|connection=P2P
|
|
NETBIRD_PEER|fqdn=edge-vm.netbird.selfhosted|status=Connecting|connection=-
|
|
NETBIRD_PEER|fqdn=desktop-moy.netbird.selfhosted|status=Connecting|connection=-
|
|
NETBIRD_PEER|fqdn=comp01.netbird.selfhosted|status=Connecting|connection=-
|
|
NETBIRD_PEER|fqdn=e3qxxx.netbird.selfhosted|status=Connecting|connection=-
|
|
NETBIRD_PEER|fqdn=mail.netbird.selfhosted|status=Connecting|connection=-
|
|
NETBIRD_PEER|fqdn=desktop-server.netbird.selfhosted|status=Connecting|connection=-
|
|
NETBIRD_PEER|fqdn=e3qxxx-183-106.netbird.selfhosted|status=Connecting|connection=-
|
|
NETBIRD_NETWORKS_LIST_RC=0
|
|
No networks available.
|
|
NETBIRD_ROUTES_LIST_RC=0
|
|
No networks available.
|
|
NETBIRD_STATE_END=1
|
|
PROCESS_AND_SOCKET_REFERENCES_BEGIN=1
|
|
1220 netbird /usr/bin/netbird service run --log-level info --daemon-addr unix:///var/run/netbird.sock --log-file /var/log/netbird/client.log
|
|
ESTAB 0 1500 [IP]:33490 [IP]:443 users:(("netbird",pid=1220,fd=35))
|
|
ESTAB 0 1500 [IP]:33632 [IP]:443 users:(("netbird",pid=1220,fd=18))
|
|
ESTAB 0 1500 [IP]:34548 [IP]:443 users:(("netbird",pid=1220,fd=43))
|
|
ESTAB 0 1500 [IP]:37588 [IP]:443 users:(("netbird",pid=1220,fd=19))
|
|
ESTAB 0 1500 [IP]:39034 [IP]:443 users:(("netbird",pid=1220,fd=20))
|
|
ESTAB 0 1500 [IP]:39134 [IP]:443 users:(("netbird",pid=1220,fd=40))
|
|
ESTAB 0 1500 [IP]:40402 [IP]:443 users:(("netbird",pid=1220,fd=11))
|
|
ESTAB 0 1500 [IP]:41518 [IP]:443 users:(("netbird",pid=1220,fd=33))
|
|
ESTAB 0 1500 [IP]:43330 [IP]:443 users:(("netbird",pid=1220,fd=17))
|
|
ESTAB 0 1500 [IP]:43952 [IP]:443 users:(("netbird",pid=1220,fd=31))
|
|
ESTAB 0 1500 [IP]:44564 [IP]:443 users:(("netbird",pid=1220,fd=41))
|
|
ESTAB 0 1500 [IP]:47572 [IP]:443 users:(("netbird",pid=1220,fd=37))
|
|
ESTAB 0 1500 [IP]:48242 [IP]:443 users:(("netbird",pid=1220,fd=30))
|
|
ESTAB 0 0 [IP]:22 [IP]:61241 users:(("sshd-session",pid=2731736,fd=7),("sshd-session",pid=2731520,fd=7))
|
|
ESTAB 0 1500 [IP]:50512 [IP]:443 users:(("netbird",pid=1220,fd=21))
|
|
ESTAB 0 1500 [IP]:52460 [IP]:443 users:(("netbird",pid=1220,fd=16))
|
|
ESTAB 0 1500 [IP]:53972 [IP]:443 users:(("netbird",pid=1220,fd=38))
|
|
ESTAB 0 1500 [IP]:59556 [IP]:443 users:(("netbird",pid=1220,fd=39))
|
|
PROCESS_AND_SOCKET_REFERENCES_END=1
|
|
DNS_AND_HOST_REFERENCES_BEGIN=1
|
|
DNS_FILE=/etc/hosts|sha256=c3b9101ad96911d55328b70e12e87f9b17e4ef89fce47dc619478e113c4855ec
|
|
11:[IP] pve01.gram1.ru pve01
|
|
12:[IP] pve02.gram1.ru pve02
|
|
13:[IP] pve03.gram1.ru pve03
|
|
DNS_FILE=/etc/resolv.conf|sha256=be701c9795e17f831d600a2ad82e50a15785fb48a21d105d6413bb5b98a79fef
|
|
1:# Generated by NetBird
|
|
2:# The original file can be restored from /etc/resolv.conf.original.netbird
|
|
4:search netbird.selfhosted gram1.ru
|
|
DNS_AND_HOST_REFERENCES_END=1
|
|
INTERPRETATION_RULES_BEGIN=1
|
|
RULE_1=DO_NOT_DELETE_PROVIDER_VPS_WHILE_MD_RELAY_BACKUP_OR_MONITORING_REFERENCE_IS_ACTIVE_OR_UNRECONCILED
|
|
RULE_2=DO_NOT_DELETE_WHILE_ANY_NETBIRD_ROUTE_OR_EXIT_NETWORK_STILL_SELECTS_MOLDOVA_FOR_AN_ACTIVE_PEER
|
|
RULE_3=DO_NOT_DELETE_WHILE_PVEPRO_RELAY_HEALTHCHECK_OR_ALERTING_EXPECTS_THIS_NODE_UNLESS_REPLACED_OR_RETIRED
|
|
RULE_4=DO_NOT_DELETE_WHILE_BACKUP_AUDIT_IS_FAILED_UNLESS_FAILURE_IS_PROVEN_UNRELATED_AND_BASELINE_IS_RESTORED
|
|
RULE_5=AFTER_DETACH_USE_A_REVERSIBLE_QUARANTINE_WINDOW_BEFORE_PROVIDER_DELETION
|
|
INTERPRETATION_RULES_END=1
|
|
DECISION=HOLD_DELETE_PENDING_EXACT_PREFLIGHT_REVIEW
|
|
NEXT_GATE=READ_EXACT_1130R1_AND_BUILD_NARROW_DETACH_OR_QUARANTINE_PLAN
|
|
TASK_RESULT=PASS_MOLDOVA_RETIRE_PREFLIGHT_EVIDENCE_COLLECTED
|
|
WORKERS2_MOLDOVA_RETIRE_PREFLIGHT_END=1
|
|
|
|
OUTPUT_END
|
|
CHAT_OUTPUT_END
|