Adding Nodes

Grow the fleet: roles, staged provisioning and connection.

A node is any machine that runs the ZenSailor agent and Docker. The main node hosts the platform itself; every additional node scales build and run capacity across machines — that is what unlocks true horizontal deployment.

Roles#

Each node gets a role that steers what it does:

RoleBuildsRuns services
General (default)
Builder only
Runner only

Scheduling tags refine placement further: services can require target tags (where they run) and build tags (where they compile); node roles seed default tags, and you can refresh tags after changing a node's role.

Provisioning flow#

From System → Nodes → Add node:

  1. Give the node a name and pick its role.
  2. Provide the IP, SSH port, user and key. Node provisioning uses SSH keys — add one under Settings → Security → SSH Keys or generate it from the CLI (zensailor ssh-key generate).
  3. The flow provisions the machine in stages with live progress — Docker install, agent setup, registry wiring — and reattaches to an existing run if interrupted, so a flaky connection does not restart the whole process.

Once connected, agents report heartbeats every 30 seconds; a node that falls silent for 90 seconds is marked offline.

Reachability#

The control plane reaches the agent over its public address on the agent port. Remote-node services still route through the platform: the agent publishes host ports (30000–32767) and Traefik dials back using the heartbeat's port map, so your routers work with zero extra configuration.