This guide takes you from a fresh Linux host to a registered, online Agent executor. End-state: the host runsDocumentation Index
Fetch the complete documentation index at: https://docs.novacula.io/llms.txt
Use this file to discover all available pages before exploring further.
novacula-agent.service, the control plane sees it as online, and you can deploy nodes onto it from the UI.
For the conceptual overview of what an Agent is, see Agent (bare-metal).
Prerequisites
- OS — Ubuntu 22.04+ or Debian 12+ (
x86_64oraarch64). - Privileges —
rootorsudo. - Network — outbound HTTPS to the control plane URL.
- Disk — a partition mounted at
/var/lib/novacula(the defaultdata_dir) sized for the chains you plan to run plus headroom for binaries and per-node state. Tron mainnet alone wants ~4 TB. - API key — see Connect an executor to issue one. You’ll need the plaintext value in the next step.
Steps
Install the binary
Download the binary the install command from the Connect new executor screen prints:The binary is a self-contained Bun-compiled executable; it has no runtime dependency on Bun, Node, or anything else on the host.
Write the agent config
Create Make sure permissions on
/etc/novacula/agent.toml:agent.toml are tight (chmod 600) — it carries the API key.Install the systemd unit
The agent ships an installer that writes the unit + rollback unit and enables the service:What this does:
- Writes
/etc/systemd/system/novacula-agent.servicewithRestart=on-failure,StartLimitBurst=3,OnFailure=novacula-agent-rollback.service. - Writes
/etc/systemd/system/novacula-agent-rollback.service(the one-shot that restores<binary>.prevafter a wedged self-update). systemctl daemon-reload && systemctl enable novacula-agent.
Start the service
syncExecutor call should land within a few seconds. Look for log lines like executor registered and capabilities reported.Confirm online in the UI
From Executors, your new executor row should be
online with capabilities populated for every chain the binary supports.If it stays offline:- Check
journalctl -u novacula-agent -n 100for auth or network errors. - Confirm outbound HTTPS to the URL in
agent.toml. - Verify the API key was copied without trailing whitespace.
What the agent owns on disk
After install + first sync:/etc/systemd/system/ and named like <chain>-<role>@<node>.service.
Service management
Hardening
- Keep
agent.tomlmode 600, owned byroot. The API key is the credential. - Don’t disable
Restart=on-failureor theOnFailure=rollback unit; they’re what makes self-updates safe. - Snapshot
<data_dir>/nodes/out of band if you want point-in-time backups of node state — there is no built-in snapshot mechanism on the agent side. - Restrict outbound to the control plane URL plus the per-chain client download mirrors if you want strict egress.
Next steps
- Deploy a node onto your fresh executor.
- Apply executor upgrades — what to do when an upgrade goes sideways.
- Rotate executor API keys — zero-downtime key rotation.