Skip to content

Installing `cloacinactl`

cloacinactl is the operator + developer CLI for Cloacina. It bundles the daemon as a subcommand (cloacinactl daemon), so a single install gives you both.

The installer below installs only the CLI. Embedding the engine in your own application needs no installer at all — it’s a dependency: see Rust users and Python users below.

Terminal window
curl -fsSL https://get.cloacina.dev/install.sh | bash

That downloads the latest release tarball for your OS + arch from GitHub Releases, verifies its SHA256, and installs the binary to ~/.cloacina/bin. If that directory isn’t on your $PATH, the installer prints the line to add to your shell rc.

Terminal window
curl -fsSL https://get.cloacina.dev/install.sh | bash -s -- --version v0.12.0

Use a specific tag from the releases page. Any release that has the binary uploaded for your OS/arch will work.

Terminal window
curl -fsSL https://get.cloacina.dev/install.sh | bash -s -- --prefix /usr/local

Installs to /usr/local/bin. Uses sudo if the directory isn’t writable by the current user.

Flag Default Notes
--version vX.Y.Z latest release Pin to a specific tag
--prefix DIR $HOME/.cloacina Install root; binary lands in DIR/bin
--quiet off Suppress informational output

Set CLOACINA_REPO=owner/repo to install from a fork.

Cross-compiled binaries are uploaded on every release tag for:

  • x86_64-unknown-linux-gnu
  • aarch64-unknown-linux-gnu
  • aarch64-apple-darwin

Intel macOS (x86_64-apple-darwin) binaries are no longer built — the installer exits with a clear error on that platform; use Building from source instead. Windows is not currently supported. If you need it, file an issue.

Terminal window
cloacinactl --version
cloacinactl daemon --help

The --version output should match the release tag you installed.

Re-run the same one-liner. The installer is idempotent — it overwrites the binary in place. To pin a new version, pass --version.

Terminal window
rm ~/.cloacina/bin/cloacinactl
# or for a system-wide install:
sudo rm /usr/local/bin/cloacinactl

Then remove the PATH-add line from your shell rc if you added one.

If your platform isn’t covered above, install with cargo:

Terminal window
cargo install --git https://github.com/colliery-io/cloacina cloacinactl

This builds from the main branch tip. Pass --tag vX.Y.Z to pin a release. cloacinactl is also published to crates.io, so cargo install cloacinactl works too.

The engine is a crate — no CLI required. Add it to your Cargo.toml:

[dependencies]
cloacina = "0.12"
cloacina-workflow = "0.12" # macro-generated task code references this crate directly
tokio = { version = "1", features = ["full"] }
serde_json = "1.0"

Both database backends (PostgreSQL and SQLite) are compiled in by default and selected at runtime by connection URL. See the embedded quick start for usage.

The Python bindings ship as a wheel — no separate installer needed:

Terminal window
pip install cloaca

The wheel bundles both database backends; the one you use is chosen at runtime by connection URL. Wheels are published for Linux and macOS and support CPython 3.9+. See the embedded quick start for usage.

The server is published as a multi-arch container image (linux/amd64 + linux/arm64) on every release, tagged X.Y.Z, X.Y, and latest:

Terminal window
docker pull ghcr.io/colliery-io/cloacina-server:0.12.0

See Running the server image for the full container deploy walkthrough — environment variables, signature enforcement, log retention.

A Helm chart with an embedded local Postgres subchart ships in-tree:

Terminal window
helm install cloacina-server ./charts/cloacina-server

See Deploying to Kubernetes for production values, the embedded Postgres subchart story, and the operator-flag reference.