For a while, the way Rackula got released was: someone pushed a tag and hoped. Nobody deployed
the LXC install on an actual container first. They just believed in it. That is how v26.6.2
shipped an install that could not start on an unprivileged container, which is the default. We
found the guy who did that. It was me. @ggfevans.
So now a release does not ship until it proves it works. Every release goes through a gate: it
builds the images, brings them up under Docker and confirms they are healthy, then installs the
real thing onto a throwaway Proxmox container and smoke-tests it. If any of that fails, nothing
gets promoted and the last good release stays exactly where it is. Nobody pushes to prod and
hopes anymore. Not even @ggfevans. Especially not @ggfevans.
And it is only getting stricter. End-to-end browser testing is in the works, so before long a
release will have to survive being clicked through by a robot before it is allowed out. The
walls are closing in. On @ggfevans.
There was also a thing watching how you used the app. Umami. Counting things. It is gone now:
out of the code, out of the deploy config, out of the docs. Nobody is keeping track of you in
here. It is just you and the rack.
Changed
- Release pipeline is now gated: stage as a prerelease, validate on real targets (Docker compose health plus an LXC smoke test on a throwaway unprivileged container), and promote only if every gate passes. A failed gate promotes nothing, so
:latestand prod always point at the last known-good release (#1977)
Added
- Release-free dev build mode for LXC payloads, so the install can be tested without cutting a release (#1959)
- Reusable LXC smoke-test with a Proxmox API driver, used by the release gate to deploy and verify on a real container (#1967, #1982)
Fixed
- LXC deploy: unprivileged containers now work correctly; Bun runtime, nginx, systemd hardening, and data-safe update paths are all compatible with unprivileged CTs (#1961, closes #1969)
- LXC community-scripts: aligned with ProxmoxVED conventions and hardened build-lxc checkout (#1953, PR #1966)
- LXC install: unzip is now installed before use and the Bun installer fetch is more resilient (#1933, PR #1934)
- Accessibility: autofocus warning on layout name input resolved (#1896, PR #1963)
- Even spacing between toolbar button clusters (#1962)
- Cross-rack device moves now re-key placement images correctly so images are not lost after a move (#1478)
- CI: deploy-dev path filter repaired so pushes to main trigger the dev deployment again (#1924, PR #1925)