Build & install
Build Cellar binaries, install systemd units, and download GitHub Releases
curl installer
curl -fsSL https://cellar.prodioslabs.in/install.sh | bashInstall v0.5.0
Previous versions do not use microsandbox. Pin the installer:
curl -fsSL https://cellar.prodioslabs.in/install.sh | CELLAR_VERSION=v0.5.0 bashThe installer detects linux / darwin and amd64 / arm64 (macOS is Apple Silicon / arm64 only — Intel Macs are not supported), verifies archives against checksums.txt, and always installs cellar + cellard (plus matching systemd units and sysusers on Linux; LaunchAgents under ~/Library/LaunchAgents on macOS with a default prefix of ~/.local). It uses sudo when needed, but does not enable or start the services.
cellar-gateway is optional. On a TTY with no flag, the installer asks Install cellar-gateway? [y/N]. Without a TTY it skips the gateway. Set the choice non-interactively:
curl -fsSL https://cellar.prodioslabs.in/install.sh | bash -s -- --install-cellar-gateway true
curl -fsSL https://cellar.prodioslabs.in/install.sh | bash -s -- --install-cellar-gateway false
# or:
curl -fsSL https://cellar.prodioslabs.in/install.sh | INSTALL_CELLAR_GATEWAY=true bashAdvanced: CELLAR_COMPONENTS (comma/space list) fully overrides the component set and skips the gateway flag/prompt.
To set a prefix:
curl -fsSL https://cellar.prodioslabs.in/install.sh | CELLAR_VERSION=v0.5.0 CELLAR_PREFIX=/usr/local bashGitHub Releases
Tag vX.Y.Z (or a SemVer prerelease such as vX.Y.Z-rc.1) to publish Linux amd64 / arm64 and macOS arm64 bundles.
Download URLs follow a stable layout:
https://github.com/prodioslabs/cellar/releases/download/vX.Y.Z/cellar_X.Y.Z_linux_amd64.tar.gz
https://github.com/prodioslabs/cellar/releases/download/vX.Y.Z/cellar_X.Y.Z_linux_arm64.tar.gz
https://github.com/prodioslabs/cellar/releases/download/vX.Y.Z/cellar_X.Y.Z_darwin_arm64.tar.gz
https://github.com/prodioslabs/cellar/releases/download/vX.Y.Z/checksums.txtEach tarball contains cellar, cellard, cellar-gateway, LICENSE, README.md, and contrib/.
From source
make build # → bin/cellard, bin/cellar, bin/cellar-gateway
# or: make cellard / make cellar / make cellar-gateway
sudo make install # Linux: binaries → /usr/local/bin, plus systemd units + sysusers from contrib/
make install # macOS: binaries → ~/.local/bin (no sudo), LaunchAgents under ~/Library/LaunchAgentsRequires Go 1.26+. cellard is built with CGO_ENABLED=1 (microsandbox FFI / KVM). Hosts need /dev/kvm (Linux) or Virtualization.framework (macOS). make install places the three binaries next to each other. It also installs:
| Source | Destination (Linux) |
|---|---|
contrib/systemd/cellard.service | /usr/lib/systemd/system/cellard.service |
contrib/systemd/cellar-gateway.service | /usr/lib/systemd/system/cellar-gateway.service |
contrib/systemd/cellar.sysusers | /usr/lib/sysusers.d/cellar.conf |
| Source | Destination (macOS) |
|---|---|
| host binaries | ~/.local/bin/ |
contrib/launchd/com.prodioslabs.cellard.plist | ~/Library/LaunchAgents/com.prodioslabs.cellard.plist |
contrib/launchd/com.prodioslabs.cellar-gateway.plist | ~/Library/LaunchAgents/com.prodioslabs.cellar-gateway.plist |
make install does not enable or start the services. On macOS, load agents with launchctl bootstrap gui/$(id -u) …. Use make uninstall to remove the installed files. After install on Linux, add the cellar user to the kvm group so sandboxes can open /dev/kvm.
Version stamping
cellar, cellard, and cellar-gateway share one SemVer. make build injects version, commit, and build date via ldflags (override with VERSION=…, COMMIT=…, BUILD_DATE=…).
cellar --version
cellard -version
cellar-gateway -version