Skip to content

0.4.0 - 2026-08-04

Choose a tag to compare

@github-actions github-actions released this 04 Aug 17:19

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 update steps 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 update reads those declarations from the registry, pulling nothing (the OCI
      label dev.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;
      -y skips 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-update reports 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.Z stops 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 channel says which channel you're on and what the alternative is;
      atelier app channel stable|edge switches, and --now pulls and converges immediately
      instead of waiting for your next update.
    • atelier app install --channel stable|edge picks one at install time. --image still
      pins one exact image (and is now reported as such: a pinned image can never receive an
      update, which check-update's cheerful "you're on the latest" used to hide).
    • app status and doctor both 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 :edge never chose unreleased builds, so install/update move 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 --image pin, 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 from ghcr.io/aincient-labs/atelier to …/atelier-cms when 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.
    • install and update now 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-update asks 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.
    • doctor reports the retired name as a warning (the site runs, which is why this goes
      unnoticed) and doctor --fix repairs 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 | sh

Install 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/atelier

Download 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