Security app updates 2026-10-27: 14 security-fix steps + 2 normal steps live (catalog 06e603e, 7b0071e, 65a6b11); controller v0.346.1 (traefik, file manager, cloudflared) floor set; R-1304 and R-1306 CLOSED, R-1305 NARROWED; R-1313, R-1315–R-1325 filed (big steps left, three observations); 09 decision 255 and B23: the batch use of the lane; evidence
This commit is contained in:
1 parent
7c75162a18
commit
7610f69e7c
69 files changed
+7530
-10
No files matched your search
@@ -0,0 +1,7 @@
|
||||
# Batch 1 live read-back on demo-hp 9201 (read only; the other session's yes 2026-10-27). 2026-10-27T14:12:27Z
|
||||
catalog cache: 06e603e88d45f94c2b2723db45a240dea69faca6 2026-10-27 15:05:13 +0100
|
||||
romm running: rommapp/romm:5.3.1
|
||||
security_fix entries in the cached romm .felhom.yml: 1
|
||||
cached romm compose image: rommapp/romm:5.4.1
|
||||
app_update.unattended saved anywhere: 0 file(s) — absent means ON (settings.go:210)
|
||||
Expected tonight: the night leg (after the off-site copy) takes romm 5.3.1 -> 5.4.1 and logs '[security fix romm: GHSA-…,… done]' in its 'update leg (…)' line.
|
||||
@@ -0,0 +1,7 @@
|
||||
# 9202 AFTER (0.346.1-rc.1), 2026-10-27T14:58:26Z
|
||||
images: traefik=traefik:v3.7.16 filebrowser=gtstef/filebrowser:1.5.8-stable cloudflared=
|
||||
none
|
||||
filebrowser networks: felhom-filebrowser felhom-files
|
||||
from traefik-public -> filebrowser:80 (by name): wget: bad address 'filebrowser:80' rc=0
|
||||
from traefik-public -> filebrowser by IP 172.21.0.2: wget: download timed out rc=0
|
||||
CONTROL from traefik-public -> traefik:80: HTTP/1.1 301 Moved Permanently rc=0
|
||||
@@ -0,0 +1,7 @@
|
||||
# 9202 BEFORE (controller 0.343.0), 2026-10-27T14:57:46Z
|
||||
images: traefik=traefik:v3.7.13 filebrowser=gtstef/filebrowser:1.5.6-stable cloudflared=
|
||||
none
|
||||
filebrowser networks: felhom-filebrowser traefik-public
|
||||
from traefik-public -> filebrowser:80 (by name): HTTP/1.1 200 OK rc=0
|
||||
from traefik-public -> filebrowser by IP 172.21.0.2: wget: download timed out rc=0
|
||||
CONTROL from traefik-public -> traefik:80: HTTP/1.1 301 Moved Permanently rc=0
|
||||
@@ -0,0 +1,4 @@
|
||||
1. dashboard /__files/open -> HTTP/2 302 | to files host: True
|
||||
2. files host /_felhom/sso -> HTTP/2 302 | files cookie set: True
|
||||
3. a listing through traefik with the files cookie -> 200
|
||||
4. the same without any cookie (control) -> 401
|
||||
@@ -0,0 +1,15 @@
|
||||
filebrowser gtstef/filebrowser:1.5.8-stable Up 2 seconds (health: starting)
|
||||
traefik traefik:v3.7.16 Up 5 seconds
|
||||
felhom-controller gitea.dooplex.hu/admin/felhom-controller:0.346.1-rc.1 Up 14 seconds (healthy)
|
||||
2026/10/27 14:58:06 manager.go:680: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
|
||||
2026/10/27 14:58:06 infra.go:147: [INFO] [infra] traefik config changed (docker-compose.yml, tunnel trust true) — rewriting and recreating traefik (routing pauses a few seconds)
|
||||
2026/10/27 14:58:06 dbdump.go:171: [DEBUG] DiscoverDatabases: skipping container filebrowser (image=gtstef/filebrowser:1.5.6-stable, not a database)
|
||||
2026/10/27 14:58:06 manager.go:680: [DEBUG] [stacks] ScanStacks: found stack "filebrowser" deployed=false composePath=/opt/docker/stacks/filebrowser/docker-compose.yml
|
||||
2026/10/27 14:58:06 manager.go:258: [DEBUG] [integrations] ReapplyConfigForTarget: target=filebrowser integrations=0
|
||||
2026/10/27 14:58:15 infra.go:378: [INFO] [infra] connected felhom-controller to traefik-public
|
||||
2026/10/27 14:58:15 infra.go:97: [INFO] [infra] cloudflared skipped — no cf_tunnel_token configured (LAN-only node)
|
||||
2026/10/27 14:58:15 filebrowser_gate.go:70: [INFO] [infra] connected felhom-controller to felhom-filebrowser (the FileBrowser default-login check, R-1126)
|
||||
2026/10/27 14:58:17 filebrowser_gate.go:101: [INFO] [infra] filebrowser: traefik joined felhom-files — the only route to FileBrowser (R-1281)
|
||||
2026/10/27 14:58:17 filebrowser_gate.go:108: [INFO] [infra] filebrowser: default login refused for this run — joined felhom-files, files.<domain> served (R-1126, R-1281)
|
||||
2026/10/27 14:58:17 filebrowser_gate.go:112: [WARN] [infra] filebrowser: could not leave traefik-public — every app can still reach it (R-1281): Error response from daemon: No such container: 503e946085d8f32ed26e1134778f7a9d02d3d75c67cda5ebfb7629da3a173f54: exit status 1
|
||||
2026/10/27 14:58:20 filebrowser_gate.go:108: [INFO] [infra] filebrowser: default login refused for this run — joined felhom-files, files.<domain> served (R-1126, R-1281)
|
||||
@@ -0,0 +1,15 @@
|
||||
2026/10/27 15:41:26 [INFO] [selfupdate] Post-update startup: update successful (0.346.0 → 0.346.1)
|
||||
2026/10/27 15:41:26 [INFO] [scheduler] Registered periodic job: selfupdate-check (every 6h0m0s)
|
||||
2026/10/27 15:41:26 [INFO] [infra] traefik config changed (docker-compose.yml, tunnel trust true) — rewriting and recreating traefik (routing pauses a few seconds)
|
||||
2026/10/27 15:41:33 [INFO] [infra] connected felhom-controller to traefik-public
|
||||
2026/10/27 15:41:33 [INFO] [infra] cloudflared compose changed (tunnel network true) — recreating cloudflared (the tunnel reconnects in seconds)
|
||||
2026/10/27 15:41:36 [INFO] [infra] connected felhom-controller to felhom-filebrowser (the FileBrowser default-login check, R-1126)
|
||||
2026/10/27 15:41:36 [INFO] [infra] filebrowser: traefik joined felhom-files — the only route to FileBrowser (R-1281)
|
||||
2026/10/27 15:41:37 [INFO] [infra] filebrowser: default login refused for this run — joined felhom-files, files.<domain> served (R-1126, R-1281)
|
||||
-- cloudflared (new container) first lines:
|
||||
2026-10-27T15:41:36Z INF Starting tunnel tunnelID=8b4edf48-1846-4484-870e-68b48cf43483
|
||||
2026-10-27T15:41:37Z INF Registered tunnel connection connIndex=0 connection=8eb9754f-ff0d-4134-925b-769d0f95002a event=0 ip=198.41.192.37 location=bud01 protocol=quic
|
||||
2026-10-27T15:41:37Z INF Registered tunnel connection connIndex=1 connection=7d303a85-782a-4edd-9c77-7d1b3003235a event=0 ip=198.41.200.233 location=vie05 protocol=quic
|
||||
2026-10-27T15:41:38Z INF Registered tunnel connection connIndex=2 connection=316aa0f8-4472-40f2-90ff-1d08da5d1be2 event=0 ip=198.41.200.33 location=vie05 protocol=quic
|
||||
2026-10-27T15:41:39Z INF Registered tunnel connection connIndex=3 connection=3ef8334c-383c-4ccc-91bd-578675e88372 event=0 ip=198.41.192.67 location=bud01 protocol=quic
|
||||
-- cloudflared StartedAt: 2026-10-27T15:41:36.543853737Z traefik StartedAt: 2026-10-27T15:41:32.861698806Z
|
||||
@@ -0,0 +1,16 @@
|
||||
2026/10/27 15:41:31 updater.go:855: [INFO] [selfupdate] Post-update startup: update successful (0.346.0 → 0.346.1)
|
||||
2026/10/27 15:41:31 scheduler.go:120: [INFO] [scheduler] Registered periodic job: selfupdate-check (every 6h0m0s)
|
||||
2026/10/27 15:41:31 infra.go:147: [INFO] [infra] traefik config changed (docker-compose.yml, tunnel trust true) — rewriting and recreating traefik (routing pauses a few seconds)
|
||||
2026/10/27 15:41:52 infra.go:378: [INFO] [infra] connected felhom-controller to traefik-public
|
||||
2026/10/27 15:41:52 infra.go:188: [INFO] [infra] cloudflared compose changed (tunnel network true) — recreating cloudflared (the tunnel reconnects in seconds)
|
||||
2026/10/27 15:41:56 filebrowser_gate.go:70: [INFO] [infra] connected felhom-controller to felhom-filebrowser (the FileBrowser default-login check, R-1126)
|
||||
2026/10/27 15:41:58 filebrowser_gate.go:101: [INFO] [infra] filebrowser: traefik joined felhom-files — the only route to FileBrowser (R-1281)
|
||||
2026/10/27 15:41:58 filebrowser_gate.go:108: [INFO] [infra] filebrowser: default login refused for this run — joined felhom-files, files.<domain> served (R-1126, R-1281)
|
||||
2026/10/27 15:42:06 updater.go:196: [INFO] [selfupdate] Current version 0.346.1 is up to date
|
||||
-- cloudflared (new container) first lines:
|
||||
2026-10-27T15:41:55Z INF Starting tunnel tunnelID=d7a3c848-d754-46ce-a1c1-ca6bc7a81775
|
||||
2026-10-27T15:41:56Z INF Registered tunnel connection connIndex=0 connection=678ca6cf-b165-46bb-8385-1ab98028776c event=0 ip=198.41.200.53 location=vie05 protocol=quic
|
||||
2026-10-27T15:41:57Z INF Registered tunnel connection connIndex=1 connection=abfcb8da-5e7f-4176-9451-b9b71389ba07 event=0 ip=198.41.192.7 location=bud01 protocol=quic
|
||||
2026-10-27T15:41:57Z INF Registered tunnel connection connIndex=2 connection=873f8fcf-a8eb-464c-9298-7ab0732b44e3 event=0 ip=198.41.192.167 location=bud01 protocol=quic
|
||||
2026-10-27T15:41:58Z INF Registered tunnel connection connIndex=3 connection=a9d19736-d544-48bc-8583-a086e27fed66 event=0 ip=198.41.200.13 location=vie05 protocol=quic
|
||||
-- cloudflared StartedAt: 2026-10-27T15:41:55.714288153Z traefik StartedAt: 2026-10-27T15:41:51.786522796Z
|
||||
@@ -0,0 +1,12 @@
|
||||
setting is independent of the Day-0 artifact manifest below. Effective floor: v0.346.1 — source: DB (hub_settings) ; env fallback would be v0.120.0 Save global floor…
|
||||
DB override: v0.346.1 … Type the version again to confirm (or CLEAR to remove the DB override): Confi
|
||||
rtifact. Agent — none — 0.167.0 0.166.0 0.165.0 0.164.0 0.163.0 0.162.0 0.161.0 0.158.1 Golden — none — 0.344.0 0.331.0 0.329.0 0.318.0 0.313.0 0.312.0 0.311.0 Min age
|
||||
0.165.0 0.164.0 0.163.0 0.162.0 0.161.0 0.158.1 Golden — none — 0.344.0 0.331.0 0.329.0 0.318.0 0.313.0 0.312.0 0.311.0 Min agent The golden's controller CHANGELOG MinAgent: . The hub HOLDS the floor for any box whose agent is below this — blank = u
|
||||
2026/10/27 16:41:19 [INFO] Customer tester-1 controller-version floor override set to "0.346.1" (declared MinAgent "0.158.1")
|
||||
2026/10/27 16:41:19 [INFO] access token "cc-releases-2": POST /customers/tester-1/floor → 303
|
||||
2026/10/27 16:41:19 [INFO] Customer demo-hp controller-version floor override set to "0.346.1" (declared MinAgent "0.158.1")
|
||||
2026/10/27 16:41:19 [INFO] access token "cc-releases-2": POST /customers/demo-hp/floor → 303
|
||||
2026/10/27 16:41:19 [INFO] Customer demo-felhom controller-version floor override set to "0.346.1" (declared MinAgent "0.158.1")
|
||||
2026/10/27 16:41:19 [INFO] access token "cc-releases-2": POST /customers/demo-felhom/floor → 303
|
||||
2026/10/27 16:50:15 [INFO] Global controller-version floor set to "0.346.1" (declared MinAgent "0.158.1")
|
||||
2026/10/27 16:50:15 [INFO] access token "cc-releases-2": POST /configuration/global-floor → 303
|
||||
@@ -0,0 +1,3 @@
|
||||
== global floor 2026-10-27T15:50:15Z (operator's yes at the STOP)
|
||||
HTTP/1.1 303 See Other
|
||||
Location: /configuration?flash=floor_set
|
||||
@@ -0,0 +1,34 @@
|
||||
control NEGATIVE (a stub answering 200 over plain http): convicted, as it must (200 -)
|
||||
== tester-1 (enkicsifelhom.hu): 6 public name(s)
|
||||
OK control POSITIVE http://felhom.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://felhom.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://files.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://files.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://no-such-name-r1033.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://no-such-name-r1033.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://paperless.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://paperless.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://paste.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://paste.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://wiki.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://wiki.enkicsifelhom.hu/r1033-check?q=1
|
||||
== demo-hp (enkisfelhom.hu): 15 public name(s)
|
||||
OK http://arcade.enkisfelhom.hu/r1033-check?q=1 -> 301 https://arcade.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://books.enkisfelhom.hu/r1033-check?q=1 -> 301 https://books.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://docs.enkisfelhom.hu/r1033-check?q=1 -> 301 https://docs.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://felhom.enkisfelhom.hu/r1033-check?q=1 -> 301 https://felhom.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://files.enkisfelhom.hu/r1033-check?q=1 -> 301 https://files.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://gist.enkisfelhom.hu/r1033-check?q=1 -> 301 https://gist.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://ha.enkisfelhom.hu/r1033-check?q=1 -> 301 https://ha.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://no-such-name-r1033.enkisfelhom.hu/r1033-check?q=1 -> 301 https://no-such-name-r1033.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://papir.enkisfelhom.hu/r1033-check?q=1 -> 301 https://papir.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://paste.enkisfelhom.hu/r1033-check?q=1 -> 301 https://paste.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://pdf.enkisfelhom.hu/r1033-check?q=1 -> 301 https://pdf.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://plex.enkisfelhom.hu/r1033-check?q=1 -> 301 https://plex.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://time.enkisfelhom.hu/r1033-check?q=1 -> 301 https://time.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://travel.enkisfelhom.hu/r1033-check?q=1 -> 301 https://travel.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://wiki.enkisfelhom.hu/r1033-check?q=1 -> 301 https://wiki.enkisfelhom.hu/r1033-check?q=1
|
||||
== demo-felhom (demo-felhom.eu): 8 public name(s)
|
||||
OK http://felhom.demo-felhom.eu/r1033-check?q=1 -> 301 https://felhom.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://files.demo-felhom.eu/r1033-check?q=1 -> 301 https://files.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://gist.demo-felhom.eu/r1033-check?q=1 -> 301 https://gist.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://no-such-name-r1033.demo-felhom.eu/r1033-check?q=1 -> 301 https://no-such-name-r1033.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://prowlarr.demo-felhom.eu/r1033-check?q=1 -> 301 https://prowlarr.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://radarr.demo-felhom.eu/r1033-check?q=1 -> 301 https://radarr.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://sonarr.demo-felhom.eu/r1033-check?q=1 -> 301 https://sonarr.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://torrent.demo-felhom.eu/r1033-check?q=1 -> 301 https://torrent.demo-felhom.eu/r1033-check?q=1
|
||||
== every public name redirects http -> https
|
||||
@@ -0,0 +1,9 @@
|
||||
== tester-1 2026-10-27T15:41:19Z
|
||||
HTTP/1.1 303 See Other
|
||||
Location: /customers/tester-1?flash=floor_set
|
||||
== demo-hp 2026-10-27T15:41:19Z
|
||||
HTTP/1.1 303 See Other
|
||||
Location: /customers/demo-hp?flash=floor_set
|
||||
== demo-felhom 2026-10-27T15:41:19Z
|
||||
HTTP/1.1 303 See Other
|
||||
Location: /customers/demo-felhom?flash=floor_set
|
||||
@@ -0,0 +1,21 @@
|
||||
# tester-1 2026-10-27T15:44:39Z
|
||||
images: traefik=traefik:v3.7.16 filebrowser=gtstef/filebrowser:1.5.8-stable cloudflared=cloudflare/cloudflared:2026.10.4
|
||||
filebrowser networks: felhom-filebrowser felhom-files
|
||||
from traefik-public -> filebrowser:80 (by name): wget: bad address 'filebrowser:80' rc=0
|
||||
from traefik-public -> filebrowser by IP 172.21.0.2: wget: download timed out rc=0
|
||||
CONTROL from traefik-public -> traefik:80: HTTP/1.1 301 Moved Permanently rc=0
|
||||
# demo-hp 9201 2026-10-27T15:44:47Z
|
||||
images: traefik=traefik:v3.7.16 filebrowser=gtstef/filebrowser:1.5.8-stable cloudflared=cloudflare/cloudflared:2026.10.4
|
||||
filebrowser networks: felhom-filebrowser felhom-files
|
||||
from traefik-public -> filebrowser:80 (by name): wget: bad address 'filebrowser:80' rc=0
|
||||
from traefik-public -> filebrowser by IP 172.24.0.2: wget: download timed out rc=0
|
||||
CONTROL from traefik-public -> traefik:80: HTTP/1.1 301 Moved Permanently rc=0
|
||||
# demo-felhom 9201 2026-10-27T15:44:55Z
|
||||
images: traefik=traefik:v3.7.16 filebrowser=gtstef/filebrowser:1.5.8-stable cloudflared=cloudflare/cloudflared:2026.10.4
|
||||
filebrowser networks: felhom-filebrowser felhom-files
|
||||
from traefik-public -> filebrowser:80 (by name): wget: bad address 'filebrowser:80' rc=0
|
||||
from traefik-public -> filebrowser by IP 172.19.0.2: wget: download timed out rc=0
|
||||
CONTROL from traefik-public -> traefik:80: HTTP/1.1 301 Moved Permanently rc=0
|
||||
https://files.enkicsifelhom.hu/ -> 200 <title>"FileBrowser Quantum"
|
||||
https://files.enkisfelhom.hu/ -> 200 <title>"FileBrowser Quantum"
|
||||
https://files.demo-felhom.eu/ -> 200 <title>"FileBrowser Quantum"
|
||||
@@ -0,0 +1,4 @@
|
||||
1. dashboard /__files/open -> HTTP/2 302 | to files host: True
|
||||
2. files host /_felhom/sso -> HTTP/2 302 | files cookie set: True
|
||||
3. a listing through traefik with the files cookie -> 200
|
||||
4. the same without any cookie (control) -> 401
|
||||
@@ -0,0 +1,14 @@
|
||||
2026/10/27 15:41:33 [INFO] [selfupdate] Post-update startup: update successful (0.346.0 → 0.346.1)
|
||||
2026/10/27 15:41:33 [INFO] [scheduler] Registered periodic job: selfupdate-check (every 6h0m0s)
|
||||
2026/10/27 15:41:33 [INFO] [infra] traefik config changed (docker-compose.yml, tunnel trust true) — rewriting and recreating traefik (routing pauses a few seconds)
|
||||
2026/10/27 15:41:47 [INFO] [infra] connected felhom-controller to traefik-public
|
||||
2026/10/27 15:41:47 [INFO] [infra] cloudflared compose changed (tunnel network true) — recreating cloudflared (the tunnel reconnects in seconds)
|
||||
2026/10/27 15:41:52 [INFO] [infra] connected felhom-controller to felhom-filebrowser (the FileBrowser default-login check, R-1126)
|
||||
2026/10/27 15:41:52 [INFO] [infra] filebrowser: traefik joined felhom-files — the only route to FileBrowser (R-1281)
|
||||
2026/10/27 15:41:52 [INFO] [infra] filebrowser: default login refused for this run — joined felhom-files, files.<domain> served (R-1126, R-1281)
|
||||
2026/10/27 15:42:05 [INFO] [selfupdate] Current version 0.346.1 is up to date
|
||||
-- cloudflared:
|
||||
2026-10-27T15:41:52Z INF Starting tunnel tunnelID=52d0c214-b833-477c-86d8-f787d9b550dd
|
||||
2026-10-27T15:41:52Z INF Registered tunnel connection connIndex=0 connection=9620f255-82f6-4233-ae47-8c852baa748a event=0 ip=198.41.200.193 location=vie05 protocol=quic
|
||||
2026-10-27T15:41:52Z INF Registered tunnel connection connIndex=1 connection=d6b75d06-cfa8-4a92-b669-3ed2f9a66816 event=0 ip=198.41.192.67 location=bud01 protocol=quic
|
||||
-- cloudflared StartedAt: 2026-10-27T15:41:51.942094496Z traefik StartedAt: 2026-10-27T15:41:47.240479453Z
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
# r1281probe.sh — run INSIDE a guest (pct exec <vmid> -- bash -s < r1281probe.sh). R-1281: an app container on
|
||||
# traefik-public must NOT reach the file manager; the control (same image, same network, same wget) reaches traefik.
|
||||
# The throwaway client is the box's own traefik image (busybox wget), `--rm`, on traefik-public. Prints codes only.
|
||||
img=$(docker inspect -f '{{.Config.Image}}' traefik)
|
||||
fbip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}} {{end}}' filebrowser | awk '{print $1}')
|
||||
echo "images: traefik=$img filebrowser=$(docker inspect -f '{{.Config.Image}}' filebrowser) cloudflared=$(docker inspect -f '{{.Config.Image}}' cloudflared 2>/dev/null || echo none)"
|
||||
echo "filebrowser networks: $(docker inspect -f '{{range $k,$v := .NetworkSettings.Networks}}{{$k}} {{end}}' filebrowser)"
|
||||
t() { docker run --rm --network traefik-public --entrypoint sh "$img" -c "wget -q -T 5 -O /dev/null -S '$1' 2>&1 | head -1 | tr -d '\r' ; echo rc=\$?" 2>&1 | tr '\n' ' '; }
|
||||
echo "from traefik-public -> filebrowser:80 (by name): $(t http://filebrowser:80/)"
|
||||
echo "from traefik-public -> filebrowser by IP $fbip: $(t http://$fbip:80/)"
|
||||
echo "CONTROL from traefik-public -> traefik:80: $(t http://traefik:80/)"
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
# tunnelprobe.sh <url> <seconds> — one GET per second through the PUBLIC path (Cloudflare → the box's tunnel); prints
|
||||
# "HH:MM:SS code". The gap is the run of codes that are not the name's normal answer (530/502/000 = tunnel away).
|
||||
u=$1; n=$2
|
||||
for i in $(seq 1 "$n"); do printf '%s %s\n' "$(date -u +%T)" "$(curl -s -o /dev/null -m 3 -w '%{http_code}' "$u")"; sleep 1; done
|
||||
+1500
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,72 @@
|
||||
== 15:51:19
|
||||
Tester-2 DOWN 0.292.0
|
||||
Tester4 DOWN 0.345.1
|
||||
demo-felhom OK 0.346.1
|
||||
demo-hp OK 0.346.1
|
||||
tester-1 OK 0.346.1
|
||||
https://paste.enkicsifelhom.hu/ 200
|
||||
https://paste.enkisfelhom.hu/ 200
|
||||
https://felhom.demo-felhom.eu/ 302
|
||||
https://files.enkicsifelhom.hu/ 200
|
||||
https://files.enkisfelhom.hu/ 200
|
||||
https://files.demo-felhom.eu/ 200
|
||||
== 15:56:20
|
||||
Tester-2 DOWN 0.292.0
|
||||
Tester4 DOWN 0.345.1
|
||||
demo-felhom OK 0.346.1
|
||||
demo-hp OK 0.346.1
|
||||
tester-1 OK 0.346.1
|
||||
https://paste.enkicsifelhom.hu/ 200
|
||||
https://paste.enkisfelhom.hu/ 200
|
||||
https://felhom.demo-felhom.eu/ 302
|
||||
https://files.enkicsifelhom.hu/ 200
|
||||
https://files.enkisfelhom.hu/ 200
|
||||
https://files.demo-felhom.eu/ 200
|
||||
== 16:01:21
|
||||
Tester-2 DOWN 0.292.0
|
||||
Tester4 DOWN 0.345.1
|
||||
demo-felhom OK 0.346.1
|
||||
demo-hp OK 0.346.1
|
||||
tester-1 OK 0.346.1
|
||||
https://paste.enkicsifelhom.hu/ 200
|
||||
https://paste.enkisfelhom.hu/ 200
|
||||
https://felhom.demo-felhom.eu/ 302
|
||||
https://files.enkicsifelhom.hu/ 200
|
||||
https://files.enkisfelhom.hu/ 200
|
||||
https://files.demo-felhom.eu/ 200
|
||||
== 16:06:23
|
||||
Tester-2 DOWN 0.292.0
|
||||
Tester4 DOWN 0.345.1
|
||||
demo-felhom OK 0.346.1
|
||||
demo-hp OK 0.346.1
|
||||
tester-1 OK 0.346.1
|
||||
https://paste.enkicsifelhom.hu/ 200
|
||||
https://paste.enkisfelhom.hu/ 200
|
||||
https://felhom.demo-felhom.eu/ 302
|
||||
https://files.enkicsifelhom.hu/ 200
|
||||
https://files.enkisfelhom.hu/ 200
|
||||
https://files.demo-felhom.eu/ 200
|
||||
== 16:11:24
|
||||
Tester-2 DOWN 0.292.0
|
||||
Tester4 DOWN 0.345.1
|
||||
demo-felhom OK 0.346.1
|
||||
demo-hp OK 0.346.1
|
||||
tester-1 OK 0.346.1
|
||||
https://paste.enkicsifelhom.hu/ 200
|
||||
https://paste.enkisfelhom.hu/ 200
|
||||
https://felhom.demo-felhom.eu/ 302
|
||||
https://files.enkicsifelhom.hu/ 200
|
||||
https://files.enkisfelhom.hu/ 200
|
||||
https://files.demo-felhom.eu/ 200
|
||||
== 16:16:26
|
||||
Tester-2 DOWN 0.292.0
|
||||
Tester4 DOWN 0.345.1
|
||||
demo-felhom OK 0.346.1
|
||||
demo-hp OK 0.346.1
|
||||
tester-1 OK 0.346.1
|
||||
https://paste.enkicsifelhom.hu/ 200
|
||||
https://paste.enkisfelhom.hu/ 200
|
||||
https://felhom.demo-felhom.eu/ 302
|
||||
https://files.enkicsifelhom.hu/ 200
|
||||
https://files.enkisfelhom.hu/ 200
|
||||
https://files.demo-felhom.eu/ 200
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"app": "homebox",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "inconclusive",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.26.2"
|
||||
},
|
||||
"to": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.27.1"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.26.2"
|
||||
},
|
||||
"installed_images": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.26.2"
|
||||
},
|
||||
"catalog_images": null,
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/sysadminsmedia/homebox:0.26.2"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"homebox ghcr.io/sysadminsmedia/homebox:0.26.2 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"setup_gate_before": {
|
||||
"browser": {
|
||||
"status": "302",
|
||||
"redirect": "https://felhom.enkisfelhom.hu/__gate/start?…"
|
||||
},
|
||||
"script": {
|
||||
"status": "401",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"why": "C1: the fixture could not seed and read back before the update",
|
||||
"log": [
|
||||
"14:51:49 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"14:52:09 [1] deployed, controller state=running, pinned={'homebox': 'ghcr.io/sysadminsmedia/homebox:0.26.2'}",
|
||||
"14:52:09 gate: homebox is gated — passed as the household (cookie set)",
|
||||
"14:52:12 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}",
|
||||
"14:52:13 homebox: create location -> 404 404 page not found\n"
|
||||
]
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
14:51:49 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:52:09 [1] deployed, controller state=running, pinned={'homebox': 'ghcr.io/sysadminsmedia/homebox:0.26.2'}
|
||||
14:52:09 gate: homebox is gated — passed as the household (cookie set)
|
||||
14:52:12 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}
|
||||
14:52:13 homebox: create location -> 404 404 page not found
|
||||
|
||||
14:52:13 [9] verdict inconclusive -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/security-app-updates-2026-10-27/walks/homebox/verdict.json
|
||||
14:52:13 RESULT inconclusive — C1: the fixture could not seed and read back before the update
|
||||
14:52:13 [X] stop -> 200 {'ok': True, 'message': 'Stack homebox stop completed'}
|
||||
14:52:45 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'homebox', 'volumes_removed': ['homebox_homebox_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alk
|
||||
14:52:53 [X] after remove: deployed=False leftovers=''
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"app": "mealie",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "inconclusive",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
|
||||
},
|
||||
"to": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.29.0"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
|
||||
},
|
||||
"installed_images": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
|
||||
},
|
||||
"catalog_images": null,
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/mealie-recipes/mealie:v3.28.0@sha256:8b02290f4d1806f02acac6f25f6d48a3c965612fda1f8e914d5af533276f8688"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"mealie ghcr.io/mealie-recipes/mealie:v3.28.0@sha256:8b02290f4d1806f02acac6f25f6d48a3c965612fda1f8e914d5af533276f8688 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"setup_gate_before": {
|
||||
"browser": {
|
||||
"status": "200",
|
||||
"redirect": null
|
||||
},
|
||||
"script": {
|
||||
"status": "200",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"why": "C1: the fixture could not seed and read back before the update",
|
||||
"log": [
|
||||
"15:17:18 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['ADMIN_PASSWORD']",
|
||||
"15:17:18 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"15:18:29 [1] deployed, controller state=running, pinned={'mealie': 'ghcr.io/mealie-recipes/mealie:v3.28.0'}",
|
||||
"15:18:29 gate: recipes is gated — passed as the household (cookie set)",
|
||||
"15:18:34 [2] setup gate as installed: {'browser': {'status': '200', 'redirect': None}, 'script': {'status': '200', 'redirect': None}}",
|
||||
"15:18:35 mealie: could not authenticate as the first-run admin :: http=401 {\"detail\":\"Unauthorized\"}"
|
||||
]
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
15:17:18 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['ADMIN_PASSWORD']
|
||||
15:17:18 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
15:18:29 [1] deployed, controller state=running, pinned={'mealie': 'ghcr.io/mealie-recipes/mealie:v3.28.0'}
|
||||
15:18:29 gate: recipes is gated — passed as the household (cookie set)
|
||||
15:18:34 [2] setup gate as installed: {'browser': {'status': '200', 'redirect': None}, 'script': {'status': '200', 'redirect': None}}
|
||||
15:18:35 mealie: could not authenticate as the first-run admin :: http=401 {"detail":"Unauthorized"}
|
||||
15:18:35 [9] verdict inconclusive -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/security-app-updates-2026-10-27/walks/mealie/verdict.json
|
||||
15:18:35 RESULT inconclusive — C1: the fixture could not seed and read back before the update
|
||||
15:18:37 [X] stop -> 200 {'ok': True, 'message': 'Stack mealie stop completed'}
|
||||
15:19:09 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'mealie', 'volumes_removed': ['mealie_mealie_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
15:19:17 [X] after remove: deployed=False leftovers=''
|
||||
+222
@@ -0,0 +1,222 @@
|
||||
{
|
||||
"app": "audiobookshelf",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"audiobookshelf": "ghcr.io/advplyr/audiobookshelf:2.37.1"
|
||||
},
|
||||
"to": {
|
||||
"audiobookshelf": "ghcr.io/advplyr/audiobookshelf:2.37.2"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"audiobookshelf": "ghcr.io/advplyr/audiobookshelf:2.37.1"
|
||||
},
|
||||
"installed_images": {
|
||||
"audiobookshelf": "ghcr.io/advplyr/audiobookshelf:2.37.1"
|
||||
},
|
||||
"catalog_images": {
|
||||
"audiobookshelf": "ghcr.io/advplyr/audiobookshelf:2.37.1"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/advplyr/audiobookshelf:2.37.1@sha256:581d68b2a6fc7ebf58d81c878a9f387cbbc0d88ac9d37b298b9cee10168af85b"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"audiobookshelf ghcr.io/advplyr/audiobookshelf:2.37.1@sha256:581d68b2a6fc7ebf58d81c878a9f387cbbc0d88ac9d37b298b9cee10168af85b 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": "36f907d89474",
|
||||
"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-27T14:20:08Z",
|
||||
"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": 3.1,
|
||||
"phase": "safety-dump",
|
||||
"label": "Adatbázis pillanatkép…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 4.1,
|
||||
"phase": "pulling",
|
||||
"label": "Új verzió letöltése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 16.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": "verifying",
|
||||
"label": "Működés ellenőrzése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 26.7,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 26.7,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"audiobookshelf": "ghcr.io/advplyr/audiobookshelf:2.37.2"
|
||||
},
|
||||
"installed_images": {
|
||||
"audiobookshelf": "ghcr.io/advplyr/audiobookshelf:2.37.2"
|
||||
},
|
||||
"catalog_images": {
|
||||
"audiobookshelf": "ghcr.io/advplyr/audiobookshelf:2.37.2"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/advplyr/audiobookshelf:2.37.2"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"audiobookshelf ghcr.io/advplyr/audiobookshelf:2.37.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": {
|
||||
"audiobookshelf": "sha256:b897c33f05972fb1bf484f7487bc878fa91ec8691335c1db6e2929c3a7658efa"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"audiobookshelf": "ghcr.io/advplyr/audiobookshelf:2.37.2"
|
||||
},
|
||||
"installed": {
|
||||
"audiobookshelf": "ghcr.io/advplyr/audiobookshelf:2.37.2"
|
||||
},
|
||||
"catalog": {
|
||||
"audiobookshelf": "ghcr.io/advplyr/audiobookshelf:2.37.2"
|
||||
},
|
||||
"live_compose": [
|
||||
"ghcr.io/advplyr/audiobookshelf:2.37.2"
|
||||
]
|
||||
},
|
||||
"seed_read_after": true,
|
||||
"setup_gate_after": {
|
||||
"browser": {
|
||||
"status": "404",
|
||||
"redirect": null
|
||||
},
|
||||
"script": {
|
||||
"status": "404",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"soak_s": 600,
|
||||
"interval_s": 10,
|
||||
"samples": 60,
|
||||
"containers": {
|
||||
"audiobookshelf": {
|
||||
"samples": 60,
|
||||
"anon_peak_bytes": 51740672,
|
||||
"limit_bytes": 536870912,
|
||||
"anon_peak_pct": 9.6,
|
||||
"cgroup_peak_pct": 11.7,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-204ecffd61b9b118d4c783d86b7e00b8a1da656d9463b9bacebaaad58a13dc9a.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 9.6
|
||||
},
|
||||
"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:19:19 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['HDD_PATH']",
|
||||
"15:19:19 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"15:19:49 [1] deployed, controller state=running, pinned={'audiobookshelf': 'ghcr.io/advplyr/audiobookshelf:2.37.1'}",
|
||||
"15:19:49 gate: audiobooks is gated — passed as the household (cookie set)",
|
||||
"15:19:53 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}",
|
||||
"15:19:53 audiobookshelf: /init http=200",
|
||||
"15:19:53 audiobookshelf: login as the seeded root http=200 ok=True",
|
||||
"15:19:55 [5] drill commit 36f907d89474: audiobookshelf ghcr.io/advplyr/audiobookshelf:2.37.1 -> ghcr.io/advplyr/audiobookshelf:2.37.2 (push rc=0)",
|
||||
"15:20:04 [5] the box's drill mirror now at 36f907d89",
|
||||
"15:20:09 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}",
|
||||
"15:20:09 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
|
||||
"15:20:12 + 3.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None",
|
||||
"15:20:13 + 4.1s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"15:20:25 + 16.4s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"15:20:30 + 21.5s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"15:20:35 + 26.7s phase=done label=Frissítve err=None hold=None",
|
||||
"15:20:54 audiobookshelf: login as the seeded root http=200 ok=True",
|
||||
"15:20:54 [7] memory soak 600 s …",
|
||||
"15:31:00 [7] soak: peak 9.6% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
15:31:43 [5] drill commit d8006e9e6de8: audiobookshelf ghcr.io/advplyr/audiobookshelf:2.37.2 -> ghcr.io/advplyr/audiobookshelf:2.37.1 (push rc=0)
|
||||
15:31:51 [5] the box's drill mirror now at d8006e9e6
|
||||
d8006e9e6de8
|
||||
@@ -0,0 +1,24 @@
|
||||
15:19:19 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['HDD_PATH']
|
||||
15:19:19 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
15:19:49 [1] deployed, controller state=running, pinned={'audiobookshelf': 'ghcr.io/advplyr/audiobookshelf:2.37.1'}
|
||||
15:19:49 gate: audiobooks is gated — passed as the household (cookie set)
|
||||
15:19:53 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}
|
||||
15:19:53 audiobookshelf: /init http=200
|
||||
15:19:53 audiobookshelf: login as the seeded root http=200 ok=True
|
||||
15:19:55 [5] drill commit 36f907d89474: audiobookshelf ghcr.io/advplyr/audiobookshelf:2.37.1 -> ghcr.io/advplyr/audiobookshelf:2.37.2 (push rc=0)
|
||||
15:20:04 [5] the box's drill mirror now at 36f907d89
|
||||
15:20:09 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
15:20:09 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
15:20:12 + 3.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
15:20:13 + 4.1s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
15:20:25 + 16.4s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
15:20:30 + 21.5s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
15:20:35 + 26.7s phase=done label=Frissítve err=None hold=None
|
||||
15:20:54 audiobookshelf: login as the seeded root http=200 ok=True
|
||||
15:20:54 [7] memory soak 600 s …
|
||||
15:31:00 [7] soak: peak 9.6% of the limit (anon), kills 0, restarts 0
|
||||
15:31:00 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/security-app-updates-2026-10-27/walks/audiobookshelf/verdict.json
|
||||
15:31:00 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:31:00 [X] stop -> 200 {'ok': True, 'message': 'Stack audiobookshelf stop completed'}
|
||||
15:31:33 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'audiobookshelf', 'volumes_removed': ['audiobookshelf_audiobookshelf_config', 'audiobookshelf_audiobookshelf_metadata'], 'hdd_p
|
||||
15:31:41 [X] after remove: deployed=False leftovers=''
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
STEP audiobookshelf: the superseded step {'audiobookshelf': 'ghcr.io/advplyr/audiobookshelf:2.37.1'} keeps its definition at steps/357e2920c1d33ed0.yml
|
||||
STEP audiobookshelf: … and its .felhom.yml at steps/357e2920c1d33ed0.felhom.yml
|
||||
WROTE audiobookshelf: {'audiobookshelf': 'ghcr.io/advplyr/audiobookshelf:2.37.1'} -> {'audiobookshelf': 'ghcr.io/advplyr/audiobookshelf:2.37.2'} peak 9.6% marks {'files_may_change': False, 'needs_person': None, 'memory_tight': False}
|
||||
+209
@@ -0,0 +1,209 @@
|
||||
{
|
||||
"app": "bentopdf",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"bentopdf": "ghcr.io/alam00000/bentopdf:v2.8.6"
|
||||
},
|
||||
"to": {
|
||||
"bentopdf": "ghcr.io/alam00000/bentopdf:v2.8.10"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"bentopdf": "ghcr.io/alam00000/bentopdf:v2.8.6"
|
||||
},
|
||||
"installed_images": {
|
||||
"bentopdf": "ghcr.io/alam00000/bentopdf:v2.8.6"
|
||||
},
|
||||
"catalog_images": {
|
||||
"bentopdf": "ghcr.io/alam00000/bentopdf:v2.8.6"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/alam00000/bentopdf:v2.8.6"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"bentopdf ghcr.io/alam00000/bentopdf:v2.8.6 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"setup_gate_before": {
|
||||
"browser": {
|
||||
"status": "404",
|
||||
"redirect": null
|
||||
},
|
||||
"script": {
|
||||
"status": "404",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"seed": "none",
|
||||
"seed_why": "no box fixture for this app",
|
||||
"drill_commit": "6d42520c7a8c",
|
||||
"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-27T14:22:11Z",
|
||||
"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": 1.1,
|
||||
"phase": "pulling",
|
||||
"label": "Új verzió letöltése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 14.4,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok másolása a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 18.5,
|
||||
"phase": "verifying",
|
||||
"label": "Működés ellenőrzése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 23.6,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 23.6,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"bentopdf": "ghcr.io/alam00000/bentopdf:v2.8.10"
|
||||
},
|
||||
"installed_images": {
|
||||
"bentopdf": "ghcr.io/alam00000/bentopdf:v2.8.10"
|
||||
},
|
||||
"catalog_images": {
|
||||
"bentopdf": "ghcr.io/alam00000/bentopdf:v2.8.10"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/alam00000/bentopdf:v2.8.10"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"bentopdf ghcr.io/alam00000/bentopdf:v2.8.10 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": {
|
||||
"bentopdf": "sha256:039239902a01e58a5a0f52e29039fafa18ffc2a481bb8acd807599f1c6dde7ef"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"bentopdf": "ghcr.io/alam00000/bentopdf:v2.8.10"
|
||||
},
|
||||
"installed": {
|
||||
"bentopdf": "ghcr.io/alam00000/bentopdf:v2.8.10"
|
||||
},
|
||||
"catalog": {
|
||||
"bentopdf": "ghcr.io/alam00000/bentopdf:v2.8.10"
|
||||
},
|
||||
"live_compose": [
|
||||
"ghcr.io/alam00000/bentopdf:v2.8.10"
|
||||
]
|
||||
},
|
||||
"setup_gate_after": {
|
||||
"browser": {
|
||||
"status": "404",
|
||||
"redirect": null
|
||||
},
|
||||
"script": {
|
||||
"status": "404",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"soak_s": 600,
|
||||
"interval_s": 10,
|
||||
"samples": 60,
|
||||
"containers": {
|
||||
"bentopdf": {
|
||||
"samples": 60,
|
||||
"anon_peak_bytes": 2605056,
|
||||
"limit_bytes": 402653184,
|
||||
"anon_peak_pct": 0.6,
|
||||
"cgroup_peak_pct": 2.5,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-d58f1be38bb12778ce92b3b932ad4c67cfec769459dbdc1941ea47b41cf5c3e9.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 0.6
|
||||
},
|
||||
"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",
|
||||
"log": [
|
||||
"15:21:19 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"15:21:54 [1] deployed, controller state=running, pinned={'bentopdf': 'ghcr.io/alam00000/bentopdf:v2.8.6'}",
|
||||
"15:21:57 [2] setup gate as installed: {'browser': {'status': '404', 'redirect': None}, 'script': {'status': '404', 'redirect': None}}",
|
||||
"15:21:57 [3] seed: none — no box fixture for this app",
|
||||
"15:21:58 [5] drill commit 6d42520c7a8c: bentopdf ghcr.io/alam00000/bentopdf:v2.8.6 -> ghcr.io/alam00000/bentopdf:v2.8.10 (push rc=0)",
|
||||
"15:22:07 [5] the box's drill mirror now at 6d42520c7",
|
||||
"15:22:12 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}",
|
||||
"15:22:12 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
|
||||
"15:22:13 + 1.1s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"15:22:26 + 14.4s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"15:22:30 + 18.5s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"15:22:35 + 23.6s phase=done label=Frissítve err=None hold=None",
|
||||
"15:22:53 [7] memory soak 600 s …",
|
||||
"15:32:59 [7] soak: peak 0.6% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
15:33:42 [5] drill commit 0e02cd781bcf: bentopdf ghcr.io/alam00000/bentopdf:v2.8.10 -> ghcr.io/alam00000/bentopdf:v2.8.6 (push rc=0)
|
||||
15:33:50 [5] the box's drill mirror now at 0e02cd781
|
||||
0e02cd781bcf
|
||||
@@ -0,0 +1,19 @@
|
||||
15:21:19 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
15:21:54 [1] deployed, controller state=running, pinned={'bentopdf': 'ghcr.io/alam00000/bentopdf:v2.8.6'}
|
||||
15:21:57 [2] setup gate as installed: {'browser': {'status': '404', 'redirect': None}, 'script': {'status': '404', 'redirect': None}}
|
||||
15:21:57 [3] seed: none — no box fixture for this app
|
||||
15:21:58 [5] drill commit 6d42520c7a8c: bentopdf ghcr.io/alam00000/bentopdf:v2.8.6 -> ghcr.io/alam00000/bentopdf:v2.8.10 (push rc=0)
|
||||
15:22:07 [5] the box's drill mirror now at 6d42520c7
|
||||
15:22:12 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
15:22:12 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
15:22:13 + 1.1s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
15:22:26 + 14.4s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
15:22:30 + 18.5s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
15:22:35 + 23.6s phase=done label=Frissítve err=None hold=None
|
||||
15:22:53 [7] memory soak 600 s …
|
||||
15:32:59 [7] soak: peak 0.6% of the limit (anon), kills 0, restarts 0
|
||||
15:32:59 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/security-app-updates-2026-10-27/walks/bentopdf/verdict.json
|
||||
15:32:59 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
|
||||
15:33:00 [X] stop -> 200 {'ok': True, 'message': 'Stack bentopdf stop completed'}
|
||||
15:33:31 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'bentopdf', 'volumes_removed': [], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazás nem tárolt sa
|
||||
15:33:40 [X] after remove: deployed=False leftovers=''
|
||||
@@ -0,0 +1 @@
|
||||
WROTE bentopdf: {'bentopdf': 'ghcr.io/alam00000/bentopdf:v2.8.6'} -> {'bentopdf': 'ghcr.io/alam00000/bentopdf:v2.8.10'} peak 0.6% marks {'files_may_change': False, 'needs_person': None, 'memory_tight': False}
|
||||
+294
@@ -0,0 +1,294 @@
|
||||
{
|
||||
"app": "docmost",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"docmost": "docmost/docmost:0.96.0",
|
||||
"docmost-postgres": "postgres:18-alpine",
|
||||
"docmost-redis": "redis:7-alpine"
|
||||
},
|
||||
"to": {
|
||||
"docmost": "docmost/docmost:0.97.0",
|
||||
"docmost-postgres": "postgres:18-alpine",
|
||||
"docmost-redis": "redis:7-alpine"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"docmost": "docmost/docmost:0.96.0",
|
||||
"docmost-postgres": "postgres:18-alpine",
|
||||
"docmost-redis": "redis:7-alpine"
|
||||
},
|
||||
"installed_images": {
|
||||
"docmost": "docmost/docmost:0.96.0",
|
||||
"docmost-postgres": "postgres:18-alpine",
|
||||
"docmost-redis": "redis:7-alpine"
|
||||
},
|
||||
"catalog_images": null,
|
||||
"live_compose_image_lines": [
|
||||
"image: docmost/docmost:0.96.0@sha256:b56947fcfd08aab8fae12a377e1792784786adbf8b96e4281f14ef4fc072685a",
|
||||
"image: postgres:18-alpine@sha256:77f585114c32fbca283dc835b0596f4e52b51b4c6662d7810b2f4084f60a1873",
|
||||
"image: redis:7-alpine@sha256:858f009f9709ce576febc734aa78b8f6d624b82571f9ddb6bda4377c833b3499"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"docmost docmost/docmost:0.96.0@sha256:b56947fcfd08aab8fae12a377e1792784786adbf8b96e4281f14ef4fc072685a running=true restarts=0",
|
||||
"docmost-postgres postgres:18-alpine@sha256:77f585114c32fbca283dc835b0596f4e52b51b4c6662d7810b2f4084f60a1873 running=true restarts=0",
|
||||
"docmost-redis redis:7-alpine@sha256:858f009f9709ce576febc734aa78b8f6d624b82571f9ddb6bda4377c833b3499 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": "1105b2da8b4c",
|
||||
"sync_waited_s": 26.9,
|
||||
"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-27T14:00:23Z",
|
||||
"update": {
|
||||
"accepted": true,
|
||||
"http": "202",
|
||||
"phases": [
|
||||
{
|
||||
"t": 0.0,
|
||||
"phase": "checking",
|
||||
"label": "Ellenőrzés…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 1.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": 24.6,
|
||||
"phase": "safety-dump",
|
||||
"label": "Adatbázis pillanatkép…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 26.6,
|
||||
"phase": "pulling",
|
||||
"label": "Új verzió letöltése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 127.1,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok másolása a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 131.2,
|
||||
"phase": "starting",
|
||||
"label": "Indítás az új verzióval…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 142.5,
|
||||
"phase": "verifying",
|
||||
"label": "Működés ellenőrzése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 163.0,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 163.0,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"docmost": "docmost/docmost:0.97.0",
|
||||
"docmost-postgres": "postgres:18-alpine",
|
||||
"docmost-redis": "redis:7-alpine"
|
||||
},
|
||||
"installed_images": {
|
||||
"docmost": "docmost/docmost:0.97.0",
|
||||
"docmost-postgres": "postgres:18-alpine",
|
||||
"docmost-redis": "redis:7-alpine"
|
||||
},
|
||||
"catalog_images": {
|
||||
"docmost": "docmost/docmost:0.97.0",
|
||||
"docmost-postgres": "postgres:18-alpine",
|
||||
"docmost-redis": "redis:7-alpine"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: docmost/docmost:0.97.0",
|
||||
"image: postgres:18-alpine",
|
||||
"image: redis:7-alpine"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"docmost docmost/docmost:0.97.0 running=true restarts=0",
|
||||
"docmost-redis redis:7-alpine running=true restarts=0",
|
||||
"docmost-postgres postgres:18-alpine 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": {
|
||||
"docmost": "sha256:40c454d74ffdd9ecb15833e4d96f3a630d59aad862a1869381ae6ee086454419",
|
||||
"docmost-postgres": "sha256:10a5c69a83035ab5239f5620d708520e8b28f5aa1f2b20143e6024532edadfb5",
|
||||
"docmost-redis": "sha256:6ba19c50b56777f5c11c58eff8ddb69d0d5f27ba131cffb63f180ccfd43c66af"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"docmost": "docmost/docmost:0.97.0",
|
||||
"docmost-postgres": "postgres:18-alpine",
|
||||
"docmost-redis": "redis:7-alpine"
|
||||
},
|
||||
"installed": {
|
||||
"docmost": "docmost/docmost:0.97.0",
|
||||
"docmost-postgres": "postgres:18-alpine",
|
||||
"docmost-redis": "redis:7-alpine"
|
||||
},
|
||||
"catalog": {
|
||||
"docmost": "docmost/docmost:0.97.0",
|
||||
"docmost-postgres": "postgres:18-alpine",
|
||||
"docmost-redis": "redis:7-alpine"
|
||||
},
|
||||
"live_compose": [
|
||||
"docmost/docmost:0.97.0",
|
||||
"postgres:18-alpine",
|
||||
"redis:7-alpine"
|
||||
]
|
||||
},
|
||||
"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": 174,
|
||||
"containers": {
|
||||
"docmost": {
|
||||
"samples": 58,
|
||||
"anon_peak_bytes": 435372032,
|
||||
"limit_bytes": 805306368,
|
||||
"anon_peak_pct": 54.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-31babd6a486c29cf55bcc4c17816b835a91ad9a1c6d261d594e4c15a1a38680b.scope"
|
||||
},
|
||||
"docmost-redis": {
|
||||
"samples": 58,
|
||||
"anon_peak_bytes": 4182016,
|
||||
"limit_bytes": 134217728,
|
||||
"anon_peak_pct": 3.1,
|
||||
"cgroup_peak_pct": 16.9,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-08f976fb643fe7db20e4a4c91934e68946492af8a0d141fa61468ccb7eb14652.scope"
|
||||
},
|
||||
"docmost-postgres": {
|
||||
"samples": 58,
|
||||
"anon_peak_bytes": 12107776,
|
||||
"limit_bytes": 268435456,
|
||||
"anon_peak_pct": 4.5,
|
||||
"cgroup_peak_pct": 23.5,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-23db659fc0d91e0a1dbbd8f356cb0fa649c382eaf518b54172dcbb1385379a5e.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 54.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": [
|
||||
"14:57:50 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"14:59:41 [1] deployed, controller state=running, pinned={'docmost': 'docmost/docmost:0.96.0', 'docmost-postgres': 'postgres:18-alpine', 'docmost-redis': 'redis:7-alpine'}",
|
||||
"14:59:41 gate: docs is gated — passed as the household (cookie set)",
|
||||
"14:59:44 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}",
|
||||
"14:59:45 docmost: /api/auth/setup http=200 rc=0",
|
||||
"14:59:45 docmost: login as the seeded user http=200 ok=True",
|
||||
"14:59:46 [5] drill commit 1105b2da8b4c: docmost docmost/docmost:0.96.0 -> docmost/docmost:0.97.0 (push rc=0)",
|
||||
"14:59:56 [5] the box's drill mirror now at 1105b2da8",
|
||||
"15:00:23 [sync] the badge needed 26.9s and 3 sync+rescan rounds to catch up to docmost/docmost:0.97.0 — R-607's window, measured",
|
||||
"15:00:23 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}",
|
||||
"15:00:23 + 0.0s phase=checking label=Ellenőrzés… err=None hold=None",
|
||||
"15:00:24 + 1.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
|
||||
"15:00:47 + 24.6s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None",
|
||||
"15:00:50 + 26.6s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"15:02:30 + 127.1s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"15:02:34 + 131.2s phase=starting label=Indítás az új verzióval… err=None hold=None",
|
||||
"15:02:45 + 142.5s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"15:03:06 + 163.0s phase=done label=Frissítve err=None hold=None",
|
||||
"15:03:25 docmost: login as the seeded user http=200 ok=True",
|
||||
"15:03:25 [7] memory soak 600 s …",
|
||||
"15:13:34 [7] soak: peak 54.1% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
15:14:22 [5] drill commit fe89552ebf0b: docmost docmost/docmost:0.97.0 -> docmost/docmost:0.96.0 (push rc=0)
|
||||
15:14:30 [5] the box's drill mirror now at fe89552eb
|
||||
fe89552ebf0b
|
||||
@@ -0,0 +1,26 @@
|
||||
14:57:50 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:59:41 [1] deployed, controller state=running, pinned={'docmost': 'docmost/docmost:0.96.0', 'docmost-postgres': 'postgres:18-alpine', 'docmost-redis': 'redis:7-alpine'}
|
||||
14:59:41 gate: docs is gated — passed as the household (cookie set)
|
||||
14:59:44 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}
|
||||
14:59:45 docmost: /api/auth/setup http=200 rc=0
|
||||
14:59:45 docmost: login as the seeded user http=200 ok=True
|
||||
14:59:46 [5] drill commit 1105b2da8b4c: docmost docmost/docmost:0.96.0 -> docmost/docmost:0.97.0 (push rc=0)
|
||||
14:59:56 [5] the box's drill mirror now at 1105b2da8
|
||||
15:00:23 [sync] the badge needed 26.9s and 3 sync+rescan rounds to catch up to docmost/docmost:0.97.0 — R-607's window, measured
|
||||
15:00:23 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
15:00:23 + 0.0s phase=checking label=Ellenőrzés… err=None hold=None
|
||||
15:00:24 + 1.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
15:00:47 + 24.6s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
15:00:50 + 26.6s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
15:02:30 + 127.1s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
15:02:34 + 131.2s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||||
15:02:45 + 142.5s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
15:03:06 + 163.0s phase=done label=Frissítve err=None hold=None
|
||||
15:03:25 docmost: login as the seeded user http=200 ok=True
|
||||
15:03:25 [7] memory soak 600 s …
|
||||
15:13:34 [7] soak: peak 54.1% of the limit (anon), kills 0, restarts 0
|
||||
15:13:34 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/security-app-updates-2026-10-27/walks/docmost/verdict.json
|
||||
15:13:34 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:13:36 [X] stop -> 200 {'ok': True, 'message': 'Stack docmost stop completed'}
|
||||
15:14:08 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'docmost', 'volumes_removed': ['docmost_docmost_postgres_data', 'docmost_docmost_redis_data', 'docmost_docmost_storage'], 'hdd_
|
||||
15:14:16 [X] after remove: deployed=False leftovers=''
|
||||
@@ -0,0 +1,3 @@
|
||||
STEP docmost: the superseded step {'docmost': 'docmost/docmost:0.96.0', 'docmost-postgres': 'postgres:18-alpine', 'docmost-redis': 'redis:7-alpine'} keeps its definition at steps/01ae17194c827ab5.yml
|
||||
STEP docmost: … and its .felhom.yml at steps/01ae17194c827ab5.felhom.yml
|
||||
WROTE docmost: {'docmost': 'docmost/docmost:0.96.0', 'docmost-postgres': 'postgres:18-alpine', 'docmost-redis': 'redis:7-alpine'} -> {'docmost': 'docmost/docmost:0.97.0', 'docmost-postgres': 'postgres:18-alpine', 'docmost-redis': 'redis:7-alpine'} peak 54.1% marks {'files_may_change': False, 'needs_person': None, 'memory_tight': False}
|
||||
+237
@@ -0,0 +1,237 @@
|
||||
{
|
||||
"app": "grafana",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"grafana": "grafana/grafana:13.2.3"
|
||||
},
|
||||
"to": {
|
||||
"grafana": "grafana/grafana:13.2.4"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"grafana": "grafana/grafana:13.2.3"
|
||||
},
|
||||
"installed_images": {
|
||||
"grafana": "grafana/grafana:13.2.3"
|
||||
},
|
||||
"catalog_images": null,
|
||||
"live_compose_image_lines": [
|
||||
"image: grafana/grafana:13.2.3@sha256:b28bae15e219c998fb0e0424ed724930cc61b1f61fb404d47c862f9a23f9e572"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"grafana grafana/grafana:13.2.3@sha256:b28bae15e219c998fb0e0424ed724930cc61b1f61fb404d47c862f9a23f9e572 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"setup_gate_before": {
|
||||
"browser": {
|
||||
"status": "302",
|
||||
"redirect": "/login?…"
|
||||
},
|
||||
"script": {
|
||||
"status": "302",
|
||||
"redirect": "/login?…"
|
||||
}
|
||||
},
|
||||
"seed": "read_back",
|
||||
"drill_commit": "b8137ea1370d",
|
||||
"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-27T14:01:18Z",
|
||||
"update": {
|
||||
"accepted": true,
|
||||
"http": "202",
|
||||
"phases": [
|
||||
{
|
||||
"t": 0.0,
|
||||
"phase": "checking",
|
||||
"label": "Ellenőrzés…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 2.1,
|
||||
"phase": "backing-up",
|
||||
"label": "Biztonsági mentés készül a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 26.7,
|
||||
"phase": "safety-dump",
|
||||
"label": "Adatbázis pillanatkép…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 30.8,
|
||||
"phase": "pulling",
|
||||
"label": "Új verzió letöltése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 55.3,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok másolása a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 71.7,
|
||||
"phase": "starting",
|
||||
"label": "Indítás az új verzióval…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 72.8,
|
||||
"phase": "verifying",
|
||||
"label": "Működés ellenőrzése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 77.9,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 77.9,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"grafana": "grafana/grafana:13.2.4"
|
||||
},
|
||||
"installed_images": {
|
||||
"grafana": "grafana/grafana:13.2.4"
|
||||
},
|
||||
"catalog_images": {
|
||||
"grafana": "grafana/grafana:13.2.4"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: grafana/grafana:13.2.4"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"grafana grafana/grafana:13.2.4 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": {
|
||||
"grafana": "sha256:dbbc38ea21103cefb50396340cd88afec779c7e070b0a7bf5a75b4ce46651d3f"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"grafana": "grafana/grafana:13.2.4"
|
||||
},
|
||||
"installed": {
|
||||
"grafana": "grafana/grafana:13.2.4"
|
||||
},
|
||||
"catalog": {
|
||||
"grafana": "grafana/grafana:13.2.4"
|
||||
},
|
||||
"live_compose": [
|
||||
"grafana/grafana:13.2.4"
|
||||
]
|
||||
},
|
||||
"seed_read_after": true,
|
||||
"setup_gate_after": {
|
||||
"browser": {
|
||||
"status": "302",
|
||||
"redirect": "/login?…"
|
||||
},
|
||||
"script": {
|
||||
"status": "302",
|
||||
"redirect": "/login?…"
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"soak_s": 600,
|
||||
"interval_s": 10,
|
||||
"samples": 60,
|
||||
"containers": {
|
||||
"grafana": {
|
||||
"samples": 60,
|
||||
"anon_peak_bytes": 243650560,
|
||||
"limit_bytes": 805306368,
|
||||
"anon_peak_pct": 30.3,
|
||||
"cgroup_peak_pct": 97.5,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-743819121be0a9189ca1c75cdc1c7ebb5d01df10cf1713ae19cab11edc7cfc4b.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 30.3
|
||||
},
|
||||
"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:59:48 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['GF_SECURITY_ADMIN_PASSWORD']",
|
||||
"14:59:49 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"15:00:59 [1] deployed, controller state=running, pinned={'grafana': 'grafana/grafana:13.2.3'}",
|
||||
"15:01:03 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': '/login?…'}, 'script': {'status': '302', 'redirect': '/login?…'}}",
|
||||
"15:01:03 grafana: create folder http=200",
|
||||
"15:01:03 grafana: readback of the seeded folder http=200 ok=True",
|
||||
"15:01:04 [5] drill commit b8137ea1370d: grafana grafana/grafana:13.2.3 -> grafana/grafana:13.2.4 (push rc=0)",
|
||||
"15:01:14 [5] the box's drill mirror now at b8137ea13",
|
||||
"15:01:19 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}",
|
||||
"15:01:19 + 0.0s phase=checking label=Ellenőrzés… err=None hold=None",
|
||||
"15:01:21 + 2.1s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
|
||||
"15:01:45 + 26.7s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None",
|
||||
"15:01:49 + 30.8s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"15:02:14 + 55.3s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"15:02:30 + 71.7s phase=starting label=Indítás az új verzióval… err=None hold=None",
|
||||
"15:02:31 + 72.8s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"15:02:36 + 77.9s phase=done label=Frissítve err=None hold=None",
|
||||
"15:02:55 grafana: readback of the seeded folder http=200 ok=True",
|
||||
"15:02:55 [7] memory soak 600 s …",
|
||||
"15:13:01 [7] soak: peak 30.3% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
15:13:45 [5] drill commit fd2dff6dc40e: grafana grafana/grafana:13.2.4 -> grafana/grafana:13.2.3 (push rc=0)
|
||||
15:13:54 [5] the box's drill mirror now at fd2dff6dc
|
||||
fd2dff6dc40e
|
||||
@@ -0,0 +1,25 @@
|
||||
14:59:48 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['GF_SECURITY_ADMIN_PASSWORD']
|
||||
14:59:49 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
15:00:59 [1] deployed, controller state=running, pinned={'grafana': 'grafana/grafana:13.2.3'}
|
||||
15:01:03 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': '/login?…'}, 'script': {'status': '302', 'redirect': '/login?…'}}
|
||||
15:01:03 grafana: create folder http=200
|
||||
15:01:03 grafana: readback of the seeded folder http=200 ok=True
|
||||
15:01:04 [5] drill commit b8137ea1370d: grafana grafana/grafana:13.2.3 -> grafana/grafana:13.2.4 (push rc=0)
|
||||
15:01:14 [5] the box's drill mirror now at b8137ea13
|
||||
15:01:19 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
15:01:19 + 0.0s phase=checking label=Ellenőrzés… err=None hold=None
|
||||
15:01:21 + 2.1s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
15:01:45 + 26.7s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
15:01:49 + 30.8s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
15:02:14 + 55.3s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
15:02:30 + 71.7s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||||
15:02:31 + 72.8s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
15:02:36 + 77.9s phase=done label=Frissítve err=None hold=None
|
||||
15:02:55 grafana: readback of the seeded folder http=200 ok=True
|
||||
15:02:55 [7] memory soak 600 s …
|
||||
15:13:01 [7] soak: peak 30.3% of the limit (anon), kills 0, restarts 0
|
||||
15:13:01 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/security-app-updates-2026-10-27/walks/grafana/verdict.json
|
||||
15:13:01 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:13:02 [X] stop -> 200 {'ok': True, 'message': 'Stack grafana stop completed'}
|
||||
15:13:34 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'grafana', 'volumes_removed': ['grafana_grafana_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alk
|
||||
15:13:42 [X] after remove: deployed=False leftovers=''
|
||||
@@ -0,0 +1,3 @@
|
||||
STEP grafana: the superseded step {'grafana': 'grafana/grafana:13.2.3'} keeps its definition at steps/63fab8627e9b70ed.yml
|
||||
STEP grafana: … and its .felhom.yml at steps/63fab8627e9b70ed.felhom.yml
|
||||
WROTE grafana: {'grafana': 'grafana/grafana:13.2.3'} -> {'grafana': 'grafana/grafana:13.2.4'} peak 30.3% marks {'files_may_change': False, 'needs_person': None, 'memory_tight': False}
|
||||
+221
@@ -0,0 +1,221 @@
|
||||
{
|
||||
"app": "homebox",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.26.2"
|
||||
},
|
||||
"to": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.27.1"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.26.2"
|
||||
},
|
||||
"installed_images": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.26.2"
|
||||
},
|
||||
"catalog_images": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.26.2"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/sysadminsmedia/homebox:0.26.2"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"homebox ghcr.io/sysadminsmedia/homebox:0.26.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": "47435b2461e9",
|
||||
"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-27T14:45:55Z",
|
||||
"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": 12.3,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok másolása a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 13.3,
|
||||
"phase": "verifying",
|
||||
"label": "Működés ellenőrzése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 18.4,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 18.5,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.27.1"
|
||||
},
|
||||
"installed_images": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.27.1"
|
||||
},
|
||||
"catalog_images": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.27.1"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/sysadminsmedia/homebox:0.27.1"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"homebox ghcr.io/sysadminsmedia/homebox:0.27.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": {
|
||||
"homebox": "sha256:9d0b64776c694f018c0ca06faf52105a33ca376024f46bb58e6ab0e2b728bb61"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.27.1"
|
||||
},
|
||||
"installed": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.27.1"
|
||||
},
|
||||
"catalog": {
|
||||
"homebox": "ghcr.io/sysadminsmedia/homebox:0.27.1"
|
||||
},
|
||||
"live_compose": [
|
||||
"ghcr.io/sysadminsmedia/homebox:0.27.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": {
|
||||
"homebox": {
|
||||
"samples": 60,
|
||||
"anon_peak_bytes": 85250048,
|
||||
"limit_bytes": 268435456,
|
||||
"anon_peak_pct": 31.8,
|
||||
"cgroup_peak_pct": 34.8,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-fd6a3af6858e947718d8cee156dd49a48db3dcafa3b57130b6daa8e969edd96f.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 31.8
|
||||
},
|
||||
"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:45:21 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"15:45:36 [1] deployed, controller state=running, pinned={'homebox': 'ghcr.io/sysadminsmedia/homebox:0.26.2'}",
|
||||
"15:45:36 gate: homebox is gated — passed as the household (cookie set)",
|
||||
"15:45:40 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}",
|
||||
"15:45:40 homebox: seeded location drillloc79c848d6 through /api/v1/entities",
|
||||
"15:45:41 homebox: readback found=True (http 200, control passed)",
|
||||
"15:45:42 [5] drill commit 47435b2461e9: homebox ghcr.io/sysadminsmedia/homebox:0.26.2 -> ghcr.io/sysadminsmedia/homebox:0.27.1 (push rc=0)",
|
||||
"15:45:50 [5] the box's drill mirror now at 47435b246",
|
||||
"15:45:55 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}",
|
||||
"15:45:55 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
|
||||
"15:45:57 + 2.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None",
|
||||
"15:45:58 + 3.1s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"15:46:07 + 12.3s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"15:46:08 + 13.3s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"15:46:13 + 18.4s phase=done label=Frissítve err=None hold=None",
|
||||
"15:46:32 homebox: readback found=True (http 200, control passed)",
|
||||
"15:46:32 [7] memory soak 600 s …",
|
||||
"15:56:38 [7] soak: peak 31.8% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
15:57:21 [5] drill commit 9837e99b3b3f: homebox ghcr.io/sysadminsmedia/homebox:0.27.1 -> ghcr.io/sysadminsmedia/homebox:0.26.2 (push rc=0)
|
||||
15:57:29 [5] the box's drill mirror now at 9837e99b3b
|
||||
9837e99b3b3f
|
||||
@@ -0,0 +1,23 @@
|
||||
15:45:21 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
15:45:36 [1] deployed, controller state=running, pinned={'homebox': 'ghcr.io/sysadminsmedia/homebox:0.26.2'}
|
||||
15:45:36 gate: homebox is gated — passed as the household (cookie set)
|
||||
15:45:40 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}
|
||||
15:45:40 homebox: seeded location drillloc79c848d6 through /api/v1/entities
|
||||
15:45:41 homebox: readback found=True (http 200, control passed)
|
||||
15:45:42 [5] drill commit 47435b2461e9: homebox ghcr.io/sysadminsmedia/homebox:0.26.2 -> ghcr.io/sysadminsmedia/homebox:0.27.1 (push rc=0)
|
||||
15:45:50 [5] the box's drill mirror now at 47435b246
|
||||
15:45:55 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
15:45:55 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
15:45:57 + 2.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
15:45:58 + 3.1s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
15:46:07 + 12.3s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
15:46:08 + 13.3s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
15:46:13 + 18.4s phase=done label=Frissítve err=None hold=None
|
||||
15:46:32 homebox: readback found=True (http 200, control passed)
|
||||
15:46:32 [7] memory soak 600 s …
|
||||
15:56:38 [7] soak: peak 31.8% of the limit (anon), kills 0, restarts 0
|
||||
15:56:38 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/security-app-updates-2026-10-27/walks/homebox/verdict.json
|
||||
15:56:38 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:56:38 [X] stop -> 200 {'ok': True, 'message': 'Stack homebox stop completed'}
|
||||
15:57:11 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'homebox', 'volumes_removed': ['homebox_homebox_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alk
|
||||
15:57:19 [X] after remove: deployed=False leftovers=''
|
||||
@@ -0,0 +1 @@
|
||||
WROTE homebox: {'homebox': 'ghcr.io/sysadminsmedia/homebox:0.26.2'} -> {'homebox': 'ghcr.io/sysadminsmedia/homebox:0.27.1'} peak 31.8% marks {'files_may_change': False, 'needs_person': None, 'memory_tight': False}
|
||||
+229
@@ -0,0 +1,229 @@
|
||||
{
|
||||
"app": "jellyfin",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"jellyfin": "jellyfin/jellyfin:10.11.11"
|
||||
},
|
||||
"to": {
|
||||
"jellyfin": "jellyfin/jellyfin:12.4"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"jellyfin": "jellyfin/jellyfin:10.11.11"
|
||||
},
|
||||
"installed_images": {
|
||||
"jellyfin": "jellyfin/jellyfin:10.11.11"
|
||||
},
|
||||
"catalog_images": null,
|
||||
"live_compose_image_lines": [
|
||||
"image: jellyfin/jellyfin:10.11.11"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"jellyfin jellyfin/jellyfin:10.11.11 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": "a6f8052b643e",
|
||||
"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-27T15:53:07Z",
|
||||
"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": 3.1,
|
||||
"phase": "safety-dump",
|
||||
"label": "Adatbázis pillanatkép…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 4.1,
|
||||
"phase": "pulling",
|
||||
"label": "Új verzió letöltése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 31.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": 53.3,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 53.3,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"jellyfin": "jellyfin/jellyfin:12.4"
|
||||
},
|
||||
"installed_images": {
|
||||
"jellyfin": "jellyfin/jellyfin:12.4"
|
||||
},
|
||||
"catalog_images": {
|
||||
"jellyfin": "jellyfin/jellyfin:12.4"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: jellyfin/jellyfin:12.4"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"jellyfin jellyfin/jellyfin:12.4 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": {
|
||||
"jellyfin": "sha256:fea863d0cd9ec445985d9c75fc6ed64e38a1d2766cf0c250a33d553f4fc1b771"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"jellyfin": "jellyfin/jellyfin:12.4"
|
||||
},
|
||||
"installed": {
|
||||
"jellyfin": "jellyfin/jellyfin:12.4"
|
||||
},
|
||||
"catalog": {
|
||||
"jellyfin": "jellyfin/jellyfin:12.4"
|
||||
},
|
||||
"live_compose": [
|
||||
"jellyfin/jellyfin:12.4"
|
||||
]
|
||||
},
|
||||
"seed_read_after": true,
|
||||
"setup_gate_after": {
|
||||
"browser": {
|
||||
"status": "404",
|
||||
"redirect": null
|
||||
},
|
||||
"script": {
|
||||
"status": "404",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"soak_s": 600,
|
||||
"interval_s": 10,
|
||||
"samples": 60,
|
||||
"containers": {
|
||||
"jellyfin": {
|
||||
"samples": 60,
|
||||
"anon_peak_bytes": 105771008,
|
||||
"limit_bytes": 2147483648,
|
||||
"anon_peak_pct": 4.9,
|
||||
"cgroup_peak_pct": 9.2,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-09b28f937d293c056afe38225eb9e0ee044f727e37f1da145ee588a471c4ec61.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 4.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": [
|
||||
"16:51:46 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['HDD_PATH']",
|
||||
"16:51:46 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"16:52:47 [1] deployed, controller state=running, pinned={'jellyfin': 'jellyfin/jellyfin:10.11.11'}",
|
||||
"16:52:47 gate: jellyfin is gated — passed as the household (cookie set)",
|
||||
"16:52:50 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}",
|
||||
"16:52:51 jellyfin: seeded first user drill32e938f7",
|
||||
"16:52:53 jellyfin: sign-in as the seeded user http=200 token=True (wrong password refused: http 401)",
|
||||
"16:52:54 [5] drill commit a6f8052b643e: jellyfin jellyfin/jellyfin:10.11.11 -> jellyfin/jellyfin:12.4 (push rc=0)",
|
||||
"16:53:02 [5] the box's drill mirror now at a6f8052",
|
||||
"16:53:07 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}",
|
||||
"16:53:07 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
|
||||
"16:53:10 + 3.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None",
|
||||
"16:53:11 + 4.1s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"16:53:39 + 31.8s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"16:53:49 + 42.0s phase=starting label=Indítás az új verzióval… err=None hold=None",
|
||||
"16:53:50 + 43.0s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"16:54:00 + 53.3s phase=done label=Frissítve err=None hold=None",
|
||||
"16:54:20 jellyfin: sign-in as the seeded user http=200 token=True (wrong password refused: http 401)",
|
||||
"16:54:20 [7] memory soak 600 s …",
|
||||
"17:04:26 [7] soak: peak 4.9% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
17:05:09 [5] drill commit ea22847fcb97: jellyfin jellyfin/jellyfin:12.4 -> jellyfin/jellyfin:10.11.11 (push rc=0)
|
||||
17:05:17 [5] the box's drill mirror now at ea22847
|
||||
ea22847fcb97
|
||||
@@ -0,0 +1,25 @@
|
||||
16:51:46 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['HDD_PATH']
|
||||
16:51:46 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
16:52:47 [1] deployed, controller state=running, pinned={'jellyfin': 'jellyfin/jellyfin:10.11.11'}
|
||||
16:52:47 gate: jellyfin is gated — passed as the household (cookie set)
|
||||
16:52:50 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}
|
||||
16:52:51 jellyfin: seeded first user drill32e938f7
|
||||
16:52:53 jellyfin: sign-in as the seeded user http=200 token=True (wrong password refused: http 401)
|
||||
16:52:54 [5] drill commit a6f8052b643e: jellyfin jellyfin/jellyfin:10.11.11 -> jellyfin/jellyfin:12.4 (push rc=0)
|
||||
16:53:02 [5] the box's drill mirror now at a6f8052
|
||||
16:53:07 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
16:53:07 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
16:53:10 + 3.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
16:53:11 + 4.1s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
16:53:39 + 31.8s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
16:53:49 + 42.0s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||||
16:53:50 + 43.0s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
16:54:00 + 53.3s phase=done label=Frissítve err=None hold=None
|
||||
16:54:20 jellyfin: sign-in as the seeded user http=200 token=True (wrong password refused: http 401)
|
||||
16:54:20 [7] memory soak 600 s …
|
||||
17:04:26 [7] soak: peak 4.9% of the limit (anon), kills 0, restarts 0
|
||||
17:04:26 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/security-app-updates-2026-10-27/walks/jellyfin/verdict.json
|
||||
17:04:26 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
|
||||
17:04:26 [X] stop -> 200 {'ok': True, 'message': 'Stack jellyfin stop completed'}
|
||||
17:04:58 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'jellyfin', 'volumes_removed': ['jellyfin_jellyfin_cache', 'jellyfin_jellyfin_config'], 'hdd_paths_removed': [], 'hdd_paths_pre
|
||||
17:05:07 [X] after remove: deployed=False leftovers=''
|
||||
@@ -0,0 +1 @@
|
||||
WROTE jellyfin: {'jellyfin': 'jellyfin/jellyfin:10.11.11'} -> {'jellyfin': 'jellyfin/jellyfin:12.4'} peak 5.0% marks {'files_may_change': False, 'needs_person': None, 'memory_tight': False}
|
||||
+229
@@ -0,0 +1,229 @@
|
||||
{
|
||||
"app": "mealie",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
|
||||
},
|
||||
"to": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.29.0"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
|
||||
},
|
||||
"installed_images": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
|
||||
},
|
||||
"catalog_images": null,
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/mealie-recipes/mealie:v3.28.0@sha256:8b02290f4d1806f02acac6f25f6d48a3c965612fda1f8e914d5af533276f8688"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"mealie ghcr.io/mealie-recipes/mealie:v3.28.0@sha256:8b02290f4d1806f02acac6f25f6d48a3c965612fda1f8e914d5af533276f8688 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": "33ac1b301150",
|
||||
"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-27T14:44:30Z",
|
||||
"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": 4.1,
|
||||
"phase": "safety-dump",
|
||||
"label": "Adatbázis pillanatkép…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 5.1,
|
||||
"phase": "pulling",
|
||||
"label": "Új verzió letöltése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 43.5,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok másolása a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 49.6,
|
||||
"phase": "starting",
|
||||
"label": "Indítás az új verzióval…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 50.7,
|
||||
"phase": "verifying",
|
||||
"label": "Működés ellenőrzése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 66.0,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 66.0,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.29.0"
|
||||
},
|
||||
"installed_images": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.29.0"
|
||||
},
|
||||
"catalog_images": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.29.0"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: ghcr.io/mealie-recipes/mealie:v3.29.0"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"mealie ghcr.io/mealie-recipes/mealie:v3.29.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": {
|
||||
"mealie": "sha256:78eb28b8776d0bad40c5e605c72b3f4f5976793e491558c7dcbdfc04c835d4bc"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.29.0"
|
||||
},
|
||||
"installed": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.29.0"
|
||||
},
|
||||
"catalog": {
|
||||
"mealie": "ghcr.io/mealie-recipes/mealie:v3.29.0"
|
||||
},
|
||||
"live_compose": [
|
||||
"ghcr.io/mealie-recipes/mealie:v3.29.0"
|
||||
]
|
||||
},
|
||||
"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": {
|
||||
"mealie": {
|
||||
"samples": 60,
|
||||
"anon_peak_bytes": 242831360,
|
||||
"limit_bytes": 1048576000,
|
||||
"anon_peak_pct": 23.2,
|
||||
"cgroup_peak_pct": 26.4,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-c58a42735c9a9828f82f0ff5c66b35c509fd4db6b161f5f2f6fe70b38e56cfbf.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 23.2
|
||||
},
|
||||
"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:43:04 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['ADMIN_PASSWORD']",
|
||||
"15:43:05 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"15:44:10 [1] deployed, controller state=running, pinned={'mealie': 'ghcr.io/mealie-recipes/mealie:v3.28.0'}",
|
||||
"15:44:10 gate: recipes is gated — passed as the household (cookie set)",
|
||||
"15:44:14 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}",
|
||||
"15:44:15 mealie: create recipe http=201",
|
||||
"15:44:16 mealie: readback of the seeded recipe http=200 ok=True",
|
||||
"15:44:17 [5] drill commit 33ac1b301150: mealie ghcr.io/mealie-recipes/mealie:v3.28.0 -> ghcr.io/mealie-recipes/mealie:v3.29.0 (push rc=0)",
|
||||
"15:44:25 [5] the box's drill mirror now at 33ac1b301",
|
||||
"15:44:30 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}",
|
||||
"15:44:30 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
|
||||
"15:44:35 + 4.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None",
|
||||
"15:44:36 + 5.1s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"15:45:14 + 43.5s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"15:45:20 + 49.6s phase=starting label=Indítás az új verzióval… err=None hold=None",
|
||||
"15:45:21 + 50.7s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"15:45:36 + 66.0s phase=done label=Frissítve err=None hold=None",
|
||||
"15:45:56 mealie: readback of the seeded recipe http=200 ok=True",
|
||||
"15:45:57 [7] memory soak 600 s …",
|
||||
"15:56:02 [7] soak: peak 23.2% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
15:56:47 [5] drill commit e08f6fd1d448: mealie ghcr.io/mealie-recipes/mealie:v3.29.0 -> ghcr.io/mealie-recipes/mealie:v3.28.0 (push rc=0)
|
||||
15:56:55 [5] the box's drill mirror now at e08f6fd1d
|
||||
e08f6fd1d448
|
||||
@@ -0,0 +1,25 @@
|
||||
15:43:04 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['ADMIN_PASSWORD']
|
||||
15:43:05 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
15:44:10 [1] deployed, controller state=running, pinned={'mealie': 'ghcr.io/mealie-recipes/mealie:v3.28.0'}
|
||||
15:44:10 gate: recipes is gated — passed as the household (cookie set)
|
||||
15:44:14 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}
|
||||
15:44:15 mealie: create recipe http=201
|
||||
15:44:16 mealie: readback of the seeded recipe http=200 ok=True
|
||||
15:44:17 [5] drill commit 33ac1b301150: mealie ghcr.io/mealie-recipes/mealie:v3.28.0 -> ghcr.io/mealie-recipes/mealie:v3.29.0 (push rc=0)
|
||||
15:44:25 [5] the box's drill mirror now at 33ac1b301
|
||||
15:44:30 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
15:44:30 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
15:44:35 + 4.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
15:44:36 + 5.1s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
15:45:14 + 43.5s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
15:45:20 + 49.6s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||||
15:45:21 + 50.7s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
15:45:36 + 66.0s phase=done label=Frissítve err=None hold=None
|
||||
15:45:56 mealie: readback of the seeded recipe http=200 ok=True
|
||||
15:45:57 [7] memory soak 600 s …
|
||||
15:56:02 [7] soak: peak 23.2% of the limit (anon), kills 0, restarts 0
|
||||
15:56:02 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/security-app-updates-2026-10-27/walks/mealie/verdict.json
|
||||
15:56:02 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:56:04 [X] stop -> 200 {'ok': True, 'message': 'Stack mealie stop completed'}
|
||||
15:56:36 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'mealie', 'volumes_removed': ['mealie_mealie_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
|
||||
15:56:44 [X] after remove: deployed=False leftovers=''
|
||||
@@ -0,0 +1,3 @@
|
||||
STEP mealie: the superseded step {'mealie': 'ghcr.io/mealie-recipes/mealie:v3.28.0'} keeps its definition at steps/a54b0fc61c1df5e3.yml
|
||||
STEP mealie: … and its .felhom.yml at steps/a54b0fc61c1df5e3.felhom.yml
|
||||
WROTE mealie: {'mealie': 'ghcr.io/mealie-recipes/mealie:v3.28.0'} -> {'mealie': 'ghcr.io/mealie-recipes/mealie:v3.29.0'} peak 23.2% marks {'files_may_change': False, 'needs_person': None, 'memory_tight': False}
|
||||
@@ -0,0 +1,221 @@
|
||||
{
|
||||
"app": "n8n",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"n8n": "n8nio/n8n:2.42.1"
|
||||
},
|
||||
"to": {
|
||||
"n8n": "n8nio/n8n:2.44.7"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"n8n": "n8nio/n8n:2.42.1"
|
||||
},
|
||||
"installed_images": {
|
||||
"n8n": "n8nio/n8n:2.42.1"
|
||||
},
|
||||
"catalog_images": {
|
||||
"n8n": "n8nio/n8n:2.42.1"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: n8nio/n8n:2.42.1@sha256:e7634e62f766044dc770460db8defdcd84034eb6d767dd6a1101d49fe98f814f"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"n8n n8nio/n8n:2.42.1@sha256:e7634e62f766044dc770460db8defdcd84034eb6d767dd6a1101d49fe98f814f 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": "fabba433307c",
|
||||
"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-27T13:56:23Z",
|
||||
"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": 3.1,
|
||||
"phase": "safety-dump",
|
||||
"label": "Adatbázis pillanatkép…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 4.1,
|
||||
"phase": "pulling",
|
||||
"label": "Új verzió letöltése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 140.0,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok másolása a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 147.2,
|
||||
"phase": "verifying",
|
||||
"label": "Működés ellenőrzése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 158.6,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 158.6,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"n8n": "n8nio/n8n:2.44.7"
|
||||
},
|
||||
"installed_images": {
|
||||
"n8n": "n8nio/n8n:2.44.7"
|
||||
},
|
||||
"catalog_images": {
|
||||
"n8n": "n8nio/n8n:2.44.7"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: n8nio/n8n:2.44.7"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"n8n n8nio/n8n:2.44.7 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": {
|
||||
"n8n": "sha256:942bc274709f27f99f7c6024a785d8e8f75ac06838cabcba448abb8d9127ec7b"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"n8n": "n8nio/n8n:2.44.7"
|
||||
},
|
||||
"installed": {
|
||||
"n8n": "n8nio/n8n:2.44.7"
|
||||
},
|
||||
"catalog": {
|
||||
"n8n": "n8nio/n8n:2.44.7"
|
||||
},
|
||||
"live_compose": [
|
||||
"n8nio/n8n:2.44.7"
|
||||
]
|
||||
},
|
||||
"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": {
|
||||
"n8n": {
|
||||
"samples": 60,
|
||||
"anon_peak_bytes": 520908800,
|
||||
"limit_bytes": 1610612736,
|
||||
"anon_peak_pct": 32.3,
|
||||
"cgroup_peak_pct": 62.1,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-9eb5c2a40aa12e1d720b9adf273fa557c16f82690382d018dbab6aae47553ef3.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 32.3
|
||||
},
|
||||
"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:53:49 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"14:55:59 [1] deployed, controller state=running, pinned={'n8n': 'n8nio/n8n:2.42.1'}",
|
||||
"14:55:59 gate: auto is gated — passed as the household (cookie set)",
|
||||
"14:56:08 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}",
|
||||
"14:56:09 n8n: /rest/owner/setup http=200",
|
||||
"14:56:09 n8n: login as the seeded owner http=200 ok=True",
|
||||
"14:56:10 [5] drill commit fabba433307c: n8n n8nio/n8n:2.42.1 -> n8nio/n8n:2.44.7 (push rc=0)",
|
||||
"14:56:19 [5] the box's drill mirror now at fabba4333",
|
||||
"14:56:23 [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:23 + 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:27 + 3.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None",
|
||||
"14:56:28 + 4.1s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"14:58:43 + 140.0s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"14:58:51 + 147.2s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"14:59:02 + 158.6s phase=done label=Frissítve err=None hold=None",
|
||||
"14:59:21 n8n: login as the seeded owner http=200 ok=True",
|
||||
"14:59:21 [7] memory soak 600 s …",
|
||||
"15:09:27 [7] soak: peak 32.3% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
15:10:11 [5] drill commit d175052a7428: n8n n8nio/n8n:2.44.7 -> n8nio/n8n:2.42.1 (push rc=0)
|
||||
15:10:20 [5] the box's drill mirror now at d175052a7
|
||||
d175052a7428
|
||||
@@ -0,0 +1,23 @@
|
||||
14:53:49 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:55:59 [1] deployed, controller state=running, pinned={'n8n': 'n8nio/n8n:2.42.1'}
|
||||
14:55:59 gate: auto is gated — passed as the household (cookie set)
|
||||
14:56:08 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}
|
||||
14:56:09 n8n: /rest/owner/setup http=200
|
||||
14:56:09 n8n: login as the seeded owner http=200 ok=True
|
||||
14:56:10 [5] drill commit fabba433307c: n8n n8nio/n8n:2.42.1 -> n8nio/n8n:2.44.7 (push rc=0)
|
||||
14:56:19 [5] the box's drill mirror now at fabba4333
|
||||
14:56:23 [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:23 + 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:27 + 3.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
14:56:28 + 4.1s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
14:58:43 + 140.0s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
14:58:51 + 147.2s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
14:59:02 + 158.6s phase=done label=Frissítve err=None hold=None
|
||||
14:59:21 n8n: login as the seeded owner http=200 ok=True
|
||||
14:59:21 [7] memory soak 600 s …
|
||||
15:09:27 [7] soak: peak 32.3% of the limit (anon), kills 0, restarts 0
|
||||
15:09:27 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/security-app-updates-2026-10-27/walks/n8n/verdict.json
|
||||
15:09:27 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:09:28 [X] stop -> 200 {'ok': True, 'message': 'Stack n8n stop completed'}
|
||||
15:10:00 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'n8n', 'volumes_removed': ['n8n_n8n_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazás nem
|
||||
15:10:09 [X] after remove: deployed=False leftovers=''
|
||||
@@ -0,0 +1,3 @@
|
||||
STEP n8n: the superseded step {'n8n': 'n8nio/n8n:2.42.1'} keeps its definition at steps/9083c23d189f5b92.yml
|
||||
STEP n8n: … and its .felhom.yml at steps/9083c23d189f5b92.felhom.yml
|
||||
WROTE n8n: {'n8n': 'n8nio/n8n:2.42.1'} -> {'n8n': 'n8nio/n8n:2.44.7'} peak 32.3% marks {'files_may_change': False, 'needs_person': None, 'memory_tight': False}
|
||||
+228
@@ -0,0 +1,228 @@
|
||||
{
|
||||
"app": "privatebin",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"privatebin": "privatebin/pdo:2.0.6"
|
||||
},
|
||||
"to": {
|
||||
"privatebin": "privatebin/pdo:2.1.0"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"privatebin": "privatebin/pdo:2.0.6"
|
||||
},
|
||||
"installed_images": {
|
||||
"privatebin": "privatebin/pdo:2.0.6"
|
||||
},
|
||||
"catalog_images": null,
|
||||
"live_compose_image_lines": [
|
||||
"image: privatebin/pdo:2.0.6@sha256:4c141b2326f8b353598ce9ce7507a9cfecf2dad5c60a39fea903d430e296d8f5"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"privatebin privatebin/pdo:2.0.6@sha256:4c141b2326f8b353598ce9ce7507a9cfecf2dad5c60a39fea903d430e296d8f5 running=true restarts=0"
|
||||
]
|
||||
},
|
||||
"setup_gate_before": {
|
||||
"browser": {
|
||||
"status": "200",
|
||||
"redirect": null
|
||||
},
|
||||
"script": {
|
||||
"status": "200",
|
||||
"redirect": null
|
||||
}
|
||||
},
|
||||
"seed": "read_back",
|
||||
"drill_commit": "837de7ffa496",
|
||||
"sync_waited_s": 27.0,
|
||||
"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-27T13:56:56Z",
|
||||
"update": {
|
||||
"accepted": true,
|
||||
"http": "202",
|
||||
"phases": [
|
||||
{
|
||||
"t": 0.0,
|
||||
"phase": "checking",
|
||||
"label": "Ellenőrzés…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 1.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": 6.2,
|
||||
"phase": "safety-dump",
|
||||
"label": "Adatbázis pillanatkép…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 7.2,
|
||||
"phase": "pulling",
|
||||
"label": "Új verzió letöltése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 11.3,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok másolása a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 14.3,
|
||||
"phase": "verifying",
|
||||
"label": "Működés ellenőrzése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 19.5,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 19.5,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"privatebin": "privatebin/pdo:2.1.0"
|
||||
},
|
||||
"installed_images": {
|
||||
"privatebin": "privatebin/pdo:2.1.0"
|
||||
},
|
||||
"catalog_images": {
|
||||
"privatebin": "privatebin/pdo:2.1.0"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: privatebin/pdo:2.1.0"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"privatebin privatebin/pdo:2.1.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": {
|
||||
"privatebin": "sha256:3400b0a4714d62161727a710c82a3e319cfea364ac6e591aed653f5bb6bb8055"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"privatebin": "privatebin/pdo:2.1.0"
|
||||
},
|
||||
"installed": {
|
||||
"privatebin": "privatebin/pdo:2.1.0"
|
||||
},
|
||||
"catalog": {
|
||||
"privatebin": "privatebin/pdo:2.1.0"
|
||||
},
|
||||
"live_compose": [
|
||||
"privatebin/pdo:2.1.0"
|
||||
]
|
||||
},
|
||||
"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": {
|
||||
"privatebin": {
|
||||
"samples": 60,
|
||||
"anon_peak_bytes": 34672640,
|
||||
"limit_bytes": 134217728,
|
||||
"anon_peak_pct": 25.8,
|
||||
"cgroup_peak_pct": 34.6,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-043362473ac067e166e3136df6acfeee1812461d3f6fd926546e0fd35feec6d6.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 25.8
|
||||
},
|
||||
"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:55:51 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"14:56:11 [1] deployed, controller state=running, pinned={'privatebin': 'privatebin/pdo:2.0.6'}",
|
||||
"14:56:15 [2] setup gate as installed: {'browser': {'status': '200', 'redirect': None}, 'script': {'status': '200', 'redirect': None}}",
|
||||
"14:56:15 privatebin: seeded paste id=add805a9d79e114c",
|
||||
"14:56:15 privatebin: readback http=200 marker_present=True",
|
||||
"14:56:20 [5] drill commit 837de7ffa496: privatebin privatebin/pdo:2.0.6 -> privatebin/pdo:2.1.0 (push rc=0)",
|
||||
"14:56:28 [5] the box's drill mirror now at 837de7ffa",
|
||||
"14:56:55 [sync] the badge needed 27.0s and 3 sync+rescan rounds to catch up to privatebin/pdo:2.1.0 — R-607's window, measured",
|
||||
"14:56:56 [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:56 + 0.0s phase=checking label=Ellenőrzés… err=None hold=None",
|
||||
"14:56:57 + 1.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
|
||||
"14:57:02 + 6.2s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None",
|
||||
"14:57:03 + 7.2s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"14:57:07 + 11.3s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"14:57:10 + 14.3s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"14:57:15 + 19.5s phase=done label=Frissítve err=None hold=None",
|
||||
"14:57:35 privatebin: readback http=200 marker_present=True",
|
||||
"14:57:35 [7] memory soak 600 s …",
|
||||
"15:07:41 [7] soak: peak 25.8% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
15:08:24 [5] drill commit d0f6b22831d1: privatebin privatebin/pdo:2.1.0 -> privatebin/pdo:2.0.6 (push rc=0)
|
||||
15:08:33 [5] the box's drill mirror now at d0f6b2283
|
||||
d0f6b22831d1
|
||||
@@ -0,0 +1,24 @@
|
||||
14:55:51 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
14:56:11 [1] deployed, controller state=running, pinned={'privatebin': 'privatebin/pdo:2.0.6'}
|
||||
14:56:15 [2] setup gate as installed: {'browser': {'status': '200', 'redirect': None}, 'script': {'status': '200', 'redirect': None}}
|
||||
14:56:15 privatebin: seeded paste id=add805a9d79e114c
|
||||
14:56:15 privatebin: readback http=200 marker_present=True
|
||||
14:56:20 [5] drill commit 837de7ffa496: privatebin privatebin/pdo:2.0.6 -> privatebin/pdo:2.1.0 (push rc=0)
|
||||
14:56:28 [5] the box's drill mirror now at 837de7ffa
|
||||
14:56:55 [sync] the badge needed 27.0s and 3 sync+rescan rounds to catch up to privatebin/pdo:2.1.0 — R-607's window, measured
|
||||
14:56:56 [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:56 + 0.0s phase=checking label=Ellenőrzés… err=None hold=None
|
||||
14:56:57 + 1.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
14:57:02 + 6.2s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
14:57:03 + 7.2s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
14:57:07 + 11.3s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
14:57:10 + 14.3s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
14:57:15 + 19.5s phase=done label=Frissítve err=None hold=None
|
||||
14:57:35 privatebin: readback http=200 marker_present=True
|
||||
14:57:35 [7] memory soak 600 s …
|
||||
15:07:41 [7] soak: peak 25.8% of the limit (anon), kills 0, restarts 0
|
||||
15:07:41 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/security-app-updates-2026-10-27/walks/privatebin/verdict.json
|
||||
15:07:41 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:07:42 [X] stop -> 200 {'ok': True, 'message': 'Stack privatebin stop completed'}
|
||||
15:08:14 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'privatebin', 'volumes_removed': ['privatebin_privatebin_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note'
|
||||
15:08:22 [X] after remove: deployed=False leftovers=''
|
||||
@@ -0,0 +1,3 @@
|
||||
STEP privatebin: the superseded step {'privatebin': 'privatebin/pdo:2.0.6'} keeps its definition at steps/92922b000a9b6091.yml
|
||||
STEP privatebin: … and its .felhom.yml at steps/92922b000a9b6091.felhom.yml
|
||||
WROTE privatebin: {'privatebin': 'privatebin/pdo:2.0.6'} -> {'privatebin': 'privatebin/pdo:2.1.0'} peak 25.8% marks {'files_may_change': False, 'needs_person': None, 'memory_tight': False}
|
||||
+229
@@ -0,0 +1,229 @@
|
||||
{
|
||||
"app": "uptime-kuma",
|
||||
"walk": "security",
|
||||
"box_walk_version": 1,
|
||||
"verdict": "proven",
|
||||
"venue": "box 9202 (drill catalog), the guarded Update",
|
||||
"from": {
|
||||
"uptime-kuma": "louislam/uptime-kuma:2.5.5"
|
||||
},
|
||||
"to": {
|
||||
"uptime-kuma": "louislam/uptime-kuma:2.5.7"
|
||||
},
|
||||
"observables_before": {
|
||||
"pinned_images": {
|
||||
"uptime-kuma": "louislam/uptime-kuma:2.5.5"
|
||||
},
|
||||
"installed_images": {
|
||||
"uptime-kuma": "louislam/uptime-kuma:2.5.5"
|
||||
},
|
||||
"catalog_images": null,
|
||||
"live_compose_image_lines": [
|
||||
"image: louislam/uptime-kuma:2.5.5@sha256:c74379ac4509ce2d2c2633f509e67003ee2e45b6e995c5e43fc101f45a0e1fbe"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"uptime-kuma louislam/uptime-kuma:2.5.5@sha256:c74379ac4509ce2d2c2633f509e67003ee2e45b6e995c5e43fc101f45a0e1fbe 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": "716392401e82",
|
||||
"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-27T14:24: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": 6.2,
|
||||
"phase": "safety-dump",
|
||||
"label": "Adatbázis pillanatkép…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 7.2,
|
||||
"phase": "pulling",
|
||||
"label": "Új verzió letöltése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 50.2,
|
||||
"phase": "copying",
|
||||
"label": "Az adatok másolása a frissítés előtt…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 60.4,
|
||||
"phase": "starting",
|
||||
"label": "Indítás az új verzióval…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 61.5,
|
||||
"phase": "verifying",
|
||||
"label": "Működés ellenőrzése…",
|
||||
"updating": true,
|
||||
"error": null,
|
||||
"hold": null
|
||||
},
|
||||
{
|
||||
"t": 66.6,
|
||||
"phase": "done",
|
||||
"label": "Frissítve",
|
||||
"updating": false,
|
||||
"error": null,
|
||||
"hold": null
|
||||
}
|
||||
],
|
||||
"duration_s": 66.6,
|
||||
"final_phase": "done",
|
||||
"update_error": null,
|
||||
"hold_reason": null,
|
||||
"state": "running"
|
||||
},
|
||||
"observables_after": {
|
||||
"pinned_images": {
|
||||
"uptime-kuma": "louislam/uptime-kuma:2.5.7"
|
||||
},
|
||||
"installed_images": {
|
||||
"uptime-kuma": "louislam/uptime-kuma:2.5.7"
|
||||
},
|
||||
"catalog_images": {
|
||||
"uptime-kuma": "louislam/uptime-kuma:2.5.7"
|
||||
},
|
||||
"live_compose_image_lines": [
|
||||
"image: louislam/uptime-kuma:2.5.7"
|
||||
],
|
||||
"docker_inspect": [
|
||||
"uptime-kuma louislam/uptime-kuma:2.5.7 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": {
|
||||
"uptime-kuma": "sha256:4b95dbe7ac5343b768f8e04e3035ccd59997872b1a35ab9b0f082d2cc279070e"
|
||||
},
|
||||
"four_observables": {
|
||||
"pinned": {
|
||||
"uptime-kuma": "louislam/uptime-kuma:2.5.7"
|
||||
},
|
||||
"installed": {
|
||||
"uptime-kuma": "louislam/uptime-kuma:2.5.7"
|
||||
},
|
||||
"catalog": {
|
||||
"uptime-kuma": "louislam/uptime-kuma:2.5.7"
|
||||
},
|
||||
"live_compose": [
|
||||
"louislam/uptime-kuma:2.5.7"
|
||||
]
|
||||
},
|
||||
"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": {
|
||||
"uptime-kuma": {
|
||||
"samples": 60,
|
||||
"anon_peak_bytes": 105992192,
|
||||
"limit_bytes": 402653184,
|
||||
"anon_peak_pct": 26.3,
|
||||
"cgroup_peak_pct": 31.2,
|
||||
"oom_kill_delta": 0,
|
||||
"oom_killed_flag": false,
|
||||
"restarts_delta": 0,
|
||||
"running_all_samples": true,
|
||||
"cgroup": "/sys/fs/cgroup/system.slice/docker-39b8383161e3949dc61f20e0cbc56c766fcf3c77596d375bdcbc5e60414d6f60.scope"
|
||||
}
|
||||
},
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"peak_pct": 26.3
|
||||
},
|
||||
"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:23:19 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}",
|
||||
"15:24:29 [1] deployed, controller state=running, pinned={'uptime-kuma': 'louislam/uptime-kuma:2.5.5'}",
|
||||
"15:24:29 gate: status is gated — passed as the household (cookie set)",
|
||||
"15:24:33 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}",
|
||||
"15:24:33 uptime-kuma: setup ok=True successAdded",
|
||||
"15:24:33 uptime-kuma: addStatusPage ok=True successAdded",
|
||||
"15:24:33 uptime-kuma: readback of the seeded status page http=200 found=True",
|
||||
"15:24:34 [5] drill commit 716392401e82: uptime-kuma louislam/uptime-kuma:2.5.5 -> louislam/uptime-kuma:2.5.7 (push rc=0)",
|
||||
"15:24:43 [5] the box's drill mirror now at 716392401",
|
||||
"15:24:48 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}",
|
||||
"15:24:48 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None",
|
||||
"15:24:54 + 6.2s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None",
|
||||
"15:24:55 + 7.2s phase=pulling label=Új verzió letöltése… err=None hold=None",
|
||||
"15:25:38 + 50.2s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None",
|
||||
"15:25:48 + 60.4s phase=starting label=Indítás az új verzióval… err=None hold=None",
|
||||
"15:25:49 + 61.5s phase=verifying label=Működés ellenőrzése… err=None hold=None",
|
||||
"15:25:54 + 66.6s phase=done label=Frissítve err=None hold=None",
|
||||
"15:26:13 uptime-kuma: readback of the seeded status page http=200 found=True",
|
||||
"15:26:13 [7] memory soak 600 s …",
|
||||
"15:36:18 [7] soak: peak 26.3% of the limit (anon), kills 0, restarts 0"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
15:37:06 [5] drill commit 0b611a6cbe91: uptime-kuma louislam/uptime-kuma:2.5.7 -> louislam/uptime-kuma:2.5.5 (push rc=0)
|
||||
15:37:14 [5] the box's drill mirror now at 0b611a6cb
|
||||
0b611a6cbe91
|
||||
@@ -0,0 +1,25 @@
|
||||
15:23:19 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
15:24:29 [1] deployed, controller state=running, pinned={'uptime-kuma': 'louislam/uptime-kuma:2.5.5'}
|
||||
15:24:29 gate: status is gated — passed as the household (cookie set)
|
||||
15:24:33 [2] setup gate as installed: {'browser': {'status': '302', 'redirect': 'https://felhom.enkisfelhom.hu/__gate/start?…'}, 'script': {'status': '401', 'redirect': None}}
|
||||
15:24:33 uptime-kuma: setup ok=True successAdded
|
||||
15:24:33 uptime-kuma: addStatusPage ok=True successAdded
|
||||
15:24:33 uptime-kuma: readback of the seeded status page http=200 found=True
|
||||
15:24:34 [5] drill commit 716392401e82: uptime-kuma louislam/uptime-kuma:2.5.5 -> louislam/uptime-kuma:2.5.7 (push rc=0)
|
||||
15:24:43 [5] the box's drill mirror now at 716392401
|
||||
15:24:48 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||||
15:24:48 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
|
||||
15:24:54 + 6.2s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||||
15:24:55 + 7.2s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||||
15:25:38 + 50.2s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
|
||||
15:25:48 + 60.4s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||||
15:25:49 + 61.5s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||||
15:25:54 + 66.6s phase=done label=Frissítve err=None hold=None
|
||||
15:26:13 uptime-kuma: readback of the seeded status page http=200 found=True
|
||||
15:26:13 [7] memory soak 600 s …
|
||||
15:36:18 [7] soak: peak 26.3% of the limit (anon), kills 0, restarts 0
|
||||
15:36:18 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/security-app-updates-2026-10-27/walks/uptime-kuma/verdict.json
|
||||
15:36:18 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:36:23 [X] stop -> 200 {'ok': True, 'message': 'Stack uptime-kuma stop completed'}
|
||||
15:36:55 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'uptime-kuma', 'volumes_removed': ['uptime-kuma_uptime_kuma_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_no
|
||||
15:37:03 [X] after remove: deployed=False leftovers=''
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
STEP uptime-kuma: the superseded step {'uptime-kuma': 'louislam/uptime-kuma:2.5.5'} keeps its definition at steps/023d7514039fca24.yml
|
||||
STEP uptime-kuma: … and its .felhom.yml at steps/023d7514039fca24.felhom.yml
|
||||
WROTE uptime-kuma: {'uptime-kuma': 'louislam/uptime-kuma:2.5.5'} -> {'uptime-kuma': 'louislam/uptime-kuma:2.5.7'} peak 26.3% marks {'files_may_change': False, 'needs_person': None, 'memory_tight': False}
|
||||
Reference in new issue
Block a user