0.4.0 - 2026-08-04
Download Atelier Manager
The desktop app installs, updates, and backs up your Atelier site — a double-click app, no terminal needed. Pick the build for your system:
| Platform | Download | Which one? |
|---|---|---|
| macOS | Atelier Manager (.dmg) | One file for any Mac — Apple Silicon or Intel. |
| Linux | .AppImage · .deb · .rpm | AppImage runs on any distro; .deb for Debian/Ubuntu, .rpm for Fedora/RHEL. |
| Windows | .exe · .msi | Unsigned for now — if SmartScreen warns, choose More info → Run anyway. |
New here? Full walkthrough at aincient-labs.com. You'll also need Docker (OrbStack or Docker Desktop) running.
Release Notes
Added
app updatesteps through intermediate versions when one hop can't get there. A release
can be unable to migrate arbitrarily old state: the update that uninstalls a module has to run
while that module is still present, so the release that finally drops it can only migrate sites
that already ran it. The appliance now declares the oldest version it can migrate from and
refuses anything older before touching the database — which is safe, but on its own leaves you
to work the route out by hand.atelier app updatereads those declarations from the registry, pulling nothing (the OCI
labeldev.atelier.upgrade.min-from), walks them backwards from the target until it reaches a
version your install satisfies, and shows the route —from 0.1.1 → 0.3.0 → 0.4.0, with the
reason each waypoint is there — before anything happens. Confirm and it walks the whole thing;
-yskips the prompt.- A full snapshot is taken before the first hop, and each hop pulls, migrates and is
health-checked before the next one starts (it has to be: the floor is checked against the
version the site recorded on its last successful converge). A hop that doesn't come up stops
the route and says where it stopped, rather than pressing on into a refusal. app check-updatereports the same route, so a five-minute upgrade is visible before you
start it rather than during. Also in the GUI: Update asks first when the route has more
than one step, and Settings → Updates says how many.- New
app update --to X.Y.Zstops at a specific version. It leaves the install pinned to
that version — said out loud, with the command to resume following releases. - Reading either the registry or your installed image can fail, and neither is treated as a
reason to block an update: the plan falls back to one direct hop and explains that the route
wasn't verified. The appliance's own refusal is the safety net, and it costs no data.
- Update channels: new installs follow released versions, and you can choose. The
appliance image publishes two moving tags —:latest, retagged on every release, and
:edge, rebuilt on every merge to main — but the manager only ever pointed at:edge,
because when it was written there were no releases to point at. That is no longer true, so
the default is now stable (:latest): released versions only.atelier app channelsays which channel you're on and what the alternative is;
atelier app channel stable|edgeswitches, and--nowpulls and converges immediately
instead of waiting for your next update.atelier app install --channel stable|edgepicks one at install time.--imagestill
pins one exact image (and is now reported as such: a pinned image can never receive an
update, whichcheck-update's cheerful "you're on the latest" used to hide).app statusanddoctorboth name the channel — a pasted report now answers "why hasn't
this updated" and "why did this change under me" without a second command.- In the GUI: Settings → Your installation → Updates.
- Existing installs are moved onto released versions, once. An install still carrying the
old default:edgenever chose unreleased builds, soinstall/updatemove it to
:latest, say so, and tell you how to go back. It takes a full snapshot (database + files)
first: edge can be ahead of the newest release and a Drupal database only migrates forward,
so this direction is the risky one. A deliberate--channel edge, an--imagepin, or a
channel you picked yourself is recorded in.env(AINCIENT_CHANNEL) and left alone — the
move can only ever happen to an install that never expressed a preference, and only once.
Fixed
- Installs made before the appliance's image was renamed can find updates again. The public
image moved fromghcr.io/aincient-labs/atelierto…/atelier-cmswhen the repository behind
it was renamed, and the old name does not merely go stale — it stops answering entirely. Anything
installed by manager ≤ v0.2.0 (or the installer of that era) has the retired name written into
its.env, and nothing re-reads the default, so every update check on those installs failed
permanently while the site itself carried on running fine. Reported as
#1; the earlier fix there made the failure
legible ("Couldn't reach the registry… 403 Forbidden") but not survivable.installandupdatenow rewrite the retired name to the current one, keeping whatever tag
or digest it named, and say so. Unlike the channel move this is not guarded by your recorded
channel: a repository that no longer answers is a dead pointer, not a preference. An install
that also predates channels is then moved onto stable by the existing migration, in the same
run.check-updateasks the registry about the name an update would actually come from, while
still asking your machine about the image it is actually running — so the check works before
any repair has been applied, rather than reporting "install Atelier first" to someone whose
site is up.doctorreports the retired name as a warning (the site runs, which is why this goes
unnoticed) anddoctor --fixrepairs it without an update having to be attempted first.
Install atelier 0.4.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aincient-labs/manager/releases/download/v0.4.0/atelier-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/aincient-labs/manager/releases/download/v0.4.0/atelier-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install aincient-labs/tap/atelierDownload atelier 0.4.0
| File | Platform | Checksum |
|---|---|---|
| atelier-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| atelier-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| atelier-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| atelier-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| atelier-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |