Skip to content

Installation

This guide covers different ways to install Capsailer.

Pre-built Binaries

The easiest way to install Capsailer is to download a pre-built release from the GitHub Releases page.

Linux (amd64)

# Download the binary
curl -Lo capsailer.tar.gz https://github.com/capsailer/capsailer-cli/releases/latest/download/capsailer-linux-amd64.tar.gz
tar -xzf capsailer.tar.gz
chmod +x capsailer
sudo mv capsailer /usr/local/bin/

Linux (arm64)

# Download the binary
curl -Lo capsailer.tar.gz https://github.com/capsailer/capsailer-cli/releases/latest/download/capsailer-linux-arm64.tar.gz
tar -xzf capsailer.tar.gz
chmod +x capsailer
sudo mv capsailer /usr/local/bin/

macOS (Intel)

# Download the binary
curl -Lo capsailer.tar.gz https://github.com/capsailer/capsailer-cli/releases/latest/download/capsailer-darwin-amd64.tar.gz
tar -xzf capsailer.tar.gz
chmod +x capsailer
sudo mv capsailer /usr/local/bin/

macOS (Apple Silicon)

# Download the binary
curl -Lo capsailer.tar.gz https://github.com/capsailer/capsailer-cli/releases/latest/download/capsailer-darwin-arm64.tar.gz
tar -xzf capsailer.tar.gz
chmod +x capsailer
sudo mv capsailer /usr/local/bin/

Windows

  1. Download the Windows binary from the GitHub Releases page
  2. Extract the ZIP file
  3. Add the extracted directory to your PATH

Building from Source

You need Go 1.26 or later.

git clone https://github.com/capsailer/capsailer-cli.git
cd capsailer-cli
go build -o capsailer ./cmd/capsailer
sudo mv capsailer /usr/local/bin/

Or install straight from the module proxy:

go install github.com/capsailer/capsailer-cli/cmd/capsailer@latest

Verifying Installation

capsailer --version

You should see the installed version.

What Else You Need

Capsailer is a single binary. Which other tools you need depends on what you do:

Task Needs
init, build Internet access. Registry credentials are taken from ~/.docker/config.json
push --external-registry Network access to the registry. No other tools
registry, and push to the built-in registry kubectl, configured for your cluster
registry in an air-gapped cluster docker, only to load the registry:2 image from a local bundle
push --image A running local Docker daemon (read through its API, the docker command is not used)

If you only push to a registry you already have, the capsailer binary is all you need on the air-gapped side.

Kubernetes Access

Commands that talk to a cluster use kubectl, so they use your current context:

kubectl config current-context

To use a different kubeconfig, pass --kubeconfig to registry or push:

capsailer registry --kubeconfig /path/to/kubeconfig