Skip to content

Installation

Rune ships as two binaries: rune (CLI) and runed (server). Most installs use one of the official scripts.

If you just need to talk to a remote runed, install the CLI:

Terminal window
curl -fsSL https://raw.githubusercontent.com/runestack/rune/master/scripts/install-cli.sh | bash

This drops rune in /usr/local/bin (or ~/.local/bin if not root). Verify:

Terminal window
rune version
Section titled “Full server bundle — recommended for hosts”

The server bundle installs both binaries plus a systemd unit and Docker (if missing):

Terminal window
curl -fsSL https://raw.githubusercontent.com/runestack/rune/master/scripts/install-server.sh \
| sudo bash -s -- --version v0.1.0

What it does:

  1. Installs rune and runed to /usr/local/bin.
  2. Installs Docker if not already present (skip with --skip-docker).
  3. Creates /etc/rune/runefile.yaml with sane defaults.
  4. Creates /var/lib/rune for state (BadgerDB + KEK).
  5. Installs and enables runed.service.

For automated provisioning (cloud-init, CI/CD), drop sudo:

Terminal window
curl -fsSL https://raw.githubusercontent.com/runestack/rune/master/scripts/install-server.sh \
| bash -s -- --version v0.1.0

If Docker is set up and you only want the binaries:

Terminal window
curl -fsSL https://raw.githubusercontent.com/runestack/rune/master/scripts/install.sh \
| sudo bash -s -- --version v0.1.0

Requires Go 1.23+.

Terminal window
git clone https://github.com/runestack/rune.git
cd rune
make setup
make build
# Or via go install
go install github.com/runestack/rune/cmd/rune@latest
go install github.com/runestack/rune/cmd/runed@latest
rune version

The Makefile targets:

TargetWhat it does
make setupInstalls lint and protobuf tooling.
make buildBuilds both binaries to bin/.
make testRuns unit tests.
make test-intRuns integration tests (requires Docker).
make protoRegenerates protobuf code.
make lintRuns golangci-lint.

Grab a release tarball:

Terminal window
VER=v0.1.0
ARCH=$(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 runed

Stop the service, swap the binaries, restart:

Terminal window
sudo systemctl stop runed
curl -fsSL https://raw.githubusercontent.com/runestack/rune/master/scripts/install-server.sh \
| sudo bash -s -- --version v0.1.1 --skip-docker
sudo systemctl start runed
runed --version
sudo systemctl status runed --no-pager | cat
Terminal window
sudo systemctl stop runed
sudo systemctl disable runed
sudo rm /etc/systemd/system/runed.service
sudo rm /usr/local/bin/rune /usr/local/bin/runed
# State (delete only if you really mean it):
sudo rm -rf /var/lib/rune /etc/rune
Terminal window
rune version
runed --version
sudo systemctl status runed --no-pager

If runed won’t start, check:

Terminal window
sudo journalctl -u runed -n 100 --no-pager

Common issues are covered in Operations → Configuration.