13eedb1a83
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
3.4 KiB
3.4 KiB
REPORT — sparkyfitness finalized: image-inspected healthchecks + probe-container naming (2026-07-03)
Class: template finalization + live validation (no version scheme; push = deploy).
Baseline: main @ 15cdf7b → c7490f7. Companion: the NEW felhom-app-catalog skill
(felhom.eu — this task was its first worked example; see that repo's REPORT for the skill half).
What changed
templates/sparkyfitness/docker-compose.yml:- Both
VERIFY-BEFORE-FINALIZEmarkers RESOLVED by inspecting the actual images on the demo box (the skill's core rule — never guess):- frontend
codewithcj/sparkyfitness:v0.17.2(Alpine/nginx): has/usr/bin/wget(and curl; no node/python3) → the drafted BusyBox-wget--spider :80/probe kept, marker replaced with the inspection provenance. - server
codewithcj/sparkyfitness_server:v0.17.2: has node v24.17.0 (and wget+curl) → node-exec GET:3010/api/healthkept (checks the real status, not mere reachability);/api/healthproven live:{"status":"UP"}.
- frontend
- Frontend
container_namerenamedsparkyfitness-frontend→sparkyfitness: the controller-side probe dials the container named exactly like the stack (fallback = FIRST prefix match — could be the DB). New REUSE.md §2 row records the convention. - Both image tags reconfirmed to resolve (
docker manifest inspect).
- Both
templates/sparkyfitness/.felhom.yml: mem-sum arithmetic comment added (db 512 + server 1024 + frontend 256 = 1792M — matches the existing value; nothing corrected).REUSE.md§2: NEW "Probe-container naming" row (verified againstfelhom-controller/internal/stacks/healthprobe.gofindProbeContainer).
Live validation (demo guest 9201; method stated per claim)
SparkyFitness was already running from the draft (deployed 4 h earlier, 3× healthy). Applying the finalized template used the REAL dashboard UI via the browser bridge: "Sablonok frissítése" (sync confirmed by the guest's stacks file gaining the rename, zero VERIFY markers), then the card's "Frissítés". Result:
- Only the renamed frontend was recreated —
sparkyfitness … Up 21 seconds (healthy); server + db stayedUp 4 hours→ the twodata_keysecrets (API_ENCRYPTION_KEY, BETTER_AUTH_SECRET) were NOT regenerated (deployed app.yaml/.env untouched, exactly the data_key contract). - Docker health: 3/3 healthy. Controller-side probe (via
GET /api/stacks/sparkyfitness, the same data the UI polls):healthy: true — http :80/ → 200 (6ms)against the renamed container. sparky.demo-felhom.euanswers 200 via Traefik in-guest (Host-header curl).- Kept deployed on demo (7.3 option A — expendable box, real catalog app). The data_key secrets exist only in the deployed app.yaml, never committed.
Notes / observations (not acted on)
- Pre-rename, the controller probe was ALSO green — the prefix fallback happened to pick the frontend. The rename converts luck into the deterministic convention.
paperless-ngx's container names match neither the exact nor the prefix rule of its stack name — its controller-side probe likely never runs. Candidate follow-up, not touched.- BusyBox
ashcommand -vsilently ignores all but its first argument — inspect one tool per run (now in the skill). - App-count drift recorded in the felhom.eu REPORT (53 templates vs website "45+" / category sum 49).