Skip to content

Installation

Rocky is a single static binary. There is no separate runtime to install, and no package manager to configure. Pick your platform below.

Terminal window
curl -fsSL https://raw.githubusercontent.com/rocky-data/rocky/main/engine/install.sh | bash

The script installs to ~/.local/bin/rocky and verifies the checksums. Make sure ~/.local/bin is on your PATH:

Terminal window
export PATH="$HOME/.local/bin:$PATH"

The installer downloads a published engine release. Merged changes on main can arrive before the next release. Check rocky --version and the release notes before relying on a new capability. For a source build, also record git rev-parse HEAD. Different source revisions can print the same version before a release bump.

The install script takes these settings, both optional.

Install to a custom directory:

Terminal window
curl -fsSL https://raw.githubusercontent.com/rocky-data/rocky/main/engine/install.sh \
| ROCKY_INSTALL_DIR=/usr/local/bin bash

Pin a specific version:

Terminal window
curl -fsSL https://raw.githubusercontent.com/rocky-data/rocky/main/engine/install.sh | bash -s -- <version>

Prefer to download the archive yourself? Take it from the releases page:

Platform Archive
macOS (Apple Silicon) rocky-aarch64-apple-darwin.tar.gz
macOS (Intel) rocky-x86_64-apple-darwin.tar.gz
Linux x86_64 rocky-x86_64-unknown-linux-gnu.tar.gz
Linux ARM64 rocky-aarch64-unknown-linux-gnu.tar.gz
Windows x86_64 rocky-x86_64-pc-windows-msvc.zip

Every engine release also publishes ghcr.io/rocky-data/rocky, for linux/amd64 and linux/arm64. The image is the CLI, so any command runs the same way:

Terminal window
docker run --rm -v "$PWD:/data" ghcr.io/rocky-data/rocky:latest --version

Run the Container Image covers the server, the volume, the token, the health probe, and upgrades.

Requires Rust 1.88+ (edition 2024).

Terminal window
git clone https://github.com/rocky-data/rocky.git
cd rocky/engine
cargo build --release
# binary at target/release/rocky

A plain source build has no browser UI, so rocky serve --ui refuses to start. The release binaries and the container image include it. To embed it in a source build, build the page first. This needs Node.js:

Terminal window
cd ui && npm ci && npm run build && cd ..
cargo build --release --features ui

Confirm the binary is on your PATH and prints a version:

Terminal window
rocky --version

Next, use the Playground for a local DuckDB transformation workflow without warehouse credentials. The Quickstart configures a separate replication workflow with external services.

Share your first-run experience if you complete the workflow or stop along the way.