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
- Download the Windows binary from the GitHub Releases page
- Extract the ZIP file
- 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:
Verifying Installation
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:
To use a different kubeconfig, pass --kubeconfig to registry or push: