arcave 0.1.0-alpha.4
arcave 0.1.0-alpha.4 was released on 2026-11-08. Run arcave on Podman, undo a rollback, and skip the safety snapshot when a rollback has to be fast. arcave now drives compose 5.7.
warning
This is still an alpha. Commands, flags, output, config keys and the storage format may change between alpha releases with no migration path. Savepoints taken with alpha.3 may not be readable by alpha.4. Do not use it in production yet.
Breaking changes
- A rollback keeps its safety snapshot. Before, a rollback that succeeded deleted it. Now it is the rollback's undo:
arcave rollback <id>, with the id the result names insafety_snapshot(wassafety_snapshot_kept), puts back the state the rollback replaced. Safety snapshots pile up until you runarcave gc, which keeps the newestgc.safety_snapshots.retain_recentof each compose project, 1 by default, and deletes the rest;--kind safety-snapshotsnarrows a run to them. Onfullcopyeach one is a full copy of the volumes, so run gc after a rollback or on a schedule.--progress jsonno longer reports avolume.removestep. - gc removes an unused
arcave/…layer tag right away. The one-hour grace is gone, and with itgc.restored_layer_grace,--restored-layer-graceand the MCPgcargumentrestored_layer_grace. A config that still sets the key is refused. docker.tls_verifyis gone. Any ofdocker.cert_path,ca_file,cert_fileorkey_fileturns TLS on and verifies the daemon's certificate;docker.skip_tls_verifyturns it on without verifying. A config that still setstls_verifyis refused.
New
- Podman. Rootless and rootful Podman, local or behind TLS: volumes, container files and images are all captured and put back. arcave does not read
CONTAINER_HOST, so pointDOCKER_HOSTat Podman's socket, as Connecting to Podman shows. - Roll back without a safety snapshot.
arcave rollback --safety-snapshot=false,rollback.safety_snapshot: falsein the config orsafety_snapshot: falsein the MCProllbacktool skips capturing the live project. It is faster, most of all on large volumes, but nothing can undo the rollback, and after a failure the project stays as it is until you run a rollback again.
Changed
- compose 5.7 (was 2.40), reached through the moby client.
- Dependencies are past 24 published security advisories. Eleven went with
github.com/docker/docker,compose/v2and the older docker/cli, buildkit, go-archive and distribution; the rest with updates of echo, containerd, klauspost/compress, grpc, moby/sys/user and the OpenTelemetry exporter.
Fixes
- A rollback no longer recreates a named volume it does not restore. When a volume's driver, options or labels changed since the savepoint, compose asks before recreating it, and arcave said yes to every volume, so the data of one it does not capture was lost. Now such a volume keeps its settings and data, and the rollback warns with its name.
- The container of a compose
pre_starthook or of a provider is no longer taken for a replica of its service. DOCKER_TLS_VERIFYandDOCKER_CERT_PATHnow apply beside atcp://DOCKER_HOST. Before, arcave ignored them.savepoint listandsavepoint removeno longer contact the daemon underbackends.cdc.transport: tcpeither.
Good to know before you rely on it
- On Podman, a rollback does not put back what Podman does not store:
sysctls, a fixedipv4_address,domainnameand a few more. A project withlinks:does not run on Podman at all. - A savepoint taken on Docker is not meant to be rolled back on Podman, or the other way round. arcave checks nothing, and such a rollback can fail after the project has stopped.
- A gc on another machine sharing the store doesn't see a rollback interrupted on this one, and may delete the safety snapshot its recovery needs. Recover first.
- Lose the encryption key and the store is lost. There is no recovery key.
- The services stop during every savepoint and rollback, for longer when the volumes are large.
- After a rollback, running
docker compose upby hand recreates the containers from your compose file, and the restored container files are lost. Volume data stays. compose 5.7 does not change that. - On a store shared by several machines, run
arcave gcwithout--dry-runonly while no other machine works in the same session. In rare cases two machines claiming the store lock at the same moment both believe they hold it, and gc could then delete data another machine's savepoint has just reused. - SFTP storage does not check the server's host key yet.
The full list is in Limitations.