Controller 0.351.0 released: release evidence, status and report
gates / gates (push) Successful in 1m56s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
adminandClaude Opus 5.5 committed 2026-11-09 13:23:25 +01:00
1 parent c16697c21a
commit 13c786dd2f
18 files changed
+319 -3

No files matched your search

@@ -0,0 +1,42 @@
# Controller 0.351.0 release, 2026-11-09 (attended, operator's „go with A")
**Image:** 0.351.0 from `27360d6a` (CI 2603 green), `sha256:1d90563c443022770b2db90a7730f1ea5aea45cc5b0fa64fec9823d60d42d97f`
(`ctl-0351-build.txt`). rc.1 from the same commit, `sha256:f789f4b03da9645266fc712b1e687ae3939bbb52416ac798f42e8b0146e49ab2`.
What it carries: decision 56 amended (old `-rc` controller images go) and decision 285 (old infrastructure images go).
## rc.1 on Tester 1, by hand (`tester1-images-before.txt`, `tester1-rc1-retention-log.txt`, `tester1-images-after.txt`, `tester1-walk-rc1.txt`)
Tester 1 still had the old images (demo-hp's were removed by hand earlier the same day). rc.1 installed through
`/etc/felhom-controller-image` at 12:10 UTC; the pass ran at 12:12:54, about 3 minutes after the start.
- Controller: 12 of 14 images deleted (11 old test builds and 0.349.0). Kept: running 0.351.0-rc.1 and the previous
0.350.0 (found by version order: a hand install writes no swap record).
- Infrastructure: traefik v3.7.13 and cloudflared 2026.9.3 deleted. Kept: each pin and the one before it (traefik
v3.7.16, cloudflared 2026.10.3, FileBrowser 1.5.6-stable, Samba 1.1.0). `alpine`, `hello-world`, `traefik/whoami`
are not in the infrastructure list and were not touched.
- 37 → 24 images; Docker's image total 8.665 → 7.612 GB. Only about 1 GB is freed, because the old test builds share
most of their layers. Still reclaimable: 3.13 GB, mostly the apps' undo images (decision 53, on purpose).
- Walk green: 0 unhealthy, 0 refusals, 0 ERROR lines, login and file manager 200, every app route answers.
## The three boxes through the normal update path (`floors-set-at.txt`, `floors-per-box.txt`, `rollout-wait.txt`, `walk-3boxes.txt`, `https-only.txt`)
Per-box floors 0.351.0 / MinAgent 0.158.1 at 12:14:27 UTC (303 `floor_set` each); all three on 0.351.0, healthy, by
12:15:11. Each box's own pass, about 3 minutes after its start:
| Box | Controller images deleted | Infrastructure images deleted | Images after |
|---|---|---|---|
| Tester 1 | 0.350.0 (previous is now rc.1, from the self-update's record) | none | 24, 7.6 GB |
| demo-hp | 0.349.0 | none (cleaned by hand earlier; Samba shows no previous, because 1.1.0 was removed by hand) | 43, 24.2 GB |
| demo-felhom | 0.349.0 | traefik v3.6.7, v3.7.13; cloudflared 2026.6.0, 2026.9.3; FileBrowser 1.3.3-stable | 16, 2.2 GB |
Walk green on all three (0 unhealthy, 0 refusals, 0 ERROR lines, login and file manager 200, every app route through
Traefik 200/302/401). `https_only_check.py` rc 0 (controls passed; every public name 301 to https).
## The floor (`global-floor.txt`, `global-floor-readback.txt`, `floors-cleared.txt`)
Global floor 0.351.0 / MinAgent 0.158.1 at 12:18:28 UTC with CC's token (303 `floor_set`). Read back from two channels:
the running hub pod's log (`Global controller-version floor set to "0.351.0" (declared MinAgent "0.158.1")`) and the
configuration page (`min_controller_version` 0.351.0, `min_agent` 0.158.1). Per-box floors cleared 12:18:38 (the hub log
shows each override set to "").
**Teardown:** machine — no throwaway app; host — nothing provisioned; hub — the three per-box floors cleared.
@@ -0,0 +1,6 @@
[INFO] ╔══════════════════════════════════════╗
[INFO] ║ Build complete ✓ ║
[INFO] ╚══════════════════════════════════════╝
[INFO] Image: gitea.dooplex.hu/admin/felhom-controller:0.351.0
[INFO] Size: 486M
@@ -0,0 +1,9 @@
== tester-1
HTTP/1.1 303 See Other
Location: /customers/tester-1?flash=floor_set
== demo-hp
HTTP/1.1 303 See Other
Location: /customers/demo-hp?flash=floor_set
== demo-felhom
HTTP/1.1 303 See Other
Location: /customers/demo-felhom?flash=floor_set
@@ -0,0 +1,9 @@
== tester-1
HTTP/1.1 303 See Other
Location: /customers/tester-1?flash=floor_set
== demo-hp
HTTP/1.1 303 See Other
Location: /customers/demo-hp?flash=floor_set
== demo-felhom
HTTP/1.1 303 See Other
Location: /customers/demo-felhom?flash=floor_set
@@ -0,0 +1 @@
2026-11-09T12:14:27Z
@@ -0,0 +1,11 @@
2026/11/09 13:14:27 [INFO] access token "cc-releases-2": POST /customers/demo-hp/floor → 303
2026/11/09 13:14:27 [INFO] Customer demo-felhom controller-version floor override set to "0.351.0" (declared MinAgent "0.158.1")
2026/11/09 13:14:27 [INFO] access token "cc-releases-2": POST /customers/demo-felhom/floor → 303
2026/11/09 13:14:31 [INFO] managed floor SERVED for demo-felhom: floor 0.351.0, agent requirement "0.158.1" from declared (golden 0.350.0)
2026/11/09 13:14:31 [INFO] managed floor SERVED for tester-1: floor 0.351.0, agent requirement "0.158.1" from declared (golden 0.350.0)
2026/11/09 13:14:31 [INFO] managed floor SERVED for demo-hp: floor 0.351.0, agent requirement "0.158.1" from declared (golden 0.350.0)
2026/11/09 13:18:28 [INFO] Global controller-version floor set to "0.351.0" (declared MinAgent "0.158.1")
2026/11/09 13:18:28 [INFO] access token "cc-releases-2": POST /configuration/global-floor → 303
name="min_controller_version" value="0.351.0"
name="min_agent" value="0.158.1"
name="min_agent" value="0.158.1"
@@ -0,0 +1,3 @@
2026-11-09T12:18:28Z
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
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash
# read_boxes.sh — one line per box, read-only: the controller's image and status, Traefik's image.
for x in "tester-1 root@192.168.0.154" "demo-hp hp" "demo-felhom felhom-pve"; do set -- $x
o=$(ssh -o BatchMode=yes -o ConnectTimeout=10 $2 "pct exec 9201 -- docker ps --format '{{.Names}}|{{.Image}}|{{.Status}}'" 2>&1 | grep -E '^(felhom-controller|traefik)\|')
echo "$1: $(echo "$o" | sed 's#gitea.dooplex.hu/admin/felhom-controller:##' | cut -d'|' -f2,3 | tr '\n' ' ')"
done
@@ -0,0 +1,6 @@
Mon Nov 9 12:15:11 PM UTC 2026
tester-1: 0.351.0|Up 30 seconds (healthy) traefik:v3.7.17|Up 6 days
demo-hp: 0.351.0|Up 30 seconds (healthy) traefik:v3.7.17|Up 34 hours
demo-felhom: 0.351.0|Up 34 seconds (healthy) traefik:v3.7.17|Up 32 hours
[exited with code 0]
@@ -0,0 +1,18 @@
gitea.dooplex.hu/admin/felhom-controller:0.351.0-rc.1 485f658c0460 348MB
gitea.dooplex.hu/admin/felhom-controller:0.350.0 1f32a260789a 348MB
traefik:v3.7.17 a72cb2f4a210 191MB
cloudflare/cloudflared:2026.10.4 472341c39b02 64.6MB
traefik:v3.7.16 3733df53e74c 194MB
cloudflare/cloudflared:2026.10.3 1475624a6d23 64.6MB
gtstef/filebrowser:1.5.8-stable 0019084d4a6f 195MB
alpine:latest 320994c3b997 8.42MB
gtstef/filebrowser:1.5.6-stable 96e26edeefc3 195MB
gitea.dooplex.hu/admin/felhom-samba:1.1.0 8e21163a1646 103MB
hello-world:latest e2ac70e7319a 10.1kB
traefik/whoami:v1.10.3 aeef15490f2b 6.58MB
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 24 10 7.612GB 3.129GB (41%)
Containers 10 10 48.13MB 0B (0%)
Local Volumes 379 11 348.2MB 41.14kB (0%)
Build Cache 0 0 0B 0B
@@ -0,0 +1,25 @@
gitea.dooplex.hu/admin/felhom-controller:0.350.0 1f32a260789a 348MB
traefik:v3.7.17 a72cb2f4a210 191MB
gitea.dooplex.hu/admin/felhom-controller:0.349.0 3ef3c22d7694 348MB
gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1 712055a90134 348MB
gitea.dooplex.hu/admin/felhom-controller:0.348.0-rc.1 1e0e09bce4b5 348MB
gitea.dooplex.hu/admin/felhom-controller:0.346.0-rc.1 1cccdf6b7c38 348MB
gitea.dooplex.hu/admin/felhom-controller:0.345.0-rc.1 fe0bd83a909b 348MB
cloudflare/cloudflared:2026.10.4 472341c39b02 64.6MB
traefik:v3.7.16 3733df53e74c 194MB
cloudflare/cloudflared:2026.10.3 1475624a6d23 64.6MB
gitea.dooplex.hu/admin/felhom-controller:0.318.0-rc.2 4f33e59f8ee3 411MB
gitea.dooplex.hu/admin/felhom-controller:0.317.0-rc.1 f6a498239f51 411MB
gitea.dooplex.hu/admin/felhom-controller:0.314.0-rc.1 80b7b25c4433 411MB
gitea.dooplex.hu/admin/felhom-controller:0.313.0-rc.4 698111af3f49 411MB
gitea.dooplex.hu/admin/felhom-controller:0.313.0-rc.3 3d4ee64e9216 411MB
gitea.dooplex.hu/admin/felhom-controller:0.313.0-rc.2 0b441db4244b 411MB
gitea.dooplex.hu/admin/felhom-controller:0.313.0-rc.1 3bbc4111dddc 411MB
gtstef/filebrowser:1.5.8-stable 0019084d4a6f 195MB
cloudflare/cloudflared:2026.9.3 87f0e97329b3 64.3MB
traefik:v3.7.13 f9309349d2c1 195MB
alpine:latest 320994c3b997 8.42MB
gtstef/filebrowser:1.5.6-stable 96e26edeefc3 195MB
gitea.dooplex.hu/admin/felhom-samba:1.1.0 8e21163a1646 103MB
hello-world:latest e2ac70e7319a 10.1kB
traefik/whoami:v1.10.3 aeef15490f2b 6.58MB
@@ -0,0 +1,21 @@
2026/11/09 12:12:54 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.313.0-rc.2 (0b441db4244b, 411MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:12:54 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.346.0-rc.1 (1cccdf6b7c38, 348MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:12:54 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.348.0-rc.1 (1e0e09bce4b5, 348MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:12:54 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.313.0-rc.1 (3bbc4111dddc, 411MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:12:54 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.313.0-rc.3 (3d4ee64e9216, 411MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:12:54 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.349.0 (3ef3c22d7694, 348MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:12:55 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.318.0-rc.2 (4f33e59f8ee3, 411MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:12:55 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.313.0-rc.4 (698111af3f49, 411MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:12:55 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1 (712055a90134, 348MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:12:55 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.314.0-rc.1 (80b7b25c4433, 411MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:12:55 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.317.0-rc.1 (f6a498239f51, 411MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:12:55 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.345.0-rc.1 (fe0bd83a909b, 348MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:12:55 [INFO] [stacks] controller image retention: pass over 14 controller image(s) — running 0.351.0-rc.1, previous "0.350.0" (by version order (no swap record names one present)), 12 candidate(s), 12 deleted, the rest kept
2026/11/09 12:12:56 [INFO] [stacks] infra image retention: deleted traefik:v3.7.13 (f9309349d2c1, 195MB) — older than the previous pin and no container uses it (decision 285)
2026/11/09 12:12:56 [INFO] [stacks] infra image retention: traefik — pass over 3 image(s), pinned v3.7.17, previous "3.7.16", 1 candidate(s), 1 deleted, the rest kept
2026/11/09 12:12:56 [INFO] [stacks] infra image retention: deleted cloudflare/cloudflared:2026.9.3 (87f0e97329b3, 64.3MB) — older than the previous pin and no container uses it (decision 285)
2026/11/09 12:12:56 [INFO] [stacks] infra image retention: cloudflare/cloudflared — pass over 3 image(s), pinned 2026.10.4, previous "2026.10.3", 1 candidate(s), 1 deleted, the rest kept
2026/11/09 12:12:56 [INFO] [stacks] infra image retention: gtstef/filebrowser — pass over 2 image(s), pinned 1.5.8-stable, previous "1.5.6-stable", 0 candidate(s), 0 deleted, the rest kept
2026/11/09 12:12:56 [INFO] [stacks] infra image retention: gitea.dooplex.hu/admin/felhom-samba — pass over 1 image(s), pinned 1.2.0, previous "1.1.0", 0 candidate(s), 0 deleted, the rest kept
[exited with code 0]
@@ -0,0 +1,12 @@
controller: gitea.dooplex.hu/admin/felhom-controller:0.351.0-rc.1 Up 3 minutes (healthy)
traefik: traefik:v3.7.17 sha256:a72cb2f4a2109f1ae52261c86d56b7d33a27dc5c4e211ce3c7835b772338b94f running version 3.7.17
traefik repo digest: traefik@sha256:68ae5fe5b64ca166704b746a9e8afcd385e36b3f569a5691401bf652d57b3748
containers: 10 total
not running/unhealthy: none
refusals since 2026-11-09T12:10:00Z: 0
ERROR lines since: 0
login page: 200
file manager: 200
route paste.enkicsifelhom.hu [privatebin]: 200
route paperless.enkicsifelhom.hu [paperless-webserver]: 302
route wiki.enkicsifelhom.hu [bookstack]: 302
@@ -0,0 +1,83 @@
=== tester-1 retention
2026/11/09 12:17:39 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.350.0 (1f32a260789a, 348MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:17:39 [INFO] [stacks] controller image retention: pass over 3 controller image(s) — running 0.351.0, previous "0.351.0-rc.1" (the self-update's record), 1 candidate(s), 1 deleted, the rest kept
2026/11/09 12:17:39 [INFO] [stacks] infra image retention: traefik — pass over 2 image(s), pinned v3.7.17, previous "3.7.16", 0 candidate(s), 0 deleted, the rest kept
2026/11/09 12:17:39 [INFO] [stacks] infra image retention: cloudflare/cloudflared — pass over 2 image(s), pinned 2026.10.4, previous "2026.10.3", 0 candidate(s), 0 deleted, the rest kept
2026/11/09 12:17:39 [INFO] [stacks] infra image retention: gtstef/filebrowser — pass over 2 image(s), pinned 1.5.8-stable, previous "1.5.6-stable", 0 candidate(s), 0 deleted, the rest kept
2026/11/09 12:17:39 [INFO] [stacks] infra image retention: gitea.dooplex.hu/admin/felhom-samba — pass over 1 image(s), pinned 1.2.0, previous "1.1.0", 0 candidate(s), 0 deleted, the rest kept
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 24 10 7.612GB 3.129GB (41%)
=== tester-1 walk
controller: gitea.dooplex.hu/admin/felhom-controller:0.351.0 Up 3 minutes (healthy)
traefik: traefik:v3.7.17 sha256:a72cb2f4a2109f1ae52261c86d56b7d33a27dc5c4e211ce3c7835b772338b94f running version 3.7.17
traefik repo digest: traefik@sha256:68ae5fe5b64ca166704b746a9e8afcd385e36b3f569a5691401bf652d57b3748
containers: 10 total
not running/unhealthy: none
refusals since 2026-11-09T12:14:27Z: 0
ERROR lines since: 0
login page: 200
file manager: 200
route paste.enkicsifelhom.hu [privatebin]: 200
route paperless.enkicsifelhom.hu [paperless-webserver]: 302
route wiki.enkicsifelhom.hu [bookstack]: 302
=== demo-hp retention
2026/11/09 12:17:40 controller_image_retention.go:200: [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.349.0 (3ef3c22d7694, 348MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:17:40 controller_image_retention.go:131: [INFO] [stacks] controller image retention: pass over 3 controller image(s) — running 0.351.0, previous "0.350.0" (the self-update's record), 1 candidate(s), 1 deleted, the rest kept
2026/11/09 12:17:40 infra_image_retention.go:94: [INFO] [stacks] infra image retention: traefik — pass over 2 image(s), pinned v3.7.17, previous "3.7.16", 0 candidate(s), 0 deleted, the rest kept
2026/11/09 12:17:40 infra_image_retention.go:94: [INFO] [stacks] infra image retention: cloudflare/cloudflared — pass over 2 image(s), pinned 2026.10.4, previous "2026.10.3", 0 candidate(s), 0 deleted, the rest kept
2026/11/09 12:17:40 infra_image_retention.go:94: [INFO] [stacks] infra image retention: gtstef/filebrowser — pass over 2 image(s), pinned 1.5.8-stable, previous "1.5.6-stable", 0 candidate(s), 0 deleted, the rest kept
2026/11/09 12:17:40 infra_image_retention.go:94: [INFO] [stacks] infra image retention: gitea.dooplex.hu/admin/felhom-samba — pass over 1 image(s), pinned 1.2.0, previous "", 0 candidate(s), 0 deleted, the rest kept
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 43 23 24.15GB 10.38GB (42%)
=== demo-hp walk
controller: gitea.dooplex.hu/admin/felhom-controller:0.351.0 Up 3 minutes (healthy)
traefik: traefik:v3.7.17 sha256:a72cb2f4a2109f1ae52261c86d56b7d33a27dc5c4e211ce3c7835b772338b94f running version 3.7.17
traefik repo digest: traefik@sha256:68ae5fe5b64ca166704b746a9e8afcd385e36b3f569a5691401bf652d57b3748
containers: 26 total
not running/unhealthy: none
refusals since 2026-11-09T12:14:27Z: 0
ERROR lines since: 0
login page: 200
file manager: 200
route arcade.enkisfelhom.hu [romm]: 401
route paste.enkisfelhom.hu [privatebin]: 200
route plex.enkisfelhom.hu [plex]: 401
route papir.enkisfelhom.hu [paperless-webserver]: 302
route gist.enkisfelhom.hu [opengist]: 302
route time.enkisfelhom.hu [kimai]: 302
route ha.enkisfelhom.hu [home-assistant]: 200
route docs.enkisfelhom.hu [docmost]: 200
route books.enkisfelhom.hu [calibre-web]: 302
route wiki.enkisfelhom.hu [bookstack]: 302
route pdf.enkisfelhom.hu [bentopdf]: 200
route travel.enkisfelhom.hu [adventurelog]: 200
route travel.enkisfelhom.hu [adventurelog-frontend]: 200
=== demo-felhom retention
2026/11/09 12:17:05 [INFO] [stacks] controller image retention: deleted gitea.dooplex.hu/admin/felhom-controller:0.349.0 (3ef3c22d7694, 348MB) — older than the previous controller and no container uses it (decision 56)
2026/11/09 12:17:05 [INFO] [stacks] controller image retention: pass over 3 controller image(s) — running 0.351.0, previous "0.350.0" (the self-update's record), 1 candidate(s), 1 deleted, the rest kept
2026/11/09 12:17:05 [INFO] [stacks] infra image retention: deleted traefik:v3.6.7 (91528df1690f, 186MB) — older than the previous pin and no container uses it (decision 285)
2026/11/09 12:17:05 [INFO] [stacks] infra image retention: deleted traefik:v3.7.13 (f9309349d2c1, 195MB) — older than the previous pin and no container uses it (decision 285)
2026/11/09 12:17:05 [INFO] [stacks] infra image retention: traefik — pass over 4 image(s), pinned v3.7.17, previous "3.7.16", 2 candidate(s), 2 deleted, the rest kept
2026/11/09 12:17:05 [INFO] [stacks] infra image retention: deleted cloudflare/cloudflared:2026.6.0 (7965361006df, 63.3MB) — older than the previous pin and no container uses it (decision 285)
2026/11/09 12:17:05 [INFO] [stacks] infra image retention: deleted cloudflare/cloudflared:2026.9.3 (87f0e97329b3, 64.3MB) — older than the previous pin and no container uses it (decision 285)
2026/11/09 12:17:05 [INFO] [stacks] infra image retention: cloudflare/cloudflared — pass over 4 image(s), pinned 2026.10.4, previous "2026.10.3", 2 candidate(s), 2 deleted, the rest kept
2026/11/09 12:17:05 [INFO] [stacks] infra image retention: deleted gtstef/filebrowser:1.3.3-stable (095fd20d87be, 215MB) — older than the previous pin and no container uses it (decision 285)
2026/11/09 12:17:05 [INFO] [stacks] infra image retention: gtstef/filebrowser — pass over 3 image(s), pinned 1.5.8-stable, previous "1.5.6-stable", 1 candidate(s), 1 deleted, the rest kept
2026/11/09 12:17:05 [INFO] [stacks] infra image retention: gitea.dooplex.hu/admin/felhom-samba — pass over 1 image(s), pinned 1.2.0, previous "1.1.0", 0 candidate(s), 0 deleted, the rest kept
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 16 9 2.183GB 555.2MB (25%)
=== demo-felhom walk
controller: gitea.dooplex.hu/admin/felhom-controller:0.351.0 Up 3 minutes (healthy)
traefik: traefik:v3.7.17 sha256:a72cb2f4a2109f1ae52261c86d56b7d33a27dc5c4e211ce3c7835b772338b94f running version 3.7.17
traefik repo digest: traefik@sha256:68ae5fe5b64ca166704b746a9e8afcd385e36b3f569a5691401bf652d57b3748
containers: 9 total
not running/unhealthy: none
refusals since 2026-11-09T12:14:27Z: 0
ERROR lines since: 0
login page: 200
file manager: 200
route sonarr.demo-felhom.eu [sonarr]: 401
route radarr.demo-felhom.eu [radarr]: 401
route torrent.demo-felhom.eu [qbittorrent]: 200
route prowlarr.demo-felhom.eu [prowlarr]: 401
route gist.demo-felhom.eu [opengist]: 302
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/env bash
# walk_release.sh <ssh-host> <vmid> <domain> <since RFC3339> — the release box walk, read-only, from inside the guest:
# the controller's image and health; Traefik's image and digest; every container up and not unhealthy; the controller log since
# the switch (refusals, errors); the dashboard login page and the file manager through the box's own proxy (GET only);
# every app route the box serves, through Traefik with its own Host (the public name is asked apart, from outside).
H=$1; V=$2; D=$3; SINCE=$4
ssh -o BatchMode=yes -o ConnectTimeout=15 "$H" "pct exec $V -- bash -s" <<EOF
echo "controller: \$(docker ps --filter name=^/felhom-controller\$ --format '{{.Image}} {{.Status}}')"
echo "traefik: \$(docker inspect traefik --format '{{.Config.Image}} {{.Image}} {{.State.Status}}') version \$(docker exec traefik traefik version | head -1 | awk '{print \$2}')"
echo "traefik repo digest: \$(docker image inspect \$(docker inspect traefik --format '{{.Image}}') --format '{{join .RepoDigests " "}}')"
echo "containers: \$(docker ps -a --format '{{.Names}}|{{.Status}}' | wc -l) total"
bad=\$(docker ps -a --format '{{.Names}}|{{.Status}}' | grep -E 'unhealthy|Restarting|Exited|Dead|Created' || true)
echo "not running/unhealthy: \${bad:-none}"
echo "refusals since \$(echo $SINCE): \$(docker logs --since $SINCE felhom-controller 2>&1 | grep -ciE 'REFUSED a catalog definition|app_definition_refused|definition refused')"
echo "ERROR lines since: \$(docker logs --since $SINCE felhom-controller 2>&1 | grep -c '\[ERROR\]')"
docker logs --since $SINCE felhom-controller 2>&1 | grep '\[ERROR\]' | cut -c1-220 | tail -5
echo "login page: \$(curl -sk -o /dev/null -w '%{http_code}' -H 'Host: felhom.$D' https://127.0.0.1/login)"
echo "file manager: \$(curl -sk -o /dev/null -w '%{http_code}' -H 'Host: files.$D' https://127.0.0.1/)"
for c in \$(docker ps --format '{{.Names}}'); do
docker inspect \$c --format '{{json .Config.Labels}}' | grep -o 'Host(\`[^\`]*\`)' | sed 's/Host(\`//; s/\`)//' | sort -u | while read -r h; do
echo "route \$h [\$c]: \$(curl -sk -m 20 -o /dev/null -w '%{http_code}' -H "Host: \$h" https://127.0.0.1/)"
done
done
EOF