Agent install puts runtime artifacts on the node host. It never git clones the toolkit and never unpacks .go sources.
Node client install (java-tron, bitcoind, mytonctrl, …) is separate: provision may still download vendor binaries/scripts. That is not “agent sources”.
| Path | Role |
|---|---|
/opt/rpcnode/bin/rpcnode-api-agent |
Tip + leaf shared binary |
/opt/rpcnode/bin/rpcnode-system-agent |
Tip + leaf shared binary |
/opt/rpcnode/bin/rpcnode-agent-watchdog |
Host-wide tip+leaf supervisor |
systemd rpcnode-*-agent*.service + rpcnode-agent-watchdog.service |
Autostart |
/var/log/rpcnode/*.log |
Tip/leaf/watchdog agent stdout/stderr (file) |
/etc/logrotate.d/rpcnode-agents |
Rotate when file ≥ 100M (7 copies, copytruncate) |
Version truth = embedded in the binary (rpcnode-api-agent -version). CDN TOOLKIT_VERSION is the update channel only.
https://rpcnode.dev/install/agent.sh
https://rpcnode.dev/install/rpcnode-agent-watchdog.sh
https://rpcnode.dev/install/TOOLKIT_VERSION
https://rpcnode.dev/install/binaries/rpcnode-*-agent-<os>-<arch>
https://rpcnode.dev/install/binaries/sha256sums.txt
https://rpcnode.dev/install/archives/rpcnode-agent-<VERSION>.tar.gz
https://rpcnode.dev/install/archives/rpcnode-agent-latest.tar.gz
Archive contents (runtime only):
agent.shrpcnode-agent-watchdog.shTOOLKIT_VERSIONbinaries/(api + system agents for all published os/arch +sha256sums.txt)
❌ No api-agent/*.go, ❌ no .git, ❌ no panel / status-ui.
Origin is the connect site tree — Vite copies public/ into dist/client:
frontend/connect/public/install/ → https://rpcnode.dev/install/
agent.sh
uninstall-agents.sh
rpcnode-agent-watchdog.sh
TOOLKIT_VERSION
binaries/
archives/
❌ Not public/toolkit — /toolkit is the marketing page.
# from toolkit repo — stage + commit frontend/connect + git push (no rsync)
./scripts/release.sh publish
# or:
./scripts/build-agent-binaries.sh
./scripts/publish-install.sh
./scripts/publish-install.sh --local-only # stage only
./scripts/publish-install.sh --no-push # commit, no pushConnect deploy from that git push serves https://rpcnode.dev/install/agent.sh.
Override local dest: CONNECT_PUBLIC_INSTALL=/path/to/public/install.
curl -fsSL "https://rpcnode.dev/install/agent.sh" | sudo bashFetches matching binaries + watchdog from CDN, writes systemd units, enables tip agents + watchdog, installs file logging drop-ins + logrotate.
# on build machine after publish (or after build+pack):
scp dist/archives/rpcnode-agent-VERSION.tar.gz root@NODE:/tmp/
# on node:
cd /tmp && tar -xzf rpcnode-agent-VERSION.tar.gz
sudo LOCAL_ARTIFACT_DIR=/tmp/rpcnode-agent-VERSION bash /tmp/rpcnode-agent-VERSION/agent.shServers → Update agent → tip POST /api/v1/agent/update:
- Downloads CDN binaries into
/opt/rpcnode/bin - Installs/enables
rpcnode-agent-watchdogfrom CDN - Ensures
/var/log/rpcnode+ logrotate + per-unitfile-log.confdrop-ins - Restarts tip + leaf agent units
Same channel as fresh install — still no git.
ls -lah /var/log/rpcnode/
tail -f /var/log/rpcnode/rpcnode-api-agent.log
tail -f /var/log/rpcnode/rpcnode-api-agent-bitcoin-mainnet.logRotation is by size (100M), not only by day — copytruncate so open FDs stay valid.
| Agent install / Update | Node client (provision) | |
|---|---|---|
| Source | CDN / local archive | Vendor release URLs (GitHub, etc.) |
| On disk | /opt/rpcnode/bin/* |
/opt/<network>/…, jars, myton, … |
| Git clone toolkit? | Never | Never (clients may use vendor installers) |
- Watchdog / tip durability:
docs/agent-invariants.md§4a - Remote tip Update after publish:
.cursor/rules/rpcnode-agent-remote-update.mdc - Add network CDN bump:
docs/add-network.md