Big steps close-out: Wanderer, Termix, Homepage, Seerr live (bench + box + undo); R-1335/R-1311/R-1320/R-1317 closed, R-1338 opened, R-1334 VERIFY (0 refused in two dry runs, no login); 09 decision 279 + [DESIGN] path rule; STATUS, CONTEXT, evidence
gates / gates (push) Successful in 2m53s
gates / gates (push) Successful in 2m53s
This commit is contained in:
1 parent
3c0a33c1a0
commit
1be7aa87dc
141 files changed
+14955
-11
No files matched your search
@@ -1153,6 +1153,26 @@ its length, and both fixes cost something the household would notice — operato
|
||||
major gets automated by accident). Why A: the brief („a normal step if it counts as a main version in our ladder
|
||||
rules, else the lane") and the one-comparator rule; the box walk + soak is the guard either way.
|
||||
|
||||
### 2026-10-28 (afternoon, attended) — the four big steps; D59 ends; Wanderer's inbound federation stays off
|
||||
|
||||
279. **D59 ends: Wanderer is offered again** after its big step v0.20.0 → v0.21.2 went live (catalog `1825247`), and
|
||||
**its inbound federation stays OFF** — the template sets no `POCKETBASE_PROXY_SECRET`, so v0.21 rejects every
|
||||
inbound ActivityPub delivery (fail closed, upstream's docs). Options: off (a family instance takes nothing from
|
||||
strangers' servers; the route GHSA-fprh abused stays shut) or on (a generated shared secret; other servers deliver
|
||||
follows, comments, updates). *Operator, 2026-10-28, at the Wanderer STOP; CC's pick both times.*
|
||||
|
||||
**[DESIGN] A pin move needs its step — also when no box runs the app (2026-10-28, stated here because the brief asked
|
||||
for „the rule for a pin change when no box runs the old version" and this document did not say it).** The rule lives in
|
||||
the catalog: `app-catalog-felhom.eu/CLAUDE.md` („An `image:` move needs its TEST RECORD") and its gates —
|
||||
`check-test-record.py` (the newest ladder entry IS the compose) and `check-test-record-move.py` (a moved ref must add a
|
||||
proven entry). There is no exception for an app no box runs: the writer (`upgrade-test.py --write-ladder`) refuses
|
||||
unless the bench AND the box walk say `proven`, so every big step is a normal ladder step. A big step's UNDO is proven
|
||||
on 9202 as well (the 2026-10-27 Jellyfin method, generalised in `audits/dockerhub-bigsteps-2026-10-28/undo_proof2.py`):
|
||||
TO with failing checks must end `undone` and the seed must read back on FROM. **The broken probe must fail on any app:**
|
||||
a single-page app answers 200 on every path, so a „no such path" probe passed and Termix's update ended `done`; the
|
||||
tool now probes port 1. `test-record-move` also refuses a `memory_tight` step whose range does not raise the limit —
|
||||
Wanderer's Meilisearch went 256 → 384 MB and was measured again (it sizes itself to its limit: 88.8 %).
|
||||
|
||||
### 2026-10-28 (day, attended) — RomM kept; the runtime cache fills itself in CI
|
||||
|
||||
277. **D61 = keep RomM offered** (R-1330) while no RomM release carries Node ≥ 24.22.1; the first one that does is taken
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
[13:22:12] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[13:22:12] MV-homepage: deploying homepage at FROM {'homepage': 'ghcr.io/gethomepage/homepage:v1.13.2'}
|
||||
[13:23:07] FROM settled=True in 30.9s :: {"homepage": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[13:23:07] fixture: the BOX walk's own (Homepage), through upgrade_boxport
|
||||
[13:23:07] homepage: first-start config read: services=['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'] bookmarks=['Developer', 'Developer/Github', 'Entertainment', 'Entertainment/YouTube', 'Social', 'Social/Reddit']
|
||||
[13:23:07] homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])
|
||||
[13:23:07] C1 (seed reads back BEFORE): True
|
||||
[13:23:07] MV-homepage: swapping to TO {'homepage': 'ghcr.io/gethomepage/homepage:v2.7.0'}
|
||||
[13:23:25] TO up -d rc=0
|
||||
[13:23:56] TO settled=True in 30.9s :: {"homepage": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[13:23:56] migration lines observed: 0
|
||||
[13:23:56] homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])
|
||||
[13:23:56] RESULT (seed reads back AFTER): True
|
||||
[13:23:57] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:3000
|
||||
[13:24:12] + 15s homepage=154M/256M peak=171M kills=0 rs=0 reqs=280
|
||||
[13:24:27] + 30s homepage=156M/256M peak=199M kills=0 rs=0 reqs=562
|
||||
[13:24:42] + 45s homepage=155M/256M peak=199M kills=0 rs=0 reqs=844
|
||||
[13:24:57] + 60s homepage=162M/256M peak=199M kills=0 rs=0 reqs=1127
|
||||
[13:25:12] + 76s homepage=160M/256M peak=199M kills=0 rs=0 reqs=1409
|
||||
[13:25:27] + 91s homepage=160M/256M peak=199M kills=0 rs=0 reqs=1692
|
||||
[13:25:43] + 106s homepage=161M/256M peak=199M kills=0 rs=0 reqs=1972
|
||||
[13:25:58] + 121s homepage=161M/256M peak=199M kills=0 rs=0 reqs=2256
|
||||
[13:26:13] + 136s homepage=160M/256M peak=199M kills=0 rs=0 reqs=2539
|
||||
[13:26:28] + 151s homepage=162M/256M peak=199M kills=0 rs=0 reqs=2822
|
||||
[13:26:43] + 166s homepage=161M/256M peak=199M kills=0 rs=0 reqs=3102
|
||||
[13:26:58] + 182s homepage=161M/256M peak=199M kills=0 rs=0 reqs=3386
|
||||
[13:27:13] + 197s homepage=161M/256M peak=199M kills=0 rs=0 reqs=3670
|
||||
[13:27:28] + 212s homepage=161M/256M peak=199M kills=0 rs=0 reqs=3954
|
||||
[13:27:44] + 227s homepage=161M/256M peak=199M kills=0 rs=0 reqs=4235
|
||||
[13:27:59] + 242s homepage=162M/256M peak=199M kills=0 rs=0 reqs=4519
|
||||
[13:28:14] + 257s homepage=162M/256M peak=199M kills=0 rs=0 reqs=4802
|
||||
[13:28:29] + 272s homepage=162M/256M peak=199M kills=0 rs=0 reqs=5085
|
||||
[13:28:44] + 288s homepage=163M/256M peak=199M kills=0 rs=0 reqs=5366
|
||||
[13:28:59] + 303s homepage=163M/256M peak=199M kills=0 rs=0 reqs=5651
|
||||
[13:29:14] + 318s homepage=163M/256M peak=199M kills=0 rs=0 reqs=5932
|
||||
[13:29:30] + 333s homepage=162M/256M peak=199M kills=0 rs=0 reqs=6216
|
||||
[13:29:45] + 348s homepage=162M/256M peak=199M kills=0 rs=0 reqs=6498
|
||||
[13:30:00] + 363s homepage=163M/256M peak=199M kills=0 rs=0 reqs=6782
|
||||
[13:30:15] + 378s homepage=162M/256M peak=199M kills=0 rs=0 reqs=7064
|
||||
[13:30:30] + 393s homepage=164M/256M peak=199M kills=0 rs=0 reqs=7348
|
||||
[13:30:45] + 408s homepage=163M/256M peak=199M kills=0 rs=0 reqs=7633
|
||||
[13:31:00] + 424s homepage=163M/256M peak=199M kills=0 rs=0 reqs=7917
|
||||
[13:31:15] + 439s homepage=163M/256M peak=199M kills=0 rs=0 reqs=8202
|
||||
[13:31:31] + 454s homepage=163M/256M peak=199M kills=0 rs=0 reqs=8486
|
||||
[13:31:46] + 469s homepage=163M/256M peak=199M kills=0 rs=0 reqs=8769
|
||||
[13:32:01] + 484s homepage=163M/256M peak=199M kills=0 rs=0 reqs=9054
|
||||
[13:32:16] + 499s homepage=163M/256M peak=199M kills=0 rs=0 reqs=9339
|
||||
[13:32:31] + 514s homepage=163M/256M peak=199M kills=0 rs=0 reqs=9623
|
||||
[13:32:46] + 530s homepage=163M/256M peak=199M kills=0 rs=0 reqs=9907
|
||||
[13:33:01] + 545s homepage=162M/256M peak=199M kills=0 rs=0 reqs=10191
|
||||
[13:33:17] + 560s homepage=163M/256M peak=199M kills=0 rs=0 reqs=10475
|
||||
[13:33:32] + 575s homepage=165M/256M peak=199M kills=0 rs=0 reqs=10759
|
||||
[13:33:47] + 590s homepage=163M/256M peak=199M kills=0 rs=0 reqs=11044
|
||||
[13:34:02] + 605s homepage=163M/256M peak=199M kills=0 rs=0 reqs=11328
|
||||
[13:34:02] memory watch: killed=False tight=[] requests=11329 codes={'200': 11329}
|
||||
[13:34:02] MV-homepage: ABORT — putting the FROM images back
|
||||
[13:34:34] homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])
|
||||
[13:34:34] ABORT: app came back in 30.9s; data present=True
|
||||
{
|
||||
"harness_version": 5,
|
||||
"edge": "MV-homepage",
|
||||
"app": "homepage",
|
||||
"note": "night 2026-09-23 within-a-major move: homepage=ghcr.io/gethomepage/homepage:v2.7.0",
|
||||
"from": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v1.13.2"
|
||||
},
|
||||
"to": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v2.7.0"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": null,
|
||||
"abort": "starts-and-serves",
|
||||
"abort_detail": null,
|
||||
"engine_state_after": null,
|
||||
"memory": {
|
||||
"soak_s": 605.6,
|
||||
"requested_s": 600,
|
||||
"requests": 11329,
|
||||
"codes": {
|
||||
"200": 11329
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"peak": 208699392,
|
||||
"peak_pct": 0.777,
|
||||
"anon_peak_sampled": 161771520,
|
||||
"anon_peak_pct": 0.603,
|
||||
"swap_peak": 0,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"venue_swap_bytes": 0,
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"bench_overrides": null,
|
||||
"duration_s": 30.9,
|
||||
"measured_at": "2026-10-28T13:34:34Z",
|
||||
"evidence": "evidence/MV-homepage",
|
||||
"scratch_cleared": [],
|
||||
"files_changed": [],
|
||||
"files_changed_detail": [],
|
||||
"files_ignored": [],
|
||||
"total_s": 741.8
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"homepage": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
[2Khomepage | Skipping ownership changes for /app/config
|
||||
[2Khomepage | Skipping ownership changes for /app/config/logs
|
||||
[2Khomepage | /app/.next already owned by correct UID/GID or running as root, skipping chown
|
||||
[2Khomepage | ▲ Next.js 16.2.6
|
||||
[2Khomepage | - Local: http://[::1]:3000
|
||||
[2Khomepage | - Network: http://[::]:3000
|
||||
[2Khomepage | ✓ Ready in 0ms
|
||||
+1
@@ -0,0 +1 @@
|
||||
null
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+762
@@ -0,0 +1,762 @@
|
||||
[
|
||||
{
|
||||
"t": 15.1,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 161652736,
|
||||
"peak": 179814400,
|
||||
"anon": 150859776,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 280
|
||||
},
|
||||
{
|
||||
"t": 30.3,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 163991552,
|
||||
"peak": 208699392,
|
||||
"anon": 152416256,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 562
|
||||
},
|
||||
{
|
||||
"t": 45.4,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 163385344,
|
||||
"peak": 208699392,
|
||||
"anon": 152231936,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 844
|
||||
},
|
||||
{
|
||||
"t": 60.5,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 169988096,
|
||||
"peak": 208699392,
|
||||
"anon": 158003200,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 1127
|
||||
},
|
||||
{
|
||||
"t": 75.6,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 168656896,
|
||||
"peak": 208699392,
|
||||
"anon": 157360128,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 1409
|
||||
},
|
||||
{
|
||||
"t": 90.8,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 168165376,
|
||||
"peak": 208699392,
|
||||
"anon": 156856320,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 1692
|
||||
},
|
||||
{
|
||||
"t": 105.9,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 169406464,
|
||||
"peak": 208699392,
|
||||
"anon": 158060544,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 1972
|
||||
},
|
||||
{
|
||||
"t": 121.0,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 169168896,
|
||||
"peak": 208699392,
|
||||
"anon": 157667328,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 2256
|
||||
},
|
||||
{
|
||||
"t": 136.2,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 168607744,
|
||||
"peak": 208699392,
|
||||
"anon": 157224960,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 2539
|
||||
},
|
||||
{
|
||||
"t": 151.3,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 170373120,
|
||||
"peak": 208699392,
|
||||
"anon": 158826496,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 2822
|
||||
},
|
||||
{
|
||||
"t": 166.4,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 169033728,
|
||||
"peak": 208699392,
|
||||
"anon": 157913088,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3102
|
||||
},
|
||||
{
|
||||
"t": 181.6,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 169242624,
|
||||
"peak": 208699392,
|
||||
"anon": 157732864,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3386
|
||||
},
|
||||
{
|
||||
"t": 196.7,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 169426944,
|
||||
"peak": 208699392,
|
||||
"anon": 157798400,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3670
|
||||
},
|
||||
{
|
||||
"t": 211.8,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 168857600,
|
||||
"peak": 208699392,
|
||||
"anon": 157683712,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3954
|
||||
},
|
||||
{
|
||||
"t": 227.0,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 169488384,
|
||||
"peak": 208699392,
|
||||
"anon": 157790208,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 4235
|
||||
},
|
||||
{
|
||||
"t": 242.1,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 170385408,
|
||||
"peak": 208699392,
|
||||
"anon": 158494720,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 4519
|
||||
},
|
||||
{
|
||||
"t": 257.2,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 169967616,
|
||||
"peak": 208699392,
|
||||
"anon": 158564352,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 4802
|
||||
},
|
||||
{
|
||||
"t": 272.4,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 170127360,
|
||||
"peak": 208699392,
|
||||
"anon": 159055872,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 5085
|
||||
},
|
||||
{
|
||||
"t": 287.5,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171749376,
|
||||
"peak": 208699392,
|
||||
"anon": 160464896,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 5366
|
||||
},
|
||||
{
|
||||
"t": 302.6,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171405312,
|
||||
"peak": 208699392,
|
||||
"anon": 159744000,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 5651
|
||||
},
|
||||
{
|
||||
"t": 317.7,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171618304,
|
||||
"peak": 208699392,
|
||||
"anon": 160129024,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 5932
|
||||
},
|
||||
{
|
||||
"t": 332.9,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 170696704,
|
||||
"peak": 208699392,
|
||||
"anon": 159551488,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6216
|
||||
},
|
||||
{
|
||||
"t": 348.0,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 170672128,
|
||||
"peak": 208699392,
|
||||
"anon": 159531008,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6498
|
||||
},
|
||||
{
|
||||
"t": 363.1,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171352064,
|
||||
"peak": 208699392,
|
||||
"anon": 160030720,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6782
|
||||
},
|
||||
{
|
||||
"t": 378.3,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 170725376,
|
||||
"peak": 208699392,
|
||||
"anon": 159576064,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 7064
|
||||
},
|
||||
{
|
||||
"t": 393.4,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 172216320,
|
||||
"peak": 208699392,
|
||||
"anon": 160309248,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 7348
|
||||
},
|
||||
{
|
||||
"t": 408.5,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171229184,
|
||||
"peak": 208699392,
|
||||
"anon": 159686656,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 7633
|
||||
},
|
||||
{
|
||||
"t": 423.7,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171028480,
|
||||
"peak": 208699392,
|
||||
"anon": 159797248,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 7917
|
||||
},
|
||||
{
|
||||
"t": 438.8,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171425792,
|
||||
"peak": 208699392,
|
||||
"anon": 159899648,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 8202
|
||||
},
|
||||
{
|
||||
"t": 454.0,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171757568,
|
||||
"peak": 208699392,
|
||||
"anon": 159948800,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 8486
|
||||
},
|
||||
{
|
||||
"t": 469.1,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171950080,
|
||||
"peak": 208699392,
|
||||
"anon": 160251904,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 8769
|
||||
},
|
||||
{
|
||||
"t": 484.2,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171294720,
|
||||
"peak": 208699392,
|
||||
"anon": 160100352,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9054
|
||||
},
|
||||
{
|
||||
"t": 499.4,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171728896,
|
||||
"peak": 208699392,
|
||||
"anon": 159932416,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9339
|
||||
},
|
||||
{
|
||||
"t": 514.5,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171315200,
|
||||
"peak": 208699392,
|
||||
"anon": 160292864,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9623
|
||||
},
|
||||
{
|
||||
"t": 529.7,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171278336,
|
||||
"peak": 208699392,
|
||||
"anon": 160030720,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9907
|
||||
},
|
||||
{
|
||||
"t": 544.8,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 170803200,
|
||||
"peak": 208699392,
|
||||
"anon": 159604736,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 10191
|
||||
},
|
||||
{
|
||||
"t": 559.9,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171347968,
|
||||
"peak": 208699392,
|
||||
"anon": 159899648,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 10475
|
||||
},
|
||||
{
|
||||
"t": 575.0,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 173502464,
|
||||
"peak": 208699392,
|
||||
"anon": 161771520,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 10759
|
||||
},
|
||||
{
|
||||
"t": 590.2,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171962368,
|
||||
"peak": 208699392,
|
||||
"anon": 160731136,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 11044
|
||||
},
|
||||
{
|
||||
"t": 605.3,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"current": 171524096,
|
||||
"peak": 208699392,
|
||||
"anon": 160374784,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 11328
|
||||
}
|
||||
]
|
||||
Whitespace-only changes.
+58
@@ -0,0 +1,58 @@
|
||||
[13:22:12] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[13:22:12] MV-homepage: deploying homepage at FROM {'homepage': 'ghcr.io/gethomepage/homepage:v1.13.2'}
|
||||
[13:23:07] FROM settled=True in 30.9s :: {"homepage": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[13:23:07] fixture: the BOX walk's own (Homepage), through upgrade_boxport
|
||||
[13:23:07] homepage: first-start config read: services=['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'] bookmarks=['Developer', 'Developer/Github', 'Entertainment', 'Entertainment/YouTube', 'Social', 'Social/Reddit']
|
||||
[13:23:07] homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])
|
||||
[13:23:07] C1 (seed reads back BEFORE): True
|
||||
[13:23:07] MV-homepage: swapping to TO {'homepage': 'ghcr.io/gethomepage/homepage:v2.7.0'}
|
||||
[13:23:25] TO up -d rc=0
|
||||
[13:23:56] TO settled=True in 30.9s :: {"homepage": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[13:23:56] migration lines observed: 0
|
||||
[13:23:56] homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])
|
||||
[13:23:56] RESULT (seed reads back AFTER): True
|
||||
[13:23:57] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:3000
|
||||
[13:24:12] + 15s homepage=154M/256M peak=171M kills=0 rs=0 reqs=280
|
||||
[13:24:27] + 30s homepage=156M/256M peak=199M kills=0 rs=0 reqs=562
|
||||
[13:24:42] + 45s homepage=155M/256M peak=199M kills=0 rs=0 reqs=844
|
||||
[13:24:57] + 60s homepage=162M/256M peak=199M kills=0 rs=0 reqs=1127
|
||||
[13:25:12] + 76s homepage=160M/256M peak=199M kills=0 rs=0 reqs=1409
|
||||
[13:25:27] + 91s homepage=160M/256M peak=199M kills=0 rs=0 reqs=1692
|
||||
[13:25:43] + 106s homepage=161M/256M peak=199M kills=0 rs=0 reqs=1972
|
||||
[13:25:58] + 121s homepage=161M/256M peak=199M kills=0 rs=0 reqs=2256
|
||||
[13:26:13] + 136s homepage=160M/256M peak=199M kills=0 rs=0 reqs=2539
|
||||
[13:26:28] + 151s homepage=162M/256M peak=199M kills=0 rs=0 reqs=2822
|
||||
[13:26:43] + 166s homepage=161M/256M peak=199M kills=0 rs=0 reqs=3102
|
||||
[13:26:58] + 182s homepage=161M/256M peak=199M kills=0 rs=0 reqs=3386
|
||||
[13:27:13] + 197s homepage=161M/256M peak=199M kills=0 rs=0 reqs=3670
|
||||
[13:27:28] + 212s homepage=161M/256M peak=199M kills=0 rs=0 reqs=3954
|
||||
[13:27:44] + 227s homepage=161M/256M peak=199M kills=0 rs=0 reqs=4235
|
||||
[13:27:59] + 242s homepage=162M/256M peak=199M kills=0 rs=0 reqs=4519
|
||||
[13:28:14] + 257s homepage=162M/256M peak=199M kills=0 rs=0 reqs=4802
|
||||
[13:28:29] + 272s homepage=162M/256M peak=199M kills=0 rs=0 reqs=5085
|
||||
[13:28:44] + 288s homepage=163M/256M peak=199M kills=0 rs=0 reqs=5366
|
||||
[13:28:59] + 303s homepage=163M/256M peak=199M kills=0 rs=0 reqs=5651
|
||||
[13:29:14] + 318s homepage=163M/256M peak=199M kills=0 rs=0 reqs=5932
|
||||
[13:29:30] + 333s homepage=162M/256M peak=199M kills=0 rs=0 reqs=6216
|
||||
[13:29:45] + 348s homepage=162M/256M peak=199M kills=0 rs=0 reqs=6498
|
||||
[13:30:00] + 363s homepage=163M/256M peak=199M kills=0 rs=0 reqs=6782
|
||||
[13:30:15] + 378s homepage=162M/256M peak=199M kills=0 rs=0 reqs=7064
|
||||
[13:30:30] + 393s homepage=164M/256M peak=199M kills=0 rs=0 reqs=7348
|
||||
[13:30:45] + 408s homepage=163M/256M peak=199M kills=0 rs=0 reqs=7633
|
||||
[13:31:00] + 424s homepage=163M/256M peak=199M kills=0 rs=0 reqs=7917
|
||||
[13:31:15] + 439s homepage=163M/256M peak=199M kills=0 rs=0 reqs=8202
|
||||
[13:31:31] + 454s homepage=163M/256M peak=199M kills=0 rs=0 reqs=8486
|
||||
[13:31:46] + 469s homepage=163M/256M peak=199M kills=0 rs=0 reqs=8769
|
||||
[13:32:01] + 484s homepage=163M/256M peak=199M kills=0 rs=0 reqs=9054
|
||||
[13:32:16] + 499s homepage=163M/256M peak=199M kills=0 rs=0 reqs=9339
|
||||
[13:32:31] + 514s homepage=163M/256M peak=199M kills=0 rs=0 reqs=9623
|
||||
[13:32:46] + 530s homepage=163M/256M peak=199M kills=0 rs=0 reqs=9907
|
||||
[13:33:01] + 545s homepage=162M/256M peak=199M kills=0 rs=0 reqs=10191
|
||||
[13:33:17] + 560s homepage=163M/256M peak=199M kills=0 rs=0 reqs=10475
|
||||
[13:33:32] + 575s homepage=165M/256M peak=199M kills=0 rs=0 reqs=10759
|
||||
[13:33:47] + 590s homepage=163M/256M peak=199M kills=0 rs=0 reqs=11044
|
||||
[13:34:02] + 605s homepage=163M/256M peak=199M kills=0 rs=0 reqs=11328
|
||||
[13:34:02] memory watch: killed=False tight=[] requests=11329 codes={'200': 11329}
|
||||
[13:34:02] MV-homepage: ABORT — putting the FROM images back
|
||||
[13:34:34] homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])
|
||||
[13:34:34] ABORT: app came back in 30.9s; data present=True
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
[2Khomepage | Skipping ownership changes for /app/config
|
||||
[2Khomepage | Skipping ownership changes for /app/config/logs
|
||||
[2Khomepage | /app/.next already owned by correct UID/GID or running as root, skipping chown
|
||||
[2Khomepage | ▲ Next.js 16.4.1
|
||||
[2Khomepage | - Local: http://[::1]:3000
|
||||
[2Khomepage | - Network: http://[::]:3000
|
||||
[2Khomepage | ✓ Ready in 0ms
|
||||
[2Khomepage | ✓ Running next.config took 2ms
|
||||
[2Khomepage | [2026-10-28T13:23:55.893Z] [32minfo[39m: widgets.yaml was copied to the config folder
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"homepage": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
}
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"harness_version": 5,
|
||||
"edge": "MV-homepage",
|
||||
"app": "homepage",
|
||||
"note": "night 2026-09-23 within-a-major move: homepage=ghcr.io/gethomepage/homepage:v2.7.0",
|
||||
"from": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v1.13.2"
|
||||
},
|
||||
"to": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v2.7.0"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": null,
|
||||
"abort": "starts-and-serves",
|
||||
"abort_detail": null,
|
||||
"engine_state_after": null,
|
||||
"memory": {
|
||||
"soak_s": 605.6,
|
||||
"requested_s": 600,
|
||||
"requests": 11329,
|
||||
"codes": {
|
||||
"200": 11329
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"limit": 268435456,
|
||||
"peak": 208699392,
|
||||
"peak_pct": 0.777,
|
||||
"anon_peak_sampled": 161771520,
|
||||
"anon_peak_pct": 0.603,
|
||||
"swap_peak": 0,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"venue_swap_bytes": 0,
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"bench_overrides": null,
|
||||
"duration_s": 30.9,
|
||||
"measured_at": "2026-10-28T13:34:34Z",
|
||||
"evidence": "evidence/MV-homepage",
|
||||
"scratch_cleared": [],
|
||||
"files_changed": [],
|
||||
"files_changed_detail": [],
|
||||
"files_ignored": [],
|
||||
"total_s": 741.8
|
||||
}
|
||||
+231
@@ -0,0 +1,231 @@
|
||||
{
|
||||
"app": "homepage",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v1.13.2"
|
||||
},
|
||||
"to": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v2.7.0"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v1.13.2"
|
||||
},
|
||||
"installed_images": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v1.13.2"
|
||||
},
|
||||
"catalog_images": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v1.13.2"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/gethomepage/homepage:v1.13.2"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"homepage ghcr.io/gethomepage/homepage:v1.13.2 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"setup_gate_before": {
|
||||
"browser": {
|
||||
"status": "302",
|
||||
"redirect": "https://felhom.enkisfelhom.hu/__family/start?…"
|
||||
},
|
||||
"script": {
|
||||
"status": "401",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"seed": "read_back",
|
||||
"drill_commit": "05ffd16393f5",
|
||||
"sync_waited_s": 4.5,
|
||||
"badge_before": {
|
||||
"hu": [
|
||||
{
|
||||
"title": "Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.",
|
||||
"text": "Frissítés elérhető — ma"
|
||||
}
|
||||
],
|
||||
"en": [
|
||||
{
|
||||
"title": "A newer version of this app is available. Select the Update button to start it.",
|
||||
"text": "Update available — today"
|
||||
}
|
||||
]
|
||||
},
|
||||
"measured_at": "2026-10-28T14:06:00Z",
|
||||
"update": {
|
||||
"accepted": true,
|
||||
"http": "202",
|
||||
"phases": [
|
||||
{
|
||||
"t": 0.0,
|
||||
"phase": "backing-up",
|
||||
"label": "Biztonsági mentés készül a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 2.1,
|
||||
"phase": "safety-dump",
|
||||
"label": "Adatbázis pillanatkép…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 3.1,
|
||||
"phase": "pulling",
|
||||
"label": "Új verzió letöltése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 15.4,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok másolása a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 21.5,
|
||||
"phase": "starting",
|
||||
"label": "Indítás az új verzióval…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 22.6,
|
||||
"phase": "verifying",
|
||||
"label": "Működés ellenőrzése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 32.8,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 32.8,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v2.7.0"
|
||||
},
|
||||
"installed_images": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v2.7.0"
|
||||
},
|
||||
"catalog_images": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v2.7.0"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/gethomepage/homepage:v2.7.0"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"homepage ghcr.io/gethomepage/homepage:v2.7.0 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"badge_after": {
|
||||
"hu": [
|
||||
{
|
||||
"title": "Ez az alkalmazás a legfrissebb elérhető változatot futtatja.",
|
||||
"text": "Naprakész"
|
||||
}
|
||||
],
|
||||
"en": [
|
||||
{
|
||||
"title": "This app is running the newest version available.",
|
||||
"text": "Up to date"
|
||||
}
|
||||
]
|
||||
},
|
||||
"state_after": "running",
|
||||
"hold_after": null,
|
||||
"to_digests": {
|
||||
"homepage": "sha256:19c5c09184458a41b7b5915e71463a39f36cd33540f41bdbed008791b8182d5f"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v2.7.0"
|
||||
},
|
||||
"installed": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v2.7.0"
|
||||
},
|
||||
"catalog": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v2.7.0"
|
||||
},
|
||||
"live_compose": [
|
||||
"ghcr.io/gethomepage/homepage:v2.7.0"
|
||||
]
|
||||
},
|
||||
"seed_read_after": true,
|
||||
"setup_gate_after": {
|
||||
"browser": {
|
||||
"status": "302",
|
||||
"redirect": "https://felhom.enkisfelhom.hu/__family/start?…"
|
||||
},
|
||||
"script": {
|
||||
"status": "401",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"soak_s": 600,
|
||||
"interval_s": 10,
|
||||
"samples": 60,
|
||||
"containers": {
|
||||
"homepage": {
|
||||
"samples": 60,
|
||||
"anon_peak_bytes": 113119232,
|
||||
"limit_bytes": 268435456,
|
||||
"anon_peak_pct": 42.1,
|
||||
"cgroup_peak_pct": 47.1,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-08d02265b7bf6977d598cb090c27333644e839e6f3afc81cf33231564b86826d.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 42.1
|
||||
},
|
||||
"why": "the security-fix step ran on the box through the guarded Update; healthy, TO on all four observables, no undo, no hold, a clean soak, seed read back",
|
||||
"log": [
|
||||
"15:05:02 [5] the box's drill mirror now at 4834d9dce",
|
||||
"15:05:06 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"15:05:41 [1] deployed, controller state=running, pinned={'homepage': 'ghcr.io/gethomepage/homepage:v1.13.2'}",
|
||||
"15:05:42 family gate: home is family-gated — passed as the household (cookie set)",
|
||||
"15:05:45 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__family/start?…'}, 'script': {'status': '401', 'redirect': None}}",
|
||||
"15:05:45 homepage: first-start config read: services=['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'] bookmarks=['Developer', 'Developer/Github', 'Entertainment', 'Entertainment/YouTube', 'Social', 'Social/Reddit']",
|
||||
"15:05:45 homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])",
|
||||
"15:05:46 [5] drill commit 05ffd16393f5: homepage ghcr.io/gethomepage/homepage:v1.13.2 -> ghcr.io/gethomepage/homepage:v2.7.0 (push rc=0)",
|
||||
"15:05:55 [5] the box's drill mirror now at 05ffd1639",
|
||||
"15:06:00 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}",
|
||||
"15:06:00 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
|
||||
"15:06:02 + 2.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None",
|
||||
"15:06:03 + 3.1s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"15:06:15 + 15.4s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"15:06:21 + 21.5s phase=starting label=Indítás az új verzióval… err=None hold=None",
|
||||
"15:06:22 + 22.6s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"15:06:33 + 32.8s phase=done label=Frissítve err=None hold=None",
|
||||
"15:06:51 homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])",
|
||||
"15:06:51 [7] memory soak 600 s …",
|
||||
"15:16:57 [7] soak: peak 42.1% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
15:05:02 [5] the box's drill mirror now at 4834d9dce
|
||||
15:05:06 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
15:05:41 [1] deployed, controller state=running, pinned={'homepage': 'ghcr.io/gethomepage/homepage:v1.13.2'}
|
||||
15:05:42 family gate: home is family-gated — passed as the household (cookie set)
|
||||
15:05:45 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__family/start?…'}, 'script': {'status': '401', 'redirect': None}}
|
||||
15:05:45 homepage: first-start config read: services=['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'] bookmarks=['Developer', 'Developer/Github', 'Entertainment', 'Entertainment/YouTube', 'Social', 'Social/Reddit']
|
||||
15:05:45 homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])
|
||||
15:05:46 [5] drill commit 05ffd16393f5: homepage ghcr.io/gethomepage/homepage:v1.13.2 -> ghcr.io/gethomepage/homepage:v2.7.0 (push rc=0)
|
||||
15:05:55 [5] the box's drill mirror now at 05ffd1639
|
||||
15:06:00 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
15:06:00 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
15:06:02 + 2.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
15:06:03 + 3.1s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
15:06:15 + 15.4s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
15:06:21 + 21.5s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||||
15:06:22 + 22.6s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
15:06:33 + 32.8s phase=done label=Frissítve err=None hold=None
|
||||
15:06:51 homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])
|
||||
15:06:51 [7] memory soak 600 s …
|
||||
15:16:57 [7] soak: peak 42.1% of the limit (anon), kills 0, restarts 0
|
||||
15:16:57 [9] verdict proven -> /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/p2/box/homepage/verdict.json
|
||||
15:16:57 RESULT proven — the security-fix step ran on the box through the guarded Update; healthy, TO on all four observables, no undo, no hold, a clean soak, seed read back
|
||||
15:16:57 [X] stop -> 200 {'ok': True, 'message': 'Stack homepage stop completed'}
|
||||
15:17:29 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'homepage', 'volumes_removed': ['homepage_homepage_config'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'A
|
||||
15:17:38 [X] after remove: deployed=False leftovers=''
|
||||
@@ -0,0 +1,24 @@
|
||||
16:06:23 [5] the box's drill mirror now at c1b7f241d
|
||||
16:06:28 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
16:06:58 [1] deployed, controller state=running, pinned={'homepage': 'ghcr.io/gethomepage/homepage:v1.13.2'}
|
||||
16:06:58 family gate: home is family-gated — passed as the household (cookie set)
|
||||
16:06:58 homepage: first-start config read: services=['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'] bookmarks=['Developer', 'Developer/Github', 'Entertainment', 'Entertainment/YouTube', 'Social', 'Social/Reddit']
|
||||
16:06:58 homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])
|
||||
16:06:59 drill commit c6c4b528c5ab: homepage TO with failing checks
|
||||
16:07:08 [5] the box's drill mirror now at c6c4b528c
|
||||
16:07:13 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
16:07:13 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
16:07:16 + 3.1s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
16:07:36 + 22.6s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
16:07:43 + 29.8s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||||
16:07:44 + 30.8s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
16:12:46 + 333.1s phase=undoing label=Visszaállítás az előző változatra… err=None hold=None
|
||||
16:12:59 + 345.5s phase=undone label=Visszaállítva az előző változatra err=None hold=None
|
||||
16:13:28 homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])
|
||||
16:13:28 RESULT proven — TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back
|
||||
16:13:29 [X] stop -> 200 {'ok': True, 'message': 'Stack homepage stop completed'}
|
||||
16:14:01 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'homepage', 'volumes_removed': ['homepage_homepage_config'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'A
|
||||
16:14:09 [X] after remove: deployed=False leftovers=''
|
||||
16:14:19 [5] the box's drill mirror now at f574f6fef
|
||||
16:14:19 drill revert c6c4b528c5ab: rc=0
|
||||
16:14:19 drill templates/homepage equal to before: True
|
||||
+144
@@ -0,0 +1,144 @@
|
||||
{
|
||||
"app": "homepage",
|
||||
"from": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v1.13.2"
|
||||
},
|
||||
"to": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v2.7.0"
|
||||
},
|
||||
"started": "2026-10-28T15:06:14Z",
|
||||
"drill_head_before": "c1b7f241da1dfef40579011f9d032dcafbbf29c4",
|
||||
"failing_compose_main_healthcheck": [
|
||||
"test: [\"CMD\", \"false\"]"
|
||||
],
|
||||
"failing_probe": true,
|
||||
"update": {
|
||||
"accepted": true,
|
||||
"http": "202",
|
||||
"phases": [
|
||||
{
|
||||
"t": 0.0,
|
||||
"phase": "backing-up",
|
||||
"label": "Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 3.1,
|
||||
"phase": "pulling",
|
||||
"label": "\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 22.6,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 29.8,
|
||||
"phase": "starting",
|
||||
"label": "Ind\u00edt\u00e1s az \u00faj verzi\u00f3val\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 30.8,
|
||||
"phase": "verifying",
|
||||
"label": "M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 333.1,
|
||||
"phase": "undoing",
|
||||
"label": "Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 345.5,
|
||||
"phase": "undone",
|
||||
"label": "Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 345.5,
|
||||
"final_phase": "undone",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"to_log_while_verifying": [
|
||||
"ghcr.io/gethomepage/homepage:v2.7.0",
|
||||
"Skipping ownership changes for /app/config",
|
||||
"Skipping ownership changes for /app/config/logs",
|
||||
"/app/.next already owned by correct UID/GID or running as root, skipping chown",
|
||||
"\u25b2 Next.js 16.4.1",
|
||||
"- Local: http://[::1]:3000",
|
||||
"- Network: http://[::]:3000",
|
||||
"\u2713 Ready in 0ms",
|
||||
"\u2713 Running next.config took 3ms"
|
||||
],
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v1.13.2"
|
||||
},
|
||||
"installed_images": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v1.13.2"
|
||||
},
|
||||
"catalog_images": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v2.7.0"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/gethomepage/homepage:v1.13.2"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"homepage ghcr.io/gethomepage/homepage:v1.13.2 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"running_images_after": {
|
||||
"homepage": "ghcr.io/gethomepage/homepage:v1.13.2"
|
||||
},
|
||||
"seed_after_undo": true,
|
||||
"verdict": "proven",
|
||||
"why": "TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back",
|
||||
"drill_head_after": "f574f6fef47182eaa13b330a2b69c7ad8dfdfa18",
|
||||
"drill_tree_equal_to_before": true,
|
||||
"log": [
|
||||
"16:06:23 [5] the box's drill mirror now at c1b7f241d",
|
||||
"16:06:28 [1] deploy -> 202 {'ok': True, 'message': 'Telep\u00edt\u00e9s elind\u00edtva \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}",
|
||||
"16:06:58 [1] deployed, controller state=running, pinned={'homepage': 'ghcr.io/gethomepage/homepage:v1.13.2'}",
|
||||
"16:06:58 family gate: home is family-gated \u2014 passed as the household (cookie set)",
|
||||
"16:06:58 homepage: first-start config read: services=['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'] bookmarks=['Developer', 'Developer/Github', 'Entertainment', 'Entertainment/YouTube', 'Social', 'Social/Reddit']",
|
||||
"16:06:58 homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])",
|
||||
"16:06:59 drill commit c6c4b528c5ab: homepage TO with failing checks",
|
||||
"16:07:08 [5] the box's drill mirror now at c6c4b528c",
|
||||
"16:07:13 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Friss\u00edt\u00e9s elindult \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}",
|
||||
"16:07:13 + 0.0s phase=backing-up label=Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None",
|
||||
"16:07:16 + 3.1s phase=pulling label=\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026 err=None hold=None",
|
||||
"16:07:36 + 22.6s phase=copying label=Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None",
|
||||
"16:07:43 + 29.8s phase=starting label=Ind\u00edt\u00e1s az \u00faj verzi\u00f3val\u2026 err=None hold=None",
|
||||
"16:07:44 + 30.8s phase=verifying label=M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026 err=None hold=None",
|
||||
"16:12:46 + 333.1s phase=undoing label=Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026 err=None hold=None",
|
||||
"16:12:59 + 345.5s phase=undone label=Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra err=None hold=None",
|
||||
"16:13:28 homepage: the same services and bookmarks after: True (['My First Group', 'My First Group/My First Service', 'My Second Group', 'My Second Group/My Second Service', 'My Third Group', 'My Third Group/My Third Service'])",
|
||||
"16:13:28 RESULT proven \u2014 TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back",
|
||||
"16:13:29 [X] stop -> 200 {'ok': True, 'message': 'Stack homepage stop completed'}",
|
||||
"16:14:01 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'homepage', 'volumes_removed': ['homepage_homepage_config'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'A",
|
||||
"16:14:09 [X] after remove: deployed=False leftovers=''",
|
||||
"16:14:19 [5] the box's drill mirror now at f574f6fef",
|
||||
"16:14:19 drill revert c6c4b528c5ab: rc=0",
|
||||
"16:14:19 drill templates/homepage equal to before: True"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
RESTORED-IDENTICAL
|
||||
26: repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
|
||||
|
||||
2026/10/28 17:21:37 sync.go:535: [INFO] [sync] Updated wanderer/.felhom.yml
|
||||
2026/10/28 17:21:37 sync.go:535: [INFO] [sync] Updated zipline/docker-compose.yml
|
||||
2026/10/28 17:21:37 sync.go:535: [INFO] [sync] Updated zipline/.felhom.yml
|
||||
2026/10/28 17:21:37 sync.go:261: [INFO] [sync] catalog moved dff3cb84fcea -> 9ef06a7a891f (0 new, 14 stack dir(s) changed)
|
||||
2026/10/28 17:21:38 sync.go:299: [INFO] [sync] Catalog sync complete
|
||||
2026/10/28 17:21:38 sync.go:142: [INFO] [sync] Initial sync: Sablonok frissítve — frissítve: adventurelog, dawarich, ghost, home-assistant, homepage, immich, karakeep, metube, papra, seerr, tandoo
|
||||
|
||||
26: repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
|
||||
-rw------- 1 root root 1994 Oct 22 14:47 /var/lib/docker/volumes/felhom-controller-data/_data/controller.yaml.pre-release1026-drill
|
||||
mirror main dff3cb84fc
|
||||
cache HEAD 9ef06a7
|
||||
https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
|
||||
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
[15:23:46] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[15:23:46] MV-seerr: deploying seerr at FROM {'seerr': 'fallenbagel/jellyseerr:2.7.3'}
|
||||
[15:24:17] FROM settled=True in 30.9s :: {"seerr": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[15:24:17] fixture: the BOX walk's own (Seerr), through upgrade_boxport
|
||||
[15:24:22] seerr: throwaway Jellyfin on traefik-public: user=503 complete=503
|
||||
[15:24:22] seerr: first sign-in through Jellyfin http=500 cookie=False
|
||||
[15:24:22] INCONCLUSIVE — no non-browser seed route. Nothing was planted by hand.
|
||||
{
|
||||
"harness_version": 5,
|
||||
"edge": "MV-seerr",
|
||||
"app": "seerr",
|
||||
"note": "definition step to seerr-v3",
|
||||
"from": {
|
||||
"seerr": "fallenbagel/jellyseerr:2.7.3"
|
||||
},
|
||||
"to": {
|
||||
"seerr": "ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
},
|
||||
"verdict": "inconclusive",
|
||||
"seed_read_before": false,
|
||||
"seed_read_after": false,
|
||||
"healthy_after": false,
|
||||
"migration_observed": null,
|
||||
"abort": "not-attempted",
|
||||
"abort_detail": "no non-browser seed route",
|
||||
"engine_state_after": null,
|
||||
"memory": null,
|
||||
"marks": [],
|
||||
"bench_overrides": null,
|
||||
"duration_s": 35.8,
|
||||
"measured_at": "2026-10-28T15:24:22Z",
|
||||
"evidence": "evidence/MV-seerr",
|
||||
"scratch_cleared": [],
|
||||
"total_s": 35.8
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
[2Kseerr |
|
||||
[2Kseerr | > jellyseerr@2.7.3 start /app
|
||||
[2Kseerr | > NODE_ENV=production node dist/index.js
|
||||
[2Kseerr |
|
||||
[2Kseerr | 2026-10-28T15:23:50.009Z [[32minfo[39m]: Commit Tag: $GIT_SHA
|
||||
[2Kseerr | 2026-10-28T15:23:50.602Z [[32minfo[39m]: Starting Jellyseerr version 2.7.3
|
||||
[2Kseerr | 2026-10-28T15:23:51.718Z [[32minfo[39m][Notifications]: Registered notification agents
|
||||
[2Kseerr | 2026-10-28T15:23:51.725Z [[32minfo[39m][Server]: Skipping starting the scheduled jobs as we have no Plex/Jellyfin/Emby servers setup yet
|
||||
[2Kseerr | 2026-10-28T15:23:51.731Z [[32minfo[39m][Discover Slider]: Creating built-in discovery slider {"slider":{"type":1,"enabled":true,"isBuiltIn":true,"order":0}}
|
||||
[2Kseerr | 2026-10-28T15:23:51.752Z [[32minfo[39m][Discover Slider]: Creating built-in discovery slider {"slider":{"type":2,"enabled":true,"isBuiltIn":true,"order":1}}
|
||||
[2Kseerr | 2026-10-28T15:23:51.759Z [[32minfo[39m][Discover Slider]: Creating built-in discovery slider {"slider":{"type":3,"enabled":true,"isBuiltIn":true,"order":2}}
|
||||
[2Kseerr | 2026-10-28T15:23:51.766Z [[32minfo[39m][Discover Slider]: Creating built-in discovery slider {"slider":{"type":4,"enabled":true,"isBuiltIn":true,"order":3}}
|
||||
[2Kseerr | 2026-10-28T15:23:51.773Z [[32minfo[39m][Discover Slider]: Creating built-in discovery slider {"slider":{"type":5,"enabled":true,"isBuiltIn":true,"order":4}}
|
||||
[2Kseerr | 2026-10-28T15:23:51.784Z [[32minfo[39m][Discover Slider]: Creating built-in discovery slider {"slider":{"type":6,"enabled":true,"isBuiltIn":true,"order":5}}
|
||||
[2Kseerr | 2026-10-28T15:23:51.790Z [[32minfo[39m][Discover Slider]: Creating built-in discovery slider {"slider":{"type":7,"enabled":true,"isBuiltIn":true,"order":6}}
|
||||
[2Kseerr | 2026-10-28T15:23:51.796Z [[32minfo[39m][Discover Slider]: Creating built-in discovery slider {"slider":{"type":8,"enabled":true,"isBuiltIn":true,"order":7}}
|
||||
[2Kseerr | 2026-10-28T15:23:51.803Z [[32minfo[39m][Discover Slider]: Creating built-in discovery slider {"slider":{"type":9,"enabled":true,"isBuiltIn":true,"order":8}}
|
||||
[2Kseerr | 2026-10-28T15:23:51.810Z [[32minfo[39m][Discover Slider]: Creating built-in discovery slider {"slider":{"type":10,"enabled":true,"isBuiltIn":true,"order":9}}
|
||||
[2Kseerr | 2026-10-28T15:23:51.816Z [[32minfo[39m][Discover Slider]: Creating built-in discovery slider {"slider":{"type":11,"enabled":true,"isBuiltIn":true,"order":10}}
|
||||
[2Kseerr | 2026-10-28T15:23:51.822Z [[32minfo[39m][Discover Slider]: Creating built-in discovery slider {"slider":{"type":12,"enabled":true,"isBuiltIn":true,"order":11}}
|
||||
[2Kseerr | 2026-10-28T15:23:52.024Z [[32minfo[39m][Server]: Server ready on port 5055
|
||||
[2Kseerr | 2026-10-28T15:24:22.415Z [[34mdebug[39m][Jellyfin API]: Failed to authenticate with headers {"error":"Service Unavailable","ip":"172.18.0.1"}
|
||||
[2Kseerr | 2026-10-28T15:24:22.424Z [[31merror[39m][Jellyfin API]: Something went wrong while authenticating with the Jellyfin server: Request failed with status code 503 {"error":503,"ip":"172.18.0.1"}
|
||||
[2Kseerr | 2026-10-28T15:24:22.424Z [[31merror[39m][Auth]:
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
[15:23:46] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[15:23:46] MV-seerr: deploying seerr at FROM {'seerr': 'fallenbagel/jellyseerr:2.7.3'}
|
||||
[15:24:17] FROM settled=True in 30.9s :: {"seerr": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[15:24:17] fixture: the BOX walk's own (Seerr), through upgrade_boxport
|
||||
[15:24:22] seerr: throwaway Jellyfin on traefik-public: user=503 complete=503
|
||||
[15:24:22] seerr: first sign-in through Jellyfin http=500 cookie=False
|
||||
[15:24:22] INCONCLUSIVE — no non-browser seed route. Nothing was planted by hand.
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"harness_version": 5,
|
||||
"edge": "MV-seerr",
|
||||
"app": "seerr",
|
||||
"note": "definition step to seerr-v3",
|
||||
"from": {
|
||||
"seerr": "fallenbagel/jellyseerr:2.7.3"
|
||||
},
|
||||
"to": {
|
||||
"seerr": "ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
},
|
||||
"verdict": "inconclusive",
|
||||
"seed_read_before": false,
|
||||
"seed_read_after": false,
|
||||
"healthy_after": false,
|
||||
"migration_observed": null,
|
||||
"abort": "not-attempted",
|
||||
"abort_detail": "no non-browser seed route",
|
||||
"engine_state_after": null,
|
||||
"memory": null,
|
||||
"marks": [],
|
||||
"bench_overrides": null,
|
||||
"duration_s": 35.8,
|
||||
"measured_at": "2026-10-28T15:24:22Z",
|
||||
"evidence": "evidence/MV-seerr",
|
||||
"scratch_cleared": [],
|
||||
"total_s": 35.8
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
[15:24:47] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[15:24:47] MV-seerr: deploying seerr at FROM {'seerr': 'fallenbagel/jellyseerr:2.7.3'}
|
||||
[15:25:18] FROM settled=True in 30.8s :: {"seerr": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[15:25:18] fixture: the BOX walk's own (Seerr), through upgrade_boxport
|
||||
[15:25:30] seerr: throwaway Jellyfin on traefik-public: user=204 complete=204
|
||||
[15:25:31] seerr: admin drilld5609dd3 signed in through Jellyfin; application title stored http=200
|
||||
[15:25:32] seerr: the title read back True; sign-in http=200 (wrong password refused: http 401) ok=True
|
||||
[15:25:32] C1 (seed reads back BEFORE): True
|
||||
[15:25:32] MV-seerr: swapping to TO {'seerr': 'ghcr.io/seerr-team/seerr:v3.5.1'}
|
||||
[15:25:33] TO up -d rc=0
|
||||
[15:26:04] TO settled=True in 31.0s :: {"seerr": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[15:26:04] migration lines observed: 6
|
||||
[15:26:05] seerr: the title read back True; sign-in http=200 (wrong password refused: http 401) ok=True
|
||||
[15:26:05] RESULT (seed reads back AFTER): True
|
||||
[15:26:05] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:5055
|
||||
[15:26:21] + 15s seerr=207M/384M peak=209M kills=0 rs=0 reqs=285
|
||||
[15:26:36] + 30s seerr=208M/384M peak=209M kills=0 rs=0 reqs=572
|
||||
[15:26:51] + 45s seerr=208M/384M peak=211M kills=0 rs=0 reqs=860
|
||||
[15:27:06] + 60s seerr=208M/384M peak=211M kills=0 rs=0 reqs=1145
|
||||
[15:27:21] + 76s seerr=208M/384M peak=211M kills=0 rs=0 reqs=1435
|
||||
[15:27:36] + 91s seerr=207M/384M peak=211M kills=0 rs=0 reqs=1721
|
||||
[15:27:51] + 106s seerr=207M/384M peak=212M kills=0 rs=0 reqs=2010
|
||||
[15:28:06] + 121s seerr=208M/384M peak=212M kills=0 rs=0 reqs=2300
|
||||
[15:28:22] + 136s seerr=207M/384M peak=212M kills=0 rs=0 reqs=2589
|
||||
[15:28:37] + 151s seerr=207M/384M peak=212M kills=0 rs=0 reqs=2877
|
||||
[15:28:52] + 166s seerr=208M/384M peak=217M kills=0 rs=0 reqs=3165
|
||||
[15:29:07] + 182s seerr=210M/384M peak=217M kills=0 rs=0 reqs=3457
|
||||
[15:29:22] + 197s seerr=210M/384M peak=217M kills=0 rs=0 reqs=3745
|
||||
[15:29:37] + 212s seerr=209M/384M peak=217M kills=0 rs=0 reqs=4033
|
||||
[15:29:52] + 227s seerr=209M/384M peak=217M kills=0 rs=0 reqs=4325
|
||||
[15:30:07] + 242s seerr=215M/384M peak=220M kills=0 rs=0 reqs=4603
|
||||
[15:30:23] + 257s seerr=221M/384M peak=225M kills=0 rs=0 reqs=4892
|
||||
[15:30:38] + 272s seerr=223M/384M peak=225M kills=0 rs=0 reqs=5183
|
||||
[15:30:53] + 287s seerr=222M/384M peak=228M kills=0 rs=0 reqs=5471
|
||||
[15:31:08] + 302s seerr=223M/384M peak=228M kills=0 rs=0 reqs=5763
|
||||
[15:31:23] + 318s seerr=223M/384M peak=229M kills=0 rs=0 reqs=6051
|
||||
[15:31:38] + 333s seerr=223M/384M peak=229M kills=0 rs=0 reqs=6339
|
||||
[15:31:53] + 348s seerr=223M/384M peak=229M kills=0 rs=0 reqs=6631
|
||||
[15:32:08] + 363s seerr=222M/384M peak=229M kills=0 rs=0 reqs=6919
|
||||
[15:32:24] + 378s seerr=223M/384M peak=229M kills=0 rs=0 reqs=7210
|
||||
[15:32:39] + 393s seerr=222M/384M peak=229M kills=0 rs=0 reqs=7499
|
||||
[15:32:54] + 408s seerr=223M/384M peak=229M kills=0 rs=0 reqs=7787
|
||||
[15:33:09] + 424s seerr=223M/384M peak=229M kills=0 rs=0 reqs=8079
|
||||
[15:33:24] + 439s seerr=223M/384M peak=229M kills=0 rs=0 reqs=8367
|
||||
[15:33:39] + 454s seerr=223M/384M peak=229M kills=0 rs=0 reqs=8656
|
||||
[15:33:54] + 469s seerr=223M/384M peak=229M kills=0 rs=0 reqs=8947
|
||||
[15:34:09] + 484s seerr=223M/384M peak=229M kills=0 rs=0 reqs=9235
|
||||
[15:34:25] + 499s seerr=223M/384M peak=229M kills=0 rs=0 reqs=9527
|
||||
[15:34:40] + 514s seerr=223M/384M peak=229M kills=0 rs=0 reqs=9815
|
||||
[15:34:55] + 529s seerr=223M/384M peak=229M kills=0 rs=0 reqs=10104
|
||||
[15:35:10] + 545s seerr=223M/384M peak=229M kills=0 rs=0 reqs=10395
|
||||
[15:35:25] + 560s seerr=223M/384M peak=229M kills=0 rs=0 reqs=10685
|
||||
[15:35:40] + 575s seerr=223M/384M peak=229M kills=0 rs=0 reqs=10975
|
||||
[15:35:55] + 590s seerr=223M/384M peak=229M kills=0 rs=0 reqs=11265
|
||||
[15:36:11] + 605s seerr=223M/384M peak=229M kills=0 rs=0 reqs=11555
|
||||
[15:36:11] memory watch: killed=False tight=[] requests=11555 codes={'307': 11555}
|
||||
[15:36:11] MV-seerr: ABORT — putting the FROM images back
|
||||
[15:36:43] seerr: the title read back True; sign-in http=500 (wrong password refused: http 500) ok=False
|
||||
[15:36:43] ABORT: app came back in 30.9s; data present=False
|
||||
{
|
||||
"harness_version": 5,
|
||||
"edge": "MV-seerr",
|
||||
"app": "seerr",
|
||||
"note": "definition step to seerr-v3",
|
||||
"from": {
|
||||
"seerr": "fallenbagel/jellyseerr:2.7.3"
|
||||
},
|
||||
"to": {
|
||||
"seerr": "ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": "\u001b[2Kseerr | 2026-10-28T15:25:39.146Z [\u001b[34mdebug\u001b[39m][Settings Migrator]: Checking migration '0001_migrate_hostname.js'...",
|
||||
"abort": "starts-data-gone",
|
||||
"abort_detail": "the app started but the seeded data was gone",
|
||||
"engine_state_after": null,
|
||||
"memory": {
|
||||
"soak_s": 605.3,
|
||||
"requested_s": 600,
|
||||
"requests": 11555,
|
||||
"codes": {
|
||||
"307": 11555
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"peak": 240267264,
|
||||
"peak_pct": 0.597,
|
||||
"anon_peak_sampled": 206442496,
|
||||
"anon_peak_pct": 0.513,
|
||||
"swap_peak": 0,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"venue_swap_bytes": 0,
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"bench_overrides": null,
|
||||
"duration_s": 31.0,
|
||||
"measured_at": "2026-10-28T15:36:43Z",
|
||||
"evidence": "evidence/MV-seerr",
|
||||
"scratch_cleared": [],
|
||||
"files_changed": [],
|
||||
"files_changed_detail": [],
|
||||
"files_ignored": [],
|
||||
"total_s": 716.0
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"seerr": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
}
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
[2Kseerr |
|
||||
[2Kseerr | > jellyseerr@2.7.3 start /app
|
||||
[2Kseerr | > NODE_ENV=production node dist/index.js
|
||||
[2Kseerr |
|
||||
[2Kseerr | 2026-10-28T15:36:14.807Z [[32minfo[39m]: Commit Tag: $GIT_SHA
|
||||
[2Kseerr | 2026-10-28T15:36:15.338Z [[32minfo[39m]: Starting Jellyseerr version 2.7.3
|
||||
[2Kseerr | 2026-10-28T15:36:16.170Z [[34mdebug[39m][Settings Migrator]: Checking migration '0001_migrate_hostname.js'...
|
||||
[2Kseerr | 2026-10-28T15:36:16.173Z [[34mdebug[39m][Settings Migrator]: Checking migration '0002_migrate_apitokens.js'...
|
||||
[2Kseerr | 2026-10-28T15:36:16.176Z [[34mdebug[39m][Settings Migrator]: Checking migration '0003_emby_media_server_type.js'...
|
||||
[2Kseerr | 2026-10-28T15:36:16.178Z [[34mdebug[39m][Settings Migrator]: Checking migration '0004_migrate_region_setting.js'...
|
||||
[2Kseerr | 2026-10-28T15:36:16.179Z [[34mdebug[39m][Settings Migrator]: Checking migration '0005_migrate_network_settings.js'...
|
||||
[2Kseerr | 2026-10-28T15:36:16.180Z [[34mdebug[39m][Settings Migrator]: Checking migration '0006_remove_lunasea.js'...
|
||||
[2Kseerr | 2026-10-28T15:36:16.186Z [[32minfo[39m][Notifications]: Registered notification agents
|
||||
[2Kseerr | 2026-10-28T15:36:16.233Z [[32minfo[39m][Jobs]: Scheduled jobs loaded
|
||||
[2Kseerr | 2026-10-28T15:36:16.411Z [[32minfo[39m][Server]: Server ready on port 5055
|
||||
[2Kseerr | 2026-10-28T15:36:43.306Z [[31merror[39m][Auth]: SQLITE_ERROR: no such column: User_settings.discordId
|
||||
[2Kseerr | 2026-10-28T15:36:43.346Z [[31merror[39m][Auth]: SQLITE_ERROR: no such column: User_settings.discordId
|
||||
+1
@@ -0,0 +1 @@
|
||||
null
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+762
@@ -0,0 +1,762 @@
|
||||
[
|
||||
{
|
||||
"t": 15.1,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 218066944,
|
||||
"peak": 219787264,
|
||||
"anon": 194387968,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 285
|
||||
},
|
||||
{
|
||||
"t": 30.3,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 218734592,
|
||||
"peak": 219881472,
|
||||
"anon": 194379776,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 572
|
||||
},
|
||||
{
|
||||
"t": 45.4,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 218189824,
|
||||
"peak": 221515776,
|
||||
"anon": 194027520,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 860
|
||||
},
|
||||
{
|
||||
"t": 60.5,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 218800128,
|
||||
"peak": 221761536,
|
||||
"anon": 194486272,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 1145
|
||||
},
|
||||
{
|
||||
"t": 75.6,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 218316800,
|
||||
"peak": 221761536,
|
||||
"anon": 194056192,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 1435
|
||||
},
|
||||
{
|
||||
"t": 90.8,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 217550848,
|
||||
"peak": 222285824,
|
||||
"anon": 194109440,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 1721
|
||||
},
|
||||
{
|
||||
"t": 105.9,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 218071040,
|
||||
"peak": 222932992,
|
||||
"anon": 194211840,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 2010
|
||||
},
|
||||
{
|
||||
"t": 121.0,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 218202112,
|
||||
"peak": 222932992,
|
||||
"anon": 194326528,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 2300
|
||||
},
|
||||
{
|
||||
"t": 136.2,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 218058752,
|
||||
"peak": 222932992,
|
||||
"anon": 194510848,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 2589
|
||||
},
|
||||
{
|
||||
"t": 151.3,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 217653248,
|
||||
"peak": 222932992,
|
||||
"anon": 194613248,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 2877
|
||||
},
|
||||
{
|
||||
"t": 166.4,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 218628096,
|
||||
"peak": 227950592,
|
||||
"anon": 195092480,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3165
|
||||
},
|
||||
{
|
||||
"t": 181.5,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 220233728,
|
||||
"peak": 227950592,
|
||||
"anon": 195674112,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3457
|
||||
},
|
||||
{
|
||||
"t": 196.6,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 220606464,
|
||||
"peak": 227950592,
|
||||
"anon": 195592192,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3745
|
||||
},
|
||||
{
|
||||
"t": 211.8,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 219820032,
|
||||
"peak": 227950592,
|
||||
"anon": 195751936,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 4033
|
||||
},
|
||||
{
|
||||
"t": 226.9,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 220160000,
|
||||
"peak": 227950592,
|
||||
"anon": 195829760,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 4325
|
||||
},
|
||||
{
|
||||
"t": 242.0,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 226287616,
|
||||
"peak": 230899712,
|
||||
"anon": 200019968,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 4603
|
||||
},
|
||||
{
|
||||
"t": 257.1,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 231821312,
|
||||
"peak": 236445696,
|
||||
"anon": 204804096,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 4892
|
||||
},
|
||||
{
|
||||
"t": 272.3,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234160128,
|
||||
"peak": 236445696,
|
||||
"anon": 205254656,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 5183
|
||||
},
|
||||
{
|
||||
"t": 287.4,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 233672704,
|
||||
"peak": 239206400,
|
||||
"anon": 205099008,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 5471
|
||||
},
|
||||
{
|
||||
"t": 302.5,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234659840,
|
||||
"peak": 239206400,
|
||||
"anon": 205484032,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 5763
|
||||
},
|
||||
{
|
||||
"t": 317.6,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234852352,
|
||||
"peak": 240267264,
|
||||
"anon": 206442496,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6051
|
||||
},
|
||||
{
|
||||
"t": 332.8,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234242048,
|
||||
"peak": 240267264,
|
||||
"anon": 205271040,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6339
|
||||
},
|
||||
{
|
||||
"t": 347.9,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234409984,
|
||||
"peak": 240267264,
|
||||
"anon": 205357056,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6631
|
||||
},
|
||||
{
|
||||
"t": 363.0,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 233758720,
|
||||
"peak": 240267264,
|
||||
"anon": 205361152,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6919
|
||||
},
|
||||
{
|
||||
"t": 378.1,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234557440,
|
||||
"peak": 240267264,
|
||||
"anon": 205385728,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 7210
|
||||
},
|
||||
{
|
||||
"t": 393.3,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 233463808,
|
||||
"peak": 240267264,
|
||||
"anon": 205189120,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 7499
|
||||
},
|
||||
{
|
||||
"t": 408.4,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 233975808,
|
||||
"peak": 240267264,
|
||||
"anon": 205185024,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 7787
|
||||
},
|
||||
{
|
||||
"t": 423.5,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234721280,
|
||||
"peak": 240267264,
|
||||
"anon": 205381632,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 8079
|
||||
},
|
||||
{
|
||||
"t": 438.6,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234045440,
|
||||
"peak": 240267264,
|
||||
"anon": 205336576,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 8367
|
||||
},
|
||||
{
|
||||
"t": 453.8,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234254336,
|
||||
"peak": 240267264,
|
||||
"anon": 205303808,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 8656
|
||||
},
|
||||
{
|
||||
"t": 468.9,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 233943040,
|
||||
"peak": 240267264,
|
||||
"anon": 205479936,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 8947
|
||||
},
|
||||
{
|
||||
"t": 484.0,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234426368,
|
||||
"peak": 240267264,
|
||||
"anon": 205561856,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9235
|
||||
},
|
||||
{
|
||||
"t": 499.2,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 233865216,
|
||||
"peak": 240267264,
|
||||
"anon": 205283328,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9527
|
||||
},
|
||||
{
|
||||
"t": 514.3,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 233902080,
|
||||
"peak": 240267264,
|
||||
"anon": 205365248,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9815
|
||||
},
|
||||
{
|
||||
"t": 529.4,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234385408,
|
||||
"peak": 240267264,
|
||||
"anon": 205262848,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 10104
|
||||
},
|
||||
{
|
||||
"t": 544.6,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 233947136,
|
||||
"peak": 240267264,
|
||||
"anon": 205352960,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 10395
|
||||
},
|
||||
{
|
||||
"t": 559.7,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234487808,
|
||||
"peak": 240267264,
|
||||
"anon": 205418496,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 10685
|
||||
},
|
||||
{
|
||||
"t": 574.8,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234237952,
|
||||
"peak": 240267264,
|
||||
"anon": 205307904,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 10975
|
||||
},
|
||||
{
|
||||
"t": 590.0,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234426368,
|
||||
"peak": 240267264,
|
||||
"anon": 205385728,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 11265
|
||||
},
|
||||
{
|
||||
"t": 605.1,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"current": 234315776,
|
||||
"peak": 240267264,
|
||||
"anon": 205606912,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 11555
|
||||
}
|
||||
]
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
[2Kseerr | 2026-10-28T15:25:39.146Z [[34mdebug[39m][Settings Migrator]: Checking migration '0001_migrate_hostname.js'...
|
||||
[2Kseerr | 2026-10-28T15:25:39.150Z [[34mdebug[39m][Settings Migrator]: Checking migration '0002_migrate_apitokens.js'...
|
||||
[2Kseerr | 2026-10-28T15:25:39.153Z [[34mdebug[39m][Settings Migrator]: Checking migration '0003_emby_media_server_type.js'...
|
||||
[2Kseerr | 2026-10-28T15:25:39.155Z [[34mdebug[39m][Settings Migrator]: Checking migration '0004_migrate_region_setting.js'...
|
||||
[2Kseerr | 2026-10-28T15:25:39.157Z [[34mdebug[39m][Settings Migrator]: Checking migration '0005_migrate_network_settings.js'...
|
||||
[2Kseerr | 2026-10-28T15:25:39.159Z [[34mdebug[39m][Settings Migrator]: Checking migration '0006_remove_lunasea.js'...
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
[15:24:47] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[15:24:47] MV-seerr: deploying seerr at FROM {'seerr': 'fallenbagel/jellyseerr:2.7.3'}
|
||||
[15:25:18] FROM settled=True in 30.8s :: {"seerr": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[15:25:18] fixture: the BOX walk's own (Seerr), through upgrade_boxport
|
||||
[15:25:30] seerr: throwaway Jellyfin on traefik-public: user=204 complete=204
|
||||
[15:25:31] seerr: admin drilld5609dd3 signed in through Jellyfin; application title stored http=200
|
||||
[15:25:32] seerr: the title read back True; sign-in http=200 (wrong password refused: http 401) ok=True
|
||||
[15:25:32] C1 (seed reads back BEFORE): True
|
||||
[15:25:32] MV-seerr: swapping to TO {'seerr': 'ghcr.io/seerr-team/seerr:v3.5.1'}
|
||||
[15:25:33] TO up -d rc=0
|
||||
[15:26:04] TO settled=True in 31.0s :: {"seerr": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[15:26:04] migration lines observed: 6
|
||||
[15:26:05] seerr: the title read back True; sign-in http=200 (wrong password refused: http 401) ok=True
|
||||
[15:26:05] RESULT (seed reads back AFTER): True
|
||||
[15:26:05] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:5055
|
||||
[15:26:21] + 15s seerr=207M/384M peak=209M kills=0 rs=0 reqs=285
|
||||
[15:26:36] + 30s seerr=208M/384M peak=209M kills=0 rs=0 reqs=572
|
||||
[15:26:51] + 45s seerr=208M/384M peak=211M kills=0 rs=0 reqs=860
|
||||
[15:27:06] + 60s seerr=208M/384M peak=211M kills=0 rs=0 reqs=1145
|
||||
[15:27:21] + 76s seerr=208M/384M peak=211M kills=0 rs=0 reqs=1435
|
||||
[15:27:36] + 91s seerr=207M/384M peak=211M kills=0 rs=0 reqs=1721
|
||||
[15:27:51] + 106s seerr=207M/384M peak=212M kills=0 rs=0 reqs=2010
|
||||
[15:28:06] + 121s seerr=208M/384M peak=212M kills=0 rs=0 reqs=2300
|
||||
[15:28:22] + 136s seerr=207M/384M peak=212M kills=0 rs=0 reqs=2589
|
||||
[15:28:37] + 151s seerr=207M/384M peak=212M kills=0 rs=0 reqs=2877
|
||||
[15:28:52] + 166s seerr=208M/384M peak=217M kills=0 rs=0 reqs=3165
|
||||
[15:29:07] + 182s seerr=210M/384M peak=217M kills=0 rs=0 reqs=3457
|
||||
[15:29:22] + 197s seerr=210M/384M peak=217M kills=0 rs=0 reqs=3745
|
||||
[15:29:37] + 212s seerr=209M/384M peak=217M kills=0 rs=0 reqs=4033
|
||||
[15:29:52] + 227s seerr=209M/384M peak=217M kills=0 rs=0 reqs=4325
|
||||
[15:30:07] + 242s seerr=215M/384M peak=220M kills=0 rs=0 reqs=4603
|
||||
[15:30:23] + 257s seerr=221M/384M peak=225M kills=0 rs=0 reqs=4892
|
||||
[15:30:38] + 272s seerr=223M/384M peak=225M kills=0 rs=0 reqs=5183
|
||||
[15:30:53] + 287s seerr=222M/384M peak=228M kills=0 rs=0 reqs=5471
|
||||
[15:31:08] + 302s seerr=223M/384M peak=228M kills=0 rs=0 reqs=5763
|
||||
[15:31:23] + 318s seerr=223M/384M peak=229M kills=0 rs=0 reqs=6051
|
||||
[15:31:38] + 333s seerr=223M/384M peak=229M kills=0 rs=0 reqs=6339
|
||||
[15:31:53] + 348s seerr=223M/384M peak=229M kills=0 rs=0 reqs=6631
|
||||
[15:32:08] + 363s seerr=222M/384M peak=229M kills=0 rs=0 reqs=6919
|
||||
[15:32:24] + 378s seerr=223M/384M peak=229M kills=0 rs=0 reqs=7210
|
||||
[15:32:39] + 393s seerr=222M/384M peak=229M kills=0 rs=0 reqs=7499
|
||||
[15:32:54] + 408s seerr=223M/384M peak=229M kills=0 rs=0 reqs=7787
|
||||
[15:33:09] + 424s seerr=223M/384M peak=229M kills=0 rs=0 reqs=8079
|
||||
[15:33:24] + 439s seerr=223M/384M peak=229M kills=0 rs=0 reqs=8367
|
||||
[15:33:39] + 454s seerr=223M/384M peak=229M kills=0 rs=0 reqs=8656
|
||||
[15:33:54] + 469s seerr=223M/384M peak=229M kills=0 rs=0 reqs=8947
|
||||
[15:34:09] + 484s seerr=223M/384M peak=229M kills=0 rs=0 reqs=9235
|
||||
[15:34:25] + 499s seerr=223M/384M peak=229M kills=0 rs=0 reqs=9527
|
||||
[15:34:40] + 514s seerr=223M/384M peak=229M kills=0 rs=0 reqs=9815
|
||||
[15:34:55] + 529s seerr=223M/384M peak=229M kills=0 rs=0 reqs=10104
|
||||
[15:35:10] + 545s seerr=223M/384M peak=229M kills=0 rs=0 reqs=10395
|
||||
[15:35:25] + 560s seerr=223M/384M peak=229M kills=0 rs=0 reqs=10685
|
||||
[15:35:40] + 575s seerr=223M/384M peak=229M kills=0 rs=0 reqs=10975
|
||||
[15:35:55] + 590s seerr=223M/384M peak=229M kills=0 rs=0 reqs=11265
|
||||
[15:36:11] + 605s seerr=223M/384M peak=229M kills=0 rs=0 reqs=11555
|
||||
[15:36:11] memory watch: killed=False tight=[] requests=11555 codes={'307': 11555}
|
||||
[15:36:11] MV-seerr: ABORT — putting the FROM images back
|
||||
[15:36:43] seerr: the title read back True; sign-in http=500 (wrong password refused: http 500) ok=False
|
||||
[15:36:43] ABORT: app came back in 30.9s; data present=False
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
[2Kseerr |
|
||||
[2Kseerr | > seerr@3.5.1 start
|
||||
[2Kseerr | > NODE_ENV=production node dist/index.js
|
||||
[2Kseerr |
|
||||
[2Kseerr | 2026-10-28T15:25:34.950Z [[32minfo[39m]: Commit Tag: 564bfb08b54caa374bddaf820abfd226e5e69151
|
||||
[2Kseerr | 2026-10-28T15:25:36.823Z [[32minfo[39m]: Starting Seerr version 3.5.1
|
||||
[2Kseerr | 2026-10-28T15:25:39.146Z [[34mdebug[39m][Settings Migrator]: Checking migration '0001_migrate_hostname.js'...
|
||||
[2Kseerr | 2026-10-28T15:25:39.150Z [[34mdebug[39m][Settings Migrator]: Checking migration '0002_migrate_apitokens.js'...
|
||||
[2Kseerr | 2026-10-28T15:25:39.153Z [[34mdebug[39m][Settings Migrator]: Checking migration '0003_emby_media_server_type.js'...
|
||||
[2Kseerr | 2026-10-28T15:25:39.155Z [[34mdebug[39m][Settings Migrator]: Checking migration '0004_migrate_region_setting.js'...
|
||||
[2Kseerr | 2026-10-28T15:25:39.157Z [[34mdebug[39m][Settings Migrator]: Checking migration '0005_migrate_network_settings.js'...
|
||||
[2Kseerr | 2026-10-28T15:25:39.159Z [[34mdebug[39m][Settings Migrator]: Checking migration '0006_remove_lunasea.js'...
|
||||
[2Kseerr | 2026-10-28T15:25:39.160Z [[34mdebug[39m][Settings Migrator]: Checking migration '0007_migrate_arr_tags.js'...
|
||||
[2Kseerr | 2026-10-28T15:25:39.176Z [[34mdebug[39m][Settings Migrator]: Migration '0007_migrate_arr_tags.js' has been applied.
|
||||
[2Kseerr | 2026-10-28T15:25:39.177Z [[34mdebug[39m][Settings Migrator]: Checking migration '0008_migrate_blacklist_to_blocklist.js'...
|
||||
[2Kseerr | 2026-10-28T15:25:39.178Z [[34mdebug[39m][Settings Migrator]: Migration '0008_migrate_blacklist_to_blocklist.js' has been applied.
|
||||
[2Kseerr | 2026-10-28T15:25:39.191Z [[32minfo[39m][Notifications]: Registered notification agents
|
||||
[2Kseerr | 2026-10-28T15:25:39.228Z [[32minfo[39m][Jobs]: Scheduled jobs loaded
|
||||
[2Kseerr | 2026-10-28T15:25:39.315Z [[32minfo[39m][Server]: Server ready on port 5055
|
||||
[2Kseerr | 2026-10-28T15:26:00.021Z [[34mdebug[39m][Jobs]: Starting scheduled job: Download Sync
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"seerr": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
}
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"harness_version": 5,
|
||||
"edge": "MV-seerr",
|
||||
"app": "seerr",
|
||||
"note": "definition step to seerr-v3",
|
||||
"from": {
|
||||
"seerr": "fallenbagel/jellyseerr:2.7.3"
|
||||
},
|
||||
"to": {
|
||||
"seerr": "ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": "\u001b[2Kseerr | 2026-10-28T15:25:39.146Z [\u001b[34mdebug\u001b[39m][Settings Migrator]: Checking migration '0001_migrate_hostname.js'...",
|
||||
"abort": "starts-data-gone",
|
||||
"abort_detail": "the app started but the seeded data was gone",
|
||||
"engine_state_after": null,
|
||||
"memory": {
|
||||
"soak_s": 605.3,
|
||||
"requested_s": 600,
|
||||
"requests": 11555,
|
||||
"codes": {
|
||||
"307": 11555
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"limit": 402653184,
|
||||
"peak": 240267264,
|
||||
"peak_pct": 0.597,
|
||||
"anon_peak_sampled": 206442496,
|
||||
"anon_peak_pct": 0.513,
|
||||
"swap_peak": 0,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"venue_swap_bytes": 0,
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"bench_overrides": null,
|
||||
"duration_s": 31.0,
|
||||
"measured_at": "2026-10-28T15:36:43Z",
|
||||
"evidence": "evidence/MV-seerr",
|
||||
"scratch_cleared": [],
|
||||
"files_changed": [],
|
||||
"files_changed_detail": [],
|
||||
"files_ignored": [],
|
||||
"total_s": 716.0
|
||||
}
|
||||
@@ -0,0 +1,225 @@
|
||||
{
|
||||
"app": "seerr",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"seerr": "fallenbagel/jellyseerr:2.7.3"
|
||||
},
|
||||
"to": {
|
||||
"seerr": "ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"seerr": "fallenbagel/jellyseerr:2.7.3"
|
||||
},
|
||||
"installed_images": {
|
||||
"seerr": "fallenbagel/jellyseerr:2.7.3"
|
||||
},
|
||||
"catalog_images": {
|
||||
"seerr": "fallenbagel/jellyseerr:2.7.3"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: fallenbagel/jellyseerr:2.7.3"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"seerr fallenbagel/jellyseerr:2.7.3 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"setup_gate_before": {
|
||||
"browser": {
|
||||
"status": "302",
|
||||
"redirect": "https://felhom.enkisfelhom.hu/__gate/start?…"
|
||||
},
|
||||
"script": {
|
||||
"status": "401",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"seed": "read_back",
|
||||
"to_definition": "/tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/defs/seerr-v3",
|
||||
"drill_commit": "5632a0eeeb45",
|
||||
"sync_waited_s": 4.5,
|
||||
"badge_before": {
|
||||
"hu": [
|
||||
{
|
||||
"title": "Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.",
|
||||
"text": "Frissítés elérhető — ma"
|
||||
}
|
||||
],
|
||||
"en": [
|
||||
{
|
||||
"title": "A newer version of this app is available. Select the Update button to start it.",
|
||||
"text": "Update available — today"
|
||||
}
|
||||
]
|
||||
},
|
||||
"measured_at": "2026-10-28T15:34:20Z",
|
||||
"update": {
|
||||
"accepted": true,
|
||||
"http": "202",
|
||||
"phases": [
|
||||
{
|
||||
"t": 0.0,
|
||||
"phase": "backing-up",
|
||||
"label": "Biztonsági mentés készül a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 2.1,
|
||||
"phase": "safety-dump",
|
||||
"label": "Adatbázis pillanatkép…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 3.1,
|
||||
"phase": "pulling",
|
||||
"label": "Új verzió letöltése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 52.3,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok másolása a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 62.5,
|
||||
"phase": "verifying",
|
||||
"label": "Működés ellenőrzése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 78.0,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 78.0,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"seerr": "ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
},
|
||||
"installed_images": {
|
||||
"seerr": "ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
},
|
||||
"catalog_images": {
|
||||
"seerr": "ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"seerr ghcr.io/seerr-team/seerr:v3.5.1 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"badge_after": {
|
||||
"hu": [
|
||||
{
|
||||
"title": "Ez az alkalmazás a legfrissebb elérhető változatot futtatja.",
|
||||
"text": "Naprakész"
|
||||
}
|
||||
],
|
||||
"en": [
|
||||
{
|
||||
"title": "This app is running the newest version available.",
|
||||
"text": "Up to date"
|
||||
}
|
||||
]
|
||||
},
|
||||
"state_after": "running",
|
||||
"hold_after": null,
|
||||
"to_digests": {
|
||||
"seerr": "sha256:d8fab675b55ad293ded98fd71efcfd46054cbad9746534ae1cc4794a88c0b3be"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"seerr": "ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
},
|
||||
"installed": {
|
||||
"seerr": "ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
},
|
||||
"catalog": {
|
||||
"seerr": "ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
},
|
||||
"live_compose": [
|
||||
"ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
]
|
||||
},
|
||||
"seed_read_after": true,
|
||||
"setup_gate_after": {
|
||||
"browser": {
|
||||
"status": "302",
|
||||
"redirect": "https://felhom.enkisfelhom.hu/__gate/start?…"
|
||||
},
|
||||
"script": {
|
||||
"status": "401",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"soak_s": 600,
|
||||
"interval_s": 10,
|
||||
"samples": 60,
|
||||
"containers": {
|
||||
"seerr": {
|
||||
"samples": 60,
|
||||
"anon_peak_bytes": 174673920,
|
||||
"limit_bytes": 402653184,
|
||||
"anon_peak_pct": 43.4,
|
||||
"cgroup_peak_pct": 52.8,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-824256c63a7fb4236dcd70f4e725bbd2c7414724a9c2e91a920cef5b3cf6aa1d.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 43.4
|
||||
},
|
||||
"why": "the security-fix step ran on the box through the guarded Update; healthy, TO on all four observables, no undo, no hold, a clean soak, seed read back",
|
||||
"log": [
|
||||
"16:26:30 [5] the box's drill mirror now at f574f6fef",
|
||||
"16:26:34 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"16:28:00 [1] deployed, controller state=running, pinned={'seerr': 'fallenbagel/jellyseerr:2.7.3'}",
|
||||
"16:28:00 gate: seerr is gated — passed as the household (cookie set)",
|
||||
"16:33:03 app never answered on seerr/ (last rc=0 code=307)",
|
||||
"16:33:06 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}",
|
||||
"16:34:04 seerr: throwaway Jellyfin on traefik-public: user=204 complete=204",
|
||||
"16:34:05 seerr: admin drilla4afc57d signed in through Jellyfin; application title stored http=200",
|
||||
"16:34:06 seerr: the title read back True; sign-in http=200 (wrong password refused: http 401) ok=True",
|
||||
"16:34:07 [5] drill commit 5632a0eeeb45: seerr -> the definition in /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/defs/seerr-v3 (push rc=0)",
|
||||
"16:34:15 [5] the box's drill mirror now at 5632a0eee",
|
||||
"16:34:20 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}",
|
||||
"16:34:20 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
|
||||
"16:34:22 + 2.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None",
|
||||
"16:34:23 + 3.1s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"16:35:13 + 52.3s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"16:35:23 + 62.5s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"16:35:38 + 78.0s phase=done label=Frissítve err=None hold=None",
|
||||
"16:35:57 seerr: the title read back True; sign-in http=200 (wrong password refused: http 401) ok=True",
|
||||
"16:35:57 [7] memory soak 600 s …",
|
||||
"16:46:03 [7] soak: peak 43.4% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
16:26:30 [5] the box's drill mirror now at f574f6fef
|
||||
16:26:34 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
16:28:00 [1] deployed, controller state=running, pinned={'seerr': 'fallenbagel/jellyseerr:2.7.3'}
|
||||
16:28:00 gate: seerr is gated — passed as the household (cookie set)
|
||||
16:33:03 app never answered on seerr/ (last rc=0 code=307)
|
||||
16:33:06 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}
|
||||
16:34:04 seerr: throwaway Jellyfin on traefik-public: user=204 complete=204
|
||||
16:34:05 seerr: admin drilla4afc57d signed in through Jellyfin; application title stored http=200
|
||||
16:34:06 seerr: the title read back True; sign-in http=200 (wrong password refused: http 401) ok=True
|
||||
16:34:07 [5] drill commit 5632a0eeeb45: seerr -> the definition in /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/defs/seerr-v3 (push rc=0)
|
||||
16:34:15 [5] the box's drill mirror now at 5632a0eee
|
||||
16:34:20 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
16:34:20 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
16:34:22 + 2.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
16:34:23 + 3.1s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
16:35:13 + 52.3s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
16:35:23 + 62.5s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
16:35:38 + 78.0s phase=done label=Frissítve err=None hold=None
|
||||
16:35:57 seerr: the title read back True; sign-in http=200 (wrong password refused: http 401) ok=True
|
||||
16:35:57 [7] memory soak 600 s …
|
||||
16:46:03 [7] soak: peak 43.4% of the limit (anon), kills 0, restarts 0
|
||||
16:46:03 [9] verdict proven -> /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/p2/box/seerr/verdict.json
|
||||
16:46:03 RESULT proven — the security-fix step ran on the box through the guarded Update; healthy, TO on all four observables, no undo, no hold, a clean soak, seed read back
|
||||
16:46:03 [X] stop -> 200 {'ok': True, 'message': 'Stack seerr stop completed'}
|
||||
@@ -0,0 +1,188 @@
|
||||
# =============================================================================
|
||||
# .felhom.yml - App metadata for felhom-controller
|
||||
# =============================================================================
|
||||
|
||||
# --- Display info (shown on dashboard) ---
|
||||
display_name: "Jellyseerr"
|
||||
description: "Média igénylés kezelő Jellyfin/Plex integrációval"
|
||||
category: "media-automation"
|
||||
subdomain: "requests"
|
||||
slug: "seerr"
|
||||
# catalog_since: the date THIS repo last changed this app's pinned images. Any commit that
|
||||
# changes an image: line must set this to the same day (see CLAUDE.md).
|
||||
catalog_since: "2026-07-18"
|
||||
|
||||
# --- Resource hints (displayed on deploy screen) ---
|
||||
resources:
|
||||
mem_request: "200M"
|
||||
mem_limit: "384M"
|
||||
pi_compatible: true
|
||||
needs_hdd: false
|
||||
|
||||
# --- Deploy fields (first deployment only) ---
|
||||
deploy_fields:
|
||||
- env_var: DOMAIN
|
||||
label: "Domain"
|
||||
type: domain
|
||||
description: "A szerver domain neve"
|
||||
locked_after_deploy: true
|
||||
|
||||
- env_var: SUBDOMAIN
|
||||
label: "Aldomain"
|
||||
type: subdomain
|
||||
default: "requests"
|
||||
required: true
|
||||
locked_after_deploy: true
|
||||
description: "Az alkalmazás aldomainje"
|
||||
|
||||
# --- The setup gate (controller >= 0.281.0, `09` §3 decisions 46-47) ---
|
||||
# The first visitor would create the admin; a fresh install is closed to everyone but the household until the first setup is done.
|
||||
setup_gate: true
|
||||
|
||||
# --- App info (info page content) ---
|
||||
app_info:
|
||||
tagline: "Film és sorozat igénylő a háztartás tagjai számára"
|
||||
docs_url: "https://docs.overseerr.dev/"
|
||||
|
||||
use_cases:
|
||||
- 'Családtagok filmeket és sorozatokat igényelhetnek egyszerűen'
|
||||
- 'Automatikus letöltés Sonarr/Radarr integrációval'
|
||||
- 'Elérhető tartalmak böngészése szép felületen'
|
||||
- 'Igénylések állapotának követése'
|
||||
- 'Felhasználói kvóták és jogosultságok kezelése'
|
||||
|
||||
first_steps:
|
||||
- 'Nyisd meg a requests.DOMAIN címet a böngészőben'
|
||||
- 'Kövesd a beállítás varázslót'
|
||||
- 'Csatlakoztasd a Jellyfin vagy Plex szerveredet'
|
||||
- 'Csatlakoztasd a Sonarr és Radarr példányokat'
|
||||
- 'Hívd meg a családtagokat'
|
||||
|
||||
prerequisites:
|
||||
- 'Jellyfin vagy Plex szerver szükséges'
|
||||
- 'Sonarr és/vagy Radarr szükséges az automatikus letöltéshez'
|
||||
guide:
|
||||
checked_version: "2.7.3"
|
||||
sections:
|
||||
- title: "Film vagy sorozat kérése"
|
||||
intro: "Bármelyik családtag kérhet filmet vagy sorozatot, a Jellyseerr pedig továbbadja a Radarrnak vagy a Sonarrnak."
|
||||
steps:
|
||||
- "Írd be a címet a felső „Search Movies & TV” (keresés) mezőbe."
|
||||
- "Nyisd meg a találatot, és kattints a „Request” (kérés) gombra."
|
||||
- "Sorozatnál jelöld be a kívánt évadokat."
|
||||
- "Erősítsd meg a kérést az ablak alján lévő gombbal."
|
||||
- title: "Kérések jóváhagyása"
|
||||
intro: "A családtag kérése addig vár, amíg jóvá nem hagyod."
|
||||
steps:
|
||||
- "Nyisd meg a bal oldali menüben a „Requests” (kérések) oldalt."
|
||||
- "A várakozó kérés mellett „Pending” (függőben) áll."
|
||||
- "Kattints az „Approve” (jóváhagyás) gombra, és a kérés a Radarrhoz vagy a Sonarrhoz kerül. A „Decline” (elutasítás) elveti."
|
||||
- title: "Kérés jóváhagyás nélkül"
|
||||
intro: "Akiben megbízol, annak a kérését nem kell külön jóváhagynod."
|
||||
steps:
|
||||
- "Nyisd meg a „Users” (felhasználók) oldalt, és a családtag sorában kattints az „Edit” (szerkesztés) gombra."
|
||||
- "Nyisd meg a „Permissions” (jogosultságok) lapot, és jelöld be az „Auto-Approve” (automatikus jóváhagyás) jelölőt."
|
||||
- "Kattints a „Save Changes” (változások mentése) gombra."
|
||||
- title: "Hiba jelzése egy filmnél"
|
||||
intro: "Ha egy film rossz hanggal vagy felirat nélkül érkezett, a családtag jelezheti neked."
|
||||
steps:
|
||||
- "Nyisd meg a filmet, és kattints a figyelmeztető jelre („Report an Issue”, hiba jelzése)."
|
||||
- "Válaszd ki, mi a gond, például „Audio” (hang) vagy „Subtitle” (felirat), és írd le röviden."
|
||||
- "Kattints a „Submit Issue” (beküldés) gombra."
|
||||
- "A beküldött jelzéseket az „Issues” (hibák) oldalon látod."
|
||||
faq:
|
||||
- q: "Jóváhagytam, de nem töltődik le. Miért?"
|
||||
a: "A doboz a Sonarrban és a Radarrban minden meghajtóhoz címkét adott (például hdd-1), és csak a címkézett tétel kap letöltőt. A Jellyseerr „Settings” (beállítások) „Services” (szolgáltatások) oldalán a Radarrnál és a Sonarrnál a „Root Folder” (gyökérmappa) és a „Tags” (címkék) ugyanannak a meghajtónak a mappáját és címkéjét válassza."
|
||||
- q: "Mit írjak be a Radarr és a Sonarr címéhez?"
|
||||
a: "A „Hostname or IP Address” (cím) mezőbe radarr, a „Port” mezőbe 7878 kerül; a Sonarrnál sonarr és 8989. Az API kulcsot a Radarr és a Sonarr saját beállításaiban találod."
|
||||
- q: "Mit jelent az „Available” állapot?"
|
||||
a: "A film vagy a sorozat letöltődött, és a Jellyfinben vagy a Plexben nézheted."
|
||||
- q: "Lehet magyar a felület?"
|
||||
a: "Igen. A „Settings” (beállítások) „General” (általános) lapján a „Display Language” (megjelenítési nyelv) mezőben válaszd a magyart, majd kattints a „Save Changes” (változások mentése) gombra."
|
||||
- q: "Mit kérhetek?"
|
||||
a: "Csak olyan tartalmat, amihez jogod van, például szabad licencű filmeket. Hogy honnan jön a letöltés, azt a Prowlarrban te döntöd el."
|
||||
|
||||
# --- Controller-side health probe ---
|
||||
healthcheck:
|
||||
checks:
|
||||
- type: api
|
||||
port: 5055
|
||||
path: "/api/v1/status"
|
||||
expect:
|
||||
status: 200
|
||||
|
||||
# --- English copy (localisation slice 5, R-560) --------------------------------------------
|
||||
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
|
||||
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
|
||||
i18n:
|
||||
en:
|
||||
description: 'Media requests, wired into Jellyfin/Plex'
|
||||
app_info:
|
||||
tagline: 'The household asks for a film or a series here'
|
||||
use_cases:
|
||||
- 'The household can ask for films and series without fuss'
|
||||
- 'Sonarr/Radarr fetch them on their own'
|
||||
- 'Browse what is already there, on a good-looking page'
|
||||
- 'Follow what has happened to a request'
|
||||
- 'Per-person quotas and permissions'
|
||||
first_steps:
|
||||
- 'Open requests.DOMAIN in your browser'
|
||||
- 'Follow the setup wizard'
|
||||
- 'Connect your Jellyfin or Plex server'
|
||||
- 'Connect your Sonarr and Radarr'
|
||||
- 'Invite the household'
|
||||
prerequisites:
|
||||
- 'A Jellyfin or Plex server is needed'
|
||||
- 'Sonarr and/or Radarr is needed for the downloading'
|
||||
guide:
|
||||
sections:
|
||||
- title: "Ask for a film or a series"
|
||||
intro: "Anyone in the family can ask for a film or a series, and Jellyseerr hands it to Radarr or Sonarr."
|
||||
steps:
|
||||
- "Type the title into the „Search Movies & TV” box at the top."
|
||||
- "Open the result and select „Request”."
|
||||
- "For a series, tick the seasons you want."
|
||||
- "Confirm the request with the button at the bottom of the window."
|
||||
- title: "Approve requests"
|
||||
intro: "A family member's request waits until you approve it."
|
||||
steps:
|
||||
- "Open the „Requests” page in the menu on the left."
|
||||
- "A waiting request says „Pending”."
|
||||
- "Select „Approve”, and the request goes to Radarr or Sonarr. „Decline” drops it."
|
||||
- title: "Requests without approval"
|
||||
intro: "For someone you trust, you do not have to approve each request."
|
||||
steps:
|
||||
- "Open the „Users” page and select „Edit” in the family member's row."
|
||||
- "Open the „Permissions” tab and tick „Auto-Approve”."
|
||||
- "Select „Save Changes”."
|
||||
- title: "Report a problem with a film"
|
||||
intro: "If a film came with the wrong audio or without subtitles, a family member can tell you."
|
||||
steps:
|
||||
- "Open the film and select the warning sign („Report an Issue”)."
|
||||
- "Choose what is wrong, for example „Audio” or „Subtitle”, and describe it briefly."
|
||||
- "Select „Submit Issue”."
|
||||
- "You see the reports on the „Issues” page."
|
||||
faq:
|
||||
- q: "I approved it, but it does not download. Why?"
|
||||
a: "The box gave Sonarr and Radarr a tag for every drive (for example hdd-1), and only a tagged item gets a download client. On the „Services” page of Jellyseerr's „Settings”, make „Root Folder” and „Tags” for Radarr and Sonarr name the folder and the tag of the same drive."
|
||||
- q: "What do I enter as the address of Radarr and Sonarr?"
|
||||
a: "In „Hostname or IP Address” enter radarr, and in „Port” 7878; for Sonarr, sonarr and 8989. You find the API key in Radarr's and Sonarr's own settings."
|
||||
- q: "What does „Available” mean?"
|
||||
a: "The film or series has downloaded, and you can watch it in Jellyfin or Plex."
|
||||
- q: "Can the interface be in Hungarian?"
|
||||
a: "Yes. On the „General” tab of „Settings”, choose Hungarian in „Display Language”, then select „Save Changes”."
|
||||
- q: "What may I ask for?"
|
||||
a: "Only content you have the right to, for example films under a free licence. Where the download comes from is your choice in Prowlarr."
|
||||
deploy_fields:
|
||||
- env_var: DOMAIN
|
||||
label: 'Domain'
|
||||
description: 'The server domain name'
|
||||
- env_var: SUBDOMAIN
|
||||
label: 'Subdomain'
|
||||
description: 'The subdomain this app answers on'
|
||||
|
||||
# --- Security watch (felhom.eu R-1303): where each image's security notices are published ---
|
||||
# One line per image in docker-compose.yml; the grammar is in NEW-APP-CHECKLIST.md (1.10).
|
||||
upstream:
|
||||
fallenbagel/jellyseerr: "github:seerr-team/seerr"
|
||||
ghcr.io/seerr-team/seerr: "github:seerr-team/seerr"
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
# Jellyseerr - Média igénylés kezelő Jellyfin/Plex integrációval
|
||||
# Domain: ${SUBDOMAIN}.${DOMAIN}
|
||||
# Database: None (file-based)
|
||||
# RAM: ~100M (mem_limit: 384M) | Pi-compatible: Yes
|
||||
#
|
||||
# Environment variables:
|
||||
# DOMAIN - Your domain (e.g., demo-felhom.eu)
|
||||
|
||||
services:
|
||||
seerr:
|
||||
# Seerr v3 (2026-10-28, felhom.eu R-1317): Jellyseerr and Overseerr merged into `ghcr.io/seerr-team/seerr`. v3 runs as
|
||||
# `node` (UID 1000) and needs /app/config owned by it; a Jellyseerr volume is owned by root. So the container STARTS
|
||||
# as root only to hand /app/config to 1000, then runs Seerr as `node` through busybox `su` (no root process stays;
|
||||
# measured on the bench: root PID 1 is docker-init, Seerr is `node`). `init: true` is upstream's own requirement
|
||||
# (the image has no init). Seerr migrates Jellyseerr's settings and database by itself on the first start.
|
||||
image: ghcr.io/seerr-team/seerr:v3.5.1
|
||||
container_name: seerr
|
||||
restart: unless-stopped
|
||||
init: true
|
||||
user: "0:0"
|
||||
entrypoint: ["/bin/sh", "-c", "chown -R 1000:1000 /app/config && exec su node -s /bin/sh -c 'exec docker-entrypoint.sh npm start'"]
|
||||
environment:
|
||||
- TZ=Europe/Budapest
|
||||
volumes:
|
||||
- seerr_config:/app/config
|
||||
networks:
|
||||
- traefik-public
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 384M
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:5055/api/v1/status"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.seerr.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)"
|
||||
# R-753: this app reads the LEFTMOST X-Forwarded-For entry, which a stranger writes once traefik keeps the
|
||||
# tunnel's chain — so its chain is removed here (it then reads traefik's X-Real-Ip or peer; never forgeable).
|
||||
- "traefik.http.middlewares.seerr-xff.headers.customrequestheaders.X-Forwarded-For="
|
||||
- "traefik.http.routers.seerr.middlewares=seerr-xff"
|
||||
- "traefik.http.routers.seerr.entrypoints=websecure"
|
||||
- "traefik.http.routers.seerr.tls=true"
|
||||
- "traefik.http.routers.seerr.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.seerr.loadbalancer.server.port=5055"
|
||||
|
||||
volumes:
|
||||
seerr_config:
|
||||
|
||||
networks:
|
||||
traefik-public:
|
||||
external: true
|
||||
@@ -0,0 +1,28 @@
|
||||
16:46:18 [X] stop -> 200 {'ok': True, 'message': 'Stack seerr stop completed'}
|
||||
16:46:50 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'seerr', 'volumes_removed': [], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazás nem tárolt saját
|
||||
16:46:59 [X] after remove: deployed=False leftovers=''
|
||||
16:47:07 [5] the box's drill mirror now at 3884d373a
|
||||
16:47:12 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
16:48:27 [1] deployed, controller state=running, pinned={'seerr': 'fallenbagel/jellyseerr:2.7.3'}
|
||||
16:48:27 gate: seerr is gated — passed as the household (cookie set)
|
||||
16:48:49 seerr: throwaway Jellyfin on traefik-public: user=204 complete=204
|
||||
16:48:50 seerr: admin drilld31a3e56 signed in through Jellyfin; application title stored http=200
|
||||
16:48:51 seerr: the title read back True; sign-in http=200 (wrong password refused: http 401) ok=True
|
||||
16:48:52 drill commit 19cbcb22db30: seerr TO with failing checks
|
||||
16:49:00 [5] the box's drill mirror now at 19cbcb22d
|
||||
16:49:05 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
16:49:05 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
16:49:07 + 2.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
16:49:08 + 3.1s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
16:49:56 + 51.2s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
16:50:03 + 58.4s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
16:55:06 + 361.7s phase=undoing label=Visszaállítás az előző változatra… err=None hold=None
|
||||
16:55:19 + 374.0s phase=undone label=Visszaállítva az előző változatra err=None hold=None
|
||||
16:55:41 seerr: the title read back True; sign-in http=200 (wrong password refused: http 401) ok=True
|
||||
16:55:41 RESULT proven — TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back
|
||||
16:55:42 [X] stop -> 200 {'ok': True, 'message': 'Stack seerr stop completed'}
|
||||
16:56:14 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'seerr', 'volumes_removed': ['seerr_seerr_config'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalma
|
||||
16:56:22 [X] after remove: deployed=False leftovers=''
|
||||
16:56:32 [5] the box's drill mirror now at dff3cb84fc
|
||||
16:56:32 drill revert 19cbcb22db30: rc=0
|
||||
16:56:32 drill templates/seerr equal to before: True
|
||||
@@ -0,0 +1,170 @@
|
||||
{
|
||||
"app": "seerr",
|
||||
"from": {
|
||||
"seerr": "fallenbagel/jellyseerr:2.7.3"
|
||||
},
|
||||
"to": {
|
||||
"seerr": "ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
},
|
||||
"started": "2026-10-28T15:46:18Z",
|
||||
"drill_head_before": "3884d373adc45b72d5e6e4271765ea68251d5d67",
|
||||
"failing_compose_main_healthcheck": [
|
||||
"test: [\"CMD\", \"false\"]"
|
||||
],
|
||||
"failing_probe": true,
|
||||
"update": {
|
||||
"accepted": true,
|
||||
"http": "202",
|
||||
"phases": [
|
||||
{
|
||||
"t": 0.0,
|
||||
"phase": "backing-up",
|
||||
"label": "Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 2.1,
|
||||
"phase": "safety-dump",
|
||||
"label": "Adatb\u00e1zis pillanatk\u00e9p\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 3.1,
|
||||
"phase": "pulling",
|
||||
"label": "\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 51.2,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 58.4,
|
||||
"phase": "verifying",
|
||||
"label": "M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 361.7,
|
||||
"phase": "undoing",
|
||||
"label": "Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 374.0,
|
||||
"phase": "undone",
|
||||
"label": "Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 374.0,
|
||||
"final_phase": "undone",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"to_log_while_verifying": [
|
||||
"ghcr.io/seerr-team/seerr:v3.5.1",
|
||||
"",
|
||||
"> seerr@3.5.1 start",
|
||||
"> NODE_ENV=production node dist/index.js",
|
||||
"",
|
||||
"2026-10-28T15:50:04.487Z [\u001b[32minfo\u001b[39m]: Commit Tag: 564bfb08b54caa374bddaf820abfd226e5e69151 ",
|
||||
"2026-10-28T15:50:06.230Z [\u001b[32minfo\u001b[39m]: Starting Seerr version 3.5.1 ",
|
||||
"2026-10-28T15:50:08.578Z [\u001b[34mdebug\u001b[39m][Settings Migrator]: Checking migration '0001_migrate_hostname.js'... ",
|
||||
"2026-10-28T15:50:08.582Z [\u001b[34mdebug\u001b[39m][Settings Migrator]: Checking migration '0002_migrate_apitokens.js'... ",
|
||||
"2026-10-28T15:50:08.584Z [\u001b[34mdebug\u001b[39m][Settings Migrator]: Checking migration '0003_emby_media_server_type.js'... ",
|
||||
"2026-10-28T15:50:08.586Z [\u001b[34mdebug\u001b[39m][Settings Migrator]: Checking migration '0004_migrate_region_setting.js'... ",
|
||||
"2026-10-28T15:50:08.587Z [\u001b[34mdebug\u001b[39m][Settings Migrator]: Checking migration '0005_migrate_network_settings.js'... ",
|
||||
"2026-10-28T15:50:08.589Z [\u001b[34mdebug\u001b[39m][Settings Migrator]: Checking migration '0006_remove_lunasea.js'... ",
|
||||
"2026-10-28T15:50:08.590Z [\u001b[34mdebug\u001b[39m][Settings Migrator]: Checking migration '0007_migrate_arr_tags.js'... ",
|
||||
"2026-10-28T15:50:08.608Z [\u001b[34mdebug\u001b[39m][Settings Migrator]: Migration '0007_migrate_arr_tags.js' has been applied. ",
|
||||
"2026-10-28T15:50:08.609Z [\u001b[34mdebug\u001b[39m][Settings Migrator]: Checking migration '0008_migrate_blacklist_to_blocklist.js'... ",
|
||||
"2026-10-28T15:50:08.610Z [\u001b[34mdebug\u001b[39m][Settings Migrator]: Migration '0008_migrate_blacklist_to_blocklist.js' has been applied. ",
|
||||
"2026-10-28T15:50:08.620Z [\u001b[32minfo\u001b[39m][Notifications]: Registered notification agents ",
|
||||
"2026-10-28T15:50:08.659Z [\u001b[32minfo\u001b[39m][Jobs]: Scheduled jobs loaded ",
|
||||
"2026-10-28T15:50:08.752Z [\u001b[32minfo\u001b[39m][Server]: Server ready on port 5055 ",
|
||||
"2026-10-28T15:51:00.027Z [\u001b[34mdebug\u001b[39m][Jobs]: Starting scheduled job: Download Sync ",
|
||||
"2026-10-28T15:52:00.025Z [\u001b[34mdebug\u001b[39m][Jobs]: Starting scheduled job: Download Sync ",
|
||||
"2026-10-28T15:53:00.026Z [\u001b[34mdebug\u001b[39m][Jobs]: Starting scheduled job: Download Sync ",
|
||||
"2026-10-28T15:54:00.028Z [\u001b[34mdebug\u001b[39m][Jobs]: Starting scheduled job: Download Sync ",
|
||||
"2026-10-28T15:55:00.024Z [\u001b[34mdebug\u001b[39m][Jobs]: Starting scheduled job: Download Sync ",
|
||||
"2026-10-28T15:55:00.031Z [\u001b[32minfo\u001b[39m][Jobs]: Starting scheduled job: Jellyfin Recently Added Scan ",
|
||||
"2026-10-28T15:55:00.032Z [\u001b[32minfo\u001b[39m][Jellyfin Sync]: Scan starting {\"sessionId\":\"0a058d41-505e-4598-9a2e-06a61e572a9f\"}",
|
||||
"2026-10-28T15:55:00.042Z [\u001b[32minfo\u001b[39m][Anime-List Sync]: Downloading latest mapping file ",
|
||||
"2026-10-28T15:55:00.202Z [\u001b[32minfo\u001b[39m][Anime-List Sync]: Loading mapping file ",
|
||||
"2026-10-28T15:55:00.608Z [\u001b[32minfo\u001b[39m][Anime-List Sync]: Loaded 10782 AniDB items from mapping file ",
|
||||
"2026-10-28T15:55:00.609Z [\u001b[32minfo\u001b[39m][Jellyfin Sync]: Recently Added Scan Complete"
|
||||
],
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"seerr": "fallenbagel/jellyseerr:2.7.3"
|
||||
},
|
||||
"installed_images": {
|
||||
"seerr": "fallenbagel/jellyseerr:2.7.3"
|
||||
},
|
||||
"catalog_images": {
|
||||
"seerr": "ghcr.io/seerr-team/seerr:v3.5.1"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: fallenbagel/jellyseerr:2.7.3"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"seerr fallenbagel/jellyseerr:2.7.3 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"running_images_after": {
|
||||
"seerr": "fallenbagel/jellyseerr:2.7.3"
|
||||
},
|
||||
"seed_after_undo": true,
|
||||
"verdict": "proven",
|
||||
"why": "TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back",
|
||||
"drill_head_after": "dff3cb84fcea54dcf4ac9dbb282660d1907873ab",
|
||||
"drill_tree_equal_to_before": true,
|
||||
"log": [
|
||||
"16:46:18 [X] stop -> 200 {'ok': True, 'message': 'Stack seerr stop completed'}",
|
||||
"16:46:50 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'seerr', 'volumes_removed': [], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmaz\u00e1s nem t\u00e1rolt saj\u00e1t",
|
||||
"16:46:59 [X] after remove: deployed=False leftovers=''",
|
||||
"16:47:07 [5] the box's drill mirror now at 3884d373a",
|
||||
"16:47:12 [1] deploy -> 202 {'ok': True, 'message': 'Telep\u00edt\u00e9s elind\u00edtva \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}",
|
||||
"16:48:27 [1] deployed, controller state=running, pinned={'seerr': 'fallenbagel/jellyseerr:2.7.3'}",
|
||||
"16:48:27 gate: seerr is gated \u2014 passed as the household (cookie set)",
|
||||
"16:48:49 seerr: throwaway Jellyfin on traefik-public: user=204 complete=204",
|
||||
"16:48:50 seerr: admin drilld31a3e56 signed in through Jellyfin; application title stored http=200",
|
||||
"16:48:51 seerr: the title read back True; sign-in http=200 (wrong password refused: http 401) ok=True",
|
||||
"16:48:52 drill commit 19cbcb22db30: seerr TO with failing checks",
|
||||
"16:49:00 [5] the box's drill mirror now at 19cbcb22d",
|
||||
"16:49:05 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Friss\u00edt\u00e9s elindult \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}",
|
||||
"16:49:05 + 0.0s phase=backing-up label=Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None",
|
||||
"16:49:07 + 2.1s phase=safety-dump label=Adatb\u00e1zis pillanatk\u00e9p\u2026 err=None hold=None",
|
||||
"16:49:08 + 3.1s phase=pulling label=\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026 err=None hold=None",
|
||||
"16:49:56 + 51.2s phase=copying label=Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None",
|
||||
"16:50:03 + 58.4s phase=verifying label=M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026 err=None hold=None",
|
||||
"16:55:06 + 361.7s phase=undoing label=Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026 err=None hold=None",
|
||||
"16:55:19 + 374.0s phase=undone label=Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra err=None hold=None",
|
||||
"16:55:41 seerr: the title read back True; sign-in http=200 (wrong password refused: http 401) ok=True",
|
||||
"16:55:41 RESULT proven \u2014 TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back",
|
||||
"16:55:42 [X] stop -> 200 {'ok': True, 'message': 'Stack seerr stop completed'}",
|
||||
"16:56:14 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'seerr', 'volumes_removed': ['seerr_seerr_config'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalma",
|
||||
"16:56:22 [X] after remove: deployed=False leftovers=''",
|
||||
"16:56:32 [5] the box's drill mirror now at dff3cb84fc",
|
||||
"16:56:32 drill revert 19cbcb22db30: rc=0",
|
||||
"16:56:32 drill templates/seerr equal to before: True"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
[13:07:28] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[13:07:28] MV-termix: deploying termix at FROM {'termix': 'ghcr.io/lukegus/termix:2.9.2'}
|
||||
[13:08:36] FROM settled=True in 68.0s :: {"termix": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[13:08:36] fixture: the BOX walk's own (Termix), through upgrade_boxport
|
||||
[13:08:36] termix: seeded user drill1380c770 via /users/create
|
||||
[13:08:36] termix: readback found=True (http 200, control refused as it must)
|
||||
[13:08:36] C1 (seed reads back BEFORE): True
|
||||
[13:08:37] MV-termix: swapping to TO {'termix': 'ghcr.io/lukegus/termix:26.10.5'}
|
||||
[13:09:07] TO up -d rc=0
|
||||
[13:09:38] TO settled=True in 30.9s :: {"termix": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[13:09:38] migration lines observed: 2
|
||||
[13:09:38] termix: readback found=True (http 200, control refused as it must)
|
||||
[13:09:38] RESULT (seed reads back AFTER): True
|
||||
[13:09:38] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:8080
|
||||
[13:09:54] + 15s termix=226M/256M peak=256M kills=0 rs=0 reqs=301
|
||||
[13:10:09] + 30s termix=234M/256M peak=256M kills=0 rs=0 reqs=601
|
||||
[13:10:24] + 45s termix=232M/256M peak=256M kills=0 rs=0 reqs=901
|
||||
[13:10:39] + 60s termix=232M/256M peak=256M kills=0 rs=0 reqs=1202
|
||||
[13:10:54] + 76s termix=233M/256M peak=256M kills=0 rs=0 reqs=1504
|
||||
[13:11:09] + 91s termix=233M/256M peak=256M kills=0 rs=0 reqs=1805
|
||||
[13:11:24] + 106s termix=233M/256M peak=256M kills=0 rs=0 reqs=2105
|
||||
[13:11:39] + 121s termix=232M/256M peak=256M kills=0 rs=0 reqs=2405
|
||||
[13:11:55] + 136s termix=243M/256M peak=256M kills=0 rs=0 reqs=2705
|
||||
[13:12:10] + 151s termix=236M/256M peak=256M kills=0 rs=0 reqs=3006
|
||||
[13:12:25] + 166s termix=236M/256M peak=256M kills=0 rs=0 reqs=3306
|
||||
[13:12:40] + 182s termix=236M/256M peak=256M kills=0 rs=0 reqs=3606
|
||||
[13:12:55] + 197s termix=252M/256M peak=256M kills=0 rs=0 reqs=3906
|
||||
[13:13:10] + 212s termix=252M/256M peak=256M kills=0 rs=0 reqs=4206
|
||||
[13:13:25] + 227s termix=253M/256M peak=256M kills=0 rs=0 reqs=4509
|
||||
[13:13:40] + 242s termix=253M/256M peak=256M kills=0 rs=0 reqs=4810
|
||||
[13:13:56] + 257s termix=252M/256M peak=256M kills=0 rs=0 reqs=5110
|
||||
[13:14:11] + 272s termix=252M/256M peak=256M kills=0 rs=0 reqs=5410
|
||||
[13:14:26] + 287s termix=252M/256M peak=256M kills=0 rs=0 reqs=5710
|
||||
[13:14:41] + 302s termix=250M/256M peak=256M kills=0 rs=0 reqs=6010
|
||||
[13:14:56] + 318s termix=251M/256M peak=256M kills=0 rs=0 reqs=6312
|
||||
[13:15:11] + 333s termix=251M/256M peak=256M kills=0 rs=0 reqs=6614
|
||||
[13:15:26] + 348s termix=252M/256M peak=256M kills=0 rs=0 reqs=6914
|
||||
[13:15:42] + 363s termix=252M/256M peak=256M kills=0 rs=0 reqs=7214
|
||||
[13:15:57] + 378s termix=252M/256M peak=256M kills=0 rs=0 reqs=7515
|
||||
[13:16:12] + 393s termix=252M/256M peak=256M kills=0 rs=0 reqs=7816
|
||||
[13:16:27] + 408s termix=252M/256M peak=256M kills=0 rs=0 reqs=8116
|
||||
[13:16:42] + 424s termix=253M/256M peak=256M kills=0 rs=0 reqs=8418
|
||||
[13:16:57] + 439s termix=253M/256M peak=256M kills=0 rs=0 reqs=8718
|
||||
[13:17:12] + 454s termix=253M/256M peak=256M kills=0 rs=0 reqs=9020
|
||||
[13:17:27] + 469s termix=253M/256M peak=256M kills=0 rs=0 reqs=9320
|
||||
[13:17:43] + 484s termix=253M/256M peak=256M kills=0 rs=0 reqs=9620
|
||||
[13:17:58] + 499s termix=253M/256M peak=256M kills=0 rs=0 reqs=9920
|
||||
[13:18:13] + 514s termix=253M/256M peak=256M kills=0 rs=0 reqs=10220
|
||||
[13:18:28] + 530s termix=253M/256M peak=256M kills=0 rs=0 reqs=10520
|
||||
[13:18:43] + 545s termix=253M/256M peak=256M kills=0 rs=0 reqs=10821
|
||||
[13:18:58] + 560s termix=254M/256M peak=256M kills=0 rs=0 reqs=11124
|
||||
[13:19:13] + 575s termix=253M/256M peak=256M kills=0 rs=0 reqs=11424
|
||||
[13:19:28] + 590s termix=253M/256M peak=256M kills=0 rs=0 reqs=11724
|
||||
[13:19:44] + 605s termix=253M/256M peak=256M kills=0 rs=0 reqs=12024
|
||||
[13:19:44] memory watch: killed=False tight=[] requests=12024 codes={'200': 12024}
|
||||
[13:19:44] MV-termix: ABORT — putting the FROM images back
|
||||
[13:20:16] termix: readback found=True (http 200, control refused as it must)
|
||||
[13:20:16] ABORT: app came back in 30.9s; data present=True
|
||||
{
|
||||
"harness_version": 5,
|
||||
"edge": "MV-termix",
|
||||
"app": "termix",
|
||||
"note": "night 2026-09-23 within-a-major move: termix=ghcr.io/lukegus/termix:26.10.5",
|
||||
"from": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"to": {
|
||||
"termix": "ghcr.io/lukegus/termix:26.10.5"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": "\u001b[2Ktermix | [2:09:31 PM] [SUCCESS] [\ud83d\uddc4\ufe0f] Schema migration completed [op:schema_migration]",
|
||||
"abort": "starts-and-serves",
|
||||
"abort_detail": null,
|
||||
"engine_state_after": null,
|
||||
"memory": {
|
||||
"soak_s": 605.4,
|
||||
"requested_s": 600,
|
||||
"requests": 12024,
|
||||
"codes": {
|
||||
"200": 12024
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"peak": 268439552,
|
||||
"peak_pct": 1.0,
|
||||
"anon_peak_sampled": 141152256,
|
||||
"anon_peak_pct": 0.526,
|
||||
"swap_peak": 0,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"venue_swap_bytes": 0,
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"bench_overrides": null,
|
||||
"duration_s": 30.9,
|
||||
"measured_at": "2026-10-28T13:20:16Z",
|
||||
"evidence": "evidence/MV-termix",
|
||||
"scratch_cleared": [],
|
||||
"files_changed": [],
|
||||
"files_changed_detail": [],
|
||||
"files_ignored": [],
|
||||
"total_s": 768.3
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"termix": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
}
|
||||
}
|
||||
+296
@@ -0,0 +1,296 @@
|
||||
[2Ktermix | Setting up user permissions (PUID: 1000, PGID: 1000)...
|
||||
[2Ktermix | usermod: no changes
|
||||
[2Ktermix | User node is now UID: 1000, GID: 1000
|
||||
[2Ktermix | Loading persisted SSL settings from /app/data/.env
|
||||
[2Ktermix | Configuring web UI to run on port: 8080
|
||||
[2Ktermix | SSL disabled - using HTTP-only configuration (default)
|
||||
[2Ktermix | Data directory is writable
|
||||
[2Ktermix | Starting nginx...
|
||||
[2Ktermix | Starting backend services...
|
||||
[2Ktermix | [2:20:01 PM] [INFO] [🚀] Termix backend initialization started [op:backend_init_start]
|
||||
[2Ktermix | [2:20:01 PM] [INFO] [📦] Termix Backend starting - Version: 2.9.2 [op:startup]
|
||||
[2Ktermix | [2:20:02 PM] [INFO] [🚀] SSL not enabled - skipping certificate generation [op:ssl_disabled_default]
|
||||
[2Ktermix | [2:20:02 PM] [SUCCESS] [🚀] SSL setup completed [op:backend_init_ssl]
|
||||
[2Ktermix | [2:20:02 PM] [INFO] [🗄️] Initializing SQLite database [op:db_init]
|
||||
[2Ktermix | [2:20:02 PM] [INFO] [🗄️] Performance indexes ready in 0ms [op:performance_index_create]
|
||||
[2Ktermix | [2:20:02 PM] [SUCCESS] [🗄️] Schema migration completed [op:schema_migration]
|
||||
[2Ktermix | [2:20:02 PM] [SUCCESS] [🚀] Database initialized (sqlite) [op:backend_init_db]
|
||||
[2Ktermix | [2:20:02 PM] [INFO] [🗄️] User key migration pass finished [op:dek_migration_boot]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🗄️] Removed routine plugin audit entries [op:audit_noise_cleanup]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin acme-ssl@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin ai@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin alerts@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin automations@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin docker@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin file-manager@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin fleets@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin homepage@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin host-metrics@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin ldap@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin network-topology@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin opkssh@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin proxmox@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin remote-desktop@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin secret-sources@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin serial@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin session-recording@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin session-sharing@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin snippets@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin ssh-terminal@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin sso@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin step-ca@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin tailscale@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin telemetry@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin termix-identity@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin tmux-monitor@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin totp@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin tunnels@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin vault@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin wake-on-lan@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin warpgate@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin web-endpoint@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin webauthn@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Loaded plugin workspaces@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory acme-ssl.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory ai.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory automations.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory fleets.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory homepage.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory ldap.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory network-topology.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory opkssh.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory proxmox.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory secret-sources.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory session-recording.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory session-sharing.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory step-ca.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory tailscale.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory termix-identity.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory tmux-monitor.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory vault.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory wake-on-lan.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory warpgate.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [ERROR] [🧩] Skipping plugin directory web-endpoint.tmxplug in /app/data/plugins [op:plugin_load]
|
||||
[2Ktermix | Error: signature check failed: this build trusts no signing keys
|
||||
[2Ktermix | at PluginLoader.loadArtifact (file:///app/dist/backend/backend/plugins/loader.js:211:23)
|
||||
[2Ktermix | at async PluginLoader.loadAll (file:///app/dist/backend/backend/plugins/loader.js:163:40)
|
||||
[2Ktermix | at async initializePlugins (file:///app/dist/backend/backend/plugins/index.js:166:20)
|
||||
[2Ktermix | at async file:///app/dist/backend/backend/starter.js:209:28
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Revoked ai capability "events:core": the manifest no longer declares it [op:plugin_grants]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Revoked ai capability "process:spawn": the manifest no longer declares it [op:plugin_grants]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Revoked ai capability "users:read": the manifest no longer declares it [op:plugin_grants]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Revoked alerts capability "db:core-refs": the manifest no longer declares it [op:plugin_grants]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Revoked file-manager capability "desktop:local": the manifest no longer declares it [op:plugin_grants]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Revoked homepage capability "hosts:activity-provide": the manifest no longer declares it [op:plugin_grants]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Revoked host-metrics capability "notify:send": the manifest no longer declares it [op:plugin_grants]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Revoked remote-desktop capability "desktop:local": the manifest no longer declares it [op:plugin_grants]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Revoked snippets capability "credentials:read": the manifest no longer declares it [op:plugin_grants]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Revoked ssh-terminal capability "desktop:local": the manifest no longer declares it [op:plugin_grants]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Revoked tunnels capability "desktop:local": the manifest no longer declares it [op:plugin_grants]
|
||||
[2Ktermix | [2:20:03 PM] [INFO] [🧩] Revoked tunnels capability "secrets:own": the manifest no longer declares it [op:plugin_grants]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/acme-ssl [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin acme-ssl [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/workspaces [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Workspaces routes mounted at /plugin-api/workspaces [op:plugin:workspaces]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin workspaces [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/network-topology [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Network Topology routes mounted at /plugin-api/network-topology [op:plugin:network-topology]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin network-topology [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/snippets [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Snippets routes mounted at /plugin-api/snippets [op:plugin:snippets]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin snippets [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/fleets [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Fleets routes mounted at /plugin-api/fleets [op:plugin:fleets]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin fleets [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Plugin ssh-terminal optional service "tmux.sessions" is not available [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Plugin ssh-terminal optional service "sessions.sharing" is not available [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Plugin ssh-terminal optional service "recordings.writer" is not available [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [WARN] [🧩] Plugin ssh-terminal serves /plugin-ws/ssh-terminal/terminal without core authentication [op:plugin_ws_public]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-ws/ssh-terminal/terminal [op:plugin_ws_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/ssh-terminal [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] SSH terminal mounted at /plugin-ws/ssh-terminal/terminal [op:plugin:ssh-terminal]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin ssh-terminal [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/tunnels [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-ws/tunnels/c2s/stream [op:plugin_ws_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Tunnel routes mounted at /plugin-api/tunnels [op:plugin:tunnels]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin tunnels [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/docker [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [WARN] [🧩] Plugin docker serves /plugin-ws/docker/console without core authentication [op:plugin_ws_public]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-ws/docker/console [op:plugin_ws_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Docker mounted at /plugin-api/docker and /plugin-ws/docker/console [op:plugin:docker]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin docker [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/host-metrics [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Host Metrics mounted at /plugin-api/host-metrics [op:plugin:host-metrics]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin host-metrics [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/wake-on-lan [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Wake-on-LAN routes mounted at /plugin-api/wake-on-lan [op:plugin:wake-on-lan]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin wake-on-lan [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [WARN] [🧩] Plugin automations serves 1 route(s) without authentication: /webhook/:token [op:plugin_http_public]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/automations [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin automations [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/homepage [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Homepage routes mounted at /plugin-api/homepage [op:plugin:homepage]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin homepage [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/ai [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] AI assistant routes mounted at /plugin-api/ai [op:plugin:ai]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin ai [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/alerts [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin alerts [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/file-manager [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] File manager mounted at /plugin-api/file-manager [op:plugin:file-manager]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin file-manager [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/ldap [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin ldap [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [WARN] [🧩] Plugin opkssh serves 5 route(s) without authentication: /chooser/:requestId, /chooser/:requestId/*, /callback, /callback/:requestId, /callback/:requestId/* [op:plugin_http_public]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/opkssh [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin opkssh [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/proxmox [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Proxmox routes mounted at /plugin-api/proxmox [op:plugin:proxmox]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin proxmox [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/session-recording [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Session Recording routes mounted at /plugin-api/session-recording [op:plugin:session-recording]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin session-recording [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/remote-desktop [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [WARN] [🧩] Plugin remote-desktop serves /plugin-ws/remote-desktop/display without core authentication [op:plugin_ws_public]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted raw upgrade /plugin-ws/remote-desktop/display [op:plugin_ws_mount]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin remote-desktop [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/secret-sources [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Secret sources routes mounted at /plugin-api/secret-sources [op:plugin:secret-sources]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin secret-sources [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-ws/serial/console [op:plugin_ws_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Serial console mounted at /plugin-ws/serial/console [op:plugin:serial]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin serial [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [WARN] [🧩] Plugin session-sharing serves 2 route(s) without authentication: /resolve/:linkToken, /guest/:token [op:plugin_http_public]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/session-sharing [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Session sharing mounted at /plugin-api/session-sharing [op:plugin:session-sharing]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin session-sharing [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [WARN] [🧩] Plugin sso serves 4 route(s) without authentication: /start, /callback, /backchannel-logout, /config [op:plugin_http_public]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/sso [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin sso [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [WARN] [🧩] Plugin step-ca serves 1 route(s) without authentication: /callback [op:plugin_http_public]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/step-ca [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin step-ca [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/tailscale [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Tailscale routes mounted at /plugin-api/tailscale [op:plugin:tailscale]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin tailscale [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/telemetry [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin telemetry [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [WARN] [🧩] Plugin termix-identity serves 2 route(s) without authentication: /u/:handle, /u/:handle/:algo [op:plugin_http_public]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/termix-identity [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin termix-identity [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/tmux-monitor [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Tmux Monitor routes mounted at /plugin-api/tmux-monitor [op:plugin:tmux-monitor]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin tmux-monitor [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/totp [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin totp [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [WARN] [🧩] Plugin vault serves 1 route(s) without authentication: /oidc/callback [op:plugin_http_public]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/vault [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin vault [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin warpgate [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/web-endpoint [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Web Endpoint routes mounted at /plugin-api/web-endpoint [op:plugin:web-endpoint]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin web-endpoint [op:plugin_activate]
|
||||
[2Ktermix | [2:20:04 PM] [WARN] [🧩] Plugin webauthn serves 1 route(s) without authentication: /authenticate/options [op:plugin_http_public]
|
||||
[2Ktermix | [2:20:04 PM] [INFO] [🧩] Mounted /plugin-api/webauthn [op:plugin_http_mount]
|
||||
[2Ktermix | [2:20:04 PM] [SUCCESS] [🧩] Activated plugin webauthn [op:plugin_activate]
|
||||
[2Ktermix | [2:20:05 PM] [INFO] [🚀] Loaded 34 plugin(s) [op:plugin_init]
|
||||
[2Ktermix | [2:20:05 PM] [SUCCESS] [🚀] Termix backend started successfully [op:backend_init_complete,duration:3278ms]
|
||||
[2Ktermix | [2:20:16 PM] [INFO] [🔐] User login request received [op:user_login_request]
|
||||
[2Ktermix | [2:20:16 PM] [SUCCESS] [🔐] User login successful [op:user_login_complete,user:erOsjw18K2uJv32xZpt9m]
|
||||
[2Ktermix | [2:20:16 PM] [INFO] [🔐] User login request received [op:user_login_request]
|
||||
[2Ktermix | [2:20:16 PM] [WARN] [🔐] Login failed: user not found [op:user_login]
|
||||
+1
@@ -0,0 +1 @@
|
||||
null
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+762
@@ -0,0 +1,762 @@
|
||||
[
|
||||
{
|
||||
"t": 15.1,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 237457408,
|
||||
"peak": 268439552,
|
||||
"anon": 141119488,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 301
|
||||
},
|
||||
{
|
||||
"t": 30.3,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 245866496,
|
||||
"peak": 268439552,
|
||||
"anon": 141152256,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 601
|
||||
},
|
||||
{
|
||||
"t": 45.4,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 243888128,
|
||||
"peak": 268439552,
|
||||
"anon": 139042816,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 901
|
||||
},
|
||||
{
|
||||
"t": 60.5,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 244166656,
|
||||
"peak": 268439552,
|
||||
"anon": 139042816,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 1202
|
||||
},
|
||||
{
|
||||
"t": 75.6,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 244748288,
|
||||
"peak": 268439552,
|
||||
"anon": 139042816,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 1504
|
||||
},
|
||||
{
|
||||
"t": 90.7,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 244330496,
|
||||
"peak": 268439552,
|
||||
"anon": 139042816,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 1805
|
||||
},
|
||||
{
|
||||
"t": 105.9,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 244559872,
|
||||
"peak": 268439552,
|
||||
"anon": 139042816,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 2105
|
||||
},
|
||||
{
|
||||
"t": 121.0,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 244215808,
|
||||
"peak": 268439552,
|
||||
"anon": 139051008,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 2405
|
||||
},
|
||||
{
|
||||
"t": 136.1,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 255594496,
|
||||
"peak": 268439552,
|
||||
"anon": 139558912,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 2705
|
||||
},
|
||||
{
|
||||
"t": 151.2,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 247951360,
|
||||
"peak": 268439552,
|
||||
"anon": 132026368,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3006
|
||||
},
|
||||
{
|
||||
"t": 166.4,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 247816192,
|
||||
"peak": 268439552,
|
||||
"anon": 132055040,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3306
|
||||
},
|
||||
{
|
||||
"t": 181.5,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 248016896,
|
||||
"peak": 268439552,
|
||||
"anon": 132444160,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3606
|
||||
},
|
||||
{
|
||||
"t": 196.6,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 264421376,
|
||||
"peak": 268439552,
|
||||
"anon": 137977856,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3906
|
||||
},
|
||||
{
|
||||
"t": 211.7,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 264630272,
|
||||
"peak": 268439552,
|
||||
"anon": 137981952,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 4206
|
||||
},
|
||||
{
|
||||
"t": 226.9,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 265302016,
|
||||
"peak": 268439552,
|
||||
"anon": 137981952,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 4509
|
||||
},
|
||||
{
|
||||
"t": 242.0,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 265375744,
|
||||
"peak": 268439552,
|
||||
"anon": 137981952,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 4810
|
||||
},
|
||||
{
|
||||
"t": 257.1,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 265146368,
|
||||
"peak": 268439552,
|
||||
"anon": 137981952,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 5110
|
||||
},
|
||||
{
|
||||
"t": 272.2,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 264978432,
|
||||
"peak": 268439552,
|
||||
"anon": 137994240,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 5410
|
||||
},
|
||||
{
|
||||
"t": 287.4,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 265023488,
|
||||
"peak": 268439552,
|
||||
"anon": 137994240,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 5710
|
||||
},
|
||||
{
|
||||
"t": 302.5,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 262983680,
|
||||
"peak": 268439552,
|
||||
"anon": 136015872,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6010
|
||||
},
|
||||
{
|
||||
"t": 317.7,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 264159232,
|
||||
"peak": 268439552,
|
||||
"anon": 136269824,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6312
|
||||
},
|
||||
{
|
||||
"t": 332.8,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 263876608,
|
||||
"peak": 268439552,
|
||||
"anon": 136634368,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6614
|
||||
},
|
||||
{
|
||||
"t": 347.9,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 264839168,
|
||||
"peak": 268439552,
|
||||
"anon": 137089024,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6914
|
||||
},
|
||||
{
|
||||
"t": 363.1,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 264441856,
|
||||
"peak": 268439552,
|
||||
"anon": 137097216,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 7214
|
||||
},
|
||||
{
|
||||
"t": 378.2,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 264998912,
|
||||
"peak": 268439552,
|
||||
"anon": 137101312,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 7515
|
||||
},
|
||||
{
|
||||
"t": 393.3,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 264732672,
|
||||
"peak": 268439552,
|
||||
"anon": 137109504,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 7816
|
||||
},
|
||||
{
|
||||
"t": 408.4,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 264605696,
|
||||
"peak": 268439552,
|
||||
"anon": 137113600,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 8116
|
||||
},
|
||||
{
|
||||
"t": 423.6,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 265306112,
|
||||
"peak": 268439552,
|
||||
"anon": 137748480,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 8418
|
||||
},
|
||||
{
|
||||
"t": 438.7,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 265609216,
|
||||
"peak": 268439552,
|
||||
"anon": 137752576,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 8718
|
||||
},
|
||||
{
|
||||
"t": 453.9,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 265965568,
|
||||
"peak": 268439552,
|
||||
"anon": 137752576,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9020
|
||||
},
|
||||
{
|
||||
"t": 469.0,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 265478144,
|
||||
"peak": 268439552,
|
||||
"anon": 137756672,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9320
|
||||
},
|
||||
{
|
||||
"t": 484.1,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 265314304,
|
||||
"peak": 268439552,
|
||||
"anon": 137760768,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9620
|
||||
},
|
||||
{
|
||||
"t": 499.2,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 265371648,
|
||||
"peak": 268439552,
|
||||
"anon": 137773056,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9920
|
||||
},
|
||||
{
|
||||
"t": 514.4,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 265445376,
|
||||
"peak": 268439552,
|
||||
"anon": 137773056,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 10220
|
||||
},
|
||||
{
|
||||
"t": 529.5,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 265736192,
|
||||
"peak": 268439552,
|
||||
"anon": 137789440,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 10520
|
||||
},
|
||||
{
|
||||
"t": 544.6,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 266149888,
|
||||
"peak": 268439552,
|
||||
"anon": 137830400,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 10821
|
||||
},
|
||||
{
|
||||
"t": 559.7,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 266727424,
|
||||
"peak": 268439552,
|
||||
"anon": 137854976,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 11124
|
||||
},
|
||||
{
|
||||
"t": 574.8,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 266268672,
|
||||
"peak": 268439552,
|
||||
"anon": 137859072,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 11424
|
||||
},
|
||||
{
|
||||
"t": 590.0,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 265801728,
|
||||
"peak": 268439552,
|
||||
"anon": 137863168,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 11724
|
||||
},
|
||||
{
|
||||
"t": 605.1,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 266174464,
|
||||
"peak": 268439552,
|
||||
"anon": 137871360,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 12024
|
||||
}
|
||||
]
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
[2Ktermix | [2:09:31 PM] [SUCCESS] [🗄️] Schema migration completed [op:schema_migration]
|
||||
[2Ktermix | [2:09:31 PM] [INFO] [🗄️] User key migration pass finished [op:dek_migration_boot]
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
[13:07:28] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[13:07:28] MV-termix: deploying termix at FROM {'termix': 'ghcr.io/lukegus/termix:2.9.2'}
|
||||
[13:08:36] FROM settled=True in 68.0s :: {"termix": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[13:08:36] fixture: the BOX walk's own (Termix), through upgrade_boxport
|
||||
[13:08:36] termix: seeded user drill1380c770 via /users/create
|
||||
[13:08:36] termix: readback found=True (http 200, control refused as it must)
|
||||
[13:08:36] C1 (seed reads back BEFORE): True
|
||||
[13:08:37] MV-termix: swapping to TO {'termix': 'ghcr.io/lukegus/termix:26.10.5'}
|
||||
[13:09:07] TO up -d rc=0
|
||||
[13:09:38] TO settled=True in 30.9s :: {"termix": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[13:09:38] migration lines observed: 2
|
||||
[13:09:38] termix: readback found=True (http 200, control refused as it must)
|
||||
[13:09:38] RESULT (seed reads back AFTER): True
|
||||
[13:09:38] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:8080
|
||||
[13:09:54] + 15s termix=226M/256M peak=256M kills=0 rs=0 reqs=301
|
||||
[13:10:09] + 30s termix=234M/256M peak=256M kills=0 rs=0 reqs=601
|
||||
[13:10:24] + 45s termix=232M/256M peak=256M kills=0 rs=0 reqs=901
|
||||
[13:10:39] + 60s termix=232M/256M peak=256M kills=0 rs=0 reqs=1202
|
||||
[13:10:54] + 76s termix=233M/256M peak=256M kills=0 rs=0 reqs=1504
|
||||
[13:11:09] + 91s termix=233M/256M peak=256M kills=0 rs=0 reqs=1805
|
||||
[13:11:24] + 106s termix=233M/256M peak=256M kills=0 rs=0 reqs=2105
|
||||
[13:11:39] + 121s termix=232M/256M peak=256M kills=0 rs=0 reqs=2405
|
||||
[13:11:55] + 136s termix=243M/256M peak=256M kills=0 rs=0 reqs=2705
|
||||
[13:12:10] + 151s termix=236M/256M peak=256M kills=0 rs=0 reqs=3006
|
||||
[13:12:25] + 166s termix=236M/256M peak=256M kills=0 rs=0 reqs=3306
|
||||
[13:12:40] + 182s termix=236M/256M peak=256M kills=0 rs=0 reqs=3606
|
||||
[13:12:55] + 197s termix=252M/256M peak=256M kills=0 rs=0 reqs=3906
|
||||
[13:13:10] + 212s termix=252M/256M peak=256M kills=0 rs=0 reqs=4206
|
||||
[13:13:25] + 227s termix=253M/256M peak=256M kills=0 rs=0 reqs=4509
|
||||
[13:13:40] + 242s termix=253M/256M peak=256M kills=0 rs=0 reqs=4810
|
||||
[13:13:56] + 257s termix=252M/256M peak=256M kills=0 rs=0 reqs=5110
|
||||
[13:14:11] + 272s termix=252M/256M peak=256M kills=0 rs=0 reqs=5410
|
||||
[13:14:26] + 287s termix=252M/256M peak=256M kills=0 rs=0 reqs=5710
|
||||
[13:14:41] + 302s termix=250M/256M peak=256M kills=0 rs=0 reqs=6010
|
||||
[13:14:56] + 318s termix=251M/256M peak=256M kills=0 rs=0 reqs=6312
|
||||
[13:15:11] + 333s termix=251M/256M peak=256M kills=0 rs=0 reqs=6614
|
||||
[13:15:26] + 348s termix=252M/256M peak=256M kills=0 rs=0 reqs=6914
|
||||
[13:15:42] + 363s termix=252M/256M peak=256M kills=0 rs=0 reqs=7214
|
||||
[13:15:57] + 378s termix=252M/256M peak=256M kills=0 rs=0 reqs=7515
|
||||
[13:16:12] + 393s termix=252M/256M peak=256M kills=0 rs=0 reqs=7816
|
||||
[13:16:27] + 408s termix=252M/256M peak=256M kills=0 rs=0 reqs=8116
|
||||
[13:16:42] + 424s termix=253M/256M peak=256M kills=0 rs=0 reqs=8418
|
||||
[13:16:57] + 439s termix=253M/256M peak=256M kills=0 rs=0 reqs=8718
|
||||
[13:17:12] + 454s termix=253M/256M peak=256M kills=0 rs=0 reqs=9020
|
||||
[13:17:27] + 469s termix=253M/256M peak=256M kills=0 rs=0 reqs=9320
|
||||
[13:17:43] + 484s termix=253M/256M peak=256M kills=0 rs=0 reqs=9620
|
||||
[13:17:58] + 499s termix=253M/256M peak=256M kills=0 rs=0 reqs=9920
|
||||
[13:18:13] + 514s termix=253M/256M peak=256M kills=0 rs=0 reqs=10220
|
||||
[13:18:28] + 530s termix=253M/256M peak=256M kills=0 rs=0 reqs=10520
|
||||
[13:18:43] + 545s termix=253M/256M peak=256M kills=0 rs=0 reqs=10821
|
||||
[13:18:58] + 560s termix=254M/256M peak=256M kills=0 rs=0 reqs=11124
|
||||
[13:19:13] + 575s termix=253M/256M peak=256M kills=0 rs=0 reqs=11424
|
||||
[13:19:28] + 590s termix=253M/256M peak=256M kills=0 rs=0 reqs=11724
|
||||
[13:19:44] + 605s termix=253M/256M peak=256M kills=0 rs=0 reqs=12024
|
||||
[13:19:44] memory watch: killed=False tight=[] requests=12024 codes={'200': 12024}
|
||||
[13:19:44] MV-termix: ABORT — putting the FROM images back
|
||||
[13:20:16] termix: readback found=True (http 200, control refused as it must)
|
||||
[13:20:16] ABORT: app came back in 30.9s; data present=True
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
[2Ktermix | Setting up user permissions (PUID: 1000, PGID: 1000)...
|
||||
[2Ktermix | usermod: no changes
|
||||
[2Ktermix | User node is now UID: 1000, GID: 1000
|
||||
[2Ktermix | Loading persisted SSL settings from /app/data/.env
|
||||
[2Ktermix | Configuring web UI to run on port: 8080
|
||||
[2Ktermix | SSL disabled - using HTTP-only configuration (default)
|
||||
[2Ktermix | Data directory is writable
|
||||
[2Ktermix | Starting nginx...
|
||||
[2Ktermix | Starting backend services...
|
||||
[2Ktermix | [2:09:30 PM] [INFO] [🚀] Termix backend initialization started [op:backend_init_start]
|
||||
[2Ktermix | [2:09:30 PM] [INFO] [📦] Termix Backend starting - Version: 26.10.5 [op:startup]
|
||||
[2Ktermix | [2:09:31 PM] [INFO] [🚀] SSL not enabled - skipping certificate generation [op:ssl_disabled_default]
|
||||
[2Ktermix | [2:09:31 PM] [SUCCESS] [🚀] SSL setup completed [op:backend_init_ssl]
|
||||
[2Ktermix | [2:09:31 PM] [INFO] [🗄️] Initializing SQLite database [op:db_init]
|
||||
[2Ktermix | [2:09:31 PM] [INFO] [🗄️] Performance indexes ready in 0ms [op:performance_index_create]
|
||||
[2Ktermix | [2:09:31 PM] [SUCCESS] [🗄️] Schema migration completed [op:schema_migration]
|
||||
[2Ktermix | [2:09:31 PM] [SUCCESS] [🚀] Database initialized (sqlite) [op:backend_init_db]
|
||||
[2Ktermix | [2:09:31 PM] [INFO] [🗄️] User key migration pass finished [op:dek_migration_boot]
|
||||
[2Ktermix | [2:09:31 PM] [INFO] [🗄️] Removed routine plugin audit entries [op:audit_noise_cleanup]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin alerts@1.1.0 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin classic-layout@1.0.2 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin classic-themes@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin credential-tools@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin docker@1.2.1 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin file-manager@1.1.1 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin host-metrics@1.2.0 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin host-status@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin import-export@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin remote-desktop@1.2.1 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin serial@1.0.2 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin snippets@1.1.0 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin ssh-terminal@1.1.1 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin sso@1.0.4 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin sync@1.0.1 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin telemetry@1.0.2 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin totp@1.0.2 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin tunnels@1.2.1 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin webauthn@1.1.0 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Loaded plugin workspaces@1.1.0 [op:plugin_load]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Registered bundled plugin classic-layout [op:plugin_seed]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Registered bundled plugin classic-themes [op:plugin_seed]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Registered bundled plugin credential-tools [op:plugin_seed]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Registered bundled plugin host-status [op:plugin_seed]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Registered bundled plugin import-export [op:plugin_seed]
|
||||
[2Ktermix | [2:09:32 PM] [INFO] [🧩] Registered bundled plugin sync [op:plugin_seed]
|
||||
[2Ktermix | [2:09:34 PM] [INFO] [🧩] Loaded plugin acme-ssl@1.1.0 [op:plugin_load]
|
||||
[2Ktermix | [2:09:34 PM] [INFO] [🧩] Restored acme-ssl@1.1.0 from the registry [op:plugin_restore_missing]
|
||||
[2Ktermix | [2:09:37 PM] [INFO] [🧩] Loaded plugin ai@1.3.0 [op:plugin_load]
|
||||
[2Ktermix | [2:09:37 PM] [INFO] [🧩] Restored ai@1.3.0 from the registry [op:plugin_restore_missing]
|
||||
[2Ktermix | [2:09:37 PM] [INFO] [🧩] Loaded plugin automations@1.2.0 [op:plugin_load]
|
||||
[2Ktermix | [2:09:37 PM] [INFO] [🧩] Restored automations@1.2.0 from the registry [op:plugin_restore_missing]
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"termix": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
}
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"harness_version": 5,
|
||||
"edge": "MV-termix",
|
||||
"app": "termix",
|
||||
"note": "night 2026-09-23 within-a-major move: termix=ghcr.io/lukegus/termix:26.10.5",
|
||||
"from": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"to": {
|
||||
"termix": "ghcr.io/lukegus/termix:26.10.5"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": "\u001b[2Ktermix | [2:09:31 PM] [SUCCESS] [\ud83d\uddc4\ufe0f] Schema migration completed [op:schema_migration]",
|
||||
"abort": "starts-and-serves",
|
||||
"abort_detail": null,
|
||||
"engine_state_after": null,
|
||||
"memory": {
|
||||
"soak_s": 605.4,
|
||||
"requested_s": 600,
|
||||
"requests": 12024,
|
||||
"codes": {
|
||||
"200": 12024
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"peak": 268439552,
|
||||
"peak_pct": 1.0,
|
||||
"anon_peak_sampled": 141152256,
|
||||
"anon_peak_pct": 0.526,
|
||||
"swap_peak": 0,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"venue_swap_bytes": 0,
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"bench_overrides": null,
|
||||
"duration_s": 30.9,
|
||||
"measured_at": "2026-10-28T13:20:16Z",
|
||||
"evidence": "evidence/MV-termix",
|
||||
"scratch_cleared": [],
|
||||
"files_changed": [],
|
||||
"files_changed_detail": [],
|
||||
"files_ignored": [],
|
||||
"total_s": 768.3
|
||||
}
|
||||
+220
@@ -0,0 +1,220 @@
|
||||
{
|
||||
"app": "termix",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"to": {
|
||||
"termix": "ghcr.io/lukegus/termix:26.10.5"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"installed_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"catalog_images": null,
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/lukegus/termix:2.9.2"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"termix ghcr.io/lukegus/termix:2.9.2 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"setup_gate_before": {
|
||||
"browser": {
|
||||
"status": "302",
|
||||
"redirect": "https://felhom.enkisfelhom.hu/__gate/start?…"
|
||||
},
|
||||
"script": {
|
||||
"status": "401",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"seed": "read_back",
|
||||
"drill_commit": "69b61c69d26e",
|
||||
"sync_waited_s": 4.5,
|
||||
"badge_before": {
|
||||
"hu": [
|
||||
{
|
||||
"title": "Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.",
|
||||
"text": "Frissítés elérhető — ma"
|
||||
}
|
||||
],
|
||||
"en": [
|
||||
{
|
||||
"title": "A newer version of this app is available. Select the Update button to start it.",
|
||||
"text": "Update available — today"
|
||||
}
|
||||
]
|
||||
},
|
||||
"measured_at": "2026-10-28T13:28:48Z",
|
||||
"update": {
|
||||
"accepted": true,
|
||||
"http": "202",
|
||||
"phases": [
|
||||
{
|
||||
"t": 0.0,
|
||||
"phase": "backing-up",
|
||||
"label": "Biztonsági mentés készül a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 12.3,
|
||||
"phase": "safety-dump",
|
||||
"label": "Adatbázis pillanatkép…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 13.3,
|
||||
"phase": "pulling",
|
||||
"label": "Új verzió letöltése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 33.8,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok másolása a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 51.2,
|
||||
"phase": "verifying",
|
||||
"label": "Működés ellenőrzése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 71.7,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 71.7,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:26.10.5"
|
||||
},
|
||||
"installed_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:26.10.5"
|
||||
},
|
||||
"catalog_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:26.10.5"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/lukegus/termix:26.10.5"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"termix ghcr.io/lukegus/termix:26.10.5 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"badge_after": {
|
||||
"hu": [
|
||||
{
|
||||
"title": "Ez az alkalmazás a legfrissebb elérhető változatot futtatja.",
|
||||
"text": "Naprakész"
|
||||
}
|
||||
],
|
||||
"en": [
|
||||
{
|
||||
"title": "This app is running the newest version available.",
|
||||
"text": "Up to date"
|
||||
}
|
||||
]
|
||||
},
|
||||
"state_after": "running",
|
||||
"hold_after": null,
|
||||
"to_digests": {
|
||||
"termix": "sha256:28a627c1e2a568ea8c2d3fd83861675fdd3d8327a09f5a245c399b4864ad5ceb"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"termix": "ghcr.io/lukegus/termix:26.10.5"
|
||||
},
|
||||
"installed": {
|
||||
"termix": "ghcr.io/lukegus/termix:26.10.5"
|
||||
},
|
||||
"catalog": {
|
||||
"termix": "ghcr.io/lukegus/termix:26.10.5"
|
||||
},
|
||||
"live_compose": [
|
||||
"ghcr.io/lukegus/termix:26.10.5"
|
||||
]
|
||||
},
|
||||
"seed_read_after": true,
|
||||
"setup_gate_after": {
|
||||
"browser": {
|
||||
"status": "200",
|
||||
"redirect": null
|
||||
},
|
||||
"script": {
|
||||
"status": "200",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"soak_s": 600,
|
||||
"interval_s": 10,
|
||||
"samples": 60,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"samples": 60,
|
||||
"anon_peak_bytes": 134029312,
|
||||
"limit_bytes": 268435456,
|
||||
"anon_peak_pct": 49.9,
|
||||
"cgroup_peak_pct": 100.1,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-745345c6011321862f4c497f00f96fe49ea15f1482c5d664f1dc55a330a564d9.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 49.9
|
||||
},
|
||||
"why": "the security-fix step ran on the box through the guarded Update; healthy, TO on all four observables, no undo, no hold, a clean soak, seed read back",
|
||||
"log": [
|
||||
"14:27:24 [5] the box's drill mirror now at a19ffb289",
|
||||
"14:27:29 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"14:28:29 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.9.2'}",
|
||||
"14:28:29 gate: termix is gated — passed as the household (cookie set)",
|
||||
"14:28:33 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}",
|
||||
"14:28:33 termix: seeded user drill3fc6d6b3 via /users/create",
|
||||
"14:28:33 termix: readback found=True (http 200, control refused as it must)",
|
||||
"14:28:34 [5] drill commit 69b61c69d26e: termix ghcr.io/lukegus/termix:2.9.2 -> ghcr.io/lukegus/termix:26.10.5 (push rc=0)",
|
||||
"14:28:43 [5] the box's drill mirror now at 69b61c69d",
|
||||
"14:28:48 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}",
|
||||
"14:28:48 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
|
||||
"14:29:00 + 12.3s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None",
|
||||
"14:29:01 + 13.3s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"14:29:22 + 33.8s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"14:29:39 + 51.2s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"14:30:00 + 71.7s phase=done label=Frissítve err=None hold=None",
|
||||
"14:30:18 termix: readback found=True (http 200, control refused as it must)",
|
||||
"14:30:18 [7] memory soak 600 s …",
|
||||
"14:40:24 [7] soak: peak 49.9% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
14:27:24 [5] the box's drill mirror now at a19ffb289
|
||||
14:27:29 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:28:29 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.9.2'}
|
||||
14:28:29 gate: termix is gated — passed as the household (cookie set)
|
||||
14:28:33 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}
|
||||
14:28:33 termix: seeded user drill3fc6d6b3 via /users/create
|
||||
14:28:33 termix: readback found=True (http 200, control refused as it must)
|
||||
14:28:34 [5] drill commit 69b61c69d26e: termix ghcr.io/lukegus/termix:2.9.2 -> ghcr.io/lukegus/termix:26.10.5 (push rc=0)
|
||||
14:28:43 [5] the box's drill mirror now at 69b61c69d
|
||||
14:28:48 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
14:28:48 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
14:29:00 + 12.3s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
14:29:01 + 13.3s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
14:29:22 + 33.8s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
14:29:39 + 51.2s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
14:30:00 + 71.7s phase=done label=Frissítve err=None hold=None
|
||||
14:30:18 termix: readback found=True (http 200, control refused as it must)
|
||||
14:30:18 [7] memory soak 600 s …
|
||||
14:40:24 [7] soak: peak 49.9% of the limit (anon), kills 0, restarts 0
|
||||
14:40:24 [9] verdict proven -> /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/p2/box/termix-26105/verdict.json
|
||||
14:40:24 RESULT proven — the security-fix step ran on the box through the guarded Update; healthy, TO on all four observables, no undo, no hold, a clean soak, seed read back
|
||||
14:40:24 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:40:56 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:41:05 [X] after remove: deployed=False leftovers=''
|
||||
@@ -0,0 +1,24 @@
|
||||
14:55:05 [5] the box's drill mirror now at 7011ef316
|
||||
14:55:10 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:56:20 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.9.2'}
|
||||
14:56:20 gate: termix is gated — passed as the household (cookie set)
|
||||
14:56:21 termix: seeded user drill5eec15db via /users/create
|
||||
14:56:21 termix: readback found=True (http 200, control refused as it must)
|
||||
14:56:22 drill commit 9e086d4dad4f: termix TO with failing checks
|
||||
14:56:31 [5] the box's drill mirror now at 9e086d4da
|
||||
14:56:36 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
14:56:36 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
14:56:50 + 13.3s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
14:57:21 + 45.1s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
14:57:35 + 58.4s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||||
14:57:36 + 59.4s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
15:02:38 + 361.7s phase=undoing label=Visszaállítás az előző változatra… err=None hold=None
|
||||
15:03:06 + 389.4s phase=undone label=Visszaállítva az előző változatra err=None hold=None
|
||||
15:03:34 termix: readback found=True (http 200, control refused as it must)
|
||||
15:03:34 RESULT proven — TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back
|
||||
15:03:34 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
15:04:06 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
15:04:15 [X] after remove: deployed=False leftovers=''
|
||||
15:04:24 [5] the box's drill mirror now at 4834d9dce
|
||||
15:04:24 drill revert 9e086d4dad4f: rc=0
|
||||
15:04:24 drill templates/termix equal to before: True
|
||||
+175
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"app": "termix",
|
||||
"from": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"to": {
|
||||
"termix": "ghcr.io/lukegus/termix:26.10.5"
|
||||
},
|
||||
"started": "2026-10-28T13:54:56Z",
|
||||
"drill_head_before": "7011ef31674f7efa8c524cb3a0cfc32827e57d9c",
|
||||
"failing_compose_main_healthcheck": [
|
||||
"test: [\"CMD\", \"false\"]"
|
||||
],
|
||||
"failing_probe": true,
|
||||
"update": {
|
||||
"accepted": true,
|
||||
"http": "202",
|
||||
"phases": [
|
||||
{
|
||||
"t": 0.0,
|
||||
"phase": "backing-up",
|
||||
"label": "Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 13.3,
|
||||
"phase": "pulling",
|
||||
"label": "\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 45.1,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 58.4,
|
||||
"phase": "starting",
|
||||
"label": "Ind\u00edt\u00e1s az \u00faj verzi\u00f3val\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 59.4,
|
||||
"phase": "verifying",
|
||||
"label": "M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 361.7,
|
||||
"phase": "undoing",
|
||||
"label": "Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 389.4,
|
||||
"phase": "undone",
|
||||
"label": "Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 389.4,
|
||||
"final_phase": "undone",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"to_log_while_verifying": [
|
||||
"[2:58:05 PM] [SUCCESS] [\ud83e\udde9] Activated plugin ai [op:plugin_activate]",
|
||||
"[2:58:05 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/ldap [op:plugin_http_mount]",
|
||||
"[2:58:05 PM] [SUCCESS] [\ud83e\udde9] Activated plugin ldap [op:plugin_activate]",
|
||||
"[2:58:06 PM] [WARN] [\ud83e\udde9] Plugin opkssh serves 5 route(s) without authentication: /chooser/:requestId, /chooser/:requestId/*, /callback, /callback/:requestId, /callback/:requestId/* [op:plugin_http_public]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/opkssh [op:plugin_http_mount]",
|
||||
"[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin opkssh [op:plugin_activate]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin proxmox: 0002_mysql_indexes [op:plugin_migrate]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/proxmox [op:plugin_http_mount]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Proxmox routes mounted at /plugin-api/proxmox [op:plugin:proxmox]",
|
||||
"[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin proxmox [op:plugin_activate]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/secret-sources [op:plugin_http_mount]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Secret sources routes mounted at /plugin-api/secret-sources [op:plugin:secret-sources]",
|
||||
"[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin secret-sources [op:plugin_activate]",
|
||||
"[2:58:06 PM] [WARN] [\ud83e\udde9] Plugin session-sharing serves 2 route(s) without authentication: /resolve/:linkToken, /guest/:token [op:plugin_http_public]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/session-sharing [op:plugin_http_mount]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Session sharing mounted at /plugin-api/session-sharing [op:plugin:session-sharing]",
|
||||
"[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin session-sharing [op:plugin_activate]",
|
||||
"[2:58:06 PM] [WARN] [\ud83e\udde9] Plugin step-ca serves 1 route(s) without authentication: /callback [op:plugin_http_public]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/step-ca [op:plugin_http_mount]",
|
||||
"[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin step-ca [op:plugin_activate]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/tailscale [op:plugin_http_mount]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Tailscale routes mounted at /plugin-api/tailscale [op:plugin:tailscale]",
|
||||
"[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin tailscale [op:plugin_activate]",
|
||||
"[2:58:06 PM] [WARN] [\ud83e\udde9] Plugin termix-identity serves 2 route(s) without authentication: /u/:handle, /u/:handle/:algo [op:plugin_http_public]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/termix-identity [op:plugin_http_mount]",
|
||||
"[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin termix-identity [op:plugin_activate]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/tmux-monitor [op:plugin_http_mount]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Tmux Monitor routes mounted at /plugin-api/tmux-monitor [op:plugin:tmux-monitor]",
|
||||
"[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin tmux-monitor [op:plugin_activate]",
|
||||
"[2:58:06 PM] [WARN] [\ud83e\udde9] Plugin vault serves 1 route(s) without authentication: /oidc/callback [op:plugin_http_public]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/vault [op:plugin_http_mount]",
|
||||
"[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin vault [op:plugin_activate]",
|
||||
"[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin warpgate [op:plugin_activate]",
|
||||
"[2:58:06 PM] [WARN] [\ud83e\udde9] Plugin web-endpoint serves 1 route(s) without authentication: /p/:token/* [op:plugin_http_public]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/web-endpoint [op:plugin_http_mount]",
|
||||
"[2:58:06 PM] [INFO] [\ud83e\udde9] Web Endpoint routes mounted at /plugin-api/web-endpoint [op:plugin:web-endpoint]",
|
||||
"[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin web-endpoint [op:plugin_activate]",
|
||||
"[2:58:06 PM] [INFO] [\ud83d\ude80] Loaded 40 plugin(s) [op:plugin_init]",
|
||||
"[2:58:06 PM] [SUCCESS] [\ud83d\ude80] Termix backend started successfully [op:backend_init_complete,duration:18712ms]",
|
||||
"[3:01:05 PM] [INFO] [\ud83e\udde9] Sent daily usage statistics [op:plugin:telemetry]"
|
||||
],
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"installed_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"catalog_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:26.10.5"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/lukegus/termix:2.9.2"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"termix ghcr.io/lukegus/termix:2.9.2 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"running_images_after": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"seed_after_undo": true,
|
||||
"verdict": "proven",
|
||||
"why": "TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back",
|
||||
"drill_head_after": "4834d9dceb7ef88702562cae12d05e96938b0d30",
|
||||
"drill_tree_equal_to_before": true,
|
||||
"log": [
|
||||
"14:55:05 [5] the box's drill mirror now at 7011ef316",
|
||||
"14:55:10 [1] deploy -> 202 {'ok': True, 'message': 'Telep\u00edt\u00e9s elind\u00edtva \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}",
|
||||
"14:56:20 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.9.2'}",
|
||||
"14:56:20 gate: termix is gated \u2014 passed as the household (cookie set)",
|
||||
"14:56:21 termix: seeded user drill5eec15db via /users/create",
|
||||
"14:56:21 termix: readback found=True (http 200, control refused as it must)",
|
||||
"14:56:22 drill commit 9e086d4dad4f: termix TO with failing checks",
|
||||
"14:56:31 [5] the box's drill mirror now at 9e086d4da",
|
||||
"14:56:36 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Friss\u00edt\u00e9s elindult \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}",
|
||||
"14:56:36 + 0.0s phase=backing-up label=Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None",
|
||||
"14:56:50 + 13.3s phase=pulling label=\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026 err=None hold=None",
|
||||
"14:57:21 + 45.1s phase=copying label=Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None",
|
||||
"14:57:35 + 58.4s phase=starting label=Ind\u00edt\u00e1s az \u00faj verzi\u00f3val\u2026 err=None hold=None",
|
||||
"14:57:36 + 59.4s phase=verifying label=M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026 err=None hold=None",
|
||||
"15:02:38 + 361.7s phase=undoing label=Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026 err=None hold=None",
|
||||
"15:03:06 + 389.4s phase=undone label=Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra err=None hold=None",
|
||||
"15:03:34 termix: readback found=True (http 200, control refused as it must)",
|
||||
"15:03:34 RESULT proven \u2014 TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back",
|
||||
"15:03:34 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}",
|
||||
"15:04:06 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm",
|
||||
"15:04:15 [X] after remove: deployed=False leftovers=''",
|
||||
"15:04:24 [5] the box's drill mirror now at 4834d9dce",
|
||||
"15:04:24 drill revert 9e086d4dad4f: rc=0",
|
||||
"15:04:24 drill templates/termix equal to before: True"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
[12:19:56] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[12:19:56] MV-termix: deploying termix at FROM {'termix': 'ghcr.io/lukegus/termix:2.8.0'}
|
||||
[12:20:54] FROM settled=True in 30.9s :: {"termix": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[12:20:54] fixture: the BOX walk's own (Termix), through upgrade_boxport
|
||||
[12:20:54] termix: seeded user drillad5146d6 via /users/create
|
||||
[12:20:54] termix: readback found=True (http 200, control refused as it must)
|
||||
[12:20:54] C1 (seed reads back BEFORE): True
|
||||
[12:20:54] MV-termix: swapping to TO {'termix': 'ghcr.io/lukegus/termix:2.9.2'}
|
||||
[12:21:22] TO up -d rc=0
|
||||
[12:22:19] TO settled=True in 56.9s :: {"termix": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[12:22:19] migration lines observed: 6
|
||||
[12:22:20] termix: readback found=True (http 200, control refused as it must)
|
||||
[12:22:20] RESULT (seed reads back AFTER): True
|
||||
[12:22:20] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:8080
|
||||
[12:22:35] + 15s termix=162M/256M peak=173M kills=0 rs=0 reqs=304
|
||||
[12:22:50] + 30s termix=157M/256M peak=173M kills=0 rs=0 reqs=604
|
||||
[12:23:05] + 45s termix=158M/256M peak=173M kills=0 rs=0 reqs=904
|
||||
[12:23:20] + 60s termix=156M/256M peak=173M kills=0 rs=0 reqs=1204
|
||||
[12:23:36] + 76s termix=157M/256M peak=173M kills=0 rs=0 reqs=1504
|
||||
[12:23:51] + 91s termix=157M/256M peak=173M kills=0 rs=0 reqs=1804
|
||||
[12:24:06] + 106s termix=150M/256M peak=173M kills=0 rs=0 reqs=2104
|
||||
[12:24:21] + 121s termix=150M/256M peak=173M kills=0 rs=0 reqs=2404
|
||||
[12:24:36] + 136s termix=151M/256M peak=173M kills=0 rs=0 reqs=2708
|
||||
[12:24:51] + 151s termix=151M/256M peak=173M kills=0 rs=0 reqs=3008
|
||||
[12:25:06] + 166s termix=152M/256M peak=173M kills=0 rs=0 reqs=3308
|
||||
[12:25:21] + 182s termix=153M/256M peak=173M kills=0 rs=0 reqs=3608
|
||||
[12:25:37] + 197s termix=151M/256M peak=173M kills=0 rs=0 reqs=3908
|
||||
[12:25:52] + 212s termix=151M/256M peak=173M kills=0 rs=0 reqs=4208
|
||||
[12:26:07] + 227s termix=151M/256M peak=173M kills=0 rs=0 reqs=4509
|
||||
[12:26:22] + 242s termix=151M/256M peak=173M kills=0 rs=0 reqs=4810
|
||||
[12:26:37] + 257s termix=152M/256M peak=173M kills=0 rs=0 reqs=5110
|
||||
[12:26:52] + 272s termix=151M/256M peak=173M kills=0 rs=0 reqs=5412
|
||||
[12:27:07] + 287s termix=151M/256M peak=173M kills=0 rs=0 reqs=5712
|
||||
[12:27:22] + 303s termix=150M/256M peak=173M kills=0 rs=0 reqs=6013
|
||||
[12:27:38] + 318s termix=151M/256M peak=173M kills=0 rs=0 reqs=6314
|
||||
[12:27:53] + 333s termix=153M/256M peak=173M kills=0 rs=0 reqs=6614
|
||||
[12:28:08] + 348s termix=152M/256M peak=173M kills=0 rs=0 reqs=6914
|
||||
[12:28:23] + 363s termix=153M/256M peak=173M kills=0 rs=0 reqs=7217
|
||||
[12:28:38] + 378s termix=154M/256M peak=173M kills=0 rs=0 reqs=7518
|
||||
[12:28:53] + 393s termix=153M/256M peak=173M kills=0 rs=0 reqs=7818
|
||||
[12:29:08] + 408s termix=153M/256M peak=173M kills=0 rs=0 reqs=8118
|
||||
[12:29:23] + 424s termix=153M/256M peak=173M kills=0 rs=0 reqs=8418
|
||||
[12:29:39] + 439s termix=153M/256M peak=173M kills=0 rs=0 reqs=8718
|
||||
[12:29:54] + 454s termix=153M/256M peak=173M kills=0 rs=0 reqs=9018
|
||||
[12:30:09] + 469s termix=152M/256M peak=173M kills=0 rs=0 reqs=9318
|
||||
[12:30:24] + 484s termix=153M/256M peak=173M kills=0 rs=0 reqs=9618
|
||||
[12:30:39] + 499s termix=153M/256M peak=173M kills=0 rs=0 reqs=9918
|
||||
[12:30:54] + 514s termix=153M/256M peak=173M kills=0 rs=0 reqs=10218
|
||||
[12:31:09] + 530s termix=153M/256M peak=173M kills=0 rs=0 reqs=10518
|
||||
[12:31:24] + 545s termix=153M/256M peak=173M kills=0 rs=0 reqs=10818
|
||||
[12:31:40] + 560s termix=153M/256M peak=173M kills=0 rs=0 reqs=11118
|
||||
[12:31:55] + 575s termix=154M/256M peak=173M kills=0 rs=0 reqs=11422
|
||||
[12:32:10] + 590s termix=154M/256M peak=173M kills=0 rs=0 reqs=11722
|
||||
[12:32:25] + 605s termix=153M/256M peak=173M kills=0 rs=0 reqs=12022
|
||||
[12:32:25] memory watch: killed=False tight=[] requests=12022 codes={'200': 12022}
|
||||
[12:32:25] MV-termix: ABORT — putting the FROM images back
|
||||
[12:32:57] termix: readback found=True (http 200, control refused as it must)
|
||||
[12:32:57] ABORT: app came back in 30.9s; data present=True
|
||||
{
|
||||
"harness_version": 5,
|
||||
"edge": "MV-termix",
|
||||
"app": "termix",
|
||||
"note": "night 2026-09-23 within-a-major move: termix=ghcr.io/lukegus/termix:2.9.2",
|
||||
"from": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.8.0"
|
||||
},
|
||||
"to": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": "\u001b[2Ktermix | [1:21:40 PM] [INFO] [\ud83d\uddc4\ufe0f] Database layer pre-upgrade backup created [op:database_layer_preupgrade_backup_created]",
|
||||
"abort": "starts-and-serves",
|
||||
"abort_detail": null,
|
||||
"engine_state_after": null,
|
||||
"memory": {
|
||||
"soak_s": 605.4,
|
||||
"requested_s": 600,
|
||||
"requests": 12022,
|
||||
"codes": {
|
||||
"200": 12022
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"peak": 181923840,
|
||||
"peak_pct": 0.678,
|
||||
"anon_peak_sampled": 117604352,
|
||||
"anon_peak_pct": 0.438,
|
||||
"swap_peak": 0,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"venue_swap_bytes": 0,
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"bench_overrides": null,
|
||||
"duration_s": 56.9,
|
||||
"measured_at": "2026-10-28T12:32:57Z",
|
||||
"evidence": "evidence/MV-termix",
|
||||
"scratch_cleared": [],
|
||||
"files_changed": [],
|
||||
"files_changed_detail": [],
|
||||
"files_ignored": [],
|
||||
"total_s": 781.3
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"termix": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
}
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
[2Ktermix | Setting up user permissions (PUID: 1000, PGID: 1000)...
|
||||
[2Ktermix | usermod: no changes
|
||||
[2Ktermix | User node is now UID: 1000, GID: 1000
|
||||
[2Ktermix | Loading persisted SSL settings from /app/data/.env
|
||||
[2Ktermix | Configuring web UI to run on port: 8080
|
||||
[2Ktermix | SSL disabled - using HTTP-only configuration (default)
|
||||
[2Ktermix | Data directory is writable
|
||||
[2Ktermix | OPKSSH directory is writable
|
||||
[2Ktermix | OPKSSH binary directory found at /app/data/opkssh
|
||||
[2Ktermix | Starting nginx...
|
||||
[2Ktermix | Starting backend services...
|
||||
[2Ktermix | [1:32:31 PM] [INFO] [🚀] Termix backend initialization started [op:backend_init_start]
|
||||
[2Ktermix | [1:32:31 PM] [INFO] [📦] Termix Backend starting - Version: 2.8.0 [op:startup]
|
||||
[2Ktermix | [1:32:31 PM] [INFO] [🗄️] Database layer pre-upgrade backup created [op:database_layer_preupgrade_backup_created]
|
||||
[2Ktermix | [1:32:31 PM] [INFO] [🚀] SSL not enabled - skipping certificate generation [op:ssl_disabled_default]
|
||||
[2Ktermix | [1:32:31 PM] [SUCCESS] [🚀] SSL setup completed [op:backend_init_ssl]
|
||||
[2Ktermix | [1:32:31 PM] [INFO] [🗄️] Initializing SQLite database [op:db_init]
|
||||
[2Ktermix | [1:32:31 PM] [INFO] [🗄️] Performance indexes ready in 1ms [op:performance_index_create]
|
||||
[2Ktermix | [1:32:31 PM] [SUCCESS] [🗄️] Schema migration completed [op:schema_migration]
|
||||
[2Ktermix | [1:32:31 PM] [SUCCESS] [🚀] Database initialized (sqlite) [op:backend_init_db]
|
||||
[2Ktermix | [1:32:31 PM] [INFO] [🗄️] User key migration pass finished [op:dek_migration_boot]
|
||||
[2Ktermix | [1:32:33 PM] [INFO] [🚀] Guacamole server initialized [op:guac_init]
|
||||
[2Ktermix | [1:32:33 PM] [SUCCESS] [🚀] Termix backend started successfully [op:backend_init_complete,duration:1748ms]
|
||||
[2Ktermix | [1:32:33 PM] [INFO] [📈] Sent daily usage heartbeat [op:analytics_heartbeat_sent]
|
||||
[2Ktermix | [1:32:35 PM] [INFO] [📡] Found 0 autostart hosts and 0 total hosts for endpointHost resolution
|
||||
[2Ktermix | [1:32:57 PM] [INFO] [🔐] User login request received [op:user_login_request]
|
||||
[2Ktermix | [1:32:57 PM] [SUCCESS] [🔐] User login successful [op:user_login_complete,user:5Fs4CJ1YTMxvQG_-KFAzU,session:FwnE-SnTqgSKAYg0iQpww]
|
||||
[2Ktermix | [1:32:57 PM] [INFO] [🔐] User login request received [op:user_login_request]
|
||||
[2Ktermix | [1:32:57 PM] [WARN] [🔐] Login failed: user not found [op:user_login]
|
||||
+1
@@ -0,0 +1 @@
|
||||
null
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+762
@@ -0,0 +1,762 @@
|
||||
[
|
||||
{
|
||||
"t": 15.1,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 170094592,
|
||||
"peak": 181923840,
|
||||
"anon": 117604352,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 304
|
||||
},
|
||||
{
|
||||
"t": 30.2,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 165572608,
|
||||
"peak": 181923840,
|
||||
"anon": 113020928,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 604
|
||||
},
|
||||
{
|
||||
"t": 45.4,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 165994496,
|
||||
"peak": 181923840,
|
||||
"anon": 113205248,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 904
|
||||
},
|
||||
{
|
||||
"t": 60.5,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 164257792,
|
||||
"peak": 181923840,
|
||||
"anon": 112222208,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 1204
|
||||
},
|
||||
{
|
||||
"t": 75.6,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 164651008,
|
||||
"peak": 181923840,
|
||||
"anon": 112345088,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 1504
|
||||
},
|
||||
{
|
||||
"t": 90.7,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 165478400,
|
||||
"peak": 181923840,
|
||||
"anon": 112672768,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 1804
|
||||
},
|
||||
{
|
||||
"t": 105.9,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 157818880,
|
||||
"peak": 181923840,
|
||||
"anon": 105185280,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 2104
|
||||
},
|
||||
{
|
||||
"t": 121.0,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 158027776,
|
||||
"peak": 181923840,
|
||||
"anon": 105877504,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 2404
|
||||
},
|
||||
{
|
||||
"t": 136.1,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 158887936,
|
||||
"peak": 181923840,
|
||||
"anon": 106237952,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 2708
|
||||
},
|
||||
{
|
||||
"t": 151.3,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 158810112,
|
||||
"peak": 181923840,
|
||||
"anon": 105660416,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3008
|
||||
},
|
||||
{
|
||||
"t": 166.4,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 159948800,
|
||||
"peak": 181923840,
|
||||
"anon": 107597824,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3308
|
||||
},
|
||||
{
|
||||
"t": 181.5,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 160612352,
|
||||
"peak": 181923840,
|
||||
"anon": 107995136,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3608
|
||||
},
|
||||
{
|
||||
"t": 196.7,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 159170560,
|
||||
"peak": 181923840,
|
||||
"anon": 107048960,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 3908
|
||||
},
|
||||
{
|
||||
"t": 211.8,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 158351360,
|
||||
"peak": 181923840,
|
||||
"anon": 105943040,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 4208
|
||||
},
|
||||
{
|
||||
"t": 226.9,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 158720000,
|
||||
"peak": 181923840,
|
||||
"anon": 106274816,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 4509
|
||||
},
|
||||
{
|
||||
"t": 242.0,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 159330304,
|
||||
"peak": 181923840,
|
||||
"anon": 106606592,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 4810
|
||||
},
|
||||
{
|
||||
"t": 257.2,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 159465472,
|
||||
"peak": 181923840,
|
||||
"anon": 106946560,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 5110
|
||||
},
|
||||
{
|
||||
"t": 272.3,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 159092736,
|
||||
"peak": 181923840,
|
||||
"anon": 106385408,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 5412
|
||||
},
|
||||
{
|
||||
"t": 287.4,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 159031296,
|
||||
"peak": 181923840,
|
||||
"anon": 106729472,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 5712
|
||||
},
|
||||
{
|
||||
"t": 302.6,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 158273536,
|
||||
"peak": 181923840,
|
||||
"anon": 106184704,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6013
|
||||
},
|
||||
{
|
||||
"t": 317.7,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 159199232,
|
||||
"peak": 181923840,
|
||||
"anon": 106508288,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6314
|
||||
},
|
||||
{
|
||||
"t": 332.8,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 160768000,
|
||||
"peak": 181923840,
|
||||
"anon": 108290048,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6614
|
||||
},
|
||||
{
|
||||
"t": 348.0,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 159772672,
|
||||
"peak": 181923840,
|
||||
"anon": 107606016,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 6914
|
||||
},
|
||||
{
|
||||
"t": 363.1,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 160948224,
|
||||
"peak": 181923840,
|
||||
"anon": 107913216,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 7217
|
||||
},
|
||||
{
|
||||
"t": 378.2,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 161591296,
|
||||
"peak": 181923840,
|
||||
"anon": 108240896,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 7518
|
||||
},
|
||||
{
|
||||
"t": 393.4,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 160481280,
|
||||
"peak": 181923840,
|
||||
"anon": 107638784,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 7818
|
||||
},
|
||||
{
|
||||
"t": 408.5,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 160911360,
|
||||
"peak": 181923840,
|
||||
"anon": 107950080,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 8118
|
||||
},
|
||||
{
|
||||
"t": 423.6,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 161333248,
|
||||
"peak": 181923840,
|
||||
"anon": 108285952,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 8418
|
||||
},
|
||||
{
|
||||
"t": 438.7,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 160444416,
|
||||
"peak": 181923840,
|
||||
"anon": 107593728,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 8718
|
||||
},
|
||||
{
|
||||
"t": 453.8,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 160923648,
|
||||
"peak": 181923840,
|
||||
"anon": 108023808,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9018
|
||||
},
|
||||
{
|
||||
"t": 469.0,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 160178176,
|
||||
"peak": 181923840,
|
||||
"anon": 107536384,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9318
|
||||
},
|
||||
{
|
||||
"t": 484.1,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 160813056,
|
||||
"peak": 181923840,
|
||||
"anon": 107839488,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9618
|
||||
},
|
||||
{
|
||||
"t": 499.2,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 161468416,
|
||||
"peak": 181923840,
|
||||
"anon": 108163072,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 9918
|
||||
},
|
||||
{
|
||||
"t": 514.3,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 160518144,
|
||||
"peak": 181923840,
|
||||
"anon": 107642880,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 10218
|
||||
},
|
||||
{
|
||||
"t": 529.5,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 161099776,
|
||||
"peak": 181923840,
|
||||
"anon": 107945984,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 10518
|
||||
},
|
||||
{
|
||||
"t": 544.6,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 161296384,
|
||||
"peak": 181923840,
|
||||
"anon": 108273664,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 10818
|
||||
},
|
||||
{
|
||||
"t": 559.7,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 160882688,
|
||||
"peak": 181923840,
|
||||
"anon": 107589632,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 11118
|
||||
},
|
||||
{
|
||||
"t": 574.8,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 162177024,
|
||||
"peak": 181923840,
|
||||
"anon": 108048384,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 11422
|
||||
},
|
||||
{
|
||||
"t": 590.0,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 161759232,
|
||||
"peak": 181923840,
|
||||
"anon": 108388352,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 11722
|
||||
},
|
||||
{
|
||||
"t": 605.1,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"current": 161034240,
|
||||
"peak": 181923840,
|
||||
"anon": 107679744,
|
||||
"swap": 0,
|
||||
"swap_peak": 0,
|
||||
"oom_kill": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"status": "running",
|
||||
"cgroup": true
|
||||
}
|
||||
},
|
||||
"requests": 12022
|
||||
}
|
||||
]
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
[2Ktermix | [1:21:40 PM] [INFO] [🗄️] Database layer pre-upgrade backup created [op:database_layer_preupgrade_backup_created]
|
||||
[2Ktermix | [1:21:40 PM] [INFO] [🗄️] Relaxed plugin_permission_grants.granted_by to allow bundled grants [op:schema_migration]
|
||||
[2Ktermix | [1:21:40 PM] [SUCCESS] [🗄️] Schema migration completed [op:schema_migration]
|
||||
[2Ktermix | [1:21:40 PM] [INFO] [🗄️] User key migration pass finished [op:dek_migration_boot]
|
||||
[2Ktermix | [1:21:44 PM] [SUCCESS] [🗄️] Schema migration completed [op:schema_migration]
|
||||
[2Ktermix | [1:21:44 PM] [INFO] [🗄️] User key migration pass finished [op:dek_migration_boot]
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
[12:19:56] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[12:19:56] MV-termix: deploying termix at FROM {'termix': 'ghcr.io/lukegus/termix:2.8.0'}
|
||||
[12:20:54] FROM settled=True in 30.9s :: {"termix": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[12:20:54] fixture: the BOX walk's own (Termix), through upgrade_boxport
|
||||
[12:20:54] termix: seeded user drillad5146d6 via /users/create
|
||||
[12:20:54] termix: readback found=True (http 200, control refused as it must)
|
||||
[12:20:54] C1 (seed reads back BEFORE): True
|
||||
[12:20:54] MV-termix: swapping to TO {'termix': 'ghcr.io/lukegus/termix:2.9.2'}
|
||||
[12:21:22] TO up -d rc=0
|
||||
[12:22:19] TO settled=True in 56.9s :: {"termix": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[12:22:19] migration lines observed: 6
|
||||
[12:22:20] termix: readback found=True (http 200, control refused as it must)
|
||||
[12:22:20] RESULT (seed reads back AFTER): True
|
||||
[12:22:20] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:8080
|
||||
[12:22:35] + 15s termix=162M/256M peak=173M kills=0 rs=0 reqs=304
|
||||
[12:22:50] + 30s termix=157M/256M peak=173M kills=0 rs=0 reqs=604
|
||||
[12:23:05] + 45s termix=158M/256M peak=173M kills=0 rs=0 reqs=904
|
||||
[12:23:20] + 60s termix=156M/256M peak=173M kills=0 rs=0 reqs=1204
|
||||
[12:23:36] + 76s termix=157M/256M peak=173M kills=0 rs=0 reqs=1504
|
||||
[12:23:51] + 91s termix=157M/256M peak=173M kills=0 rs=0 reqs=1804
|
||||
[12:24:06] + 106s termix=150M/256M peak=173M kills=0 rs=0 reqs=2104
|
||||
[12:24:21] + 121s termix=150M/256M peak=173M kills=0 rs=0 reqs=2404
|
||||
[12:24:36] + 136s termix=151M/256M peak=173M kills=0 rs=0 reqs=2708
|
||||
[12:24:51] + 151s termix=151M/256M peak=173M kills=0 rs=0 reqs=3008
|
||||
[12:25:06] + 166s termix=152M/256M peak=173M kills=0 rs=0 reqs=3308
|
||||
[12:25:21] + 182s termix=153M/256M peak=173M kills=0 rs=0 reqs=3608
|
||||
[12:25:37] + 197s termix=151M/256M peak=173M kills=0 rs=0 reqs=3908
|
||||
[12:25:52] + 212s termix=151M/256M peak=173M kills=0 rs=0 reqs=4208
|
||||
[12:26:07] + 227s termix=151M/256M peak=173M kills=0 rs=0 reqs=4509
|
||||
[12:26:22] + 242s termix=151M/256M peak=173M kills=0 rs=0 reqs=4810
|
||||
[12:26:37] + 257s termix=152M/256M peak=173M kills=0 rs=0 reqs=5110
|
||||
[12:26:52] + 272s termix=151M/256M peak=173M kills=0 rs=0 reqs=5412
|
||||
[12:27:07] + 287s termix=151M/256M peak=173M kills=0 rs=0 reqs=5712
|
||||
[12:27:22] + 303s termix=150M/256M peak=173M kills=0 rs=0 reqs=6013
|
||||
[12:27:38] + 318s termix=151M/256M peak=173M kills=0 rs=0 reqs=6314
|
||||
[12:27:53] + 333s termix=153M/256M peak=173M kills=0 rs=0 reqs=6614
|
||||
[12:28:08] + 348s termix=152M/256M peak=173M kills=0 rs=0 reqs=6914
|
||||
[12:28:23] + 363s termix=153M/256M peak=173M kills=0 rs=0 reqs=7217
|
||||
[12:28:38] + 378s termix=154M/256M peak=173M kills=0 rs=0 reqs=7518
|
||||
[12:28:53] + 393s termix=153M/256M peak=173M kills=0 rs=0 reqs=7818
|
||||
[12:29:08] + 408s termix=153M/256M peak=173M kills=0 rs=0 reqs=8118
|
||||
[12:29:23] + 424s termix=153M/256M peak=173M kills=0 rs=0 reqs=8418
|
||||
[12:29:39] + 439s termix=153M/256M peak=173M kills=0 rs=0 reqs=8718
|
||||
[12:29:54] + 454s termix=153M/256M peak=173M kills=0 rs=0 reqs=9018
|
||||
[12:30:09] + 469s termix=152M/256M peak=173M kills=0 rs=0 reqs=9318
|
||||
[12:30:24] + 484s termix=153M/256M peak=173M kills=0 rs=0 reqs=9618
|
||||
[12:30:39] + 499s termix=153M/256M peak=173M kills=0 rs=0 reqs=9918
|
||||
[12:30:54] + 514s termix=153M/256M peak=173M kills=0 rs=0 reqs=10218
|
||||
[12:31:09] + 530s termix=153M/256M peak=173M kills=0 rs=0 reqs=10518
|
||||
[12:31:24] + 545s termix=153M/256M peak=173M kills=0 rs=0 reqs=10818
|
||||
[12:31:40] + 560s termix=153M/256M peak=173M kills=0 rs=0 reqs=11118
|
||||
[12:31:55] + 575s termix=154M/256M peak=173M kills=0 rs=0 reqs=11422
|
||||
[12:32:10] + 590s termix=154M/256M peak=173M kills=0 rs=0 reqs=11722
|
||||
[12:32:25] + 605s termix=153M/256M peak=173M kills=0 rs=0 reqs=12022
|
||||
[12:32:25] memory watch: killed=False tight=[] requests=12022 codes={'200': 12022}
|
||||
[12:32:25] MV-termix: ABORT — putting the FROM images back
|
||||
[12:32:57] termix: readback found=True (http 200, control refused as it must)
|
||||
[12:32:57] ABORT: app came back in 30.9s; data present=True
|
||||
+328
@@ -0,0 +1,328 @@
|
||||
[2Ktermix | Setting up user permissions (PUID: 1000, PGID: 1000)...
|
||||
[2Ktermix | usermod: no changes
|
||||
[2Ktermix | User node is now UID: 1000, GID: 1000
|
||||
[2Ktermix | Loading persisted SSL settings from /app/data/.env
|
||||
[2Ktermix | Configuring web UI to run on port: 8080
|
||||
[2Ktermix | SSL disabled - using HTTP-only configuration (default)
|
||||
[2Ktermix | Data directory is writable
|
||||
[2Ktermix | Starting nginx...
|
||||
[2Ktermix | Starting backend services...
|
||||
[2Ktermix | [1:21:39 PM] [INFO] [🚀] Termix backend initialization started [op:backend_init_start]
|
||||
[2Ktermix | [1:21:39 PM] [INFO] [📦] Termix Backend starting - Version: 2.9.2 [op:startup]
|
||||
[2Ktermix | [1:21:40 PM] [INFO] [🗄️] Database layer pre-upgrade backup created [op:database_layer_preupgrade_backup_created]
|
||||
[2Ktermix | [1:21:40 PM] [INFO] [🚀] SSL not enabled - skipping certificate generation [op:ssl_disabled_default]
|
||||
[2Ktermix | [1:21:40 PM] [SUCCESS] [🚀] SSL setup completed [op:backend_init_ssl]
|
||||
[2Ktermix | [1:21:40 PM] [INFO] [🗄️] Initializing SQLite database [op:db_init]
|
||||
[2Ktermix | [1:21:40 PM] [INFO] [🗄️] Relaxed plugin_permission_grants.granted_by to allow bundled grants [op:schema_migration]
|
||||
[2Ktermix | [1:21:40 PM] [INFO] [🗄️] Performance indexes ready in 0ms [op:performance_index_create]
|
||||
[2Ktermix | [1:21:40 PM] [SUCCESS] [🗄️] Schema migration completed [op:schema_migration]
|
||||
[2Ktermix | [1:21:40 PM] [SUCCESS] [🚀] Database initialized (sqlite) [op:backend_init_db]
|
||||
[2Ktermix | [1:21:40 PM] [INFO] [🗄️] User key migration pass finished [op:dek_migration_boot]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🗄️] Recorded 3 permission(s) already held by a role [op:prime_known_permissions]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin acme-ssl@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin ai@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin alerts@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin automations@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin docker@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin file-manager@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin fleets@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin homepage@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin host-metrics@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin ldap@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin network-topology@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin opkssh@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin proxmox@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin remote-desktop@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin secret-sources@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin serial@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin session-recording@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin session-sharing@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin snippets@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin ssh-terminal@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin sso@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin step-ca@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin tailscale@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin telemetry@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin termix-identity@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin tmux-monitor@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin totp@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin tunnels@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin vault@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin wake-on-lan@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin warpgate@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin web-endpoint@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin webauthn@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Loaded plugin workspaces@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin acme-ssl [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin ai [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin alerts [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin automations [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin docker [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin file-manager [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin fleets [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin homepage [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin host-metrics [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin ldap [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin network-topology [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin opkssh [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin proxmox [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin remote-desktop [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin secret-sources [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin serial [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin session-recording [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin session-sharing [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin snippets [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin ssh-terminal [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin sso [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin step-ca [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin tailscale [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin telemetry [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin termix-identity [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin tmux-monitor [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin totp [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin tunnels [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin vault [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin wake-on-lan [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin warpgate [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin web-endpoint [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin webauthn [op:plugin_seed]
|
||||
[2Ktermix | [1:21:41 PM] [INFO] [🧩] Registered bundled plugin workspaces [op:plugin_seed]
|
||||
[2Ktermix | Setting up user permissions (PUID: 1000, PGID: 1000)...
|
||||
[2Ktermix | usermod: no changes
|
||||
[2Ktermix | User node is now UID: 1000, GID: 1000
|
||||
[2Ktermix | Loading persisted SSL settings from /app/data/.env
|
||||
[2Ktermix | Configuring web UI to run on port: 8080
|
||||
[2Ktermix | SSL disabled - using HTTP-only configuration (default)
|
||||
[2Ktermix | Data directory is writable
|
||||
[2Ktermix | Starting nginx...
|
||||
[2Ktermix | Starting backend services...
|
||||
[2Ktermix | [1:21:43 PM] [INFO] [🚀] Termix backend initialization started [op:backend_init_start]
|
||||
[2Ktermix | [1:21:43 PM] [INFO] [📦] Termix Backend starting - Version: 2.9.2 [op:startup]
|
||||
[2Ktermix | [1:21:44 PM] [INFO] [🚀] SSL not enabled - skipping certificate generation [op:ssl_disabled_default]
|
||||
[2Ktermix | [1:21:44 PM] [SUCCESS] [🚀] SSL setup completed [op:backend_init_ssl]
|
||||
[2Ktermix | [1:21:44 PM] [INFO] [🗄️] Initializing SQLite database [op:db_init]
|
||||
[2Ktermix | [1:21:44 PM] [INFO] [🗄️] Performance indexes ready in 0ms [op:performance_index_create]
|
||||
[2Ktermix | [1:21:44 PM] [SUCCESS] [🗄️] Schema migration completed [op:schema_migration]
|
||||
[2Ktermix | [1:21:44 PM] [SUCCESS] [🚀] Database initialized (sqlite) [op:backend_init_db]
|
||||
[2Ktermix | [1:21:44 PM] [INFO] [🗄️] User key migration pass finished [op:dek_migration_boot]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin acme-ssl@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin ai@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin alerts@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin automations@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin docker@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin file-manager@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin fleets@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin homepage@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin host-metrics@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin ldap@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin network-topology@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin opkssh@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin proxmox@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin remote-desktop@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin secret-sources@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin serial@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin session-recording@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin session-sharing@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin snippets@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin ssh-terminal@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin sso@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin step-ca@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin tailscale@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin telemetry@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin termix-identity@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin tmux-monitor@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin totp@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin tunnels@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin vault@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin wake-on-lan@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin warpgate@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin web-endpoint@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin webauthn@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:45 PM] [INFO] [🧩] Loaded plugin workspaces@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | Setting up user permissions (PUID: 1000, PGID: 1000)...
|
||||
[2Ktermix | usermod: no changes
|
||||
[2Ktermix | User node is now UID: 1000, GID: 1000
|
||||
[2Ktermix | Loading persisted SSL settings from /app/data/.env
|
||||
[2Ktermix | Configuring web UI to run on port: 8080
|
||||
[2Ktermix | SSL disabled - using HTTP-only configuration (default)
|
||||
[2Ktermix | Data directory is writable
|
||||
[2Ktermix | Starting nginx...
|
||||
[2Ktermix | Starting backend services...
|
||||
[2Ktermix | [1:21:48 PM] [INFO] [🚀] Termix backend initialization started [op:backend_init_start]
|
||||
[2Ktermix | [1:21:48 PM] [INFO] [📦] Termix Backend starting - Version: 2.9.2 [op:startup]
|
||||
[2Ktermix | [1:21:49 PM] [INFO] [🚀] SSL not enabled - skipping certificate generation [op:ssl_disabled_default]
|
||||
[2Ktermix | [1:21:49 PM] [SUCCESS] [🚀] SSL setup completed [op:backend_init_ssl]
|
||||
[2Ktermix | [1:21:49 PM] [INFO] [🗄️] Initializing SQLite database [op:db_init]
|
||||
[2Ktermix | [1:21:49 PM] [INFO] [🗄️] Performance indexes ready in 0ms [op:performance_index_create]
|
||||
[2Ktermix | [1:21:49 PM] [SUCCESS] [🗄️] Schema migration completed [op:schema_migration]
|
||||
[2Ktermix | [1:21:49 PM] [SUCCESS] [🚀] Database initialized (sqlite) [op:backend_init_db]
|
||||
[2Ktermix | [1:21:49 PM] [INFO] [🗄️] User key migration pass finished [op:dek_migration_boot]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin acme-ssl@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin ai@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin alerts@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin automations@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin docker@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin file-manager@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin fleets@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin homepage@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin host-metrics@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin ldap@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin network-topology@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin opkssh@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin proxmox@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin remote-desktop@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin secret-sources@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin serial@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin session-recording@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin session-sharing@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin snippets@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin ssh-terminal@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin sso@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin step-ca@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin tailscale@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin telemetry@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin termix-identity@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin tmux-monitor@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin totp@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin tunnels@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin vault@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin wake-on-lan@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin warpgate@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin web-endpoint@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin webauthn@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Loaded plugin workspaces@1.0.0 [op:plugin_load]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Mounted /plugin-api/acme-ssl [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:50 PM] [SUCCESS] [🧩] Activated plugin acme-ssl [op:plugin_activate]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Applied 1 migration(s) for plugin workspaces: 0001_adopt_user_workspaces [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🗄️] Moved 1 Host Metrics setting(s) and 0 host(s) into plugin settings [op:host_metrics_settings_migration]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Mounted /plugin-api/workspaces [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Workspaces routes mounted at /plugin-api/workspaces [op:plugin:workspaces]
|
||||
[2Ktermix | [1:21:50 PM] [SUCCESS] [🧩] Activated plugin workspaces [op:plugin_activate]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Applied 1 migration(s) for plugin network-topology: 0001_adopt_network_topology [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Mounted /plugin-api/network-topology [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Network Topology routes mounted at /plugin-api/network-topology [op:plugin:network-topology]
|
||||
[2Ktermix | [1:21:50 PM] [SUCCESS] [🧩] Activated plugin network-topology [op:plugin_activate]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Applied 1 migration(s) for plugin snippets: 0001_adopt_snippets_tables [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Mounted /plugin-api/snippets [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Snippets routes mounted at /plugin-api/snippets [op:plugin:snippets]
|
||||
[2Ktermix | [1:21:50 PM] [SUCCESS] [🧩] Activated plugin snippets [op:plugin_activate]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Applied 1 migration(s) for plugin fleets: 0001_adopt_fleets [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Mounted /plugin-api/fleets [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Fleets routes mounted at /plugin-api/fleets [op:plugin:fleets]
|
||||
[2Ktermix | [1:21:50 PM] [SUCCESS] [🧩] Activated plugin fleets [op:plugin_activate]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Plugin ssh-terminal optional service "tmux.sessions" is not available [op:plugin_activate]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Plugin ssh-terminal optional service "sessions.sharing" is not available [op:plugin_activate]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Plugin ssh-terminal optional service "recordings.writer" is not available [op:plugin_activate]
|
||||
[2Ktermix | [1:21:50 PM] [INFO] [🧩] Applied 1 migration(s) for plugin ssh-terminal: 0001_adopt_command_history [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [WARN] [🧩] Plugin ssh-terminal serves /plugin-ws/ssh-terminal/terminal without core authentication [op:plugin_ws_public]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-ws/ssh-terminal/terminal [op:plugin_ws_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/ssh-terminal [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] SSH terminal mounted at /plugin-ws/ssh-terminal/terminal [op:plugin:ssh-terminal]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin ssh-terminal [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin tunnels: 0001_adopt_c2s_tunnel_presets [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/tunnels [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-ws/tunnels/c2s/stream [op:plugin_ws_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Tunnel routes mounted at /plugin-api/tunnels [op:plugin:tunnels]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin tunnels [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/docker [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [WARN] [🧩] Plugin docker serves /plugin-ws/docker/console without core authentication [op:plugin_ws_public]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-ws/docker/console [op:plugin_ws_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Docker mounted at /plugin-api/docker and /plugin-ws/docker/console [op:plugin:docker]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin docker [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin host-metrics: 0001_adopt_host_metrics_tables [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/host-metrics [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Host Metrics mounted at /plugin-api/host-metrics [op:plugin:host-metrics]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin host-metrics [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/wake-on-lan [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Wake-on-LAN routes mounted at /plugin-api/wake-on-lan [op:plugin:wake-on-lan]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin wake-on-lan [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 4 migration(s) for plugin automations: 0001_adopt_automations, 0002_unlink_channels, 0003_host_maintenance, 0004_rename_maintenance_index [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [WARN] [🧩] Plugin automations serves 1 route(s) without authentication: /webhook/:token [op:plugin_http_public]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/automations [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin automations [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin homepage: 0001_adopt_homepage_tables [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/homepage [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Homepage routes mounted at /plugin-api/homepage [op:plugin:homepage]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin homepage [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 2 migration(s) for plugin ai: 0001_adopt_ai_tables, 0002_provider_sync [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/ai [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] AI assistant routes mounted at /plugin-api/ai [op:plugin:ai]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin ai [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin alerts: 0001_create_alerts [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/alerts [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin alerts [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin file-manager: 0001_adopt_file_manager_tables [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/file-manager [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] File manager mounted at /plugin-api/file-manager [op:plugin:file-manager]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin file-manager [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin ldap: 0001_create_providers [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/ldap [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin ldap [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin opkssh: 0001_adopt_opkssh_tokens [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [WARN] [🧩] Plugin opkssh serves 5 route(s) without authentication: /chooser/:requestId, /chooser/:requestId/*, /callback, /callback/:requestId, /callback/:requestId/* [op:plugin_http_public]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/opkssh [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin opkssh [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin proxmox: 0001_adopt_proxmox_stats [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/proxmox [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Proxmox routes mounted at /plugin-api/proxmox [op:plugin:proxmox]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin proxmox [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin session-recording: 0001_adopt_session_recordings [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/session-recording [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Session Recording routes mounted at /plugin-api/session-recording [op:plugin:session-recording]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin session-recording [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/remote-desktop [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [WARN] [🧩] Plugin remote-desktop serves /plugin-ws/remote-desktop/display without core authentication [op:plugin_ws_public]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted raw upgrade /plugin-ws/remote-desktop/display [op:plugin_ws_mount]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin remote-desktop [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin secret-sources: 0001_adopt_secret_sources [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/secret-sources [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Secret sources routes mounted at /plugin-api/secret-sources [op:plugin:secret-sources]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin secret-sources [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-ws/serial/console [op:plugin_ws_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Serial console mounted at /plugin-ws/serial/console [op:plugin:serial]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin serial [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin session-sharing: 0001_adopt_session_sharing [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/session-sharing [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [WARN] [🧩] Plugin session-sharing serves 2 route(s) without authentication: /resolve/:linkToken, /guest/:token [op:plugin_http_public]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Session sharing mounted at /plugin-api/session-sharing [op:plugin:session-sharing]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin session-sharing [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 2 migration(s) for plugin sso: 0001_adopt_sso_providers, 0002_legacy_callback [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [WARN] [🧩] Plugin sso serves 4 route(s) without authentication: /start, /callback, /backchannel-logout, /config [op:plugin_http_public]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/sso [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin sso [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin step-ca: 0001_create_certs [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [WARN] [🧩] Plugin step-ca serves 1 route(s) without authentication: /callback [op:plugin_http_public]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/step-ca [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin step-ca [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/tailscale [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Tailscale routes mounted at /plugin-api/tailscale [op:plugin:tailscale]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin tailscale [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/telemetry [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin telemetry [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin termix-identity: 0001_adopt_termix_identity_tables [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:51 PM] [WARN] [🧩] Plugin termix-identity serves 2 route(s) without authentication: /u/:handle, /u/:handle/:algo [op:plugin_http_public]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Mounted /plugin-api/termix-identity [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:51 PM] [SUCCESS] [🧩] Activated plugin termix-identity [op:plugin_activate]
|
||||
[2Ktermix | [1:21:51 PM] [INFO] [🧩] Applied 1 migration(s) for plugin tmux-monitor: 0001_adopt_tmux_session_tags [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:52 PM] [INFO] [🧩] Mounted /plugin-api/tmux-monitor [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:52 PM] [INFO] [🧩] Tmux Monitor routes mounted at /plugin-api/tmux-monitor [op:plugin:tmux-monitor]
|
||||
[2Ktermix | [1:21:52 PM] [SUCCESS] [🧩] Activated plugin tmux-monitor [op:plugin_activate]
|
||||
[2Ktermix | [1:21:52 PM] [INFO] [🧩] Applied 1 migration(s) for plugin totp: 0001_create_enrollments [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:52 PM] [INFO] [🧩] Mounted /plugin-api/totp [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:52 PM] [SUCCESS] [🧩] Activated plugin totp [op:plugin_activate]
|
||||
[2Ktermix | [1:21:52 PM] [INFO] [🧩] Applied 1 migration(s) for plugin vault: 0001_adopt_vault_tables [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:52 PM] [WARN] [🧩] Plugin vault serves 1 route(s) without authentication: /oidc/callback [op:plugin_http_public]
|
||||
[2Ktermix | [1:21:52 PM] [INFO] [🧩] Mounted /plugin-api/vault [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:52 PM] [SUCCESS] [🧩] Activated plugin vault [op:plugin_activate]
|
||||
[2Ktermix | [1:21:52 PM] [SUCCESS] [🧩] Activated plugin warpgate [op:plugin_activate]
|
||||
[2Ktermix | [1:21:52 PM] [INFO] [🧩] Mounted /plugin-api/web-endpoint [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:52 PM] [INFO] [🧩] Web Endpoint routes mounted at /plugin-api/web-endpoint [op:plugin:web-endpoint]
|
||||
[2Ktermix | [1:21:52 PM] [SUCCESS] [🧩] Activated plugin web-endpoint [op:plugin_activate]
|
||||
[2Ktermix | [1:21:52 PM] [INFO] [🧩] Applied 1 migration(s) for plugin webauthn: 0001_adopt_webauthn_credentials [op:plugin_migrate]
|
||||
[2Ktermix | [1:21:52 PM] [WARN] [🧩] Plugin webauthn serves 1 route(s) without authentication: /authenticate/options [op:plugin_http_public]
|
||||
[2Ktermix | [1:21:52 PM] [INFO] [🧩] Mounted /plugin-api/webauthn [op:plugin_http_mount]
|
||||
[2Ktermix | [1:21:52 PM] [SUCCESS] [🧩] Activated plugin webauthn [op:plugin_activate]
|
||||
[2Ktermix | [1:21:52 PM] [INFO] [🚀] Loaded 34 plugin(s) [op:plugin_init]
|
||||
[2Ktermix | [1:21:52 PM] [INFO] [🗄️] Moved 2 Remote Desktop setting(s), 0 user(s) and 0 host(s) into plugin settings [op:remote_desktop_settings_migration]
|
||||
[2Ktermix | [1:21:52 PM] [INFO] [🗄️] Moved telemetry settings into plugin settings [op:telemetry_settings_migration]
|
||||
[2Ktermix | [1:21:52 PM] [SUCCESS] [🚀] Termix backend started successfully [op:backend_init_complete,duration:3747ms]
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"termix": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
}
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"harness_version": 5,
|
||||
"edge": "MV-termix",
|
||||
"app": "termix",
|
||||
"note": "night 2026-09-23 within-a-major move: termix=ghcr.io/lukegus/termix:2.9.2",
|
||||
"from": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.8.0"
|
||||
},
|
||||
"to": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": "\u001b[2Ktermix | [1:21:40 PM] [INFO] [\ud83d\uddc4\ufe0f] Database layer pre-upgrade backup created [op:database_layer_preupgrade_backup_created]",
|
||||
"abort": "starts-and-serves",
|
||||
"abort_detail": null,
|
||||
"engine_state_after": null,
|
||||
"memory": {
|
||||
"soak_s": 605.4,
|
||||
"requested_s": 600,
|
||||
"requests": 12022,
|
||||
"codes": {
|
||||
"200": 12022
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"limit": 268435456,
|
||||
"peak": 181923840,
|
||||
"peak_pct": 0.678,
|
||||
"anon_peak_sampled": 117604352,
|
||||
"anon_peak_pct": 0.438,
|
||||
"swap_peak": 0,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"venue_swap_bytes": 0,
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"bench_overrides": null,
|
||||
"duration_s": 56.9,
|
||||
"measured_at": "2026-10-28T12:32:57Z",
|
||||
"evidence": "evidence/MV-termix",
|
||||
"scratch_cleared": [],
|
||||
"files_changed": [],
|
||||
"files_changed_detail": [],
|
||||
"files_ignored": [],
|
||||
"total_s": 781.3
|
||||
}
|
||||
+222
@@ -0,0 +1,222 @@
|
||||
{
|
||||
"app": "termix",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.8.0"
|
||||
},
|
||||
"to": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.8.0"
|
||||
},
|
||||
"installed_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.8.0"
|
||||
},
|
||||
"catalog_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.8.0"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"termix ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"setup_gate_before": {
|
||||
"browser": {
|
||||
"status": "302",
|
||||
"redirect": "https://felhom.enkisfelhom.hu/__gate/start?…"
|
||||
},
|
||||
"script": {
|
||||
"status": "401",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"seed": "read_back",
|
||||
"drill_commit": "071db0085d6f",
|
||||
"sync_waited_s": 4.4,
|
||||
"badge_before": {
|
||||
"hu": [
|
||||
{
|
||||
"title": "Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.",
|
||||
"text": "Frissítés elérhető — ma"
|
||||
}
|
||||
],
|
||||
"en": [
|
||||
{
|
||||
"title": "A newer version of this app is available. Select the Update button to start it.",
|
||||
"text": "Update available — today"
|
||||
}
|
||||
]
|
||||
},
|
||||
"measured_at": "2026-10-28T12:53:47Z",
|
||||
"update": {
|
||||
"accepted": true,
|
||||
"http": "202",
|
||||
"phases": [
|
||||
{
|
||||
"t": 0.0,
|
||||
"phase": "backing-up",
|
||||
"label": "Biztonsági mentés készül a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 13.3,
|
||||
"phase": "pulling",
|
||||
"label": "Új verzió letöltése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 33.8,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok másolása a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 42.0,
|
||||
"phase": "starting",
|
||||
"label": "Indítás az új verzióval…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 43.0,
|
||||
"phase": "verifying",
|
||||
"label": "Működés ellenőrzése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 68.7,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 68.7,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"installed_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"catalog_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/lukegus/termix:2.9.2"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"termix ghcr.io/lukegus/termix:2.9.2 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"badge_after": {
|
||||
"hu": [
|
||||
{
|
||||
"title": "Ez az alkalmazás a legfrissebb elérhető változatot futtatja.",
|
||||
"text": "Naprakész"
|
||||
}
|
||||
],
|
||||
"en": [
|
||||
{
|
||||
"title": "This app is running the newest version available.",
|
||||
"text": "Up to date"
|
||||
}
|
||||
]
|
||||
},
|
||||
"state_after": "running",
|
||||
"hold_after": null,
|
||||
"to_digests": {
|
||||
"termix": "sha256:d64c841a560c54aa7c27b0e6bbd2fbf8b51073565040d2a6bfbc127f0a72cf1e"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"installed": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"catalog": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"live_compose": [
|
||||
"ghcr.io/lukegus/termix:2.9.2"
|
||||
]
|
||||
},
|
||||
"seed_read_after": true,
|
||||
"setup_gate_after": {
|
||||
"browser": {
|
||||
"status": "200",
|
||||
"redirect": null
|
||||
},
|
||||
"script": {
|
||||
"status": "200",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"soak_s": 600,
|
||||
"interval_s": 10,
|
||||
"samples": 60,
|
||||
"containers": {
|
||||
"termix": {
|
||||
"samples": 60,
|
||||
"anon_peak_bytes": 118284288,
|
||||
"limit_bytes": 268435456,
|
||||
"anon_peak_pct": 44.1,
|
||||
"cgroup_peak_pct": 100.0,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-2d522faa2de6d34c156c32c7950dfde9764bdb5e8a09f08c6c2d68d918f8f733.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 44.1
|
||||
},
|
||||
"why": "the security-fix step ran on the box through the guarded Update; healthy, TO on all four observables, no undo, no hold, a clean soak, seed read back",
|
||||
"log": [
|
||||
"13:52:43 [5] the box's drill mirror now at e410bac1c",
|
||||
"13:52:48 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"13:53:28 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.8.0'}",
|
||||
"13:53:28 gate: termix is gated — passed as the household (cookie set)",
|
||||
"13:53:31 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}",
|
||||
"13:53:31 termix: seeded user drilla57e7f53 via /users/create",
|
||||
"13:53:32 termix: readback found=True (http 200, control refused as it must)",
|
||||
"13:53:33 [5] drill commit 071db0085d6f: termix ghcr.io/lukegus/termix:2.8.0 -> ghcr.io/lukegus/termix:2.9.2 (push rc=0)",
|
||||
"13:53:42 [5] the box's drill mirror now at 071db0085",
|
||||
"13:53:47 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}",
|
||||
"13:53:47 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
|
||||
"13:54:00 + 13.3s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"13:54:21 + 33.8s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"13:54:29 + 42.0s phase=starting label=Indítás az új verzióval… err=None hold=None",
|
||||
"13:54:30 + 43.0s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"13:54:56 + 68.7s phase=done label=Frissítve err=None hold=None",
|
||||
"13:55:14 termix: readback found=True (http 200, control refused as it must)",
|
||||
"13:55:14 [7] memory soak 600 s …",
|
||||
"14:05:20 [7] soak: peak 44.1% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
13:52:43 [5] the box's drill mirror now at e410bac1c
|
||||
13:52:48 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
13:53:28 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.8.0'}
|
||||
13:53:28 gate: termix is gated — passed as the household (cookie set)
|
||||
13:53:31 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}
|
||||
13:53:31 termix: seeded user drilla57e7f53 via /users/create
|
||||
13:53:32 termix: readback found=True (http 200, control refused as it must)
|
||||
13:53:33 [5] drill commit 071db0085d6f: termix ghcr.io/lukegus/termix:2.8.0 -> ghcr.io/lukegus/termix:2.9.2 (push rc=0)
|
||||
13:53:42 [5] the box's drill mirror now at 071db0085
|
||||
13:53:47 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
13:53:47 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
13:54:00 + 13.3s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
13:54:21 + 33.8s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
13:54:29 + 42.0s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||||
13:54:30 + 43.0s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
13:54:56 + 68.7s phase=done label=Frissítve err=None hold=None
|
||||
13:55:14 termix: readback found=True (http 200, control refused as it must)
|
||||
13:55:14 [7] memory soak 600 s …
|
||||
14:05:20 [7] soak: peak 44.1% of the limit (anon), kills 0, restarts 0
|
||||
14:05:20 [9] verdict proven -> /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/p2/box/termix-292/verdict.json
|
||||
14:05:20 RESULT proven — the security-fix step ran on the box through the guarded Update; healthy, TO on all four observables, no undo, no hold, a clean soak, seed read back
|
||||
14:05:21 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:05:53 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:06:01 [X] after remove: deployed=False leftovers=''
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
14:07:26 [5] the box's drill mirror now at fcadb0a09
|
||||
14:07:31 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:08:21 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.8.0'}
|
||||
14:08:21 gate: termix is gated — passed as the household (cookie set)
|
||||
14:08:22 termix: seeded user drill3ba18d55 via /users/create
|
||||
14:08:22 termix: readback found=True (http 200, control refused as it must)
|
||||
14:08:23 drill commit 36230429acc4: termix TO with failing checks
|
||||
14:08:32 [5] the box's drill mirror now at 36230429a
|
||||
14:08:36 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
14:08:37 + 0.1s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
14:08:40 + 3.1s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
14:09:13 + 36.9s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
14:09:18 + 42.0s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||||
14:09:19 + 43.1s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
14:10:51 + 134.2s phase=done label=Frissítve err=None hold=None
|
||||
14:11:19 RESULT failed — the update ended 'done', not 'undone'
|
||||
14:11:19 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:11:51 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:11:59 [X] after remove: deployed=False leftovers=''
|
||||
14:12:10 [5] the box's drill mirror now at 718be0f30
|
||||
14:12:10 drill revert 36230429acc4: rc=0
|
||||
14:12:10 drill templates/termix equal to before: True
|
||||
+164
@@ -0,0 +1,164 @@
|
||||
{
|
||||
"app": "termix",
|
||||
"from": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.8.0"
|
||||
},
|
||||
"to": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"started": "2026-10-28T13:07:17Z",
|
||||
"drill_head_before": "fcadb0a0935bb06581b9df06e6ce723fcc835ee0",
|
||||
"failing_compose_main_healthcheck": [
|
||||
"test: [\"CMD\", \"false\"]"
|
||||
],
|
||||
"failing_probe": true,
|
||||
"update": {
|
||||
"accepted": true,
|
||||
"http": "202",
|
||||
"phases": [
|
||||
{
|
||||
"t": 0.1,
|
||||
"phase": "backing-up",
|
||||
"label": "Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 3.1,
|
||||
"phase": "pulling",
|
||||
"label": "\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 36.9,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 42.0,
|
||||
"phase": "starting",
|
||||
"label": "Ind\u00edt\u00e1s az \u00faj verzi\u00f3val\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 43.1,
|
||||
"phase": "verifying",
|
||||
"label": "M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 134.2,
|
||||
"phase": "done",
|
||||
"label": "Friss\u00edtve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 134.2,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "unhealthy"
|
||||
},
|
||||
"to_log_while_verifying": [
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Applied 2 migration(s) for plugin sso: 0001_adopt_sso_providers, 0002_legacy_callback [op:plugin_migrate]",
|
||||
"[2:09:47 PM] [WARN] [\ud83e\udde9] Plugin sso serves 4 route(s) without authentication: /start, /callback, /backchannel-logout, /config [op:plugin_http_public]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/sso [op:plugin_http_mount]",
|
||||
"[2:09:47 PM] [SUCCESS] [\ud83e\udde9] Activated plugin sso [op:plugin_activate]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin step-ca: 0001_create_certs [op:plugin_migrate]",
|
||||
"[2:09:47 PM] [WARN] [\ud83e\udde9] Plugin step-ca serves 1 route(s) without authentication: /callback [op:plugin_http_public]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/step-ca [op:plugin_http_mount]",
|
||||
"[2:09:47 PM] [SUCCESS] [\ud83e\udde9] Activated plugin step-ca [op:plugin_activate]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/tailscale [op:plugin_http_mount]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Tailscale routes mounted at /plugin-api/tailscale [op:plugin:tailscale]",
|
||||
"[2:09:47 PM] [SUCCESS] [\ud83e\udde9] Activated plugin tailscale [op:plugin_activate]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/telemetry [op:plugin_http_mount]",
|
||||
"[2:09:47 PM] [SUCCESS] [\ud83e\udde9] Activated plugin telemetry [op:plugin_activate]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin termix-identity: 0001_adopt_termix_identity_tables [op:plugin_migrate]",
|
||||
"[2:09:47 PM] [WARN] [\ud83e\udde9] Plugin termix-identity serves 2 route(s) without authentication: /u/:handle, /u/:handle/:algo [op:plugin_http_public]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/termix-identity [op:plugin_http_mount]",
|
||||
"[2:09:47 PM] [SUCCESS] [\ud83e\udde9] Activated plugin termix-identity [op:plugin_activate]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin tmux-monitor: 0001_adopt_tmux_session_tags [op:plugin_migrate]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/tmux-monitor [op:plugin_http_mount]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Tmux Monitor routes mounted at /plugin-api/tmux-monitor [op:plugin:tmux-monitor]",
|
||||
"[2:09:47 PM] [SUCCESS] [\ud83e\udde9] Activated plugin tmux-monitor [op:plugin_activate]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin totp: 0001_create_enrollments [op:plugin_migrate]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/totp [op:plugin_http_mount]",
|
||||
"[2:09:47 PM] [SUCCESS] [\ud83e\udde9] Activated plugin totp [op:plugin_activate]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin vault: 0001_adopt_vault_tables [op:plugin_migrate]",
|
||||
"[2:09:47 PM] [WARN] [\ud83e\udde9] Plugin vault serves 1 route(s) without authentication: /oidc/callback [op:plugin_http_public]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/vault [op:plugin_http_mount]",
|
||||
"[2:09:47 PM] [SUCCESS] [\ud83e\udde9] Activated plugin vault [op:plugin_activate]",
|
||||
"[2:09:47 PM] [SUCCESS] [\ud83e\udde9] Activated plugin warpgate [op:plugin_activate]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/web-endpoint [op:plugin_http_mount]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Web Endpoint routes mounted at /plugin-api/web-endpoint [op:plugin:web-endpoint]",
|
||||
"[2:09:47 PM] [SUCCESS] [\ud83e\udde9] Activated plugin web-endpoint [op:plugin_activate]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin webauthn: 0001_adopt_webauthn_credentials [op:plugin_migrate]",
|
||||
"[2:09:47 PM] [WARN] [\ud83e\udde9] Plugin webauthn serves 1 route(s) without authentication: /authenticate/options [op:plugin_http_public]",
|
||||
"[2:09:47 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/webauthn [op:plugin_http_mount]",
|
||||
"[2:09:47 PM] [SUCCESS] [\ud83e\udde9] Activated plugin webauthn [op:plugin_activate]",
|
||||
"[2:09:47 PM] [INFO] [\ud83d\ude80] Loaded 34 plugin(s) [op:plugin_init]",
|
||||
"[2:09:47 PM] [INFO] [\ud83d\uddc4\ufe0f] Moved 2 Remote Desktop setting(s), 0 user(s) and 0 host(s) into plugin settings [op:remote_desktop_settings_migration]",
|
||||
"[2:09:47 PM] [INFO] [\ud83d\uddc4\ufe0f] Moved telemetry settings into plugin settings [op:telemetry_settings_migration]",
|
||||
"[2:09:47 PM] [SUCCESS] [\ud83d\ude80] Termix backend started successfully [op:backend_init_complete,duration:8680ms]"
|
||||
],
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"installed_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"catalog_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/lukegus/termix:2.9.2"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"termix ghcr.io/lukegus/termix:2.9.2 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"running_images_after": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"verdict": "failed",
|
||||
"why": "the update ended 'done', not 'undone'",
|
||||
"drill_head_after": "718be0f305031668e62b450eadc860ddbfed4cf4",
|
||||
"drill_tree_equal_to_before": true,
|
||||
"log": [
|
||||
"14:07:26 [5] the box's drill mirror now at fcadb0a09",
|
||||
"14:07:31 [1] deploy -> 202 {'ok': True, 'message': 'Telep\u00edt\u00e9s elind\u00edtva \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}",
|
||||
"14:08:21 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.8.0'}",
|
||||
"14:08:21 gate: termix is gated \u2014 passed as the household (cookie set)",
|
||||
"14:08:22 termix: seeded user drill3ba18d55 via /users/create",
|
||||
"14:08:22 termix: readback found=True (http 200, control refused as it must)",
|
||||
"14:08:23 drill commit 36230429acc4: termix TO with failing checks",
|
||||
"14:08:32 [5] the box's drill mirror now at 36230429a",
|
||||
"14:08:36 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Friss\u00edt\u00e9s elindult \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}",
|
||||
"14:08:37 + 0.1s phase=backing-up label=Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None",
|
||||
"14:08:40 + 3.1s phase=pulling label=\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026 err=None hold=None",
|
||||
"14:09:13 + 36.9s phase=copying label=Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None",
|
||||
"14:09:18 + 42.0s phase=starting label=Ind\u00edt\u00e1s az \u00faj verzi\u00f3val\u2026 err=None hold=None",
|
||||
"14:09:19 + 43.1s phase=verifying label=M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026 err=None hold=None",
|
||||
"14:10:51 + 134.2s phase=done label=Friss\u00edtve err=None hold=None",
|
||||
"14:11:19 RESULT failed \u2014 the update ended 'done', not 'undone'",
|
||||
"14:11:19 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}",
|
||||
"14:11:51 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm",
|
||||
"14:11:59 [X] after remove: deployed=False leftovers=''",
|
||||
"14:12:10 [5] the box's drill mirror now at 718be0f30",
|
||||
"14:12:10 drill revert 36230429acc4: rc=0",
|
||||
"14:12:10 drill templates/termix equal to before: True"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
14:13:34 [5] the box's drill mirror now at 718be0f30
|
||||
14:13:38 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:14:19 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.8.0'}
|
||||
14:14:19 gate: termix is gated — passed as the household (cookie set)
|
||||
14:14:19 termix: seeded user drill86061530 via /users/create
|
||||
14:14:19 termix: readback found=True (http 200, control refused as it must)
|
||||
14:14:20 drill commit 39f59c8d713e: termix TO with failing checks
|
||||
14:14:28 [5] the box's drill mirror now at 39f59c8d7
|
||||
14:14:33 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
14:14:33 + 0.0s phase=checking label=Ellenőrzés… err=None hold=None
|
||||
14:14:34 + 1.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
14:14:37 + 4.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
14:14:38 + 5.2s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
14:15:04 + 30.8s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
14:15:10 + 36.9s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
14:20:13 + 340.1s phase=undoing label=Visszaállítás az előző változatra… err=None hold=None
|
||||
14:20:20 + 347.3s phase=undone label=Visszaállítva az előző változatra err=None hold=None
|
||||
14:20:50 termix: readback found=True (http 200, control refused as it must)
|
||||
14:20:50 RESULT proven — TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back
|
||||
14:20:50 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:21:22 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:21:31 [X] after remove: deployed=False leftovers=''
|
||||
14:21:41 [5] the box's drill mirror now at 465e60882
|
||||
14:21:41 drill revert 39f59c8d713e: rc=0
|
||||
14:21:41 drill templates/termix equal to before: True
|
||||
+184
@@ -0,0 +1,184 @@
|
||||
{
|
||||
"app": "termix",
|
||||
"from": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.8.0"
|
||||
},
|
||||
"to": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"started": "2026-10-28T13:13:24Z",
|
||||
"drill_head_before": "718be0f305031668e62b450eadc860ddbfed4cf4",
|
||||
"failing_compose_main_healthcheck": [
|
||||
"test: [\"CMD\", \"false\"]"
|
||||
],
|
||||
"failing_probe": true,
|
||||
"update": {
|
||||
"accepted": true,
|
||||
"http": "202",
|
||||
"phases": [
|
||||
{
|
||||
"t": 0.0,
|
||||
"phase": "checking",
|
||||
"label": "Ellen\u0151rz\u00e9s\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 1.0,
|
||||
"phase": "backing-up",
|
||||
"label": "Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 4.1,
|
||||
"phase": "safety-dump",
|
||||
"label": "Adatb\u00e1zis pillanatk\u00e9p\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 5.2,
|
||||
"phase": "pulling",
|
||||
"label": "\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 30.8,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 36.9,
|
||||
"phase": "verifying",
|
||||
"label": "M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 340.1,
|
||||
"phase": "undoing",
|
||||
"label": "Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 347.3,
|
||||
"phase": "undone",
|
||||
"label": "Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 347.3,
|
||||
"final_phase": "undone",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"to_log_while_verifying": [
|
||||
"[2:15:32 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/sso [op:plugin_http_mount]",
|
||||
"[2:15:32 PM] [SUCCESS] [\ud83e\udde9] Activated plugin sso [op:plugin_activate]",
|
||||
"[2:15:32 PM] [WARN] [\ud83e\udde9] Plugin sso serves 4 route(s) without authentication: /start, /callback, /backchannel-logout, /config [op:plugin_http_public]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin step-ca: 0001_create_certs [op:plugin_migrate]",
|
||||
"[2:15:33 PM] [WARN] [\ud83e\udde9] Plugin step-ca serves 1 route(s) without authentication: /callback [op:plugin_http_public]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/step-ca [op:plugin_http_mount]",
|
||||
"[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin step-ca [op:plugin_activate]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/tailscale [op:plugin_http_mount]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Tailscale routes mounted at /plugin-api/tailscale [op:plugin:tailscale]",
|
||||
"[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin tailscale [op:plugin_activate]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/telemetry [op:plugin_http_mount]",
|
||||
"[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin telemetry [op:plugin_activate]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin termix-identity: 0001_adopt_termix_identity_tables [op:plugin_migrate]",
|
||||
"[2:15:33 PM] [WARN] [\ud83e\udde9] Plugin termix-identity serves 2 route(s) without authentication: /u/:handle, /u/:handle/:algo [op:plugin_http_public]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/termix-identity [op:plugin_http_mount]",
|
||||
"[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin termix-identity [op:plugin_activate]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin tmux-monitor: 0001_adopt_tmux_session_tags [op:plugin_migrate]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/tmux-monitor [op:plugin_http_mount]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Tmux Monitor routes mounted at /plugin-api/tmux-monitor [op:plugin:tmux-monitor]",
|
||||
"[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin tmux-monitor [op:plugin_activate]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin totp: 0001_create_enrollments [op:plugin_migrate]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/totp [op:plugin_http_mount]",
|
||||
"[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin totp [op:plugin_activate]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin vault: 0001_adopt_vault_tables [op:plugin_migrate]",
|
||||
"[2:15:33 PM] [WARN] [\ud83e\udde9] Plugin vault serves 1 route(s) without authentication: /oidc/callback [op:plugin_http_public]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/vault [op:plugin_http_mount]",
|
||||
"[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin vault [op:plugin_activate]",
|
||||
"[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin warpgate [op:plugin_activate]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/web-endpoint [op:plugin_http_mount]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Web Endpoint routes mounted at /plugin-api/web-endpoint [op:plugin:web-endpoint]",
|
||||
"[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin web-endpoint [op:plugin_activate]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin webauthn: 0001_adopt_webauthn_credentials [op:plugin_migrate]",
|
||||
"[2:15:33 PM] [WARN] [\ud83e\udde9] Plugin webauthn serves 1 route(s) without authentication: /authenticate/options [op:plugin_http_public]",
|
||||
"[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/webauthn [op:plugin_http_mount]",
|
||||
"[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin webauthn [op:plugin_activate]",
|
||||
"[2:15:33 PM] [INFO] [\ud83d\ude80] Loaded 34 plugin(s) [op:plugin_init]",
|
||||
"[2:15:33 PM] [INFO] [\ud83d\uddc4\ufe0f] Moved 2 Remote Desktop setting(s), 0 user(s) and 0 host(s) into plugin settings [op:remote_desktop_settings_migration]",
|
||||
"[2:15:33 PM] [INFO] [\ud83d\uddc4\ufe0f] Moved telemetry settings into plugin settings [op:telemetry_settings_migration]",
|
||||
"[2:15:33 PM] [SUCCESS] [\ud83d\ude80] Termix backend started successfully [op:backend_init_complete,duration:6972ms]",
|
||||
"[2:18:33 PM] [INFO] [\ud83e\udde9] Sent daily usage statistics [op:plugin:telemetry]"
|
||||
],
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.8.0"
|
||||
},
|
||||
"installed_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.8.0"
|
||||
},
|
||||
"catalog_images": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.9.2"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"termix ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"running_images_after": {
|
||||
"termix": "ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9"
|
||||
},
|
||||
"seed_after_undo": true,
|
||||
"verdict": "proven",
|
||||
"why": "TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back",
|
||||
"drill_head_after": "465e608822e17b14ec45beab71266ee1524ab005",
|
||||
"drill_tree_equal_to_before": true,
|
||||
"log": [
|
||||
"14:13:34 [5] the box's drill mirror now at 718be0f30",
|
||||
"14:13:38 [1] deploy -> 202 {'ok': True, 'message': 'Telep\u00edt\u00e9s elind\u00edtva \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}",
|
||||
"14:14:19 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.8.0'}",
|
||||
"14:14:19 gate: termix is gated \u2014 passed as the household (cookie set)",
|
||||
"14:14:19 termix: seeded user drill86061530 via /users/create",
|
||||
"14:14:19 termix: readback found=True (http 200, control refused as it must)",
|
||||
"14:14:20 drill commit 39f59c8d713e: termix TO with failing checks",
|
||||
"14:14:28 [5] the box's drill mirror now at 39f59c8d7",
|
||||
"14:14:33 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Friss\u00edt\u00e9s elindult \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}",
|
||||
"14:14:33 + 0.0s phase=checking label=Ellen\u0151rz\u00e9s\u2026 err=None hold=None",
|
||||
"14:14:34 + 1.0s phase=backing-up label=Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None",
|
||||
"14:14:37 + 4.1s phase=safety-dump label=Adatb\u00e1zis pillanatk\u00e9p\u2026 err=None hold=None",
|
||||
"14:14:38 + 5.2s phase=pulling label=\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026 err=None hold=None",
|
||||
"14:15:04 + 30.8s phase=copying label=Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None",
|
||||
"14:15:10 + 36.9s phase=verifying label=M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026 err=None hold=None",
|
||||
"14:20:13 + 340.1s phase=undoing label=Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026 err=None hold=None",
|
||||
"14:20:20 + 347.3s phase=undone label=Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra err=None hold=None",
|
||||
"14:20:50 termix: readback found=True (http 200, control refused as it must)",
|
||||
"14:20:50 RESULT proven \u2014 TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back",
|
||||
"14:20:50 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}",
|
||||
"14:21:22 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm",
|
||||
"14:21:31 [X] after remove: deployed=False leftovers=''",
|
||||
"14:21:41 [5] the box's drill mirror now at 465e60882",
|
||||
"14:21:41 drill revert 39f59c8d713e: rc=0",
|
||||
"14:21:41 drill templates/termix equal to before: True"
|
||||
]
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
14:22:11 [5] the box's drill mirror now at 465e60882
|
||||
14:22:16 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:23:01 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.8.0'}
|
||||
14:23:01 gate: termix is gated — passed as the household (cookie set)
|
||||
14:23:01 termix: seeded user drill974d3df9 via /users/create
|
||||
seed: True
|
||||
{"label": "2.8.0", "image": "ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9", "lan_codes": ["401", "401", "401", "401", "401", "429", "429"], "tunnel_codes": ["404", "404", "404", "404", "404", "404", "404"], "lan_fixed": true, "tunnel_fixed": false}
|
||||
14:23:20 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:23:52 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:24:00 [X] after remove: deployed=False leftovers=''
|
||||
14:23:20 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:23:52 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:24:00 [X] after remove: deployed=False leftovers=''
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
14:25:21 [5] the box's drill mirror now at 465e60882
|
||||
14:25:25 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:26:10 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.8.0'}
|
||||
14:26:10 gate: termix is gated — passed as the household (cookie set)
|
||||
14:26:11 termix: seeded user drill08407c55 via /users/create
|
||||
seed: True
|
||||
{"label": "2.8.0", "image": "ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9", "lan_codes": ["401", "401", "401", "401", "401", "429", "429"], "tunnel_codes": ["401", "401", "401", "401", "401", "401", "401"], "lan_fixed": true, "tunnel_fixed": false}
|
||||
14:26:18 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:26:50 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:26:58 [X] after remove: deployed=False leftovers=''
|
||||
14:26:18 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:26:50 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:26:58 [X] after remove: deployed=False leftovers=''
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
14:40:46 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:41:17 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': [], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazás nem tárolt sajá
|
||||
14:41:26 [X] after remove: deployed=False leftovers=''
|
||||
14:41:36 [5] the box's drill mirror now at 69b61c69d
|
||||
14:41:40 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:42:31 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:26.10.5'}
|
||||
14:42:31 gate: termix is gated — passed as the household (cookie set)
|
||||
14:42:31 termix: seeded user drill6906ad90 via /users/create
|
||||
seed: True
|
||||
{"label": "26.10.5", "image": "ghcr.io/lukegus/termix:26.10.5", "lan_codes": ["401", "401", "401", "401", "401", "429", "429"], "tunnel_codes": ["401", "401", "401", "401", "401", "401", "401"], "lan_fixed": true, "tunnel_fixed": false}
|
||||
14:42:39 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:43:11 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:43:20 [X] after remove: deployed=False leftovers=''
|
||||
14:42:39 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:43:11 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:43:20 [X] after remove: deployed=False leftovers=''
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"label": "2.8.0",
|
||||
"image": "ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9",
|
||||
"lan_codes": [
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"429",
|
||||
"429"
|
||||
],
|
||||
"tunnel_codes": [
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401"
|
||||
],
|
||||
"lan_fixed": true,
|
||||
"tunnel_fixed": false
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"label": "26.10.5",
|
||||
"image": "ghcr.io/lukegus/termix:26.10.5",
|
||||
"lan_codes": [
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"429",
|
||||
"429"
|
||||
],
|
||||
"tunnel_codes": [
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401"
|
||||
],
|
||||
"lan_fixed": true,
|
||||
"tunnel_fixed": false
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
14:45:56 [5] the box's drill mirror now at 6e9a885d5
|
||||
14:46:00 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:47:01 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.9.2'}
|
||||
14:47:01 gate: termix is gated — passed as the household (cookie set)
|
||||
14:47:01 termix: seeded user drill7fb9a190 via /users/create
|
||||
seed: True
|
||||
{"label": "2.9.2", "image": "ghcr.io/lukegus/termix:2.9.2", "lan_codes": ["401", "401", "401", "401", "401", "429", "429"], "tunnel_codes": ["502", "404", "404", "404", "404", "404", "404"], "lan_fixed": true, "tunnel_fixed": false}
|
||||
14:47:20 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:47:52 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:48:00 [X] after remove: deployed=False leftovers=''
|
||||
14:47:20 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:47:52 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:48:00 [X] after remove: deployed=False leftovers=''
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"label": "2.9.2",
|
||||
"image": "ghcr.io/lukegus/termix:2.9.2",
|
||||
"lan_codes": [
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"429",
|
||||
"429"
|
||||
],
|
||||
"tunnel_codes": [
|
||||
"502",
|
||||
"404",
|
||||
"404",
|
||||
"404",
|
||||
"404",
|
||||
"404",
|
||||
"404"
|
||||
],
|
||||
"lan_fixed": true,
|
||||
"tunnel_fixed": false
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"label": "2.8.0",
|
||||
"image": "ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9",
|
||||
"lan_codes": [
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"429",
|
||||
"429"
|
||||
],
|
||||
"tunnel_codes": [
|
||||
"404",
|
||||
"404",
|
||||
"404",
|
||||
"404",
|
||||
"404",
|
||||
"404",
|
||||
"404"
|
||||
],
|
||||
"lan_fixed": true,
|
||||
"tunnel_fixed": false
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
14:51:48 [5] the box's drill mirror now at e79107cb1
|
||||
14:51:53 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:52:38 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.8.0'}
|
||||
14:52:38 gate: termix is gated — passed as the household (cookie set)
|
||||
14:52:38 termix: seeded user drill6867516f via /users/create
|
||||
seed: True
|
||||
health before the test: healthy 0
|
||||
{"label": "2.8.0", "image": "ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9", "lan_codes": ["401", "401", "401", "401", "401", "429", "429"], "tunnel_codes": ["401", "401", "401", "401", "401", "429", "429"], "lan_fixed": true, "tunnel_fixed": true}
|
||||
14:53:52 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:54:24 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:54:33 [X] after remove: deployed=False leftovers=''
|
||||
14:53:52 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:54:24 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:54:33 [X] after remove: deployed=False leftovers=''
|
||||
@@ -0,0 +1,14 @@
|
||||
14:48:23 [5] the box's drill mirror now at 6e9a885d5
|
||||
14:48:28 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:49:28 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.9.2'}
|
||||
14:49:28 gate: termix is gated — passed as the household (cookie set)
|
||||
14:49:28 termix: seeded user drilld73d1a05 via /users/create
|
||||
seed: True
|
||||
health before the test: healthy 0
|
||||
{"label": "2.9.2", "image": "ghcr.io/lukegus/termix:2.9.2", "lan_codes": ["401", "401", "401", "401", "401", "429", "429"], "tunnel_codes": ["401", "401", "401", "401", "401", "429", "429"], "lan_fixed": true, "tunnel_fixed": true}
|
||||
14:50:43 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:51:15 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:51:24 [X] after remove: deployed=False leftovers=''
|
||||
14:50:43 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:51:15 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:51:24 [X] after remove: deployed=False leftovers=''
|
||||
@@ -0,0 +1,13 @@
|
||||
14:43:49 [5] the box's drill mirror now at 69b61c69d
|
||||
14:43:54 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:44:49 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:26.10.5'}
|
||||
14:44:49 gate: termix is gated — passed as the household (cookie set)
|
||||
14:44:49 termix: seeded user drill3b783abf via /users/create
|
||||
seed: True
|
||||
{"label": "26.10.5", "image": "ghcr.io/lukegus/termix:26.10.5", "lan_codes": ["401", "401", "401", "401", "401", "429", "429"], "tunnel_codes": ["401", "401", "401", "401", "401", "429", "429"], "lan_fixed": true, "tunnel_fixed": true}
|
||||
14:44:57 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:45:29 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:45:38 [X] after remove: deployed=False leftovers=''
|
||||
14:44:57 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}
|
||||
14:45:29 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
14:45:38 [X] after remove: deployed=False leftovers=''
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"label": "2.8.0",
|
||||
"image": "ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9",
|
||||
"lan_codes": [
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"429",
|
||||
"429"
|
||||
],
|
||||
"tunnel_codes": [
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"429",
|
||||
"429"
|
||||
],
|
||||
"lan_fixed": true,
|
||||
"tunnel_fixed": true
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"label": "2.9.2",
|
||||
"image": "ghcr.io/lukegus/termix:2.9.2",
|
||||
"lan_codes": [
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"429",
|
||||
"429"
|
||||
],
|
||||
"tunnel_codes": [
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"429",
|
||||
"429"
|
||||
],
|
||||
"lan_fixed": true,
|
||||
"tunnel_fixed": true
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"label": "26.10.5",
|
||||
"image": "ghcr.io/lukegus/termix:26.10.5",
|
||||
"lan_codes": [
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"429",
|
||||
"429"
|
||||
],
|
||||
"tunnel_codes": [
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"401",
|
||||
"429",
|
||||
"429"
|
||||
],
|
||||
"lan_fixed": true,
|
||||
"tunnel_fixed": true
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env python3
|
||||
"""termix_xff.py LABEL — D58 / GHSA-7j7m on the Termix installed on scratch 9202: does a forged X-Forwarded-For let one
|
||||
address skip the login limit? 7 wrong logins, 7 different usernames, 7 different forged X-Forwarded-For values:
|
||||
LAN: from DooPlex straight to 9202's traefik (the household's LAN path; traefik does NOT trust this peer);
|
||||
TUNNEL: from a throwaway curl container on 9202's felhom-tunnel network at 172.16.253.2 — the address cloudflared has on
|
||||
a real box, the ONE peer whose forwarded headers traefik keeps (the internet path). The header is what Cloudflare
|
||||
delivers: the visitor's forged value, then the real visitor address Cloudflare APPENDS (one constant, 203.0.113.99).
|
||||
Fixed = an HTTP 429 by the 6th attempt (the per-address limit, MAX_ATTEMPTS 5). Not fixed = no 429 in 7.
|
||||
usage: SC=<dir with .ctlpw> TARGET=9202 python3 termix_xff.py LABEL (prints, and writes xff-LABEL.json in EV)"""
|
||||
import json, os, secrets, sys
|
||||
sys.path.insert(0, "/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts")
|
||||
import box_walk as w
|
||||
label, EV = sys.argv[1], os.environ["EV"]
|
||||
os.makedirs(EV, exist_ok=True)
|
||||
sub = "termix"
|
||||
w.login()
|
||||
res = {"label": label, "image": w.guest("docker inspect -f '{{.Config.Image}}' termix").strip()}
|
||||
lan = []
|
||||
for i in range(7):
|
||||
rc, code, out = w.app_curl(sub, "/users/login", "-H", "Content-Type: application/json",
|
||||
"-H", f"X-Forwarded-For: 203.0.113.{10 + i}",
|
||||
data=json.dumps({"username": "nobody" + secrets.token_hex(3), "password": "wrong-" + secrets.token_hex(4)}),
|
||||
method="POST")
|
||||
lan.append(code)
|
||||
res["lan_codes"] = lan
|
||||
host = f"{sub}.{w.DOMAIN}"
|
||||
gc = w.GATE.get(sub) or w.gate_cookie(sub) or "" # the household's gate cookie, as the LAN half sends it; never printed
|
||||
lines = ["for x in 11 12 13 14 15 16 17; do",
|
||||
" curl -sk -o /dev/null -w '%{http_code} ' --resolve " + host + ":443:172.16.253.3 \\",
|
||||
" -H \"X-Forwarded-For: 198.51.100.$x, 203.0.113.99\" -H 'Content-Type: application/json' -H \"Cookie: $GC\" \\",
|
||||
" --data \"{\\\"username\\\":\\\"tun$x$$\\\",\\\"password\\\":\\\"wrong-pass-$x\\\"}\" https://" + host + "/users/login",
|
||||
"done"]
|
||||
script = ("cat > /tmp/xff.sh <<'XEOF'\n" + "\n".join(lines) + "\nXEOF\n"
|
||||
"docker run --rm --network felhom-tunnel --ip 172.16.253.2 -e GC -v /tmp/xff.sh:/xff.sh:ro curlimages/curl:8.11.1 sh /xff.sh; rm -f /tmp/xff.sh")
|
||||
out = w.guest("export GC=" + json.dumps(gc) + "\n" + script, timeout=300)
|
||||
res["tunnel_codes"] = out.split()
|
||||
res["lan_fixed"] = "429" in lan[:6]
|
||||
res["tunnel_fixed"] = "429" in res["tunnel_codes"][:6]
|
||||
print(json.dumps(res))
|
||||
json.dump(res, open(os.path.join(EV, f"xff-{label}.json"), "w"), indent=1)
|
||||
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env python3
|
||||
"""termix_xff_install.py LABEL — install Termix from the drill on 9202 through the product, make the first account (the
|
||||
fixture's own sign-up: it lifts the setup gate), run termix_xff.py LABEL, remove the app through the product."""
|
||||
import os, runpy, sys
|
||||
sys.path.insert(0, "/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts")
|
||||
import box_walk as w
|
||||
import upgrade_fixtures_box28 as f28
|
||||
w.login()
|
||||
try:
|
||||
if w.stack("termix").get("deployed"):
|
||||
w.remove("termix")
|
||||
w.refresh_box_mirror(); w.sync_rescan()
|
||||
if not w.deploy("termix", "termix"):
|
||||
print("install failed"); sys.exit(1)
|
||||
t = f28.FIXTURES28["termix"].seed(w, "termix", w.say)
|
||||
print("seed:", bool(t))
|
||||
# 2.9.2 dropped its route for a while right after the first install (502, then 404 — 2026-10-28): wait until the
|
||||
# container is healthy and stays so for 60 s before the test
|
||||
import time
|
||||
for _ in range(40):
|
||||
if w.guest("docker inspect -f '{{.State.Health.Status}}' termix").strip() == "healthy":
|
||||
break
|
||||
time.sleep(10)
|
||||
time.sleep(60)
|
||||
print("health before the test:", w.guest("docker inspect -f '{{.State.Health.Status}} {{.RestartCount}}' termix").strip())
|
||||
sys.argv = ["termix_xff.py", sys.argv[1]]
|
||||
runpy.run_path(os.path.join(os.path.dirname(os.path.abspath(__file__)), "termix_xff.py"), run_name="__main__")
|
||||
finally:
|
||||
if w.stack("termix").get("deployed"):
|
||||
w.remove("termix")
|
||||
print("\n".join(w.LOG[-3:]))
|
||||
@@ -0,0 +1,132 @@
|
||||
#!/usr/bin/env python3
|
||||
"""undo_proof2.py APP MAIN_SVC FROM(svc=ref,…) TO(svc=ref,…) — a big step's UNDO, proven on scratch 9202 through the product's
|
||||
own guarded Update (generalised from audits/security-app-updates-2026-10-27/part3/tools/undo_proof.py, Jellyfin):
|
||||
1. the drill's APP must stand at FROM (this tool checks, never guesses); install, seed with the box fixture, read back (C1);
|
||||
2. a temporary drill commit moves the images to TO AND makes the checks fail (MAIN_SVC's compose healthcheck `false`,
|
||||
the .felhom.yml probe on a path that does not exist) — so TO starts on the data, runs its migrations, and the
|
||||
Update fails in its check;
|
||||
3. press the guarded Update: the final phase must be `undone`; MAIN_SVC's log is saved while TO verifies;
|
||||
4. after the undo: the running images are FROM and the seed reads back;
|
||||
5. the temporary drill commit is reverted (the template equal to before), the app removed.
|
||||
usage: SC=<dir with .ctlpw> TARGET=9202 EV=<dir> python3 undo_proof2.py APP MAIN_SVC FROM TO [DEFINITION_DIR]"""
|
||||
import json, os, re, subprocess, sys, threading, time
|
||||
sys.path.insert(0, "/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts")
|
||||
import box_walk as w
|
||||
import upgrade_fixtures_box as fb
|
||||
import upgrade_fixtures_box28 as f28
|
||||
|
||||
APP, MAIN = sys.argv[1], sys.argv[2]
|
||||
FROM = dict(x.split("=", 1) for x in sys.argv[3].split(","))
|
||||
TO = dict(x.split("=", 1) for x in sys.argv[4].split(","))
|
||||
DEF = sys.argv[5] if len(sys.argv) > 5 else None # a definition step: TO is that whole definition (box_walk --to-definition)
|
||||
FX = dict(f28.FIXTURES28); FX.update(fb.FIXTURES)
|
||||
fx = FX[APP]
|
||||
SUB = getattr(fx, "sub", APP)
|
||||
D = w.DRILL
|
||||
EV = os.environ["EV"]
|
||||
os.makedirs(EV, exist_ok=True)
|
||||
OUT = os.path.join(EV, "undo-proof-%s.json" % APP)
|
||||
rec = {"app": APP, "from": FROM, "to": TO, "started": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())}
|
||||
|
||||
|
||||
def git(*a):
|
||||
return subprocess.run(["git", "-C", D] + list(a), capture_output=True, text=True, timeout=120)
|
||||
|
||||
|
||||
def finish(verdict, why):
|
||||
rec["verdict"], rec["why"] = verdict, why
|
||||
w.say(f"RESULT {verdict} — {why}")
|
||||
|
||||
|
||||
def failing_to(c, y):
|
||||
if DEF:
|
||||
c = open(os.path.join(DEF, "docker-compose.yml")).read()
|
||||
y = open(os.path.join(DEF, ".felhom.yml")).read()
|
||||
assert w.images_of(c) == TO, (w.images_of(c), TO)
|
||||
for svc in ({} if DEF else FROM):
|
||||
if FROM[svc] != TO[svc]:
|
||||
assert f"image: {FROM[svc]}" in c, svc
|
||||
c = c.replace(f"image: {FROM[svc]}", f"image: {TO[svc]}")
|
||||
# MAIN's own block only (never past the next service), comment lines allowed between healthcheck: and test:
|
||||
m = re.search(r"(?m)^ %s:\n(?:(?! \S)[^\n]*\n)*? healthcheck:\n(?:\s*#[^\n]*\n)*(\s+)test: [^\n]*\n" % re.escape(MAIN), c)
|
||||
if m:
|
||||
c = c[:m.start()] + m.group(0).replace(m.group(0).split("\n")[-2], m.group(1) + 'test: ["CMD", "false"]') + c[m.end():]
|
||||
else: # no test line of our own (the image's own): add a failing healthcheck under the service
|
||||
c = re.sub(r"(?m)^( %s:\n)" % re.escape(MAIN), r'\1 healthcheck:\n test: ["CMD", "false"]\n', c, count=1)
|
||||
# port 1: nothing listens there, so the probe fails on ANY app — an app that answers 200 on every path (a single-page
|
||||
# app: Termix, 2026-10-28) passed a „no such path" probe and the update ended `done`
|
||||
y2 = re.sub(r"(?m)^(healthcheck:\n checks:\n - type: )\w+(\n port: )\d+\n(?: path: [^\n]*\n)?(?: expect:\n status: \d+\n)?",
|
||||
r'\1api\g<2>1\n path: "/undo-proof-no-such-path"\n expect:\n status: 200\n', y, count=1)
|
||||
return c, y2
|
||||
|
||||
|
||||
w.login()
|
||||
git("pull", "-q", "--rebase", "origin", "main")
|
||||
head0 = git("rev-parse", "HEAD").stdout.strip()
|
||||
rec["drill_head_before"] = head0
|
||||
comp, fy = f"{D}/templates/{APP}/docker-compose.yml", f"{D}/templates/{APP}/.felhom.yml"
|
||||
commit = None
|
||||
try:
|
||||
if w.images_of(open(comp).read()) != FROM:
|
||||
finish("inconclusive", f"the drill's {APP} is not at FROM"); raise SystemExit(1)
|
||||
if w.stack(APP).get("deployed"):
|
||||
w.remove(APP)
|
||||
w.refresh_box_mirror()
|
||||
w.sync_rescan()
|
||||
if not w.deploy(APP, SUB):
|
||||
finish("inconclusive", "the install at FROM did not complete"); raise SystemExit(1)
|
||||
tok = fx.seed(w, SUB, w.say)
|
||||
if not tok or not fx.verify(w, SUB, tok, w.say):
|
||||
finish("inconclusive", "C1: the seed did not read back before the update"); raise SystemExit(1)
|
||||
c, y = failing_to(open(comp).read(), open(fy).read())
|
||||
rec["failing_compose_main_healthcheck"] = re.findall(r'test: \["CMD", "false"\]', c)
|
||||
rec["failing_probe"] = "/undo-proof-no-such-path" in y
|
||||
open(comp, "w").write(c); open(fy, "w").write(y)
|
||||
git("add", f"templates/{APP}")
|
||||
git("commit", "-q", "-m", f"UNDO-PROOF: {APP} at TO whose checks fail (temporary, reverted at the end)")
|
||||
git("push", "-q", "origin", "main")
|
||||
commit = git("rev-parse", "--short=12", "HEAD").stdout.strip()
|
||||
w.say(f" drill commit {commit}: {APP} TO with failing checks")
|
||||
w.refresh_box_mirror()
|
||||
main_to = TO[MAIN]
|
||||
w.sync_rescan(APP, main_to, tries=40, delay=10)
|
||||
seen = {"lines": []}
|
||||
stop = threading.Event()
|
||||
|
||||
def watch():
|
||||
while not stop.is_set():
|
||||
out = w.guest(f"docker inspect -f '{{{{.Config.Image}}}}' {MAIN} 2>/dev/null; docker logs --tail 300 {MAIN} 2>&1 | tail -40")
|
||||
if main_to.split(":")[-1] in out.split("\n")[0]:
|
||||
seen["lines"] = out.strip().split("\n")
|
||||
time.sleep(5)
|
||||
th = threading.Thread(target=watch, daemon=True)
|
||||
th.start()
|
||||
rec["update"] = u = w.press_update(APP, poll=1.0, cap_s=1800)
|
||||
stop.set(); th.join(timeout=30)
|
||||
rec["to_log_while_verifying"] = seen["lines"][-40:]
|
||||
time.sleep(15)
|
||||
rec["observables_after"] = w.observables(APP)
|
||||
running = {s: w.guest(f"docker inspect -f '{{{{.Config.Image}}}}' {s} 2>/dev/null").strip() for s in FROM}
|
||||
rec["running_images_after"] = running
|
||||
if u.get("final_phase") != "undone":
|
||||
finish("failed", f"the update ended {u.get('final_phase')!r}, not 'undone'"); raise SystemExit(1)
|
||||
if any(running[s].split("@")[0] != FROM[s] for s in FROM):
|
||||
finish("failed", f"after the undo the running images are {running}, not FROM"); raise SystemExit(1)
|
||||
rec["seed_after_undo"] = ok = fx.verify(w, SUB, tok, w.say)
|
||||
if not ok:
|
||||
finish("failed", "the undo put the old images back but the seed does not read back"); raise SystemExit(1)
|
||||
finish("proven", "TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back")
|
||||
finally:
|
||||
if w.stack(APP).get("deployed"):
|
||||
w.remove(APP)
|
||||
if commit:
|
||||
git("pull", "-q", "--rebase", "origin", "main")
|
||||
r = git("revert", "--no-edit", commit)
|
||||
git("push", "-q", "origin", "main")
|
||||
w.refresh_box_mirror()
|
||||
w.say(f" drill revert {commit}: rc={r.returncode}")
|
||||
rec["drill_head_after"] = git("rev-parse", "HEAD").stdout.strip()
|
||||
rec["drill_tree_equal_to_before"] = git("diff", "--quiet", head0, "HEAD", "--", f"templates/{APP}").returncode == 0
|
||||
w.say(f" drill templates/{APP} equal to before: {rec['drill_tree_equal_to_before']}")
|
||||
rec["log"] = w.LOG
|
||||
json.dump(rec, open(OUT, "w"), indent=2)
|
||||
+145
@@ -0,0 +1,145 @@
|
||||
[12:02:54] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[12:02:54] MV-wanderer: deploying wanderer at FROM {'wanderer': 'flomp/wanderer-web:v0.20.0', 'wanderer-db': 'flomp/wanderer-db:v0.20.0', 'wanderer-search': 'getmeili/meilisearch:v1.36.0'}
|
||||
[12:03:57] FROM settled=True in 31.2s :: {"wanderer": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "wanderer-db": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "wanderer-search": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[12:03:57] fixture: the BOX walk's own (Wanderer), through upgrade_boxport
|
||||
[12:03:58] wanderer: sign-up http=200
|
||||
[12:03:58] wanderer: seeded user drill5229bfc6 and private list Drill-0943754405 http=200 id=True
|
||||
[12:03:58] wanderer: sign-in ok (wrong password refused: http 400); the private list read back http=200 ok=True
|
||||
[12:03:58] C1 (seed reads back BEFORE): True
|
||||
[12:03:59] MV-wanderer: swapping to TO {'wanderer': 'flomp/wanderer-web:v0.21.2', 'wanderer-db': 'flomp/wanderer-db:v0.21.2', 'wanderer-search': 'getmeili/meilisearch:v1.36.0'}
|
||||
[12:04:47] TO up -d rc=0
|
||||
[12:05:24] TO settled=True in 36.4s :: {"wanderer": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "wanderer-db": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "wanderer-search": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[12:05:24] migration lines observed: 0
|
||||
[12:05:24] wanderer: sign-in ok (wrong password refused: http 400); the private list read back http=200 ok=True
|
||||
[12:05:24] RESULT (seed reads back AFTER): True
|
||||
[12:05:25] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:3000
|
||||
[12:05:40] + 15s wanderer=136M/512M peak=141M kills=0 rs=0 wanderer-db=20M/256M peak=22M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=244
|
||||
[12:05:55] + 30s wanderer=137M/512M peak=143M kills=0 rs=0 wanderer-db=24M/256M peak=24M kills=0 rs=0 wanderer-search=250M/256M peak=256M kills=0 rs=0 reqs=501
|
||||
[12:06:11] + 46s wanderer=139M/512M peak=146M kills=0 rs=0 wanderer-db=27M/256M peak=27M kills=0 rs=0 wanderer-search=250M/256M peak=256M kills=0 rs=0 reqs=749
|
||||
[12:06:26] + 61s wanderer=140M/512M peak=146M kills=0 rs=0 wanderer-db=31M/256M peak=34M kills=0 rs=0 wanderer-search=250M/256M peak=256M kills=0 rs=0 reqs=988
|
||||
[12:06:41] + 76s wanderer=139M/512M peak=146M kills=0 rs=0 wanderer-db=32M/256M peak=34M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=1237
|
||||
[12:06:56] + 91s wanderer=139M/512M peak=146M kills=0 rs=0 wanderer-db=33M/256M peak=35M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=1482
|
||||
[12:07:11] + 106s wanderer=141M/512M peak=150M kills=0 rs=0 wanderer-db=37M/256M peak=37M kills=0 rs=0 wanderer-search=252M/256M peak=256M kills=0 rs=0 reqs=1735
|
||||
[12:07:26] + 121s wanderer=138M/512M peak=150M kills=0 rs=0 wanderer-db=37M/256M peak=39M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=1977
|
||||
[12:07:42] + 137s wanderer=140M/512M peak=150M kills=0 rs=0 wanderer-db=40M/256M peak=41M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=2231
|
||||
[12:07:57] + 152s wanderer=139M/512M peak=154M kills=0 rs=0 wanderer-db=40M/256M peak=42M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=2465
|
||||
[12:08:12] + 167s wanderer=141M/512M peak=154M kills=0 rs=0 wanderer-db=43M/256M peak=46M kills=0 rs=0 wanderer-search=252M/256M peak=256M kills=0 rs=0 reqs=2713
|
||||
[12:08:27] + 182s wanderer=141M/512M peak=154M kills=0 rs=0 wanderer-db=43M/256M peak=46M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=2949
|
||||
[12:08:42] + 197s wanderer=141M/512M peak=154M kills=0 rs=0 wanderer-db=45M/256M peak=46M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=3192
|
||||
[12:08:58] + 212s wanderer=139M/512M peak=154M kills=0 rs=0 wanderer-db=47M/256M peak=47M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=3444
|
||||
[12:09:13] + 228s wanderer=142M/512M peak=154M kills=0 rs=0 wanderer-db=48M/256M peak=49M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=3703
|
||||
[12:09:28] + 243s wanderer=143M/512M peak=154M kills=0 rs=0 wanderer-db=50M/256M peak=51M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=3949
|
||||
[12:09:43] + 258s wanderer=143M/512M peak=154M kills=0 rs=0 wanderer-db=52M/256M peak=53M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=4192
|
||||
[12:09:58] + 273s wanderer=143M/512M peak=154M kills=0 rs=0 wanderer-db=53M/256M peak=54M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=4435
|
||||
[12:10:13] + 288s wanderer=142M/512M peak=154M kills=0 rs=0 wanderer-db=54M/256M peak=55M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=4675
|
||||
[12:10:29] + 304s wanderer=141M/512M peak=154M kills=0 rs=0 wanderer-db=56M/256M peak=57M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=4910
|
||||
[12:10:44] + 319s wanderer=142M/512M peak=154M kills=0 rs=0 wanderer-db=57M/256M peak=59M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=5159
|
||||
[12:10:59] + 334s wanderer=142M/512M peak=154M kills=0 rs=0 wanderer-db=59M/256M peak=60M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=5395
|
||||
[12:11:14] + 349s wanderer=140M/512M peak=154M kills=0 rs=0 wanderer-db=60M/256M peak=62M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=5631
|
||||
[12:11:29] + 364s wanderer=143M/512M peak=154M kills=0 rs=0 wanderer-db=61M/256M peak=63M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=5868
|
||||
[12:11:45] + 380s wanderer=142M/512M peak=154M kills=0 rs=0 wanderer-db=63M/256M peak=64M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=6107
|
||||
[12:12:00] + 395s wanderer=142M/512M peak=154M kills=0 rs=0 wanderer-db=65M/256M peak=66M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=6348
|
||||
[12:12:15] + 410s wanderer=139M/512M peak=154M kills=0 rs=0 wanderer-db=67M/256M peak=67M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=6604
|
||||
[12:12:30] + 425s wanderer=142M/512M peak=154M kills=0 rs=0 wanderer-db=68M/256M peak=69M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=6837
|
||||
[12:12:45] + 440s wanderer=143M/512M peak=154M kills=0 rs=0 wanderer-db=69M/256M peak=71M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=7091
|
||||
[12:13:01] + 456s wanderer=141M/512M peak=154M kills=0 rs=0 wanderer-db=71M/256M peak=72M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=7351
|
||||
[12:13:16] + 471s wanderer=142M/512M peak=154M kills=0 rs=0 wanderer-db=73M/256M peak=73M kills=0 rs=0 wanderer-search=252M/256M peak=256M kills=0 rs=0 reqs=7602
|
||||
[12:13:31] + 486s wanderer=142M/512M peak=154M kills=0 rs=0 wanderer-db=74M/256M peak=75M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=7852
|
||||
[12:13:46] + 501s wanderer=144M/512M peak=154M kills=0 rs=0 wanderer-db=76M/256M peak=76M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=8107
|
||||
[12:14:01] + 516s wanderer=141M/512M peak=154M kills=0 rs=0 wanderer-db=77M/256M peak=79M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=8340
|
||||
[12:14:16] + 531s wanderer=141M/512M peak=154M kills=0 rs=0 wanderer-db=78M/256M peak=79M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=8582
|
||||
[12:14:32] + 547s wanderer=141M/512M peak=154M kills=0 rs=0 wanderer-db=80M/256M peak=81M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=8820
|
||||
[12:14:47] + 562s wanderer=143M/512M peak=154M kills=0 rs=0 wanderer-db=81M/256M peak=83M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=9057
|
||||
[12:15:02] + 577s wanderer=142M/512M peak=154M kills=0 rs=0 wanderer-db=83M/256M peak=84M kills=0 rs=0 wanderer-search=252M/256M peak=256M kills=0 rs=0 reqs=9295
|
||||
[12:15:17] + 592s wanderer=141M/512M peak=154M kills=0 rs=0 wanderer-db=84M/256M peak=86M kills=0 rs=0 wanderer-search=251M/256M peak=256M kills=0 rs=0 reqs=9538
|
||||
[12:15:32] + 607s wanderer=140M/512M peak=154M kills=0 rs=0 wanderer-db=86M/256M peak=87M kills=0 rs=0 wanderer-search=252M/256M peak=256M kills=0 rs=0 reqs=9780
|
||||
[12:15:33] memory watch: killed=False tight=['wanderer-search'] requests=9781 codes={'200': 9781}
|
||||
[12:15:33] MV-wanderer: ABORT — putting the FROM images back
|
||||
[12:16:22] wanderer: sign-in ok (wrong password refused: http 400); the private list read back http=200 ok=True
|
||||
[12:16:22] ABORT: app came back in 31.3s; data present=True
|
||||
{
|
||||
"harness_version": 5,
|
||||
"edge": "MV-wanderer",
|
||||
"app": "wanderer",
|
||||
"note": "night 2026-09-23 within-a-major move: wanderer=flomp/wanderer-web:v0.21.2, wanderer-db=flomp/wanderer-db:v0.21.2",
|
||||
"from": {
|
||||
"wanderer": "flomp/wanderer-web:v0.20.0",
|
||||
"wanderer-db": "flomp/wanderer-db:v0.20.0",
|
||||
"wanderer-search": "getmeili/meilisearch:v1.36.0"
|
||||
},
|
||||
"to": {
|
||||
"wanderer": "flomp/wanderer-web:v0.21.2",
|
||||
"wanderer-db": "flomp/wanderer-db:v0.21.2",
|
||||
"wanderer-search": "getmeili/meilisearch:v1.36.0"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": null,
|
||||
"abort": "starts-and-serves",
|
||||
"abort_detail": null,
|
||||
"engine_state_after": null,
|
||||
"memory": {
|
||||
"soak_s": 607.8,
|
||||
"requested_s": 600,
|
||||
"requests": 9781,
|
||||
"codes": {
|
||||
"200": 9781
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"wanderer": {
|
||||
"limit": 536870912,
|
||||
"peak": 161669120,
|
||||
"peak_pct": 0.301,
|
||||
"anon_peak_sampled": 140189696,
|
||||
"anon_peak_pct": 0.261,
|
||||
"swap_peak": 0,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
},
|
||||
"wanderer-db": {
|
||||
"limit": 268435456,
|
||||
"peak": 91942912,
|
||||
"peak_pct": 0.343,
|
||||
"anon_peak_sampled": 57614336,
|
||||
"anon_peak_pct": 0.215,
|
||||
"swap_peak": 0,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
},
|
||||
"wanderer-search": {
|
||||
"limit": 268435456,
|
||||
"peak": 268439552,
|
||||
"peak_pct": 1.0,
|
||||
"anon_peak_sampled": 257552384,
|
||||
"anon_peak_pct": 0.959,
|
||||
"swap_peak": 0,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"venue_swap_bytes": 0,
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [
|
||||
"memory_tight"
|
||||
],
|
||||
"bench_overrides": null,
|
||||
"duration_s": 36.4,
|
||||
"measured_at": "2026-10-28T12:16:22Z",
|
||||
"evidence": "evidence/MV-wanderer",
|
||||
"scratch_cleared": [],
|
||||
"files_changed": [],
|
||||
"files_changed_detail": [],
|
||||
"files_ignored": [],
|
||||
"total_s": 808.3
|
||||
}
|
||||
Loaded 100 of 141 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user