Container orchestration over CRI, with service images built straight from
Nix closures instead of Dockerfiles.
nix-compose speaks CRI gRPC directly to containerd or CRI-O — no daemon,
no compose file, nothing shelling out to another tool. A service can name a
package instead of a registry image, and its image is built from that
package's Nix closure and imported into the runtime: no Dockerfile, nothing
pushed or pulled.
Install
nix run github:systemstart/nix-compose -- up -d
# or
go install github.com/systemstart/nix-compose/cmd/nix-compose@latestOr download an archive below. Linux only; needs containerd or CRI-O.
Run nix-compose doctor first — it checks every prerequisite and each
finding carries its fix.
Before you adopt it
Read docs/limitations.md
— a deliberately complete account of what does not work, not a marketing
document. The changes in this release are listed below.
Changelog
Fixes
- fix: use stdenv.hostPlatform.isLinux
- fix(release): stop discarding the git-cliff notes, and assert they land
Other changes
- build(release): generate release notes with git-cliff
- ci: stop the VM image builds gating releases
- ci: validate the release config on every push
- build: add a diff-closures target to show what a lock bump changes
- build: add a pre-push hook rejecting unsigned commits
- build: pin the Go toolchain to 1.27.0 from go-overlay
- ci(renovate): drop the dead postUpgradeTasks and track the Go pin
- ci(renovate): explain the go-overlay lock coupling on Go pin PRs
- build(deps): pin nix-oci to v0.5.0
While the major version is 0, the nix-compose.yaml schema and the CLI
surface may still change between minor releases.
Archives are attested with build provenance; verify with
gh attestation verify <archive> --repo systemstart/nix-compose.