docs/runtime-matrix.json
Rama main · réplica de lectura del repositorio original.
{
"generated_at": "2026-10-07T17:29:44.652650+00:00",
"heads": [
"11dbc7e55914c8898353afe51776501a8fb5c579",
"2d961a5763b551c2af6c28c64aa8e271573e4be2",
"72898709c83ad1ca243e7f3ceb7f0d086b61ef6f",
"b17d9de4a75ab6bb895725d5be35898adbf2d5eb",
"b54733427f9c9ed44628073356a957a43bc4e8bb",
"d175e030a47f6caa0d454bc88ff14f8dc7cc7fab",
"d4d352189363d3958231fc5225bb0e869334971b",
"d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"e4297c75564bc2e27d40e152ec10280593eaf931",
"ee7975a8d0946f33f3677119ae657dc89962babe",
"f06f1b262c4deaca1a2d538e86bd9843ed434f2f"
],
"inventory_counts": {
"app": 93,
"recipe": 20
},
"inventory_sha256": "63b5ca53885b401a22ee4e5b3d1b6548376f64813723506860bab4aaf3402f22",
"limits": [
"Final snapshot as requested; each target retains its own evidence identity.",
"Read only ordinary exact app-<id>.json and recipe-<id>.json files; no private diagnostics, credentials or browser state.",
"Each pass applies only to its recorded head, binary SHA256, image identities, host and probes. Later source fixes are not live passes.",
"Missing or unrecorded stages are not-run. Historical source heads are retained even for untouched not-run records.",
"Generic Setup/Check and archive sentinels do not prove browser acceptance, application workload, database-content recovery, migration, VPN fail-closed or external provider enrollment.",
"Payload seed/restored stages provide only the App-specific probe named in the evidence. Absent payload stages are not-run, never inferred.",
"Image IDs and cleanup are reproduced as recorded; this generator does not inspect Docker or independently establish expected service completeness.",
"The matrix uses latest per-target records. Immutable archives preserve earlier iterations where available; two d175 failure records survive only in the redacted run log after they were overwritten before archival."
],
"outcome_counts": {
"awaiting-external-credentials": 8,
"failed": 3,
"manual": 5,
"pass": 97
},
"schema_version": 1,
"snapshot_read_errors": [],
"status": "final",
"targets": [
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-17b23555",
"finished": "2026-10-07T08:34:02.703512394Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:cfacf9b19b21268807a6e6c6289f7a27dfc5adfc2539aa35a15ed38cfba236ab",
"platform": "linux/amd64",
"service": "actual-budget"
}
],
"name": "app-actual-budget",
"observed_target_apps": [
"actual-budget"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-actual-budget.json",
"source_sha256": "9fa85f5db1f8e03cac53e3caf6745d042f3b04d459d2c7edf7df1ba73e7f12df",
"stages": [
{
"apps": {
"actual-budget": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"actual-budget": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"actual-budget": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"actual-budget": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"actual-budget": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"actual-budget": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"actual-budget": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"actual-budget": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"actual-budget": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"actual-budget": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"actual-budget": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"actual-budget": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:30:37.867795141Z",
"target": {
"apps": [
"actual-budget"
],
"id": "actual-budget",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-01e6d4b2",
"finished": "2026-10-07T09:49:47.53138197Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:a3d077a550b96aea74f4c66577d154a0b9ee1622b9ecd5c536195da54c0eadc4",
"platform": "linux/amd64",
"service": "adguard-home"
}
],
"name": "app-adguard-home",
"observed_target_apps": [
"adguard-home"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-adguard-home.json",
"source_sha256": "6f48f1caba3c2558a236f1456afb3c046139c883caed0109ce05d82b1ac4f29d",
"stages": [
{
"apps": {
"adguard-home": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"adguard-home": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"adguard-home": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"adguard-home": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"adguard-home": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"adguard-home": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"adguard-home": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"adguard-home": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"adguard-home": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"adguard-home": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"adguard-home": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"adguard-home": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:49:31.7697974Z",
"target": {
"apps": [
"adguard-home"
],
"id": "adguard-home",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-223088d8",
"finished": "2026-10-07T12:52:57.202601322Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 2
},
"images": [
{
"id": "sha256:257eecbae05ceedd514feb0a71ffc29681f451f618595db11428361e5fb20d96",
"platform": "linux/amd64",
"service": "archive-team-warrior-init"
},
{
"id": "sha256:257eecbae05ceedd514feb0a71ffc29681f451f618595db11428361e5fb20d96",
"platform": "linux/amd64",
"service": "archive-team-warrior"
}
],
"name": "app-archive-team-warrior",
"observed_target_apps": [
"archive-team-warrior"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-archive-team-warrior.json",
"source_sha256": "bab3e9e0fb218db584658e747c805ab3133b4d78de9979041f1da978d095767f",
"stages": [
{
"apps": {
"archive-team-warrior": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"archive-team-warrior": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"archive-team-warrior": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"archive-team-warrior": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"archive-team-warrior": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"archive-team-warrior": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"archive-team-warrior": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"archive-team-warrior": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"archive-team-warrior": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"archive-team-warrior": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"archive-team-warrior": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"archive-team-warrior": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T12:44:15.337533275Z",
"target": {
"apps": [
"archive-team-warrior"
],
"id": "archive-team-warrior",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-ba886ab7",
"finished": "2026-10-07T09:49:27.404457151Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:4e6669ce208ad72e6f02089dbb2069bee43884f1399f153d46f8583ebf5ea05e",
"platform": "linux/amd64",
"service": "aria2"
}
],
"name": "app-aria2",
"observed_target_apps": [
"aria2"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-aria2.json",
"source_sha256": "b8c68196116d4f9ac98b7eb39e02e0eb18cbca65d3495f5a7f9c3f0b07b156c0",
"stages": [
{
"apps": {
"aria2": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"aria2": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"aria2": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"aria2": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"aria2": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"aria2": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"aria2": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"aria2": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"aria2": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"aria2": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"aria2": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"aria2": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:48:35.636392144Z",
"target": {
"apps": [
"aria2"
],
"id": "aria2",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-2e37589f",
"finished": "2026-10-07T09:49:31.769606277Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:69688a328f8fafafdce9a23915c19c84bc75a7d883b5dd182b3a6d3d4c11701d",
"platform": "linux/amd64",
"service": "audiobookshelf"
}
],
"name": "app-audiobookshelf",
"observed_target_apps": [
"audiobookshelf"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-audiobookshelf.json",
"source_sha256": "7dbd8fd288053c25fa693003df0edc0549f83001d4ac332a5aaa178eca3a7524",
"stages": [
{
"apps": {
"audiobookshelf": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"audiobookshelf": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"audiobookshelf": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"audiobookshelf": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"audiobookshelf": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"audiobookshelf": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"audiobookshelf": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"audiobookshelf": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"audiobookshelf": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"audiobookshelf": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"audiobookshelf": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"audiobookshelf": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:49:08.645376085Z",
"target": {
"apps": [
"audiobookshelf"
],
"id": "audiobookshelf",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-a6cc3a59",
"finished": "2026-10-07T12:32:55.668534183Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:07511d91138c91c47b3873abe850d932d32958fb79b6f6a4c5b15b36ca37545f",
"platform": "linux/amd64",
"service": "authelia"
}
],
"name": "app-authelia",
"observed_target_apps": [
"authelia"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion; Authelia canonical-origin administrator login and session identity through owned verified TLS during source and restored Setup/Check; no MFA/browser claim",
"source_file": "app-authelia.json",
"source_sha256": "b0f7a9e689a0ffd6722319cb3451c8e93c1baeee3f89bf3bb3d023143a90cbf3",
"stages": [
{
"apps": {
"authelia": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"authelia": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"authelia": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"authelia": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"authelia": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"authelia": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"authelia": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"authelia": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"authelia": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"authelia": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"authelia": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"authelia": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T12:30:08.143854137Z",
"target": {
"apps": [
"authelia"
],
"id": "authelia",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-6c55f706",
"finished": "2026-10-07T10:15:16.663936548Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 3
},
"images": [
{
"id": "sha256:d4d6843a3c120bb1b809048ce8429e0e617f68a3991aaa0779d6f5bd802b34d9",
"platform": "linux/amd64",
"service": "authentik"
},
{
"id": "sha256:d4d6843a3c120bb1b809048ce8429e0e617f68a3991aaa0779d6f5bd802b34d9",
"platform": "linux/amd64",
"service": "worker"
},
{
"id": "sha256:81bd698b4594e751a3269e4dcd3e03a4a0ec0daf7b72e7aa1abd43cce9887542",
"platform": "linux/amd64",
"service": "postgresql"
}
],
"name": "app-authentik",
"observed_target_apps": [
"authentik"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-authentik.json",
"source_sha256": "645864c57cdc029c235c544976821bf9445668ff64ce035a0c7fb4ab66a23eb6",
"stages": [
{
"apps": {
"authentik": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"authentik": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"authentik": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"authentik": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"authentik": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"authentik": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"authentik": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"authentik": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"authentik": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"authentik": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"authentik": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"authentik": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:44:05.16172027Z",
"target": {
"apps": [
"authentik"
],
"id": "authentik",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-f86b87ca",
"finished": "2026-10-07T09:50:06.559030305Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:b2c739fed2a223406d66ca04255a7748384e68163dbcca4b86b882cee04612a1",
"platform": "linux/amd64",
"service": "bazarr"
}
],
"name": "app-bazarr",
"observed_target_apps": [
"bazarr"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-bazarr.json",
"source_sha256": "18ec0bcd62aad6f2b2b3550bd8775e0f5dc12b3c58b88c7ee1ae317cf5ccde70",
"stages": [
{
"apps": {
"bazarr": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"bazarr": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"bazarr": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"bazarr": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"bazarr": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"bazarr": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"bazarr": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"bazarr": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"bazarr": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"bazarr": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"bazarr": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"bazarr": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:48:10.616350165Z",
"target": {
"apps": [
"bazarr"
],
"id": "bazarr",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-760fefc5",
"finished": "2026-10-07T09:48:24.608487913Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:f14c004ff4a414ba156427046926e5e2db1d1bd769b069509c2bcd3e5bee4f7a",
"platform": "linux/amd64",
"service": "beszel"
}
],
"name": "app-beszel",
"observed_target_apps": [
"beszel"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-beszel.json",
"source_sha256": "fe059059d6feed889a333f7eedd568636988e2bbc984fa31363c1b4637ae65b2",
"stages": [
{
"apps": {
"beszel": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"beszel": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"beszel": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"beszel": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"beszel": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"beszel": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"beszel": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"beszel": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"beszel": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"beszel": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"beszel": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"beszel": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:47:46.096683506Z",
"target": {
"apps": [
"beszel"
],
"id": "beszel",
"kind": "app"
}
},
{
"binary_sha256": "9c52cfe6dad38f9832a3613ff911f33f505cc0367afb539dbabf3d8498203012",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-4292c8e7",
"finished": "2026-10-07T17:18:27.574690637Z",
"head": "72898709c83ad1ca243e7f3ceb7f0d086b61ef6f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 2
},
"images": [
{
"id": "sha256:675c1edfab2ab727303aa5014df941f710ee858b472500d75faeb1a775bde4a4",
"platform": "linux/amd64",
"service": "bookstack"
},
{
"id": "sha256:deb9a3a5e1952c4bddf4b1afe48fd6040295a6d7c41379ce68c0d067512ca912",
"platform": "linux/amd64",
"service": "db"
}
],
"name": "app-bookstack",
"observed_target_apps": [
"bookstack"
],
"outcome": "failed",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-bookstack.json",
"source_sha256": "3297ffc53c4a631786c8b89a824724807031a5f3014a92e6409b041b7dfc3185",
"stages": [
{
"apps": {
"bookstack": "fail"
},
"failures": [
{
"app": "bookstack",
"error": "timed out after 3m0s: HTTP 502",
"hint": "bookstack did not answer on /login; read its logs with: self-host logs bookstack",
"kind": "step.fail",
"step": "ready"
},
{
"app": "bookstack",
"error": "BookStack startup status: app_key_present=true pool_identity_includes_root=true launcher_root_mode=true php_process_present=false php_upstream_listening=false database_tcp_listening=true database_authenticated=true launcher_source_matches=true launcher_source_executable=true launcher_compiled_matches=true launcher_compiled_executable=true php_service_wanted=true php_service_up=false php_config_valid=false php_config_error=config_open php_failure_path=main_config process_uid_zero=true failure_path_readable=true failure_path_writable=true failure_path_owner_current=true",
"hint": "Check owned image initialization, PHP-FPM readiness and database health before retrying; a database TCP listener does not prove authenticated database access. Ask the host administrator to review PHP-FPM confinement compatibility: its configuration appears readable but PHP-FPM cannot open it.",
"kind": "step.fail",
"step": "startup-status"
}
],
"name": "install",
"outcome": "fail",
"reason": "redacted CLI failure details retained"
},
{
"apps": {
"bookstack": "not-run"
},
"name": "setup-check",
"outcome": "not-run"
},
{
"apps": {
"bookstack": "not-run"
},
"name": "idempotency",
"outcome": "not-run"
},
{
"apps": {
"bookstack": "not-run"
},
"name": "restart",
"outcome": "not-run"
},
{
"apps": {
"bookstack": "not-run"
},
"name": "recovery",
"outcome": "not-run"
},
{
"apps": {
"bookstack": "not-run"
},
"name": "update",
"outcome": "not-run"
},
{
"apps": {
"bookstack": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"bookstack": "not-run"
},
"name": "backup",
"outcome": "not-run"
},
{
"apps": {
"bookstack": "not-run"
},
"name": "isolated-restore",
"outcome": "not-run"
},
{
"apps": {
"bookstack": "not-run"
},
"name": "restored-check",
"outcome": "not-run"
},
{
"apps": {
"bookstack": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"bookstack": "not-run"
},
"name": "sentinel",
"outcome": "not-run"
}
],
"started": "2026-10-07T17:15:19.147296517Z",
"target": {
"apps": [
"bookstack"
],
"id": "bookstack",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-a844f622",
"finished": "2026-10-07T09:48:24.752472473Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:99459932e068b41700c6218fcc3925ac201f4779bc626631918800a3089d1080",
"platform": "linux/amd64",
"service": "borgmatic"
}
],
"name": "app-borgmatic",
"observed_target_apps": [
"borgmatic"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-borgmatic.json",
"source_sha256": "a9d2ce57977629ebd44462e6daeaa311599b8aea824e6420de73580655fb3081",
"stages": [
{
"apps": {
"borgmatic": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"borgmatic": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"borgmatic": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"borgmatic": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"borgmatic": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"borgmatic": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"borgmatic": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"borgmatic": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"borgmatic": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"borgmatic": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"borgmatic": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"borgmatic": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:44:22.941676712Z",
"target": {
"apps": [
"borgmatic"
],
"id": "borgmatic",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-49e5fcee",
"finished": "2026-10-07T09:15:02.190042857Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:2d8b1708bf8008935c0e2a9b6564f7f080cf9a73af3b27718f286230449b7101",
"platform": "linux/amd64",
"service": "caddy"
}
],
"name": "app-caddy",
"observed_target_apps": [
"caddy"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-caddy.json",
"source_sha256": "085b2d014003b81e2d45fee0e5769379bebe001dc56cdda887d5c6f58c6dae41",
"stages": [
{
"apps": {
"caddy": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"caddy": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"caddy": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"caddy": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"caddy": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"caddy": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"caddy": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"caddy": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"caddy": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"caddy": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"caddy": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"caddy": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:14:52.500550378Z",
"target": {
"apps": [
"caddy"
],
"id": "caddy",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "awaiting-external-credentials",
"cleanup": "not-run",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": false,
"platforms": [],
"service_count": 0
},
"images": [],
"name": "app-cloudflare-tunnel",
"observed_target_apps": [
"cloudflare-tunnel"
],
"outcome": "awaiting-external-credentials",
"platform": "",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-cloudflare-tunnel.json",
"source_sha256": "f7057ab8ad78dd5c3d5d703760476e5b18a05d26c117e6f454a7df22d726365c",
"stages": [
{
"apps": {
"cloudflare-tunnel": "not-run"
},
"name": "install",
"outcome": "not-run"
},
{
"apps": {
"cloudflare-tunnel": "not-run"
},
"name": "setup-check",
"outcome": "not-run"
},
{
"apps": {
"cloudflare-tunnel": "not-run"
},
"name": "idempotency",
"outcome": "not-run"
},
{
"apps": {
"cloudflare-tunnel": "not-run"
},
"name": "restart",
"outcome": "not-run"
},
{
"apps": {
"cloudflare-tunnel": "not-run"
},
"name": "recovery",
"outcome": "not-run"
},
{
"apps": {
"cloudflare-tunnel": "not-run"
},
"name": "update",
"outcome": "not-run"
},
{
"apps": {
"cloudflare-tunnel": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"cloudflare-tunnel": "not-run"
},
"name": "backup",
"outcome": "not-run"
},
{
"apps": {
"cloudflare-tunnel": "not-run"
},
"name": "isolated-restore",
"outcome": "not-run"
},
{
"apps": {
"cloudflare-tunnel": "not-run"
},
"name": "restored-check",
"outcome": "not-run"
},
{
"apps": {
"cloudflare-tunnel": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"cloudflare-tunnel": "not-run"
},
"name": "sentinel",
"outcome": "not-run"
}
],
"started": "2026-10-07T09:44:05.161528483Z",
"target": {
"apps": [
"cloudflare-tunnel"
],
"id": "cloudflare-tunnel",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-3c088ba8",
"finished": "2026-10-07T09:49:08.645101388Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:cbeea4f558d65ab557aecfd383ddf5ac6a2f03cacc5a163a85303fae99cfea3c",
"platform": "linux/amd64",
"service": "dashdot"
}
],
"name": "app-dashdot",
"observed_target_apps": [
"dashdot"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-dashdot.json",
"source_sha256": "205745259deeffa78eb65ff49a6439eee1800150dedff822d42a6ea8291c4b5e",
"stages": [
{
"apps": {
"dashdot": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"dashdot": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"dashdot": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"dashdot": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"dashdot": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"dashdot": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"dashdot": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"dashdot": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"dashdot": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"dashdot": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"dashdot": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"dashdot": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:40:46.036076815Z",
"target": {
"apps": [
"dashdot"
],
"id": "dashdot",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-330d7ec9",
"finished": "2026-10-07T09:48:44.24917673Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:9afc6b4a46f5ab0734732022a07a196279c821eb91db1c7154aeac641a518a9d",
"platform": "linux/amd64",
"service": "deluge"
}
],
"name": "app-deluge",
"observed_target_apps": [
"deluge"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-deluge.json",
"source_sha256": "e1cdbcbcbc60d3e69c5270adb1e34bc678c5f9a0fb71cedc63c866ab64765f44",
"stages": [
{
"apps": {
"deluge": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"deluge": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"deluge": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"deluge": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"deluge": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"deluge": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"deluge": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"deluge": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"deluge": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"deluge": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"deluge": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"deluge": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:37:59.039497007Z",
"target": {
"apps": [
"deluge"
],
"id": "deluge",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-17d4ec43",
"finished": "2026-10-07T09:48:10.616110072Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": false,
"platforms": [],
"service_count": 0
},
"images": [],
"name": "app-dockge",
"observed_target_apps": [
"dockge"
],
"outcome": "manual",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-dockge.json",
"source_sha256": "7eef6e68c6afa1ad4903bff418180bd9bd86ef8ab6b6723bf711f8d200402409",
"stages": [
{
"apps": {
"dockge": "manual"
},
"failures": [
{
"app": "dockge",
"error": "this App has no headless way to create its first administrator",
"hint": "Open http://127.0.0.1:44001, create the administrator admin with the password shown by `self-host credentials`; open Dockge and create the first administrator account, then run: self-host setup dockge",
"kind": "step.fail",
"step": "admin"
}
],
"name": "install",
"outcome": "manual",
"reason": "first administrator requires web UI"
},
{
"apps": {
"dockge": "not-run"
},
"name": "setup-check",
"outcome": "not-run"
},
{
"apps": {
"dockge": "not-run"
},
"name": "idempotency",
"outcome": "not-run"
},
{
"apps": {
"dockge": "not-run"
},
"name": "restart",
"outcome": "not-run"
},
{
"apps": {
"dockge": "not-run"
},
"name": "recovery",
"outcome": "not-run"
},
{
"apps": {
"dockge": "not-run"
},
"name": "update",
"outcome": "not-run"
},
{
"apps": {
"dockge": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"dockge": "not-run"
},
"name": "backup",
"outcome": "not-run"
},
{
"apps": {
"dockge": "not-run"
},
"name": "isolated-restore",
"outcome": "not-run"
},
{
"apps": {
"dockge": "not-run"
},
"name": "restored-check",
"outcome": "not-run"
},
{
"apps": {
"dockge": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"dockge": "not-run"
},
"name": "sentinel",
"outcome": "not-run"
}
],
"started": "2026-10-07T09:27:50.247786278Z",
"target": {
"apps": [
"dockge"
],
"id": "dockge",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-a795108c",
"finished": "2026-10-07T12:32:00.112195662Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 3
},
"images": [
{
"id": "sha256:0f146d72f36fa6ff9b12147b72719ca80df208342ecd1b757dd43f93b8a332e9",
"platform": "linux/amd64",
"service": "docmost"
},
{
"id": "sha256:29754c7520f4b9654cf8ff98e19ac73b88e255c3a53f6236ebe9d52249bb6df3",
"platform": "linux/amd64",
"service": "db"
},
{
"id": "sha256:992eb34c6118138585e0d651b256e0085d1b6aaecf39dc16df5ba50cfbe1609e",
"platform": "linux/amd64",
"service": "redis"
}
],
"name": "app-docmost",
"observed_target_apps": [
"docmost"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-docmost.json",
"source_sha256": "f81cb23ece1e74b2eab7fe6783320be0ba9da123c586a86027f6083ada96fe15",
"stages": [
{
"apps": {
"docmost": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"docmost": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"docmost": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"docmost": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"docmost": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"docmost": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"docmost": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"docmost": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"docmost": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"docmost": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"docmost": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"docmost": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T12:28:53.282928028Z",
"target": {
"apps": [
"docmost"
],
"id": "docmost",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-822dbc40",
"finished": "2026-10-07T09:44:22.941420092Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": false,
"platforms": [],
"service_count": 0
},
"images": [],
"name": "app-emby",
"observed_target_apps": [
"emby"
],
"outcome": "manual",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-emby.json",
"source_sha256": "3bd82abf5c6f4695ba4a9c5e5c5522eaca77423c26e8ba8ccfe3ec47ea9ca177",
"stages": [
{
"apps": {
"emby": "manual"
},
"failures": [
{
"app": "emby",
"error": "this App has no headless way to create its first administrator",
"hint": "Open http://127.0.0.1:44205, create the administrator admin with the password shown by `self-host credentials`; open the first-owner wizard and create the administrator with username admin and the password from `self-host credentials`, then run: self-host setup emby",
"kind": "step.fail",
"step": "admin"
}
],
"name": "install",
"outcome": "manual",
"reason": "first administrator requires web UI"
},
{
"apps": {
"emby": "not-run"
},
"name": "setup-check",
"outcome": "not-run"
},
{
"apps": {
"emby": "not-run"
},
"name": "idempotency",
"outcome": "not-run"
},
{
"apps": {
"emby": "not-run"
},
"name": "restart",
"outcome": "not-run"
},
{
"apps": {
"emby": "not-run"
},
"name": "recovery",
"outcome": "not-run"
},
{
"apps": {
"emby": "not-run"
},
"name": "update",
"outcome": "not-run"
},
{
"apps": {
"emby": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"emby": "not-run"
},
"name": "backup",
"outcome": "not-run"
},
{
"apps": {
"emby": "not-run"
},
"name": "isolated-restore",
"outcome": "not-run"
},
{
"apps": {
"emby": "not-run"
},
"name": "restored-check",
"outcome": "not-run"
},
{
"apps": {
"emby": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"emby": "not-run"
},
"name": "sentinel",
"outcome": "not-run"
}
],
"started": "2026-10-07T09:27:38.173055216Z",
"target": {
"apps": [
"emby"
],
"id": "emby",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-ef7714a3",
"finished": "2026-10-07T10:02:05.693275082Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 2
},
"images": [
{
"id": "sha256:29754c7520f4b9654cf8ff98e19ac73b88e255c3a53f6236ebe9d52249bb6df3",
"platform": "linux/amd64",
"service": "db"
},
{
"id": "sha256:a8901b1675e54014d1ceace3d389e926ef6781d150e6df9c086b774d5d6c60e9",
"platform": "linux/amd64",
"service": "firefly-iii"
}
],
"name": "app-firefly-iii",
"observed_target_apps": [
"firefly-iii"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-firefly-iii.json",
"source_sha256": "8b57c910cc200c10ec56c396dd9b838dc77c8cf07ac0cc916501881771c01688",
"stages": [
{
"apps": {
"firefly-iii": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"firefly-iii": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"firefly-iii": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"firefly-iii": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"firefly-iii": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"firefly-iii": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"firefly-iii": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"firefly-iii": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"firefly-iii": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"firefly-iii": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"firefly-iii": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"firefly-iii": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:27:12.65679082Z",
"target": {
"apps": [
"firefly-iii"
],
"id": "firefly-iii",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-0560d31b",
"finished": "2026-10-07T09:27:40.378920953Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:831ef608fc00db376c4b7ccd3883a505e504005a43d578bcf6d22dc955d95e55",
"platform": "linux/amd64",
"service": "forgejo"
}
],
"name": "app-forgejo",
"observed_target_apps": [
"forgejo"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-forgejo.json",
"source_sha256": "c0781f0e287145212dc904d3e62d557179b2c6bfd5c3a5f12929673ed3b583e3",
"stages": [
{
"apps": {
"forgejo": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"forgejo": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"forgejo": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"forgejo": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"forgejo": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:21:22.443592957Z",
"target": {
"apps": [
"forgejo"
],
"id": "forgejo",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-1250d0ff",
"finished": "2026-10-07T09:27:38.172867324Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:df2d167c82b1276ad93461b5b0c030aa33e695af21a3ec42a60743e28e003a47",
"platform": "linux/amd64",
"service": "freshrss"
}
],
"name": "app-freshrss",
"observed_target_apps": [
"freshrss"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-freshrss.json",
"source_sha256": "d603d90d53d7353e5fad2b44b09754fb0c7bc34fe41241f51fa1cf348ab8c00f",
"stages": [
{
"apps": {
"freshrss": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"freshrss": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"freshrss": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"freshrss": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"freshrss": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"freshrss": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"freshrss": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"freshrss": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"freshrss": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"freshrss": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"freshrss": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"freshrss": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:15:59.716543407Z",
"target": {
"apps": [
"freshrss"
],
"id": "freshrss",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-2bc89521",
"finished": "2026-10-07T12:47:12.646390754Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:808254590862db209e363fba48a609d954a20ed98cceab51389616a1a3ba7f08",
"platform": "linux/amd64",
"service": "frigate"
}
],
"name": "app-frigate",
"observed_target_apps": [
"frigate"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-frigate.json",
"source_sha256": "18a1cd42ea461d6330ca5e2c6ebde07a63d26832cdeba0cd5cc78d2344a36955",
"stages": [
{
"apps": {
"frigate": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"frigate": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"frigate": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"frigate": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"frigate": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"frigate": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"frigate": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"frigate": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"frigate": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"frigate": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"frigate": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"frigate": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T12:41:34.06722682Z",
"target": {
"apps": [
"frigate"
],
"id": "frigate",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-e1ba6cf5",
"finished": "2026-10-07T08:55:10.568340123Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:c6fe0e8a6f2bbbdc47fd8e9df2d009aeb4cf3d46a265a406ff63dd9a47ea9015",
"platform": "linux/amd64",
"service": "gatus"
}
],
"name": "app-gatus",
"observed_target_apps": [
"gatus"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-gatus.json",
"source_sha256": "4e2dd16dfdf4d46fa2ffdc20176a932c07442d8ed20476cbdbd15f27a9b21e53",
"stages": [
{
"apps": {
"gatus": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"gatus": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"gatus": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"gatus": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"gatus": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"gatus": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"gatus": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"gatus": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"gatus": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"gatus": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"gatus": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"gatus": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:55:00.333772061Z",
"target": {
"apps": [
"gatus"
],
"id": "gatus",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-320b5440",
"finished": "2026-10-07T09:14:03.862529204Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:48010f0354bd398a963fd0bf20628964c6ef62a3f4a23bd17924e393ca53c625",
"platform": "linux/amd64",
"service": "glances"
}
],
"name": "app-glances",
"observed_target_apps": [
"glances"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-glances.json",
"source_sha256": "bd8d586a9c0cf6f5862a4ad894849c3c9853555658c16211659fa6f2c1999f06",
"stages": [
{
"apps": {
"glances": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"glances": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"glances": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"glances": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"glances": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"glances": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"glances": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"glances": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"glances": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"glances": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"glances": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"glances": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:13:44.334909389Z",
"target": {
"apps": [
"glances"
],
"id": "glances",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "awaiting-external-credentials",
"cleanup": "not-run",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": false,
"platforms": [],
"service_count": 0
},
"images": [],
"name": "app-gluetun",
"observed_target_apps": [
"gluetun"
],
"outcome": "awaiting-external-credentials",
"platform": "",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-gluetun.json",
"source_sha256": "b02d4db1c60c841e1a15620b2b2eecd9a655491460d59f9586e7079bd081ff78",
"stages": [
{
"apps": {
"gluetun": "not-run"
},
"name": "install",
"outcome": "not-run"
},
{
"apps": {
"gluetun": "not-run"
},
"name": "setup-check",
"outcome": "not-run"
},
{
"apps": {
"gluetun": "not-run"
},
"name": "idempotency",
"outcome": "not-run"
},
{
"apps": {
"gluetun": "not-run"
},
"name": "restart",
"outcome": "not-run"
},
{
"apps": {
"gluetun": "not-run"
},
"name": "recovery",
"outcome": "not-run"
},
{
"apps": {
"gluetun": "not-run"
},
"name": "update",
"outcome": "not-run"
},
{
"apps": {
"gluetun": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"gluetun": "not-run"
},
"name": "backup",
"outcome": "not-run"
},
{
"apps": {
"gluetun": "not-run"
},
"name": "isolated-restore",
"outcome": "not-run"
},
{
"apps": {
"gluetun": "not-run"
},
"name": "restored-check",
"outcome": "not-run"
},
{
"apps": {
"gluetun": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"gluetun": "not-run"
},
"name": "sentinel",
"outcome": "not-run"
}
],
"started": "2026-10-07T09:13:44.334690899Z",
"target": {
"apps": [
"gluetun"
],
"id": "gluetun",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-7137993d",
"finished": "2026-10-07T09:13:44.328691819Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:69f8392b7df9bf94443d70a118171540db144bd1bf13a7bb06075e99564add71",
"platform": "linux/amd64",
"service": "gotify"
}
],
"name": "app-gotify",
"observed_target_apps": [
"gotify"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-gotify.json",
"source_sha256": "f2a363df43b6acc1c1cd04c1190a2b95b169575cb0a7df262f4add74cfd651b9",
"stages": [
{
"apps": {
"gotify": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"gotify": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"gotify": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"gotify": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"gotify": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"gotify": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"gotify": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"gotify": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"gotify": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"gotify": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"gotify": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"gotify": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:13:10.165549419Z",
"target": {
"apps": [
"gotify"
],
"id": "gotify",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-3aa85dc2",
"finished": "2026-10-07T12:28:53.282743279Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:747aaf291145d9a84a547f1fa4edf48697371db6ab386b81c95ad3a725c20f17",
"platform": "linux/amd64",
"service": "grafana"
}
],
"name": "app-grafana",
"observed_target_apps": [
"grafana"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-grafana.json",
"source_sha256": "019b2d3e415dd4e9929c3acd33dfd682cbf594663e8df26d271a8512f37eba7b",
"stages": [
{
"apps": {
"grafana": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"grafana": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"grafana": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"grafana": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"grafana": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"grafana": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"grafana": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"grafana": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"grafana": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"grafana": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"grafana": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"grafana": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T12:27:03.874205994Z",
"target": {
"apps": [
"grafana"
],
"id": "grafana",
"kind": "app"
}
},
{
"binary_sha256": "6d3d92a500bfff1fda316eeeed1b0ac27fe89c108393b33ba5998dae2aa88d68",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-e381f86d",
"finished": "2026-10-07T14:48:18.311581072Z",
"head": "ee7975a8d0946f33f3677119ae657dc89962babe",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 2
},
"images": [
{
"id": "sha256:d880f33f5d9b3f8d68f14f3993def05d8adf5f08e67ae8c1a1964b1eb6369a51",
"platform": "linux/amd64",
"service": "haproxy"
},
{
"id": "sha256:f22fb212dc2e08a70135153566666ccd279eb7c12313cb7424ace76264147762",
"platform": "linux/amd64",
"service": "ntfy"
}
],
"name": "app-haproxy",
"observed_target_apps": [
"haproxy",
"ntfy"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; exact application data across isolated restore for ntfy only; other Apps have no workload or database-content assertion; real HAProxy-to-owned-ntfy routing and protected statistics before backup and after isolated restore",
"source_file": "app-haproxy.json",
"source_sha256": "64f02893d0049eb3da7bf2760e4b4fb136bbeb26e45e62e0aeef7b22a0cca5c6",
"stages": [
{
"apps": {
"haproxy": "pass",
"ntfy": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"haproxy": "pass",
"ntfy": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"haproxy": "pass",
"ntfy": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"haproxy": "pass",
"ntfy": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"haproxy": "pass",
"ntfy": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"haproxy": "pass",
"ntfy": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"ntfy": "pass"
},
"name": "payload-seed",
"outcome": "pass"
},
{
"apps": {
"haproxy": "pass",
"ntfy": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"haproxy": "pass",
"ntfy": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"haproxy": "pass",
"ntfy": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"ntfy": "pass"
},
"name": "payload-restored",
"outcome": "pass"
},
{
"apps": {
"haproxy": "pass",
"ntfy": "pass"
},
"name": "sentinel",
"outcome": "pass"
},
{
"apps": {
"haproxy": "pass",
"ntfy": "pass"
},
"name": "backend-routing",
"outcome": "pass"
},
{
"apps": {
"haproxy": "pass",
"ntfy": "pass"
},
"name": "restored-backend-routing",
"outcome": "pass"
}
],
"started": "2026-10-07T14:38:59.940505271Z",
"target": {
"apps": [
"haproxy"
],
"id": "haproxy",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-6830ee24",
"finished": "2026-10-07T12:44:15.337209938Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:b329f56bbea054fba0034499309911b20b4b7aa597ec236931a44c012164cf88",
"platform": "linux/amd64",
"service": "headscale"
}
],
"name": "app-headscale",
"observed_target_apps": [
"headscale"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-headscale.json",
"source_sha256": "358995d4ee249a03cb0815734c814272ef6beb576653cfe33f77b96b8d4596b5",
"stages": [
{
"apps": {
"headscale": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"headscale": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"headscale": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"headscale": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"headscale": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"headscale": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"headscale": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"headscale": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"headscale": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"headscale": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"headscale": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"headscale": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T12:35:01.099513302Z",
"target": {
"apps": [
"headscale"
],
"id": "headscale",
"kind": "app"
}
},
{
"binary_sha256": "fd7ffb47a78afb5adf0b3469c9f0c2020a0e972940685f6b4ef6f943cd8f39b8",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-7b163927",
"finished": "2026-10-07T11:42:45.553037948Z",
"head": "b17d9de4a75ab6bb895725d5be35898adbf2d5eb",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:2ee513d49656093361150d2fd3cfdd5574fe65135a8b10102339872f86f0ed58",
"platform": "linux/amd64",
"service": "homarr"
}
],
"name": "app-homarr",
"observed_target_apps": [
"homarr"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-homarr.json",
"source_sha256": "80c4fdb201545de25a4ecf1f226dd9f224795b6bd79f0a8f0e048c2c2b2994a9",
"stages": [
{
"apps": {
"homarr": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"homarr": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"homarr": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"homarr": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"homarr": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"homarr": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"homarr": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"homarr": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"homarr": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"homarr": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"homarr": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"homarr": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T11:30:54.1448853Z",
"target": {
"apps": [
"homarr"
],
"id": "homarr",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-6e8f8072",
"finished": "2026-10-07T09:13:10.165291157Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:5157d3b45f2333749443ae7fb2c655b3ac7954018761c3f01144bd971030968f",
"platform": "linux/amd64",
"service": "home-assistant"
}
],
"name": "app-home-assistant",
"observed_target_apps": [
"home-assistant"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-home-assistant.json",
"source_sha256": "bad0e69df10589b53fc8a10e86851527fa536cf626e49f47721b9df5275dae65",
"stages": [
{
"apps": {
"home-assistant": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"home-assistant": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"home-assistant": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"home-assistant": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"home-assistant": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"home-assistant": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"home-assistant": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"home-assistant": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"home-assistant": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"home-assistant": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"home-assistant": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"home-assistant": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:12:03.883060587Z",
"target": {
"apps": [
"home-assistant"
],
"id": "home-assistant",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-b8c6e532",
"finished": "2026-10-07T09:12:43.842475046Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:94609dcbdea8b3cd62e1d0e0c36bc6173756a60dfb2b42bb00370ea6a2b9aafd",
"platform": "linux/amd64",
"service": "homebridge"
}
],
"name": "app-homebridge",
"observed_target_apps": [
"homebridge"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-homebridge.json",
"source_sha256": "75b1974d4c8bd6334be76a63299451b824be2794ad8cce5207a1e2131a52a892",
"stages": [
{
"apps": {
"homebridge": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"homebridge": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"homebridge": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"homebridge": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"homebridge": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"homebridge": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"homebridge": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"homebridge": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"homebridge": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"homebridge": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"homebridge": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"homebridge": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:11:05.520833598Z",
"target": {
"apps": [
"homebridge"
],
"id": "homebridge",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-63627817",
"finished": "2026-10-07T09:40:46.035783161Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 4
},
"images": [
{
"id": "sha256:726dea3590a895d94203fe918b97ae2af8f609f04675590be0070cf64797ba88",
"platform": "linux/amd64",
"service": "redis"
},
{
"id": "sha256:178719aeb38df6f0ce8edc1d8320008379fcf04eb3444e76419cc98d9861e331",
"platform": "linux/amd64",
"service": "database"
},
{
"id": "sha256:b1a1cc8cac12989dcfe0d61535afcbbae552f76c3cd38ab66e10c66457720800",
"platform": "linux/amd64",
"service": "immich"
},
{
"id": "sha256:c53e2e5c4e9467ae83344fa9e67f2a99014a45f98c4d0b3b2f24afa5f46e97e3",
"platform": "linux/amd64",
"service": "immich-machine-learning"
}
],
"name": "app-immich",
"observed_target_apps": [
"immich"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-immich.json",
"source_sha256": "720a1607402911472d9227f35f69d9e855abcb42d980feb3c8f7cec726a59734",
"stages": [
{
"apps": {
"immich": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"immich": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"immich": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"immich": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"immich": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"immich": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"immich": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"immich": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"immich": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"immich": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"immich": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"immich": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:10:05.718179532Z",
"target": {
"apps": [
"immich"
],
"id": "immich",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-92843a5b",
"finished": "2026-10-07T09:45:33.115861302Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:fbd967af0187a569b0c18d2db6cb311fdf0df4aeb520102c63f19320aadf964d",
"platform": "linux/amd64",
"service": "jellyfin"
}
],
"name": "app-jellyfin",
"observed_target_apps": [
"jellyfin"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-jellyfin.json",
"source_sha256": "63cc51ec2f8095d4006e94bc457c415199bec0b497c519bb50bcbe1f50b936ce",
"stages": [
{
"apps": {
"jellyfin": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"jellyfin": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"jellyfin": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"jellyfin": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"jellyfin": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"jellyfin": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"jellyfin": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"jellyfin": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"jellyfin": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"jellyfin": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"jellyfin": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"jellyfin": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:09:55.843728376Z",
"target": {
"apps": [
"jellyfin"
],
"id": "jellyfin",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-04435355",
"finished": "2026-10-07T10:17:45.917852441Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 2
},
"images": [
{
"id": "sha256:b2f3e1b85071d17a1da8d2cbcc54707853d19c74ae027071789ea1bb12b3ec89",
"platform": "linux/amd64",
"service": "keycloak"
},
{
"id": "sha256:79bd7c99e923138f136f8009d6bffa66e21e9d4fda5c0c561b00fc9c90cfe537",
"platform": "linux/amd64",
"service": "db"
}
],
"name": "app-keycloak",
"observed_target_apps": [
"keycloak"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-keycloak.json",
"source_sha256": "24f03b94a27a1bb3d1bf032d82ab24b78af4398a7141bfc8d6fe8859c348df07",
"stages": [
{
"apps": {
"keycloak": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"keycloak": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"keycloak": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"keycloak": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"keycloak": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"keycloak": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"keycloak": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"keycloak": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"keycloak": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"keycloak": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"keycloak": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"keycloak": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:06:31.692288407Z",
"target": {
"apps": [
"keycloak"
],
"id": "keycloak",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-bab6b764",
"finished": "2026-10-07T12:29:36.017318202Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:3033ab0726ec64ff091d7f584f52987390e59eb7d30ca16bd36fcdc34c58ad96",
"platform": "linux/amd64",
"service": "kopia"
}
],
"name": "app-kopia",
"observed_target_apps": [
"kopia"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-kopia.json",
"source_sha256": "8b137f6bf08cfe11d54c844bb3cd1b42c165d09517f5e3ebeaa92804185f7d0b",
"stages": [
{
"apps": {
"kopia": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"kopia": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"kopia": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"kopia": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"kopia": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"kopia": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"kopia": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"kopia": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"kopia": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"kopia": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"kopia": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"kopia": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T12:29:23.815692839Z",
"target": {
"apps": [
"kopia"
],
"id": "kopia",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-663801b2",
"finished": "2026-10-07T09:11:05.520549679Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:7fb9a5572b1719bd8a9b4b2e51752b2265626adde208210bff28f5abb5308437",
"platform": "linux/amd64",
"service": "lidarr"
}
],
"name": "app-lidarr",
"observed_target_apps": [
"lidarr"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-lidarr.json",
"source_sha256": "340e5fe654fded907ad0f75f72b4f1143d9e4843b0de51a1f93e8b0322ef4d15",
"stages": [
{
"apps": {
"lidarr": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"lidarr": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"lidarr": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"lidarr": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"lidarr": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"lidarr": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"lidarr": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"lidarr": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"lidarr": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"lidarr": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"lidarr": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"lidarr": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:00:55.85815634Z",
"target": {
"apps": [
"lidarr"
],
"id": "lidarr",
"kind": "app"
}
},
{
"binary_sha256": "6d3d92a500bfff1fda316eeeed1b0ac27fe89c108393b33ba5998dae2aa88d68",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-7796c079",
"finished": "2026-10-07T15:02:02.374642253Z",
"head": "ee7975a8d0946f33f3677119ae657dc89962babe",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 3
},
"images": [
{
"id": "sha256:cab61b2e1fb52429632b77893abbc2433b14c19948bca1d7b558f10101fda91e",
"platform": "linux/amd64",
"service": "linkwarden"
},
{
"id": "sha256:81bd698b4594e751a3269e4dcd3e03a4a0ec0daf7b72e7aa1abd43cce9887542",
"platform": "linux/amd64",
"service": "postgres"
},
{
"id": "sha256:35435ac707829f4d914096dd74bf9626ace85669c002be2bcc7fa6b8bbdec43d",
"platform": "linux/amd64",
"service": "meilisearch"
}
],
"name": "app-linkwarden",
"observed_target_apps": [
"linkwarden"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-linkwarden.json",
"source_sha256": "7236af48996fc47f9c21197e41b9739e1b06aadd9ba58ae0826c4f445077e78c",
"stages": [
{
"apps": {
"linkwarden": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"linkwarden": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"linkwarden": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"linkwarden": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"linkwarden": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"linkwarden": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"linkwarden": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"linkwarden": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"linkwarden": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"linkwarden": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"linkwarden": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"linkwarden": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T14:38:59.940864638Z",
"target": {
"apps": [
"linkwarden"
],
"id": "linkwarden",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-f59c04ce",
"finished": "2026-10-07T12:29:23.815479017Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:1f4a8a01d1e3fa5928f9918081cccdec144d09f0eb5a83f252dbac73487f9181",
"platform": "linux/amd64",
"service": "lldap"
}
],
"name": "app-lldap",
"observed_target_apps": [
"lldap"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-lldap.json",
"source_sha256": "c74e5fcf71b4b073e54ac17858170a596034cc25a8e4ed5d5e0d2313c6275143",
"stages": [
{
"apps": {
"lldap": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"lldap": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"lldap": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"lldap": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"lldap": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"lldap": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"lldap": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"lldap": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"lldap": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"lldap": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"lldap": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"lldap": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T12:27:03.874187314Z",
"target": {
"apps": [
"lldap"
],
"id": "lldap",
"kind": "app"
}
},
{
"binary_sha256": "fd7ffb47a78afb5adf0b3469c9f0c2020a0e972940685f6b4ef6f943cd8f39b8",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-d84bcbf0",
"finished": "2026-10-07T11:44:15.064400099Z",
"head": "b17d9de4a75ab6bb895725d5be35898adbf2d5eb",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:6ea410afab1b8e0d360d87bd3c3ea27ab1b2af0027badb6f18758c5a6efc3a17",
"platform": "linux/amd64",
"service": "loki"
}
],
"name": "app-loki",
"observed_target_apps": [
"loki"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-loki.json",
"source_sha256": "d1f7d02d153afa061663e10da54ececfabd0aa2e16ad5e1396f0b42159391f8d",
"stages": [
{
"apps": {
"loki": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"loki": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"loki": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"loki": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"loki": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"loki": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"loki": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"loki": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"loki": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"loki": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"loki": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"loki": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T11:42:12.035404547Z",
"target": {
"apps": [
"loki"
],
"id": "loki",
"kind": "app"
}
},
{
"binary_sha256": "fd7ffb47a78afb5adf0b3469c9f0c2020a0e972940685f6b4ef6f943cd8f39b8",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-f017598b",
"finished": "2026-10-07T12:02:49.613069897Z",
"head": "b17d9de4a75ab6bb895725d5be35898adbf2d5eb",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 4
},
"images": [
{
"id": "sha256:c9988d9822cb01b4c63ba9b027fa45ec1e465eaca10208d91966da1e0ad99eb1",
"platform": "linux/amd64",
"service": "mayan-edms"
},
{
"id": "sha256:86832d1a469e1d9994122fff86321ded3622a964eac9b60999396e845ff42b20",
"platform": "linux/amd64",
"service": "postgresql"
},
{
"id": "sha256:cc97eca371f3fb53aed644b3b5162572b7162a69023e7ca82b99d2f279cba837",
"platform": "linux/amd64",
"service": "rabbitmq"
},
{
"id": "sha256:7ceda270a3137de18c0b3aff75fa0002faa1c2a87e2b25e86978a1c3f20b3b78",
"platform": "linux/amd64",
"service": "redis"
}
],
"name": "app-mayan-edms",
"observed_target_apps": [
"mayan-edms"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-mayan-edms.json",
"source_sha256": "c705e12900ee2f638a55202826593aaa760c9c9c3845d97a36c701749de72dd1",
"stages": [
{
"apps": {
"mayan-edms": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"mayan-edms": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"mayan-edms": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"mayan-edms": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"mayan-edms": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"mayan-edms": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"mayan-edms": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"mayan-edms": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"mayan-edms": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"mayan-edms": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"mayan-edms": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"mayan-edms": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T11:52:37.142846488Z",
"target": {
"apps": [
"mayan-edms"
],
"id": "mayan-edms",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "awaiting-external-credentials",
"cleanup": "not-run",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": false,
"platforms": [],
"service_count": 0
},
"images": [],
"name": "app-minio",
"observed_target_apps": [
"minio"
],
"outcome": "awaiting-external-credentials",
"platform": "",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-minio.json",
"source_sha256": "dd11a5690277c57f5138589da7c8861f1faec5fa76e712ec35d2b9aa30a2e5b2",
"stages": [
{
"apps": {
"minio": "not-run"
},
"name": "install",
"outcome": "not-run"
},
{
"apps": {
"minio": "not-run"
},
"name": "setup-check",
"outcome": "not-run"
},
{
"apps": {
"minio": "not-run"
},
"name": "idempotency",
"outcome": "not-run"
},
{
"apps": {
"minio": "not-run"
},
"name": "restart",
"outcome": "not-run"
},
{
"apps": {
"minio": "not-run"
},
"name": "recovery",
"outcome": "not-run"
},
{
"apps": {
"minio": "not-run"
},
"name": "update",
"outcome": "not-run"
},
{
"apps": {
"minio": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"minio": "not-run"
},
"name": "backup",
"outcome": "not-run"
},
{
"apps": {
"minio": "not-run"
},
"name": "isolated-restore",
"outcome": "not-run"
},
{
"apps": {
"minio": "not-run"
},
"name": "restored-check",
"outcome": "not-run"
},
{
"apps": {
"minio": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"minio": "not-run"
},
"name": "sentinel",
"outcome": "not-run"
}
],
"started": "2026-10-07T08:55:19.59822772Z",
"target": {
"apps": [
"minio"
],
"id": "minio",
"kind": "app"
}
},
{
"binary_sha256": "fd7ffb47a78afb5adf0b3469c9f0c2020a0e972940685f6b4ef6f943cd8f39b8",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-176afd89",
"finished": "2026-10-07T11:59:58.414514229Z",
"head": "b17d9de4a75ab6bb895725d5be35898adbf2d5eb",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:082c198a14c9f2c36bb714830e1e3bf5ec785c36f384c6b982cb24c5a88da555",
"platform": "linux/amd64",
"service": "navidrome"
}
],
"name": "app-navidrome",
"observed_target_apps": [
"navidrome"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-navidrome.json",
"source_sha256": "9c0e0a7c10725f3955536f3dbef319bea59db84187fe13608017c6641c568f0b",
"stages": [
{
"apps": {
"navidrome": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"navidrome": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"navidrome": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"navidrome": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"navidrome": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"navidrome": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"navidrome": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"navidrome": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"navidrome": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"navidrome": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"navidrome": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"navidrome": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T11:49:09.798979999Z",
"target": {
"apps": [
"navidrome"
],
"id": "navidrome",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-a5fdb8f0",
"finished": "2026-10-07T13:17:03.636531609Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 2
},
"images": [
{
"id": "sha256:d01da33f8decbc6b6c37e44383b5d400fa0e7c49bc318ed074f44519847d62ee",
"platform": "linux/amd64",
"service": "netbird"
},
{
"id": "sha256:b80d5dbc3c1309db133bbaf5ede0229a43a58cda586d1c55eec61981d69967ab",
"platform": "linux/amd64",
"service": "server"
}
],
"name": "app-netbird",
"observed_target_apps": [
"netbird"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion; real NetBird owner and protected management API through owned verified loopback HTTPS before backup and after isolated restore; no peer/VPN/browser claim",
"source_file": "app-netbird.json",
"source_sha256": "fa2ce29542cd18830c2119285a6a172145e53af5e1fd9845c2aa2a84e0fc4f90",
"stages": [
{
"apps": {
"netbird": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"netbird": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"netbird": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"netbird": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"netbird": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"netbird": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"netbird": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"netbird": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"netbird": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"netbird": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"netbird": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"netbird": "pass"
},
"name": "sentinel",
"outcome": "pass"
},
{
"apps": {
"netbird": "pass"
},
"name": "management-tls",
"outcome": "pass"
},
{
"apps": {
"netbird": "pass"
},
"name": "restored-management-tls",
"outcome": "pass"
}
],
"started": "2026-10-07T12:53:01.589514487Z",
"target": {
"apps": [
"netbird"
],
"id": "netbird",
"kind": "app"
}
},
{
"binary_sha256": "6d3d92a500bfff1fda316eeeed1b0ac27fe89c108393b33ba5998dae2aa88d68",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-4b6378f4",
"finished": "2026-10-07T14:56:10.012283501Z",
"head": "ee7975a8d0946f33f3677119ae657dc89962babe",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:cf6fd23dc412ad44a9cc31c3427824e633a4e295f0ff5ab54e87ac789c3d43e1",
"platform": "linux/amd64",
"service": "netdata"
}
],
"name": "app-netdata",
"observed_target_apps": [
"netdata"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-netdata.json",
"source_sha256": "bd8c2b41d19a23a389ce846ca9321c3d1142f5a954b74ae07ddc641139461cbd",
"stages": [
{
"apps": {
"netdata": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"netdata": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"netdata": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"netdata": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"netdata": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"netdata": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"netdata": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"netdata": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"netdata": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"netdata": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"netdata": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"netdata": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T14:38:59.941166444Z",
"target": {
"apps": [
"netdata"
],
"id": "netdata",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-eab548d5",
"finished": "2026-10-07T09:00:25.914514316Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 4
},
"images": [
{
"id": "sha256:deb9a3a5e1952c4bddf4b1afe48fd6040295a6d7c41379ce68c0d067512ca912",
"platform": "linux/amd64",
"service": "db"
},
{
"id": "sha256:15f5a4aad4c3ba34b9874ddbc7f755b469dbd7b8a9e88c12690c52ef6c72465c",
"platform": "linux/amd64",
"service": "redis"
},
{
"id": "sha256:42aa95fc13ded13dfe60355a3b6ffb83b8d99e360b96b18dd56506d5f12d3467",
"platform": "linux/amd64",
"service": "cron"
},
{
"id": "sha256:42aa95fc13ded13dfe60355a3b6ffb83b8d99e360b96b18dd56506d5f12d3467",
"platform": "linux/amd64",
"service": "nextcloud"
}
],
"name": "app-nextcloud",
"observed_target_apps": [
"nextcloud"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-nextcloud.json",
"source_sha256": "ccd6f58f59599f9035c2ee4c52bc7d571cf5e7205aaec11834d815161f278bb7",
"stages": [
{
"apps": {
"nextcloud": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"nextcloud": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"nextcloud": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"nextcloud": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"nextcloud": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"nextcloud": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"nextcloud": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"nextcloud": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"nextcloud": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"nextcloud": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"nextcloud": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"nextcloud": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:33:03.180587338Z",
"target": {
"apps": [
"nextcloud"
],
"id": "nextcloud",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-5346d49b",
"finished": "2026-10-07T12:56:43.26781212Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:5c80aaf5e26c1f45a6ce9f58ad00edceabb717d68236ff5b06d6f4d1f1271742",
"platform": "linux/amd64",
"service": "nginx-proxy-manager"
}
],
"name": "app-nginx-proxy-manager",
"observed_target_apps": [
"nginx-proxy-manager"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-nginx-proxy-manager.json",
"source_sha256": "fcc529015ac1850cdf8c91cc87a483053f4bfde53b8eb06e4eb04855e927558d",
"stages": [
{
"apps": {
"nginx-proxy-manager": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"nginx-proxy-manager": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"nginx-proxy-manager": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"nginx-proxy-manager": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"nginx-proxy-manager": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"nginx-proxy-manager": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"nginx-proxy-manager": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"nginx-proxy-manager": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"nginx-proxy-manager": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"nginx-proxy-manager": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"nginx-proxy-manager": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"nginx-proxy-manager": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T12:47:12.646917358Z",
"target": {
"apps": [
"nginx-proxy-manager"
],
"id": "nginx-proxy-manager",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-f5110edb",
"finished": "2026-10-07T08:38:12.085607549Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:9c9df61df63d0a8a4aabfef98fda647ede418d7c758fab1abada07a32121fe32",
"platform": "linux/amd64",
"service": "node-red"
}
],
"name": "app-node-red",
"observed_target_apps": [
"node-red"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-node-red.json",
"source_sha256": "5dd5e4ec21e980affb86235d741d4ef215fd9222655635107729820bc589801c",
"stages": [
{
"apps": {
"node-red": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"node-red": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"node-red": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"node-red": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"node-red": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"node-red": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"node-red": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"node-red": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"node-red": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"node-red": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"node-red": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"node-red": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:30:37.89377595Z",
"target": {
"apps": [
"node-red"
],
"id": "node-red",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-2ba4dd30",
"finished": "2026-10-07T08:34:45.858776362Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:f22fb212dc2e08a70135153566666ccd279eb7c12313cb7424ace76264147762",
"platform": "linux/amd64",
"service": "ntfy"
}
],
"name": "app-ntfy",
"observed_target_apps": [
"ntfy"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; exact application data across isolated restore for ntfy only; other Apps have no workload or database-content assertion",
"source_file": "app-ntfy.json",
"source_sha256": "64d19c8a48a3375305bbf7914c41a08a8d54e73d94a8992b96d304a28cb73425",
"stages": [
{
"apps": {
"ntfy": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"ntfy": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"ntfy": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"ntfy": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"ntfy": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"ntfy": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"ntfy": "pass"
},
"name": "payload-seed",
"outcome": "pass"
},
{
"apps": {
"ntfy": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"ntfy": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"ntfy": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"ntfy": "pass"
},
"name": "payload-restored",
"outcome": "pass"
},
{
"apps": {
"ntfy": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:30:37.885784593Z",
"target": {
"apps": [
"ntfy"
],
"id": "ntfy",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-f2a73e3f",
"finished": "2026-10-07T08:36:54.839558699Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:1ba0db04c88f6b4d7fa4882af2e17f67c12c109d9f4bb5f572541a24ce814817",
"platform": "linux/amd64",
"service": "nzbget"
}
],
"name": "app-nzbget",
"observed_target_apps": [
"nzbget"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-nzbget.json",
"source_sha256": "071424109caeb0b766e428c0bc0e334c26cdf2ec94298c4dd11ff474d8903741",
"stages": [
{
"apps": {
"nzbget": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"nzbget": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"nzbget": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"nzbget": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"nzbget": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"nzbget": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"nzbget": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"nzbget": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"nzbget": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"nzbget": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"nzbget": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"nzbget": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:30:37.87637684Z",
"target": {
"apps": [
"nzbget"
],
"id": "nzbget",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-50200cc4",
"finished": "2026-10-07T09:27:50.24751817Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:4d056959f70534c6906184776d53ab39135dce95912d666e9dd60ca2d0c4dac1",
"platform": "linux/amd64",
"service": "ollama"
}
],
"name": "app-ollama",
"observed_target_apps": [
"ollama"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-ollama.json",
"source_sha256": "295cb9940bd6714a71ec9b264eb3946a18821809937b43377d998673bd1bf0af",
"stages": [
{
"apps": {
"ollama": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"ollama": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"ollama": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"ollama": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"ollama": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"ollama": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"ollama": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"ollama": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"ollama": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"ollama": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"ollama": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"ollama": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:30:37.869331471Z",
"target": {
"apps": [
"ollama"
],
"id": "ollama",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-0d2a1bd9",
"finished": "2026-10-07T08:46:25.621903025Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:8719e348fa22da550b1b4911ce4e3baf9b994614270cc0a99f2db4c2e690b286",
"platform": "linux/amd64",
"service": "open-webui"
}
],
"name": "app-open-webui",
"observed_target_apps": [
"open-webui"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-open-webui.json",
"source_sha256": "212db6f332ad1703133db277b065ff6f7d53baa94bc93507db5e19dfd69df356",
"stages": [
{
"apps": {
"open-webui": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"open-webui": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"open-webui": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"open-webui": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"open-webui": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"open-webui": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"open-webui": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"open-webui": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"open-webui": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"open-webui": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"open-webui": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"open-webui": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:30:37.8692819Z",
"target": {
"apps": [
"open-webui"
],
"id": "open-webui",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-d28b1bb2",
"finished": "2026-10-07T13:21:44.724522372Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 2
},
"images": [
{
"id": "sha256:57c185c0f9968fba4c36f293d18802c79f896d0cbed9810f6e7a10ee9ec97b20",
"platform": "linux/amd64",
"service": "server"
},
{
"id": "sha256:5a93040e5abdf181145d7c242964eca7999ffd700e0447b242ef212f3ee44d55",
"platform": "linux/amd64",
"service": "pangolin"
}
],
"name": "app-pangolin",
"observed_target_apps": [
"pangolin"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-pangolin.json",
"source_sha256": "634c03abf30a6e65a31d50c2c28739f4ad08a57fa195344ab7f445798f96a2bf",
"stages": [
{
"apps": {
"pangolin": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"pangolin": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"pangolin": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"pangolin": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"pangolin": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"pangolin": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"pangolin": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"pangolin": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"pangolin": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"pangolin": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"pangolin": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"pangolin": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T13:05:31.912773969Z",
"target": {
"apps": [
"pangolin"
],
"id": "pangolin",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-3d220123",
"finished": "2026-10-07T09:27:12.656466374Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 3
},
"images": [
{
"id": "sha256:40ab224f823ae96d9d05adfbb31d7068cbf96708be5d8b2691621b703a02de3d",
"platform": "linux/amd64",
"service": "broker"
},
{
"id": "sha256:29754c7520f4b9654cf8ff98e19ac73b88e255c3a53f6236ebe9d52249bb6df3",
"platform": "linux/amd64",
"service": "db"
},
{
"id": "sha256:448f5f79b979cce73b43f094b0e14552b6e82a4b06ae510681e0839754d56215",
"platform": "linux/amd64",
"service": "paperless-ngx"
}
],
"name": "app-paperless-ngx",
"observed_target_apps": [
"paperless-ngx"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-paperless-ngx.json",
"source_sha256": "22e4dbd81fd2b1fd28de62e363f848557041b0ec85444c4f0a8e5456d5387b9a",
"stages": [
{
"apps": {
"paperless-ngx": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"paperless-ngx": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"paperless-ngx": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"paperless-ngx": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"paperless-ngx": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"paperless-ngx": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"paperless-ngx": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"paperless-ngx": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"paperless-ngx": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"paperless-ngx": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"paperless-ngx": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"paperless-ngx": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:30:37.868980409Z",
"target": {
"apps": [
"paperless-ngx"
],
"id": "paperless-ngx",
"kind": "app"
}
},
{
"binary_sha256": "40acccc931a9995c84cd8816bed922673cdac6a57d78e75f36f4ad2a0a7b1c7a",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-df772c47",
"finished": "2026-10-07T17:28:06.137832559Z",
"head": "b54733427f9c9ed44628073356a957a43bc4e8bb",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 3
},
"images": [
{
"id": "sha256:a7d4b166b6702ca0752e51f734638f95ba383b7446f9028082b0ea7c34b6facb",
"platform": "linux/amd64",
"service": "passbolt"
},
{
"id": "sha256:41096ae9913468679bb5e05bbc19f44edcaf0eae45d67fcde224ffdeda9d3a1f",
"platform": "linux/amd64",
"service": "db"
},
{
"id": "sha256:c83674e1999044d33d751661371b873539f47e5b5c5ca3320c7e0377acca6238",
"platform": "linux/amd64",
"service": "passbolt-prerequisites"
}
],
"name": "app-passbolt",
"observed_target_apps": [
"passbolt"
],
"outcome": "failed",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion; fixture helper linux/amd64 sha256:fabe112a90ac77e9f36a60b2da5c3a4cad4864ace0aba7d64e9b0338fc132e9f; owned verified canonical HTTPS and private no-auth STARTTLS delivery are prerequisites only; browser-extension owner OpenPGP enrollment and key recovery remain manual",
"source_file": "app-passbolt.json",
"source_sha256": "f43e16dc62986386cb1b1b0e9287568b0f72af95d539c11140850f5990bcdb10",
"stages": [
{
"apps": {
"passbolt": "fail"
},
"failures": [
{
"app": "passbolt",
"error": "timed out after 3m0s: HTTP 500",
"hint": "passbolt did not answer on /auth/verify.json; read its logs with: self-host logs passbolt",
"kind": "step.fail",
"step": "ready"
},
{
"app": "passbolt",
"error": "Passbolt verification returned HTTP 500; cause remains unclassified. If server-key and database checks pass, ask the host administrator to verify PHP-FPM access to Passbolt bootstrap and configuration files.",
"hint": "inspect only allowlisted startup/configuration and key-file accessibility booleans in the owned Project; no raw logs or key payloads",
"kind": "step.fail",
"step": "startup-diagnostic"
},
{
"app": "passbolt",
"error": "owned Passbolt public-key metadata: exists=true, www-data-readable=true, directory-owner=www-data, directory-group=www-data, directory-mode=0700",
"hint": "read-only fixed public-key path metadata; an unobserved probe proves no missing file or readability failure",
"kind": "step.fail",
"step": "startup-metadata"
},
{
"app": "passbolt",
"error": "owned Passbolt application metadata: private-key-exists=true, private-key-readable=true, keyring-readable=true, keyring-writable=true, gnupg-extension=true, pdo-mysql-extension=true, canonical-input-valid=true, ssl-force-input=true, datasource=connected, schema=present",
"hint": "read-only key accessibility and owned-env PDO/schema metadata; does not prove key import or effective Cake/FPM configuration",
"kind": "step.fail",
"step": "startup-application-metadata"
},
{
"app": "passbolt",
"error": "owned Passbolt effective metadata: bootstrap=initialized, configured-public-path-matches=true, configured-public-readable=true, original-url-present=true, canonical-match=true, url-enforced=false, fingerprint-present=false, fingerprint-valid=false, authentication=session",
"hint": "normal CLI application bootstrap/configuration booleans only; does not establish FPM configuration or key import",
"kind": "step.fail",
"step": "startup-effective-metadata"
}
],
"name": "install",
"outcome": "fail",
"reason": "redacted CLI failure details retained"
},
{
"apps": {
"passbolt": "not-run"
},
"name": "setup-check",
"outcome": "not-run"
},
{
"apps": {
"passbolt": "not-run"
},
"name": "idempotency",
"outcome": "not-run"
},
{
"apps": {
"passbolt": "not-run"
},
"name": "restart",
"outcome": "not-run"
},
{
"apps": {
"passbolt": "not-run"
},
"name": "recovery",
"outcome": "not-run"
},
{
"apps": {
"passbolt": "not-run"
},
"name": "update",
"outcome": "not-run"
},
{
"apps": {
"passbolt": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"passbolt": "not-run"
},
"name": "backup",
"outcome": "not-run"
},
{
"apps": {
"passbolt": "not-run"
},
"name": "isolated-restore",
"outcome": "not-run"
},
{
"apps": {
"passbolt": "not-run"
},
"name": "restored-check",
"outcome": "not-run"
},
{
"apps": {
"passbolt": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"passbolt": "not-run"
},
"name": "sentinel",
"outcome": "not-run"
},
{
"apps": {
"passbolt": "not-run",
"passbolt-prerequisites": "not-run"
},
"name": "local-prerequisites",
"outcome": "not-run"
},
{
"apps": {
"passbolt": "not-run",
"passbolt-prerequisites": "not-run"
},
"name": "restored-local-prerequisites",
"outcome": "not-run"
}
],
"started": "2026-10-07T17:25:00.017385043Z",
"target": {
"apps": [
"passbolt"
],
"id": "passbolt",
"kind": "app"
}
},
{
"binary_sha256": "5dfdde2c3e31ea22410c1d0a8e90ef7ba2c39afb159cd84e1e233c8fe094f4c3",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-4c57a66c",
"finished": "2026-10-07T13:38:26.344078557Z",
"head": "d4d352189363d3958231fc5225bb0e869334971b",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 4
},
"images": [
{
"id": "sha256:3eb66c712003216ac81802cef79dbfb7dcfb3e80aaf24ccab8be708649f68b5d",
"platform": "linux/amd64",
"service": "patchmon"
},
{
"id": "sha256:79bd7c99e923138f136f8009d6bffa66e21e9d4fda5c0c561b00fc9c90cfe537",
"platform": "linux/amd64",
"service": "database"
},
{
"id": "sha256:f84b0c4678011602b9b98c227a4dcd5468bf8b088b02fdd4165cb7758bad8058",
"platform": "linux/amd64",
"service": "redis"
},
{
"id": "sha256:b80c272f9e68727650f09960e88546990ea5590aec5bcbebd04547e728633044",
"platform": "linux/amd64",
"service": "guacd"
}
],
"name": "app-patchmon",
"observed_target_apps": [
"patchmon"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-patchmon.json",
"source_sha256": "bf7b51f837ea273063161f736be4583eabcadb43309c6dccee65366fdb560be9",
"stages": [
{
"apps": {
"patchmon": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"patchmon": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"patchmon": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"patchmon": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"patchmon": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"patchmon": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"patchmon": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"patchmon": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"patchmon": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"patchmon": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"patchmon": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"patchmon": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T13:37:02.863821716Z",
"target": {
"apps": [
"patchmon"
],
"id": "patchmon",
"kind": "app"
}
},
{
"binary_sha256": "fd7ffb47a78afb5adf0b3469c9f0c2020a0e972940685f6b4ef6f943cd8f39b8",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-eeb86d98",
"finished": "2026-10-07T11:43:34.693814249Z",
"head": "b17d9de4a75ab6bb895725d5be35898adbf2d5eb",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:da9b7f23e8b2d0d3240b6105e54e56b9626e4263e30ab871bbe831fa73428679",
"platform": "linux/amd64",
"service": "peanut"
}
],
"name": "app-peanut",
"observed_target_apps": [
"peanut"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-peanut.json",
"source_sha256": "85b76be3cdd1c93aeea556bdc883934fc2e47a91a29f1aca1ea7d924d5127cda",
"stages": [
{
"apps": {
"peanut": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"peanut": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"peanut": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"peanut": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"peanut": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"peanut": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"peanut": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"peanut": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"peanut": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"peanut": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"peanut": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"peanut": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T11:42:45.55332991Z",
"target": {
"apps": [
"peanut"
],
"id": "peanut",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-22c08040",
"finished": "2026-10-07T08:34:42.655842359Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:cbaec6ae439c14053f225d7a264a1e05fbca7328e1e2a5d76293e7beaf99246c",
"platform": "linux/amd64",
"service": "photoprism"
}
],
"name": "app-photoprism",
"observed_target_apps": [
"photoprism"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-photoprism.json",
"source_sha256": "d52703c07465e00095a8bfda8da7c22bd779b720ee6fc197cd0608eb349b4869",
"stages": [
{
"apps": {
"photoprism": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"photoprism": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"photoprism": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"photoprism": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"photoprism": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"photoprism": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"photoprism": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"photoprism": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"photoprism": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"photoprism": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"photoprism": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"photoprism": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:30:37.868678317Z",
"target": {
"apps": [
"photoprism"
],
"id": "photoprism",
"kind": "app"
}
},
{
"binary_sha256": "c7fc7b3533de5b5d55bae223476909f7ed3b50a646b52a6cb57993b3a698059e",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-ecc0717c",
"finished": "2026-10-07T15:41:20.802890922Z",
"head": "d175e030a47f6caa0d454bc88ff14f8dc7cc7fab",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:15d302c0f85902d6378e159b906b3ffc7b5ef2af079e1d296d1dcf3f5f217e29",
"platform": "linux/amd64",
"service": "pihole"
}
],
"name": "app-pihole",
"observed_target_apps": [
"pihole"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-pihole.json",
"source_sha256": "cbe9be675850d92b89a63577a00eb3a2750ec6e1564003b10ce3e8b5d8a34855",
"stages": [
{
"apps": {
"pihole": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"pihole": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"pihole": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"pihole": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"pihole": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"pihole": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"pihole": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"pihole": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"pihole": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"pihole": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"pihole": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"pihole": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T15:20:01.177954012Z",
"target": {
"apps": [
"pihole"
],
"id": "pihole",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "awaiting-external-credentials",
"cleanup": "not-run",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": false,
"platforms": [],
"service_count": 0
},
"images": [],
"name": "app-plex",
"observed_target_apps": [
"plex"
],
"outcome": "awaiting-external-credentials",
"platform": "",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-plex.json",
"source_sha256": "7e9fabfd6e199e6940925494df70177cc886a715e5ed85f1a3443fc3069da4c9",
"stages": [
{
"apps": {
"plex": "not-run"
},
"name": "install",
"outcome": "not-run"
},
{
"apps": {
"plex": "not-run"
},
"name": "setup-check",
"outcome": "not-run"
},
{
"apps": {
"plex": "not-run"
},
"name": "idempotency",
"outcome": "not-run"
},
{
"apps": {
"plex": "not-run"
},
"name": "restart",
"outcome": "not-run"
},
{
"apps": {
"plex": "not-run"
},
"name": "recovery",
"outcome": "not-run"
},
{
"apps": {
"plex": "not-run"
},
"name": "update",
"outcome": "not-run"
},
{
"apps": {
"plex": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"plex": "not-run"
},
"name": "backup",
"outcome": "not-run"
},
{
"apps": {
"plex": "not-run"
},
"name": "isolated-restore",
"outcome": "not-run"
},
{
"apps": {
"plex": "not-run"
},
"name": "restored-check",
"outcome": "not-run"
},
{
"apps": {
"plex": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"plex": "not-run"
},
"name": "sentinel",
"outcome": "not-run"
}
],
"started": "2026-10-07T08:30:37.868553756Z",
"target": {
"apps": [
"plex"
],
"id": "plex",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-8fd88949",
"finished": "2026-10-07T08:33:40.949538689Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:dda734886443b826a8f0dfa0d7bd672fbf3ffc80e8f2807bfec53d4226e8cfb0",
"platform": "linux/amd64",
"service": "portainer"
}
],
"name": "app-portainer",
"observed_target_apps": [
"portainer"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-portainer.json",
"source_sha256": "05d52714696e61a1f9a726e082f703364fb6abcba91a1e97888c54e831072d0e",
"stages": [
{
"apps": {
"portainer": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"portainer": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"portainer": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"portainer": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"portainer": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"portainer": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"portainer": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"portainer": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"portainer": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"portainer": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"portainer": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"portainer": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:30:37.868478271Z",
"target": {
"apps": [
"portainer"
],
"id": "portainer",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-ef73209b",
"finished": "2026-10-07T08:36:19.578978995Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:29754c7520f4b9654cf8ff98e19ac73b88e255c3a53f6236ebe9d52249bb6df3",
"platform": "linux/amd64",
"service": "postgresql"
}
],
"name": "app-postgresql",
"observed_target_apps": [
"postgresql"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; exact application data across isolated restore for postgresql only; other Apps have no workload or database-content assertion",
"source_file": "app-postgresql.json",
"source_sha256": "57b8ece0089d46faf4c51f1419842a9e232a96c34475472f2768b06b38bf8776",
"stages": [
{
"apps": {
"postgresql": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"postgresql": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"postgresql": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"postgresql": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"postgresql": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"postgresql": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"postgresql": "pass"
},
"name": "payload-seed",
"outcome": "pass"
},
{
"apps": {
"postgresql": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"postgresql": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"postgresql": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"postgresql": "pass"
},
"name": "payload-restored",
"outcome": "pass"
},
{
"apps": {
"postgresql": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:30:37.868410339Z",
"target": {
"apps": [
"postgresql"
],
"id": "postgresql",
"kind": "app"
}
},
{
"binary_sha256": "fd7ffb47a78afb5adf0b3469c9f0c2020a0e972940685f6b4ef6f943cd8f39b8",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-1c86445b",
"finished": "2026-10-07T11:25:23.853370866Z",
"head": "b17d9de4a75ab6bb895725d5be35898adbf2d5eb",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:66416213a3b43651d3521acc3987277b4f97ad0ae29acc581f910ef9bd3959bd",
"platform": "linux/amd64",
"service": "prometheus"
}
],
"name": "app-prometheus",
"observed_target_apps": [
"prometheus"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-prometheus.json",
"source_sha256": "848ad2b2335870abc3ddf7fea9735ffe150f765203063a94c6a92dfbc5a06aaf",
"stages": [
{
"apps": {
"prometheus": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"prometheus": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"prometheus": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"prometheus": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"prometheus": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"prometheus": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"prometheus": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"prometheus": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"prometheus": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"prometheus": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"prometheus": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"prometheus": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T11:23:50.893377512Z",
"target": {
"apps": [
"prometheus"
],
"id": "prometheus",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-f38ad735",
"finished": "2026-10-07T08:34:14.223240386Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:899607d03e6bb4d702464157700a5e9ba714eee49cf14334016fc56b0c38130f",
"platform": "linux/amd64",
"service": "prowlarr"
}
],
"name": "app-prowlarr",
"observed_target_apps": [
"prowlarr"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-prowlarr.json",
"source_sha256": "f6577a4aa15dcc10f0941efcac7e4846e75baf1e071eefd92e98a903069e0290",
"stages": [
{
"apps": {
"prowlarr": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"prowlarr": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"prowlarr": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"prowlarr": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"prowlarr": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"prowlarr": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"prowlarr": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"prowlarr": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"prowlarr": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"prowlarr": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"prowlarr": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"prowlarr": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:30:37.868244521Z",
"target": {
"apps": [
"prowlarr"
],
"id": "prowlarr",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-9034772b",
"finished": "2026-10-07T13:18:02.589742821Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:f1997322e699e5af789d8f522cca90d78ebe87dd3a972b8affda6382faeab2b8",
"platform": "linux/amd64",
"service": "qbittorrent"
}
],
"name": "app-qbittorrent",
"observed_target_apps": [
"qbittorrent"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-qbittorrent.json",
"source_sha256": "92e4ae7bbdbadaf6ae24f27d116eabde1cd6fd0aab9f7aa6e3ba56dedf5d112d",
"stages": [
{
"apps": {
"qbittorrent": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"qbittorrent": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"qbittorrent": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"qbittorrent": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"qbittorrent": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"qbittorrent": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"qbittorrent": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"qbittorrent": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"qbittorrent": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"qbittorrent": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"qbittorrent": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"qbittorrent": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T13:06:14.006629614Z",
"target": {
"apps": [
"qbittorrent"
],
"id": "qbittorrent",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-b29c4c65",
"finished": "2026-10-07T08:35:54.991202265Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:34a3a98b3b5d869daa2dd652143155044cb229bda273dae1b6966abcd2e039e8",
"platform": "linux/amd64",
"service": "radarr"
}
],
"name": "app-radarr",
"observed_target_apps": [
"radarr"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-radarr.json",
"source_sha256": "40ca3f489d59e08c600cd6aff518e2a056775b0308e16d4481c041608448b832",
"stages": [
{
"apps": {
"radarr": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"radarr": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"radarr": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"radarr": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"radarr": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"radarr": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"radarr": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"radarr": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"radarr": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"radarr": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"radarr": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"radarr": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:30:37.869430492Z",
"target": {
"apps": [
"radarr"
],
"id": "radarr",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-40212251",
"finished": "2026-10-07T13:05:31.912487668Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 2
},
"images": [
{
"id": "sha256:677bef3d96cfa807a8e076b411b8bb6e12db8744eebedeba24bc015c9822c01b",
"platform": "linux/amd64",
"service": "renovate"
},
{
"id": "sha256:831ef608fc00db376c4b7ccd3883a505e504005a43d578bcf6d22dc955d95e55",
"platform": "linux/amd64",
"service": "forgejo"
}
],
"name": "app-renovate",
"observed_target_apps": [
"renovate",
"forgejo"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion; Renovate prepared and inert (--version only), no dependency jobs, scheduler or pull-request claim; actual dedicated owned Forgejo PAT identity and exact persisted token ID before backup and after restore",
"source_file": "app-renovate.json",
"source_sha256": "e5b8174e2dd1672634ce2c2e853c92564d33549e3f43857929c4ce47e3382975",
"stages": [
{
"apps": {
"forgejo": "pass",
"renovate": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass",
"renovate": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass",
"renovate": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass",
"renovate": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass",
"renovate": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass",
"renovate": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"renovate": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"forgejo": "pass",
"renovate": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass",
"renovate": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass",
"renovate": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"renovate": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"forgejo": "pass",
"renovate": "pass"
},
"name": "sentinel",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass",
"renovate": "pass"
},
"name": "forge-token-identity",
"outcome": "pass"
},
{
"apps": {
"forgejo": "pass",
"renovate": "pass"
},
"name": "restored-forge-token-identity",
"outcome": "pass"
}
],
"started": "2026-10-07T12:56:43.268043796Z",
"target": {
"apps": [
"renovate"
],
"id": "renovate",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-e7be5160",
"finished": "2026-10-07T09:48:35.636167394Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:abdfb98c81b7e48c9b91f0870383f1b2bcdc3137d196dbfb8abe0b1ae713942f",
"platform": "linux/amd64",
"service": "restic"
}
],
"name": "app-restic",
"observed_target_apps": [
"restic"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-restic.json",
"source_sha256": "949d83806e4889e62f8f8a478c7e2e0281a3e54567017893d899b8212331a84c",
"stages": [
{
"apps": {
"restic": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"restic": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"restic": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"restic": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"restic": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"restic": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"restic": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"restic": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"restic": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"restic": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"restic": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"restic": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:48:24.752778027Z",
"target": {
"apps": [
"restic"
],
"id": "restic",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-c5ca1e11",
"finished": "2026-10-07T09:14:39.414319798Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:07792c85fd59f0ce2d987aab4f972cee2040b52404ee65e5509ee9212324ce5a",
"platform": "linux/amd64",
"service": "sabnzbd"
}
],
"name": "app-sabnzbd",
"observed_target_apps": [
"sabnzbd"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-sabnzbd.json",
"source_sha256": "a75e3eaad649ee719dd6b12c5f0834fb295b010f0f461e12746b9644d6a7ee99",
"stages": [
{
"apps": {
"sabnzbd": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"sabnzbd": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"sabnzbd": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"sabnzbd": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"sabnzbd": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"sabnzbd": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"sabnzbd": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"sabnzbd": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"sabnzbd": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"sabnzbd": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"sabnzbd": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"sabnzbd": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T09:14:03.862799455Z",
"target": {
"apps": [
"sabnzbd"
],
"id": "sabnzbd",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-bde6c4b1",
"finished": "2026-10-07T08:53:29.320856454Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:f36c27b79fd325d3c5f3dc23ef17a201a2ee03fa61b46f0786736641bf4dcf0f",
"platform": "linux/amd64",
"service": "scrypted"
}
],
"name": "app-scrypted",
"observed_target_apps": [
"scrypted"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-scrypted.json",
"source_sha256": "d52329020b465fbaef4d0eb576d0b1924e005eef4fca9488d35964107947a338",
"stages": [
{
"apps": {
"scrypted": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"scrypted": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"scrypted": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"scrypted": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"scrypted": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"scrypted": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"scrypted": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"scrypted": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"scrypted": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"scrypted": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"scrypted": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"scrypted": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:52:41.845280792Z",
"target": {
"apps": [
"scrypted"
],
"id": "scrypted",
"kind": "app"
}
},
{
"binary_sha256": "6d3d92a500bfff1fda316eeeed1b0ac27fe89c108393b33ba5998dae2aa88d68",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-a1e26c4f",
"finished": "2026-10-07T14:57:57.198201498Z",
"head": "ee7975a8d0946f33f3677119ae657dc89962babe",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 3
},
"images": [
{
"id": "sha256:41096ae9913468679bb5e05bbc19f44edcaf0eae45d67fcde224ffdeda9d3a1f",
"platform": "linux/amd64",
"service": "db"
},
{
"id": "sha256:0f70e98a63db10e169cff3f0720e3d4b7afd67ab7aec931b9a91113bff510d41",
"platform": "linux/amd64",
"service": "redis"
},
{
"id": "sha256:d3b8f07584d05a6cc1443bb86b48f916b452bbd49b0d6fea9f127fcf354bb490",
"platform": "linux/amd64",
"service": "seafile"
}
],
"name": "app-seafile",
"observed_target_apps": [
"seafile"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-seafile.json",
"source_sha256": "796976b2159023092406695ff33184d0743ec72005772361364194817df1a04f",
"stages": [
{
"apps": {
"seafile": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"seafile": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"seafile": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"seafile": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"seafile": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"seafile": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"seafile": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"seafile": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"seafile": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"seafile": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"seafile": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"seafile": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T14:38:59.940606705Z",
"target": {
"apps": [
"seafile"
],
"id": "seafile",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-e4ca40d4",
"finished": "2026-10-07T13:06:14.00632012Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:c1673c6c7835e21540cacbf517abb7c4a80d2893b3484bec1b1a11212ac247fb",
"platform": "linux/amd64",
"service": "seerr"
}
],
"name": "app-seerr",
"observed_target_apps": [
"seerr"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-seerr.json",
"source_sha256": "9e292a39dbb90cd71a9ea0400da5252f561e1aa95b7feb5743aab0b3f70fd4c9",
"stages": [
{
"apps": {
"seerr": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"seerr": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"seerr": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"seerr": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"seerr": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"seerr": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"seerr": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"seerr": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"seerr": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"seerr": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"seerr": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"seerr": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T13:04:41.856326423Z",
"target": {
"apps": [
"seerr"
],
"id": "seerr",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-e62577ed",
"finished": "2026-10-07T08:52:41.845081195Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:feb8c64211e4a10d9efb8c831d96b1687e674b3d86080a2ec9d150cdfc941293",
"platform": "linux/amd64",
"service": "slskd"
}
],
"name": "app-slskd",
"observed_target_apps": [
"slskd"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-slskd.json",
"source_sha256": "9c3f8bf9cc070fcb10a31d463a7a97c0338056e62105621d49bf9a7eb2f9c5e5",
"stages": [
{
"apps": {
"slskd": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"slskd": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"slskd": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"slskd": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"slskd": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"slskd": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"slskd": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"slskd": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"slskd": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"slskd": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"slskd": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"slskd": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:41:11.921833219Z",
"target": {
"apps": [
"slskd"
],
"id": "slskd",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-6542307d",
"finished": "2026-10-07T08:53:24.94320514Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:1a11b87590c6a6ddc63a5a72e6e5a0b545c063b5d5e99af54e458a426f1b7bb8",
"platform": "linux/amd64",
"service": "sonarr"
}
],
"name": "app-sonarr",
"observed_target_apps": [
"sonarr"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-sonarr.json",
"source_sha256": "9c966eeec109374f51c6e9fd32815cb48cce5dcc3188ddd64a1935a062628528",
"stages": [
{
"apps": {
"sonarr": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"sonarr": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"sonarr": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"sonarr": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"sonarr": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"sonarr": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"sonarr": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"sonarr": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"sonarr": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"sonarr": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"sonarr": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"sonarr": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:46:25.636522516Z",
"target": {
"apps": [
"sonarr"
],
"id": "sonarr",
"kind": "app"
}
},
{
"binary_sha256": "9c52cfe6dad38f9832a3613ff911f33f505cc0367afb539dbabf3d8498203012",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-97dfc1f7",
"finished": "2026-10-07T17:21:33.013837873Z",
"head": "72898709c83ad1ca243e7f3ceb7f0d086b61ef6f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:dccd57c84f9c4d46b43017952aeaa0e928e4626f15c5e7d0023a77b72f121df0",
"platform": "linux/amd64",
"service": "speedtest-tracker"
}
],
"name": "app-speedtest-tracker",
"observed_target_apps": [
"speedtest-tracker"
],
"outcome": "failed",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-speedtest-tracker.json",
"source_sha256": "e5cf259d8e1d137fc83a4d5b650a366d8423c0f4a883a2f6011525cfb708cfe5",
"stages": [
{
"apps": {
"speedtest-tracker": "fail"
},
"failures": [
{
"app": "speedtest-tracker",
"error": "timed out after 3m0s: HTTP 502; app_key_present=true app_key_file_readable=true pool_identity_includes_root=true php_upstream_listening=false launcher_source_matches=true launcher_source_executable=true launcher_compiled_matches=true launcher_compiled_executable=true php_service_wanted=true php_service_up=false php_config_valid=false php_config_error=config_open php_failure_path=main_config process_uid_zero=true failure_path_readable=true failure_path_writable=true failure_path_owner_current=true; ask the host administrator to review PHP-FPM confinement compatibility: its configuration appears readable but PHP-FPM cannot open it",
"hint": "A persistent HTTP 502 means nginx did not obtain a response from its pinned PHP-FPM upstream; verify owned application initialization and PHP-FPM readiness before changing the healthcheck route.",
"kind": "step.fail",
"step": "ready"
}
],
"name": "install",
"outcome": "fail",
"reason": "redacted CLI failure details retained"
},
{
"apps": {
"speedtest-tracker": "not-run"
},
"name": "setup-check",
"outcome": "not-run"
},
{
"apps": {
"speedtest-tracker": "not-run"
},
"name": "idempotency",
"outcome": "not-run"
},
{
"apps": {
"speedtest-tracker": "not-run"
},
"name": "restart",
"outcome": "not-run"
},
{
"apps": {
"speedtest-tracker": "not-run"
},
"name": "recovery",
"outcome": "not-run"
},
{
"apps": {
"speedtest-tracker": "not-run"
},
"name": "update",
"outcome": "not-run"
},
{
"apps": {
"speedtest-tracker": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"speedtest-tracker": "not-run"
},
"name": "backup",
"outcome": "not-run"
},
{
"apps": {
"speedtest-tracker": "not-run"
},
"name": "isolated-restore",
"outcome": "not-run"
},
{
"apps": {
"speedtest-tracker": "not-run"
},
"name": "restored-check",
"outcome": "not-run"
},
{
"apps": {
"speedtest-tracker": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"speedtest-tracker": "not-run"
},
"name": "sentinel",
"outcome": "not-run"
}
],
"started": "2026-10-07T17:15:19.147395793Z",
"target": {
"apps": [
"speedtest-tracker"
],
"id": "speedtest-tracker",
"kind": "app"
}
},
{
"binary_sha256": "fd7ffb47a78afb5adf0b3469c9f0c2020a0e972940685f6b4ef6f943cd8f39b8",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-463eba64",
"finished": "2026-10-07T11:59:10.374253242Z",
"head": "b17d9de4a75ab6bb895725d5be35898adbf2d5eb",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:8594300806dba2e587f4e2ad7f2a2c6e6328976907dd9de2bc37965a3d8d8d20",
"platform": "linux/amd64",
"service": "stalwart-mail"
}
],
"name": "app-stalwart-mail",
"observed_target_apps": [
"stalwart-mail"
],
"outcome": "manual",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-stalwart-mail.json",
"source_sha256": "93cf803409d1e73c457f46494ac661b1f5dec008e6c1c0b4311c02bb8650453a",
"stages": [
{
"apps": {
"stalwart-mail": "manual"
},
"failures": [
{
"app": "stalwart-mail",
"error": "Stalwart has no headless way to verify its administrator login",
"hint": "Open http://127.0.0.1:41141 and complete the first-run wizard for mail.e2e.selfhost.test; set the administrator admin@e2e.selfhost.test with the password from `self-host credentials`. Mail delivery needs separate SMTP ports, DNS, TLS and anti-abuse approval.",
"kind": "step.fail",
"step": "admin"
}
],
"name": "install",
"outcome": "manual",
"reason": "first administrator requires web UI"
},
{
"apps": {
"stalwart-mail": "not-run"
},
"name": "setup-check",
"outcome": "not-run"
},
{
"apps": {
"stalwart-mail": "not-run"
},
"name": "idempotency",
"outcome": "not-run"
},
{
"apps": {
"stalwart-mail": "not-run"
},
"name": "restart",
"outcome": "not-run"
},
{
"apps": {
"stalwart-mail": "not-run"
},
"name": "recovery",
"outcome": "not-run"
},
{
"apps": {
"stalwart-mail": "not-run"
},
"name": "update",
"outcome": "not-run"
},
{
"apps": {
"stalwart-mail": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"stalwart-mail": "not-run"
},
"name": "backup",
"outcome": "not-run"
},
{
"apps": {
"stalwart-mail": "not-run"
},
"name": "isolated-restore",
"outcome": "not-run"
},
{
"apps": {
"stalwart-mail": "not-run"
},
"name": "restored-check",
"outcome": "not-run"
},
{
"apps": {
"stalwart-mail": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"stalwart-mail": "not-run"
},
"name": "sentinel",
"outcome": "not-run"
}
],
"started": "2026-10-07T11:55:50.341882174Z",
"target": {
"apps": [
"stalwart-mail"
],
"id": "stalwart-mail",
"kind": "app"
}
},
{
"binary_sha256": "926e1c165d148ebdbe03885248d15caebf6b6be476e2c0c3ce0c8853bef97fbd",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-47004ba9",
"finished": "2026-10-07T12:30:08.143593247Z",
"head": "f06f1b262c4deaca1a2d538e86bd9843ed434f2f",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:c3a466dd9901ab1b24526225f16bd1dfa9c86c51cd15a7b5dcb509c28fbf9c5e",
"platform": "linux/amd64",
"service": "stirling-pdf"
}
],
"name": "app-stirling-pdf",
"observed_target_apps": [
"stirling-pdf"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-stirling-pdf.json",
"source_sha256": "e0dd63ca8f4a26f3f42c27f6c2613fbc477a22413de363f14edefa6edb9ddf78",
"stages": [
{
"apps": {
"stirling-pdf": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"stirling-pdf": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"stirling-pdf": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"stirling-pdf": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"stirling-pdf": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"stirling-pdf": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"stirling-pdf": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"stirling-pdf": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"stirling-pdf": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"stirling-pdf": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"stirling-pdf": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"stirling-pdf": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T12:27:03.874240594Z",
"target": {
"apps": [
"stirling-pdf"
],
"id": "stirling-pdf",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-298c2d48",
"finished": "2026-10-07T08:41:11.921050874Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:d2e46cb6ec1efe23b392e1e8f77ab54c12a2390df64fd0ee4d7328f7b510cb23",
"platform": "linux/amd64",
"service": "syncthing"
}
],
"name": "app-syncthing",
"observed_target_apps": [
"syncthing"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-syncthing.json",
"source_sha256": "901150de86aca028bf44331d326e4976d32f99f1ee3de17feecda35e70a87169",
"stages": [
{
"apps": {
"syncthing": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"syncthing": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"syncthing": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"syncthing": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"syncthing": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"syncthing": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"syncthing": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"syncthing": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"syncthing": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"syncthing": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"syncthing": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"syncthing": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:36:45.792839907Z",
"target": {
"apps": [
"syncthing"
],
"id": "syncthing",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "awaiting-external-credentials",
"cleanup": "not-run",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": false,
"platforms": [],
"service_count": 0
},
"images": [],
"name": "app-tailscale",
"observed_target_apps": [
"tailscale"
],
"outcome": "awaiting-external-credentials",
"platform": "",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-tailscale.json",
"source_sha256": "639fcba2f32869950613a836966ed6835c3823d1ab0b66c15f5298ef54ab4835",
"stages": [
{
"apps": {
"tailscale": "not-run"
},
"name": "install",
"outcome": "not-run"
},
{
"apps": {
"tailscale": "not-run"
},
"name": "setup-check",
"outcome": "not-run"
},
{
"apps": {
"tailscale": "not-run"
},
"name": "idempotency",
"outcome": "not-run"
},
{
"apps": {
"tailscale": "not-run"
},
"name": "restart",
"outcome": "not-run"
},
{
"apps": {
"tailscale": "not-run"
},
"name": "recovery",
"outcome": "not-run"
},
{
"apps": {
"tailscale": "not-run"
},
"name": "update",
"outcome": "not-run"
},
{
"apps": {
"tailscale": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"tailscale": "not-run"
},
"name": "backup",
"outcome": "not-run"
},
{
"apps": {
"tailscale": "not-run"
},
"name": "isolated-restore",
"outcome": "not-run"
},
{
"apps": {
"tailscale": "not-run"
},
"name": "restored-check",
"outcome": "not-run"
},
{
"apps": {
"tailscale": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"tailscale": "not-run"
},
"name": "sentinel",
"outcome": "not-run"
}
],
"started": "2026-10-07T08:41:11.921331641Z",
"target": {
"apps": [
"tailscale"
],
"id": "tailscale",
"kind": "app"
}
},
{
"binary_sha256": "de1dfe7b546d5da19478ff959da258230003d34ec7f1220c331f0e057861650d",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-29f79268",
"finished": "2026-10-07T12:17:52.698805418Z",
"head": "e4297c75564bc2e27d40e152ec10280593eaf931",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:844e1c4fc2b37449104b89dadb8a6879142d934c36d78c7382f5d59e4768e10d",
"platform": "linux/amd64",
"service": "tdarr"
}
],
"name": "app-tdarr",
"observed_target_apps": [
"tdarr"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-tdarr.json",
"source_sha256": "1b38a0cab965bf352e2348a9eeaf137457cd4116ff79e4e3bc67325927279e73",
"stages": [
{
"apps": {
"tdarr": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"tdarr": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"tdarr": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"tdarr": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"tdarr": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"tdarr": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"tdarr": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"tdarr": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"tdarr": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"tdarr": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"tdarr": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"tdarr": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T12:16:48.333729678Z",
"target": {
"apps": [
"tdarr"
],
"id": "tdarr",
"kind": "app"
}
},
{
"binary_sha256": "fd7ffb47a78afb5adf0b3469c9f0c2020a0e972940685f6b4ef6f943cd8f39b8",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-eea132dd",
"finished": "2026-10-07T12:03:08.186532276Z",
"head": "b17d9de4a75ab6bb895725d5be35898adbf2d5eb",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:3cbdabc2b181b45f36107c74824398d25cba6533dced69d59a9e0c3b30234301",
"platform": "linux/amd64",
"service": "technitium-dns"
}
],
"name": "app-technitium-dns",
"observed_target_apps": [
"technitium-dns"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-technitium-dns.json",
"source_sha256": "e5f54a4dc020bedc14a2dc41f0dfc86baf4e2cf18cc3b8ecafcec1a5894ff80a",
"stages": [
{
"apps": {
"technitium-dns": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"technitium-dns": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"technitium-dns": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"technitium-dns": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"technitium-dns": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"technitium-dns": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"technitium-dns": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"technitium-dns": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"technitium-dns": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"technitium-dns": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"technitium-dns": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"technitium-dns": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T11:59:10.383492069Z",
"target": {
"apps": [
"technitium-dns"
],
"id": "technitium-dns",
"kind": "app"
}
},
{
"binary_sha256": "20e3a9745340b39959cc23dea9efe3153101ad756bee014cfd73a2e1500b81e8",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-448a2c47",
"finished": "2026-10-07T15:54:42.998626427Z",
"head": "2d961a5763b551c2af6c28c64aa8e271573e4be2",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 3
},
"images": [
{
"id": "sha256:ee26f73f7d687975f938c2d4be31e767438bf8574368ae759b4aea920778802d",
"platform": "linux/amd64",
"service": "tracearr"
},
{
"id": "sha256:a4618863a155f0e305224cad44dc50196e3136f9bfb0b13127da82955a093f0c",
"platform": "linux/amd64",
"service": "timescale"
},
{
"id": "sha256:15f5a4aad4c3ba34b9874ddbc7f755b469dbd7b8a9e88c12690c52ef6c72465c",
"platform": "linux/amd64",
"service": "redis"
}
],
"name": "app-tracearr",
"observed_target_apps": [
"tracearr"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-tracearr.json",
"source_sha256": "17050658b3114bf8876c251c3bcb50da8d3f007312714a594de316286244fa23",
"stages": [
{
"apps": {
"tracearr": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"tracearr": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"tracearr": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"tracearr": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"tracearr": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"tracearr": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"tracearr": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"tracearr": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"tracearr": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"tracearr": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"tracearr": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"tracearr": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T15:49:39.813155737Z",
"target": {
"apps": [
"tracearr"
],
"id": "tracearr",
"kind": "app"
}
},
{
"binary_sha256": "fd7ffb47a78afb5adf0b3469c9f0c2020a0e972940685f6b4ef6f943cd8f39b8",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-f629a0f1",
"finished": "2026-10-07T11:25:28.753329836Z",
"head": "b17d9de4a75ab6bb895725d5be35898adbf2d5eb",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:b77b108f8e9b258a30f8bbd95d88d484881b3fe1013eb08c33fce0183eab69c7",
"platform": "linux/amd64",
"service": "traefik"
}
],
"name": "app-traefik",
"observed_target_apps": [
"traefik"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-traefik.json",
"source_sha256": "d66ff637536fea96c852639cb1623102773b27ee2625a6dc66c92c7254ac32a7",
"stages": [
{
"apps": {
"traefik": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"traefik": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"traefik": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"traefik": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"traefik": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"traefik": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"traefik": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"traefik": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"traefik": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"traefik": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"traefik": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"traefik": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T11:24:31.952585676Z",
"target": {
"apps": [
"traefik"
],
"id": "traefik",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-85cb602d",
"finished": "2026-10-07T08:37:49.644030629Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:d09f1618717cdcb5763ef00a6fddb4e699e17f87de8d8c27058b87a39a44aa63",
"platform": "linux/amd64",
"service": "transmission"
}
],
"name": "app-transmission",
"observed_target_apps": [
"transmission"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-transmission.json",
"source_sha256": "c3f05fde4c3521618c6210e0da57cf4286e97d30cc926d9788c5f899afd75d6d",
"stages": [
{
"apps": {
"transmission": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"transmission": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"transmission": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"transmission": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"transmission": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"transmission": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"transmission": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"transmission": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"transmission": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"transmission": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"transmission": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"transmission": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:37:04.549622951Z",
"target": {
"apps": [
"transmission"
],
"id": "transmission",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-a93a8046",
"finished": "2026-10-07T10:11:00.930891016Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 2
},
"images": [
{
"id": "sha256:9f376b984d0badac396b5366cc15a3561119bb4b256df14c2b7b984e9ea9c5be",
"platform": "linux/amd64",
"service": "umami"
},
{
"id": "sha256:319d040b5d68e3e5b98a238f0b5d375b4b4d9c5b3a6a9afb0308a8bcf0de72a5",
"platform": "linux/amd64",
"service": "db"
}
],
"name": "app-umami",
"observed_target_apps": [
"umami"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-umami.json",
"source_sha256": "b4ee9aea4bea73150a69d5344d63bc15430bcf906389d1352112624a5b2087b0",
"stages": [
{
"apps": {
"umami": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"umami": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"umami": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"umami": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"umami": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"umami": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"umami": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"umami": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"umami": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"umami": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"umami": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"umami": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:37:00.842590018Z",
"target": {
"apps": [
"umami"
],
"id": "umami",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-23fac9fd",
"finished": "2026-10-07T08:37:34.607694029Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:eb8e727fd324dd758ec05e61b2267693cbff3d2715c9b0a13055eca619837905",
"platform": "linux/amd64",
"service": "unbound"
}
],
"name": "app-unbound",
"observed_target_apps": [
"unbound"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-unbound.json",
"source_sha256": "c2e51f360ed40558d2b3f94b2398544e05cc645b8732b11c8a011f312ab447e5",
"stages": [
{
"apps": {
"unbound": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"unbound": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"unbound": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"unbound": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"unbound": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"unbound": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"unbound": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"unbound": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"unbound": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"unbound": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"unbound": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"unbound": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T08:36:54.839838116Z",
"target": {
"apps": [
"unbound"
],
"id": "unbound",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-90ff164e",
"finished": "2026-10-07T08:37:04.549348833Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": false,
"platforms": [],
"service_count": 0
},
"images": [],
"name": "app-uptime-kuma",
"observed_target_apps": [
"uptime-kuma"
],
"outcome": "manual",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-uptime-kuma.json",
"source_sha256": "43fa1fafb6bdfea86b63546a83e7b02a492d9a8725843487d5cf8daf5b6011ab",
"stages": [
{
"apps": {
"uptime-kuma": "manual"
},
"failures": [
{
"app": "uptime-kuma",
"error": "this App has no headless way to create its first administrator",
"hint": "Open http://127.0.0.1:46303, create the administrator admin with the password shown by `self-host credentials`; Uptime Kuma creates its first administrator in the web UI and has no HTTP setup API; open the App, create the administrator, then rerun setup., then run: self-host setup uptime-kuma",
"kind": "step.fail",
"step": "admin"
}
],
"name": "install",
"outcome": "manual",
"reason": "first administrator requires web UI"
},
{
"apps": {
"uptime-kuma": "not-run"
},
"name": "setup-check",
"outcome": "not-run"
},
{
"apps": {
"uptime-kuma": "not-run"
},
"name": "idempotency",
"outcome": "not-run"
},
{
"apps": {
"uptime-kuma": "not-run"
},
"name": "restart",
"outcome": "not-run"
},
{
"apps": {
"uptime-kuma": "not-run"
},
"name": "recovery",
"outcome": "not-run"
},
{
"apps": {
"uptime-kuma": "not-run"
},
"name": "update",
"outcome": "not-run"
},
{
"apps": {
"uptime-kuma": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"uptime-kuma": "not-run"
},
"name": "backup",
"outcome": "not-run"
},
{
"apps": {
"uptime-kuma": "not-run"
},
"name": "isolated-restore",
"outcome": "not-run"
},
{
"apps": {
"uptime-kuma": "not-run"
},
"name": "restored-check",
"outcome": "not-run"
},
{
"apps": {
"uptime-kuma": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"uptime-kuma": "not-run"
},
"name": "sentinel",
"outcome": "not-run"
}
],
"started": "2026-10-07T08:36:51.645428228Z",
"target": {
"apps": [
"uptime-kuma"
],
"id": "uptime-kuma",
"kind": "app"
}
},
{
"binary_sha256": "fd7ffb47a78afb5adf0b3469c9f0c2020a0e972940685f6b4ef6f943cd8f39b8",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-3a21468b",
"finished": "2026-10-07T11:42:24.652017233Z",
"head": "b17d9de4a75ab6bb895725d5be35898adbf2d5eb",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:726dea3590a895d94203fe918b97ae2af8f609f04675590be0070cf64797ba88",
"platform": "linux/amd64",
"service": "valkey"
}
],
"name": "app-valkey",
"observed_target_apps": [
"valkey"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-valkey.json",
"source_sha256": "8b827f05819b60b44f1efe65c19e244ec36450ab30dbd588aaa6874449be7459",
"stages": [
{
"apps": {
"valkey": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"valkey": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"valkey": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"valkey": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"valkey": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"valkey": "pass"
},
"name": "update",
"outcome": "pass"
},
{
"apps": {
"valkey": "not-run"
},
"name": "payload-seed",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"valkey": "pass"
},
"name": "backup",
"outcome": "pass"
},
{
"apps": {
"valkey": "pass"
},
"name": "isolated-restore",
"outcome": "pass"
},
{
"apps": {
"valkey": "pass"
},
"name": "restored-check",
"outcome": "pass"
},
{
"apps": {
"valkey": "not-run"
},
"name": "payload-restored",
"outcome": "not-run",
"recorded": false
},
{
"apps": {
"valkey": "pass"
},
"name": "sentinel",
"outcome": "pass"
}
],
"started": "2026-10-07T11:37:47.192395275Z",
"target": {
"apps": [
"valkey"
],
"id": "valkey",
"kind": "app"
}
},
{
"binary_sha256": "4d5c0aab60e18d4b2671eef3079b1abdc28f11f5520285301cd89caf03dc1cdc",
"classification": "runnable",
"cleanup": "pass",
"compose_project": "selfhost-e2e-6db04868",
"finished": "2026-10-07T08:36:51.645257051Z",
"head": "d724ebd4fb800a9f6cbb970e591c3692bbd817cc",
"image_proof": {
"coverage": "as-recorded; expected-service completeness is a harness obligation",
"immutable_ids_recorded": true,
"platforms": [
"linux/amd64"
],
"service_count": 1
},
"images": [
{
"id": "sha256:b4312ccf9634e3b5e7044a90ca13169c78b2627c648b81092f0523a5d07fd7f6",
"platform": "linux/amd64",
"service": "vaultwarden"
}
],
"name": "app-vaultwarden",
"observed_target_apps": [
"vaultwarden"
],
"outcome": "pass",
"platform": "linux/amd64",
"probe": "App Setup/Check and filesystem backup sentinel; no workload or database-content assertion",
"source_file": "app-vaultwarden.json",
"source_sha256": "7d14cbcc5c3835878a6d812396ad4f4ab436344da808fd49cd1ff4b7c65be253",
"stages": [
{
"apps": {
"vaultwarden": "pass"
},
"name": "install",
"outcome": "pass"
},
{
"apps": {
"vaultwarden": "pass"
},
"name": "setup-check",
"outcome": "pass"
},
{
"apps": {
"vaultwarden": "pass"
},
"name": "idempotency",
"outcome": "pass"
},
{
"apps": {
"vaultwarden": "pass"
},
"name": "restart",
"outcome": "pass"
},
{
"apps": {
"vaultwarden": "pass"
},
"name": "recovery",
"outcome": "pass"
},
{
"apps": {
"vaultwarden": "pass"
},
"name": "update",
"o