Skip to content
ARP / SPEC
VERSION v0.1 — DRAFT

Install — VPS

The bridge install on a Linux VPS is identical to the local Mac flow — arpc is the same CLI, the bridge dials outbound to gateway.arp.run. The only difference is the service unit (systemd instead of launchd).

Prerequisites

  • A VPS with Node.js 24+
  • An agent (KyberBot, custom, etc.) already running locally
  • A .agent domain + handoff bundle from cloud.arp.run, placed in your agent folder

Steps

# 1. Install the CLI
npm i -g @kybernesis/arp@latest

# 2. Initialize ARP in the agent folder
cd ~/agent-folder
arpc init --framework kyberbot

# 3. Install the bridge service (systemd unit)
arpc service install

# 4. Verify
arpc service status
arpc host status

The systemd unit lives at ~/.config/systemd/user/arpc-host.service (user-mode) or /etc/systemd/system/arpc-host.service (system-mode, if you ran with sudo).

Differences from the Mac install

  • No tunnel needed. The bridge already dials outbound; a public IP isn't required for inbound peer traffic.
  • systemd, not launchd. Same logical model (auto-restart on crash + on boot).
  • Larger logs. systemd's journal can be queried via journalctl --user -u arpc-host -f.

Auto-start on reboot

# user-mode systemd
loginctl enable-linger $USER
systemctl --user enable arpc-host

Without enable-linger, user services stop when you log out. With it, they keep running.

Common operations

WhatCommand
Stop the bridgesystemctl --user stop arpc-host
Start the bridgesystemctl --user start arpc-host
Restartsystemctl --user restart arpc-host
Tail logsjournalctl --user -u arpc-host -f
Uninstallarpc service uninstall

Troubleshooting

See Troubleshooting. VPS-specific things:

  • Outbound HTTPS blocked — some hosting environments restrict outbound to whitelisted IPs. The bridge needs reach to gateway.arp.run (Railway-hosted; resolves to a few IPs).
  • clock drift — the bridge signs envelopes with timestamps; a few minutes of drift causes signature failures. timedatectl set-ntp true.