Installation
Belay is a single static Rust binary (belay) plus an
optional Tauri desktop app. This page covers the one-command installer (the
primary path), building from source, installing the desktop app, and running the
resident daemon as a boot-start service.
When to use this
Read the Quickstart first for the five-minute path. Come here when you want the full detail on the installer's options, a build from source, a fully-static musl build, the desktop tray app, or an always-on service that starts at boot.
Prerequisites
- Linux / macOS install script: just
curlandbash(both preinstalled). No Rust toolchain, no runtime Python dependency, and no NVD or other data key is ever required from an end user — the vulnerability database ships bundled in the binary. - Windows install script: Windows 10/11 x64 and PowerShell 5.1+ (preinstalled on every supported Windows release).
- Build from source (secondary path, all platforms): a stable Rust
toolchain (
cargo). For the static musl target on Linux, installmusl-tools. - Desktop app, building from source: Linux needs
webkit2gtk; macOS needs the Xcode Command Line Tools; Windows needs the WebView2 Runtime (already present on a normal Windows 10/11 install) plus the MSVC Build Tools. None of this is needed if you use the one-command installers below — they ship a prebuilt desktop app.
Install with one command (recommended)
Both installers verify a SHA-256 checksum against the published sums before installing anything, and refuse to proceed on a mismatch.
- Linux / macOS
- Windows
Downloads the platform-appropriate static belay binary (auto-detected —
Linux x86_64, macOS Intel, or macOS Apple Silicon), verifies it, installs it to
/usr/local/bin/belay, and runs the belay setup wizard:
curl -fsSL https://dl.belay.secblok.io/install.sh | bash
Review before you run it
If you'd rather not blind-pipe a script to bash:
curl -fsSL https://dl.belay.secblok.io/install.sh -o install.sh
less install.sh
bash install.sh
Binary-only / non-interactive install
Skip the wizard and install just the binary (for images, CI, or provisioning):
curl -fsSL https://dl.belay.secblok.io/install.sh | bash -s -- --skip-setup
Any flag other than --skip-setup / --no-setup / -y is forwarded verbatim
to belay setup (for example the wizard's own --yes).
Environment overrides
| Variable | Default | Purpose |
|---|---|---|
BELAY_DOWNLOAD_BASE | https://dl.belay.secblok.io | Primary download host; GitHub Releases is always tried as a fallback. |
BELAY_REPO | SECBLOK/belay | GitHub owner/repo used for the fallback. |
BELAY_VERSION | (latest) | Pin a specific GitHub release tag (forces the GitHub source; the CDN mirrors only latest). |
BELAY_INSTALL_DIR | /usr/local/bin | Where the binary is placed. |
Downloads the Belay desktop installer (a Tauri/NSIS -setup.exe, x64 only in
v0.1), verifies it, then runs it passively — a progress bar, no clicks —
creating both a Start Menu entry and a Desktop shortcut, and launching Belay
when it's done:
irm https://dl.belay.secblok.io/install.ps1 | iex
This installs the desktop app, with the belay CLI bundled alongside it in
the same install directory — there's no separate CLI-only download on Windows.
The installer is not yet code-signed (pending a certificate), so Windows SmartScreen may show "Windows protected your PC." Click More info → Run anyway to continue — the SHA-256 check above already confirmed the download is intact.
Flags
| Flag | Effect |
|---|---|
-WithService | Also registers the boot-start service (prompts for an elevated/Administrator confirmation). Optional — the desktop app already spawns an unprivileged daemon on its own. |
-Silent | Fully silent install (no progress window) instead of the default passive one. |
-NoLaunch | Don't auto-launch Belay after installing. |
Environment overrides
Same names and defaults as the Linux/macOS script (BELAY_VERSION,
BELAY_DOWNLOAD_BASE, BELAY_REPO) — there is no BELAY_INSTALL_DIR override
on Windows; the NSIS installer controls its own install location.