Skip to Content

Install on Linux

Install WireGuard

Rabtly uses WireGuard underneath. Most Linux kernels ≥ 5.6 include it built-in.

sudo apt update && sudo apt install wireguard

Install the Rabtly daemon

Download the binary

# amd64 (most servers and desktops) curl -Lo rabtlyd \ https://github.com/rabtly/rabtly/releases/latest/download/rabtlyd-linux-amd64 chmod +x rabtlyd sudo mv rabtlyd /usr/local/bin/ # ARM64 (Raspberry Pi 4+, ARM servers) curl -Lo rabtlyd \ https://github.com/rabtly/rabtly/releases/latest/download/rabtlyd-linux-arm64

Run the daemon

sudo RABTLY_CONTROL_URL=https://your-server:8080 \ RABTLY_NODE_NAME=my-linux-box \ RABTLY_STATE_DIR=/var/lib/rabtly \ rabtlyd

Verify it’s connected

Open the dashboard → Nodes — your device should appear with an Online badge.

Running as a systemd service means the daemon starts automatically on boot and restarts if it crashes.

sudo mkdir -p /etc/rabtly # Create the env file (keep it root-readable only) sudo tee /etc/rabtly/env > /dev/null <<'EOF' RABTLY_CONTROL_URL=https://your-server:8080 RABTLY_NODE_NAME=my-linux-box RABTLY_STATE_DIR=/var/lib/rabtly RABTLY_NETWORK_ID=default # RABTLY_ENROLL_TOKEN=your-secret-token # RABTLY_RELAY_ADDR=relay.example.com:7777 EOF sudo chmod 600 /etc/rabtly/env # Create the service unit sudo tee /etc/systemd/system/rabtly.service > /dev/null <<'EOF' [Unit] Description=Rabtly Node Daemon After=network-online.target Wants=network-online.target [Service] EnvironmentFile=/etc/rabtly/env ExecStart=/usr/local/bin/rabtlyd Restart=always RestartSec=10 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable --now rabtly

Check status and logs:

sudo systemctl status rabtly sudo journalctl -u rabtly -f # follow live logs

Subnet routing (optional)

To expose a local network (e.g. 192.168.1.0/24) to all VPN peers:

# Add to /etc/rabtly/env: RABTLY_ADVERTISE_ROUTES=192.168.1.0/24

The daemon enables IP forwarding automatically when routes are advertised.

Environment variable reference

VariableDescriptionDefault
RABTLY_CONTROL_URLControl plane URL (required)http://localhost:8080
RABTLY_NODE_NAMEName shown in dashboardSystem hostname
RABTLY_STATE_DIRWireGuard keys and state directory/tmp/rabtly
RABTLY_NETWORK_IDTenant network to joindefault
RABTLY_ENROLL_TOKENEnrollment secret (if server requires one)(empty)
RABTLY_RELAY_ADDRRelay server host:port (NAT fallback)(empty)
RABTLY_ADVERTISE_ROUTESComma-separated CIDRs to expose(empty)

Set LOG_LEVEL=debug and LOG_FORMAT=json to get structured debug logs — useful when diagnosing connection issues.