Command Palette

Search for a command to run…

ZarynZaryn
Getting started·3 min read

Installation

Install zev on Linux, macOS or Windows with one command, or from your package manager. Then keep it updated.

zev is a single program with nothing else to install. It runs on Linux, macOS and Windows, on both Intel/AMD (x86-64) and ARM (Apple silicon, Graviton, Snapdragon) machines. ## Quick install **Linux and macOS** ```bash curl -fsSL https://zaryn.xyz/install.sh | sh ``` On Debian, Ubuntu, Fedora, RHEL, openSUSE and Arch, this adds Zaryn's signed package repository and installs the `zev` package, so your system's normal updates keep zev current. On macOS and other Linux systems, it installs the signed `zev` binary in `/usr/local/bin`. **Windows** (PowerShell) ```powershell irm https://zaryn.xyz/install.ps1 | iex ``` This installs `zev.exe` for your user in `%LOCALAPPDATA%\Programs\zev` and adds it to your `PATH`. No administrator rights are needed. It also places `wintun.dll`, WireGuard's signed network driver, beside `zev.exe` for private networks. Then check it: ```bash zev --version ``` ## With your package manager If you'd rather set it up yourself, these are the same steps the installer takes. **Debian, Ubuntu** (apt) ```bash sudo curl -fsSLo /usr/share/keyrings/zaryn.gpg https://zaryn.xyz/dl/zaryn.gpg echo "deb [signed-by=/usr/share/keyrings/zaryn.gpg] https://zaryn.xyz/dl/apt stable main" | sudo tee /etc/apt/sources.list.d/zaryn.list sudo apt update && sudo apt install zev ``` **Fedora, RHEL, Rocky, Alma** (dnf) ```bash sudo rpm --import https://zaryn.xyz/dl/zaryn.asc sudo curl -fsSLo /etc/yum.repos.d/zaryn.repo https://zaryn.xyz/dl/rpm/zaryn.repo sudo dnf install zev ``` **openSUSE** (zypper) ```bash sudo rpm --import https://zaryn.xyz/dl/zaryn.asc sudo zypper addrepo https://zaryn.xyz/dl/rpm/zaryn.repo sudo zypper install zev ``` **Arch Linux** (pacman) ```bash curl -fsSL https://zaryn.xyz/dl/zaryn.gpg | sudo pacman-key --add - sudo pacman-key --lsign-key 7C2B21CBA73569E5C83C6A945F2C0C446C4997EB printf '\n[zaryn]\nServer = https://zaryn.xyz/dl/arch/$arch\n' | sudo tee -a /etc/pacman.conf sudo pacman -Sy zev ``` **Windows** (Scoop) ```powershell scoop install https://zaryn.xyz/dl/scoop/zev.json ``` **Any system, by hand.** Every release is at `https://zaryn.xyz/dl/zev/<version>/`. It holds the binaries (`zev-x86_64-linux`, `zev-aarch64-macos`, `zev-x86_64-windows.exe`, and so on), archives, packages, and a `SHA256SUMS` file. The Linux binaries are fully static, so they run on any distribution, including Alpine. ## Updating - **Installed from a package repository:** zev updates with the rest of your system (`apt upgrade`, `dnf upgrade`, `zypper update`, `pacman -Syu`, `scoop update`). - **Installed as a binary:** run `zev self update`, or `zev self update --check` to only look. `zev self update` installs a release only if all of these hold: - it's signed with zev's release key, which is built into zev; - the signature names that exact file and version; - it's newer than what you have, unless you ask for a version with `--to`; - the new binary starts. If zev came from a package manager, `zev self update` doesn't touch it; it tells you which command to use instead. ## Verifying downloads Releases are signed with [minisign](https://jedisct1.github.io/minisign/), the same scheme Zig uses for its releases. zev's release key is: ``` RWQgi1EYwzJgSHlVF5QFI0E4ZaDNfUqL2u9im7SP34VVRCaR60jIUISL ``` To check a file yourself: ```bash minisign -Vm zev-x86_64-linux -P RWQgi1EYwzJgSHlVF5QFI0E4ZaDNfUqL2u9im7SP34VVRCaR60jIUISL ``` The package repositories are signed with the OpenPGP key `7C2B 21CB A735 69E5 C83C 6A94 5F2C 0C44 6C49 97EB` ("Zaryn Packages"). Your package manager checks every package against it, and `install.sh` checks the key itself before trusting it. ## Uninstalling ```bash zev self uninstall ``` If zev came from a package manager, `zev self uninstall` names the command to use instead, for example `sudo apt remove zev`. Your repositories and settings in `~/.zev` stay. To leave a private network first, run `zev net down --forget`. ## Source code and building from source zev's source lives on Zaryn, in the public repository [zaryn/zev](https://zaryn.xyz/zaryn/zev): browse it there, or fetch it with zev itself. Building needs only the Zig compiler (the 0.17 development series); zstd is included in the source. ```bash curl -fsSL https://zaryn.xyz/install.sh | sh # zev, to fetch its own source zev clone zaryn/zev cd zev zig build -Doptimize=ReleaseSafe ``` The binary is at `zig-out/bin/zev`. `zig build check-ports` compiles zev for every platform it ships for, from any machine. ### The server (optional, for self-hosting) ```bash cd zev-api zig build ``` `zev-api` reads its configuration from environment variables, including the database connection and a server identity keypair. The keypair is generated on first run if none exists. You only need your own server if you aren't using a hosted one.