Overview
Overview
Usage
Usage
Examples
Examples
GitHub
Installation

From a GitHub release

Install a prebuilt whoosh binary (Linux amd64/arm64, macOS arm64) or pull the container image.

Every release publishes a prebuilt .tar.gz per platform plus a checksums.sha256 file - no toolchain needed. Your target hosts still need git, tar, a POSIX shell, and SSH (see Requirements).

Each release (v{VERSION}) ships two flavors per platform:

  • whoosh - the default binary with all in-tree plugins (aws, slack, rbenv + the core set)
  • whoosh-core - a light binary with only the core plugins
PlatformDefault archive (all plugins)Core archive (core plugins only)
Linux x86-64 - linux_amd64whoosh_v{VERSION}_linux_amd64.tar.gzwhoosh-core_v{VERSION}_linux_amd64.tar.gz
Linux ARM64 - linux_arm64whoosh_v{VERSION}_linux_arm64.tar.gzwhoosh-core_v{VERSION}_linux_arm64.tar.gz
macOS Apple Silicon - darwin_arm64whoosh_v{VERSION}_darwin_arm64.tar.gzwhoosh-core_v{VERSION}_darwin_arm64.tar.gz

The binary inside both archives is named whoosh - confirm what a binary contains with whoosh plugins. Intel macOS (darwin_amd64) isn’t prebuilt - build from source there.

Download and install

Set VERSION to the release (without the leading v) and PLATFORM to your OS/arch:

VERSION=1.0.0
PLATFORM=darwin_arm64   # or: linux_amd64 | linux_arm64

base="https://github.com/YouSysAdmin/whoosh/releases/download/v${VERSION}"
curl -fsSL -o whoosh.tar.gz "${base}/whoosh_v${VERSION}_${PLATFORM}.tar.gz"
curl -fsSL -O "${base}/checksums.sha256"

# verify the download (Linux: sha256sum - macOS: shasum -a 256)
sha256sum --ignore-missing -c checksums.sha256 2>/dev/null \
  || shasum -a 256 -c checksums.sha256 --ignore-missing

tar -xzf whoosh.tar.gz whoosh
install -m 0755 whoosh /usr/local/bin/whoosh   # or anywhere on $PATH

For the core flavor, swap the whoosh_ prefix for whoosh-core_ in the archive name.

Homebrew

The default (all plugins) binary is published to the YouSysAdmin/homebrew-apps tap for macOS (Apple Silicon) and Linux:

brew install yousysadmin/apps/whoosh

Linux packages

Each release also attaches deb, rpm, and apk packages of the default (all plugins) binary, named whoosh_v{VERSION}_linux_<arch>.<format>:

dpkg -i whoosh_v${VERSION}_linux_amd64.deb        # Debian/Ubuntu
rpm -i whoosh_v${VERSION}_linux_amd64.rpm         # RHEL/Fedora
apk add --allow-untrusted whoosh_v${VERSION}_linux_amd64.apk   # Alpine

Need a smaller binary or a custom plugin set?

The whoosh-core_* archives skip the separate plugin modules (the AWS SDK alone is ~57 MB of source), leaving only the core plugins - a good fit for simple deploys.

For a third-party or private plugin, or to combine a custom set on top of the core, compile a binary with whoosh build:

# `whoosh build` ships in every whoosh binary
whoosh build --with github.com/acme/[email protected] -o ./whoosh

See With custom plugins for details. A Deployfile that references a plugin not built into the binary fails fast with unknown plugin "aws" (not built into this binary).

Container image

Multi-arch images (amd64 + arm64) are published to GitHub Container Registry:

docker pull ghcr.io/yousysadmin/whoosh:latest        # all plugins - or a specific tag, e.g. :1.0.0
docker pull ghcr.io/yousysadmin/whoosh:latest-core   # core plugins only, e.g. :1.0.0-core

# mount your project (the Deployfile lives in /work) and your SSH agent:
docker run --rm -it \
  -v "$PWD:/work" \
  -v "$SSH_AUTH_SOCK:/ssh-agent" -e SSH_AUTH_SOCK=/ssh-agent \
  ghcr.io/yousysadmin/whoosh:latest production deploy

The image is Alpine-based and includes git, tar, an SSH client, and CA certificates, so it works for both remote deploys and local mode. :latest packages the default (all plugins) binary, :latest-core the core one. For a custom plugin set in a container, build an image FROM your own custom-built binary (see With custom plugins).

Verify

whoosh version
whoosh plugins      # which plugins are compiled in
whoosh --help