Files
felhom.eu/documentation/controller-updates.md
T

1.8 KiB

Controller updates (agentic) — status

Day-0 controller updates work as of 2026-06-26 (Phase 1).

Phase 1 — customer self-update (latest-only) — SHIPPED

felhom-agent v0.42.0 + felhom-controller v0.85.0.

The controller's old in-container self-update (docker compose -f /opt/docker/felhom-controller/docker-compose.yml up -d) was dead in the LXC architecture — that path does not exist in the guest. Phase 1 replaces it:

  • The in-guest controller pulls the target image (its existing registry token, shared docker socket).
  • The host agent swaps it: POST /controller/swap rewrites /etc/felhom-controller-image, restarts felhom-controller-bootstrap.service, verifies the new controller is healthy, and rolls back to the previous image if not. The agent is external to the controller container, so it survives the controller being killed mid-swap — which the controller cannot do to itself.
  • The customer "Frissítés telepítése" button drives it (latest-only); the page polls and reloads.

Live-validated on demo 9201: agent-primitive swap 0.77 → 0.84, rollback on a broken image (reverted to 0.84, guest never left without a controller), and the real UI button 0.85.0 → 0.85.1 (in-guest pull → agent swap → "Sikeres"). See felhom-agent/REPORT.md + felhom-controller/REPORT.md.

Phase 2 — operator fleet control — NEXT (not started)

  • Hub per-customer version floor (with a default global floor).
  • Operator desired-version push across the fleet (hub-driven, not just the customer's latest-only button).

Independent follow-up — golden freshness

The golden still bakes controller 0.77.0, so a fresh Day-0 provision starts at 0.77.0 and then needs an update. A golden rebuild at the current controller is wanted so new provisions start current (independent of this feature).