Install Roost

Install the verified Roost release on macOS or Linux — binary installer, Homebrew, the front door you choose, and release assets.

What needs a supported host OS

Only coordinator and worker machines need a supported host OS. In v0.5.0, those roles run on macOS arm64/x64 and Linux arm64/x64. Everything you browse from — a Mac, a Windows PC, a Linux desktop, an iPhone, an Android phone, an iPad, an Android tablet — needs nothing but a modern browser.

One coordinator shape

The coordinator binds loopback and speaks plaintext; you put a front door in front of it and tell it the resulting origin:

roost quickstart --coordinator-url https://roost.example.com

That installs ROOST_COORDINATOR_BIND=127.0.0.1:4103, ROOST_TRUST_PROXY=1, and ROOST_WEB_PUBLIC_URL=https://roost.example.com. Roost owns no TLS, no DNS, and no tunnel. Pick one front door:

Caddy with your own domain — Caddy obtains and renews the certificate:

roost.example.com {
	@private path /internal/* /api/db-export
	respond @private "not found" 404

	reverse_proxy 127.0.0.1:4103 {
		header_up X-Forwarded-For {remote_host}
	}
}

Cloudflare tunnel — no open ports, works behind NAT, no certificate on the box. Point cloudflared ingress at a local proxy like the one above; cloudflared appends rather than replaces X-Forwarded-For, so it must not be the last hop.

tailscale serve — no domain at all:

tailscale serve --bg --https=443 http://127.0.0.1:4103

The public origin is then the host’s MagicDNS name. Full copy-paste recipes, including the caller-address rule and the private paths, are in networking.

macOS and Linux

curl -fsSL https://raw.githubusercontent.com/cefege/roost/main/install-binary.sh | bash

Then run quickstart with the origin your front door serves:

"$HOME/.local/bin/roost" quickstart --coordinator-url "https://roost.example.com"

The installer resolves uname -s / uname -m to one release asset — Darwin/arm64 to roost, Darwin/x86_64 to roost-darwin-x64, Linux/x86_64 to roost-linux-x64, Linux/aarch64 to roost-linux-arm64 — downloads that asset plus its .sha256 sidecar from the latest release, and refuses to install on a digest mismatch or a malformed checksum file. The verified binary is moved into $HOME/.local/bin/roost with mode 0755. Override the destination with ROOST_BIN_DIR; the script warns if that directory is not on your PATH. Any other OS/architecture pair exits with an error rather than guessing an asset.

Homebrew (macOS)

brew install cefege/tap/roost

The formula is macOS-only on purpose: the unsuffixed roost asset is the darwin-arm64 build and there is no tested Linuxbrew bottle, so Linux installs go through install-binary.sh instead.

Windows hosts

Windows host support is paused for v0.5.0. The release publishes no Windows coordinator, worker, package, installer, join script, or updater payload. There is no supported Windows host install, enrollment, or update procedure in this release. Windows remains supported as a browser client.

v0.3.2 was the last release with Windows host artifacts. Those historical artifacts are not an install path for a v0.5.0 fleet.

Release assets

Every release publishes a .sha256 sidecar beside each asset. The unsuffixed roost asset is byte-identical to roost-darwin-arm64; it exists so older release links keep working.

Asset Host
roost macOS arm64 (compatibility name)
roost-darwin-arm64 macOS arm64
roost-darwin-x64 macOS x64
roost-linux-x64 Linux x64
roost-linux-arm64 Linux arm64

Historical releases through v0.3.2 also carried Windows packages and signed PowerShell bootstrap scripts. The Windows release tier is paused, so none of those artifacts is published or supported for v0.5.0.

Source checkout (development only)

curl -fsSL https://raw.githubusercontent.com/cefege/roost/main/install.sh | bash

This installs Bun and a checkout that tracks main, on macOS or Linux. It is a development path, not the pinned production release path — use install-binary.sh above for anything you intend to keep running.

Keeping it updated

roost update self-updates the published macOS or Linux binary from the latest GitHub release. v0.5.0 has no Windows updater payload, so an old Windows host cannot receive the current release. To update a whole supported fleet in one command, see fleet.

Next

  • Quickstart — first coordinator, first phone, first workspace
  • Networking — the loopback listener and your front door
  • The CLI — every subcommand
  • Security — pairing, keys, audit, backups