Installation
Rune ships as two binaries: rune (CLI) and runed (server). Most installs use one of the official scripts.
CLI only — for developers
Section titled “CLI only — for developers”If you just need to talk to a remote runed, install the CLI:
curl -fsSL https://raw.githubusercontent.com/runestack/rune/master/scripts/install-cli.sh | bashThis drops rune in /usr/local/bin (or ~/.local/bin if not root). Verify:
rune versionFull server bundle — recommended for hosts
Section titled “Full server bundle — recommended for hosts”The server bundle installs both binaries plus a systemd unit and Docker (if missing):
curl -fsSL https://raw.githubusercontent.com/runestack/rune/master/scripts/install-server.sh \ | sudo bash -s -- --version v0.1.0What it does:
- Installs
runeandrunedto/usr/local/bin. - Installs Docker if not already present (skip with
--skip-docker). - Creates
/etc/rune/runefile.yamlwith sane defaults. - Creates
/var/lib/runefor state (BadgerDB + KEK). - Installs and enables
runed.service.
For automated provisioning (cloud-init, CI/CD), drop sudo:
curl -fsSL https://raw.githubusercontent.com/runestack/rune/master/scripts/install-server.sh \ | bash -s -- --version v0.1.0Binary-only — Docker already configured
Section titled “Binary-only — Docker already configured”If Docker is set up and you only want the binaries:
curl -fsSL https://raw.githubusercontent.com/runestack/rune/master/scripts/install.sh \ | sudo bash -s -- --version v0.1.0From source
Section titled “From source”Requires Go 1.23+.
git clone https://github.com/runestack/rune.gitcd runemake setupmake build
# Or via go installgo install github.com/runestack/rune/cmd/rune@latestgo install github.com/runestack/rune/cmd/runed@latest
rune versionThe Makefile targets:
| Target | What it does |
|---|---|
make setup | Installs lint and protobuf tooling. |
make build | Builds both binaries to bin/. |
make test | Runs unit tests. |
make test-int | Runs integration tests (requires Docker). |
make proto | Regenerates protobuf code. |
make lint | Runs golangci-lint. |
Manual binary install
Section titled “Manual binary install”Grab a release tarball:
VER=v0.1.0ARCH=$(uname -m); case "$ARCH" in x86_64) ARCH=amd64 ;; aarch64|arm64) ARCH=arm64 ;; *) echo "Unsupported arch"; exit 1 ;;esac
curl -L -o /tmp/rune.tgz \ "https://github.com/runestack/rune/releases/download/$VER/rune_linux_${ARCH}.tar.gz"sudo tar -C /usr/local/bin -xzf /tmp/rune.tgz rune runedUpgrading
Section titled “Upgrading”Stop the service, swap the binaries, restart:
sudo systemctl stop runedcurl -fsSL https://raw.githubusercontent.com/runestack/rune/master/scripts/install-server.sh \ | sudo bash -s -- --version v0.1.1 --skip-dockersudo systemctl start runed
runed --versionsudo systemctl status runed --no-pager | catUninstall
Section titled “Uninstall”sudo systemctl stop runedsudo systemctl disable runedsudo rm /etc/systemd/system/runed.servicesudo rm /usr/local/bin/rune /usr/local/bin/runed# State (delete only if you really mean it):sudo rm -rf /var/lib/rune /etc/runeVerify
Section titled “Verify”rune versionruned --versionsudo systemctl status runed --no-pagerIf runed won’t start, check:
sudo journalctl -u runed -n 100 --no-pagerCommon issues are covered in Operations → Configuration.