Operations overview
Day-2 operations in kanade fall into two flows:
-
Direct install — drop binaries + config on a fresh host and register the Windows service. Used to bootstrap the first agent, the initial backend, and the NATS server. Scripts:
scripts/deploy/agent.ps1,scripts/deploy/backend.ps1,scripts/deploy/nats.ps1. Run manually on the target host. -
Agent-mediated update — once an agent is running, the agent itself can install / update other components on its own host without ssh / RDP. The operator publishes binaries + script bodies to the broker, then fires a job; the agent fetches, verifies, swaps, and restarts services. This is the bulk of day-2 operations.
The agent-mediated flow has the same shape regardless of what you're updating:
operator host ─► kanade CLI ─► NATS broker ─► agent (on target host)
│ │
├── publish binary ────────────► fetches from
│ to OBJECT_APP_PACKAGES OBJECT_APP_PACKAGES
├── publish script ────────────► fetches from
│ to OBJECT_SCRIPTS OBJECT_SCRIPTS
├── register / update job ─────► reads job manifest
│ from `jobs` KV
└── exec job ──────────────────► PowerShell child
runs the script
Component-specific guides:
- kanade-backend — the HTTP / projector binary
- kanade-client — the Tauri end-user app
- NATS server — the broker itself (yes, you can update the broker over the broker)
- kanade-agent itself — the agent self-update path (different from the other three; it uses a dedicated rollout bucket, not the generic OBJECT_APP_PACKAGES + script pair)