Skip to content

Installation

Arnel Robles edited this page Sep 26, 2026 · 2 revisions

Installation

Homebrew, on macOS

brew install arnelirobles/tap/baryovm

The qualified name works on a cold machine with no tap added. If you would rather add the tap once and type less afterwards:

brew tap arnelirobles/tap
brew install baryovm

The plain brew install baryovm would need the formula in homebrew-core, which asks a self-submitting owner for 90 forks, 90 watchers or 225 stars. BaryoVM is not there, so the tap is the route for now.

A release archive, on Linux or without Homebrew

Every release carries linux and darwin builds for amd64 and arm64, plus checksums.txt.

VERSION=0.4.0; OS=$(uname -s | tr A-Z a-z); ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
curl -fsSLO https://github.com/BaryoDev/BaryoVM/releases/download/v$VERSION/baryovm_${VERSION}_${OS}_${ARCH}.tar.gz
curl -fsSLO https://github.com/BaryoDev/BaryoVM/releases/download/v$VERSION/checksums.txt
shasum -a 256 -c checksums.txt --ignore-missing
tar xzf baryovm_${VERSION}_${OS}_${ARCH}.tar.gz && sudo mv baryovm /usr/local/bin/

Verify the checksum before running it. That is what the file is for.

From source

Needs Go 1.25 or newer.

go install github.com/BaryoDev/BaryoVM/cmd/baryovm@latest   # -> $(go env GOPATH)/bin

What has to exist on your machine

stack release shells out to rsync, with ssh as its transport, to sync your source to the VM. The built-in Go SSH client covers command sessions, not that transfer, so both binaries have to be on your PATH.

  • macOS ships both.
  • Linux has rsync in every package manager, though a minimal image may not have it installed.
  • Windows does not ship rsync. Run BaryoVM under WSL, or install rsync in Git Bash.

Everything else, vm add, vm ping, stack add, stack deploy, stack backup, needs neither.

baryovm doctor          # what is missing before your first release
baryovm doctor --fix    # install what BaryoVM knows how to install

doctor reports Docker as well, but does not require it: every docker call BaryoVM makes is remote, on the VM, over SSH. A machine with rsync and ssh and no local Docker can do everything.

What has to exist on the VM

Docker, which baryovm vm bootstrap <name> installs if it is missing, and an account you can reach by SSH key. That is all. Nothing is installed on the VM by BaryoVM itself.

Where state lives

~/.baryovm/fleet.json, owner-only (0600). Override the directory with BARYOVM_HOME. It holds hostnames, usernames and SSH key paths, never key material and never application secrets.

The same directory holds known_hosts, also 0600: the SSH host key of every machine BaryoVM has connected to. Your own ~/.ssh/known_hosts is read as a second source and never written.

Clone this wiki locally