Vilice is a proof of concept. Run it on a box you can afford to lose.

vilice update

Deploy a new image, keeping everything else.

operate recorded before it runs

vilice update --help
vilice update — Deploy a new image, keeping everything else

Deploys the app's saved spec again with a new image — env, secrets,
volumes and hostnames are the ones the box already holds, so none is
sent. It is rollback pointed forward: the same health-check-then-flip
path, and rollback afterwards puts the old image back.

It runs in the background and answers at once, because the caller may
be the app being replaced. status --json shows how it went, under the
app's "update"; the unit's output is in the _vilice user's journal.

Usage:
  vilice update <app> --image <ref@sha256:…>

Flags:
  --image <ref>  The new image, pinned by digest: ref@sha256:… Required.

Examples:
  Move the console to a new build; its secrets stay where they are.
    vilice update console --image zot.example.com/console@sha256:ab12…

Scope:  operate — reachable by an operate or grant key
Record: written before the command runs