Skip to content

Core

Build placement & image transfer

Build where the workload runs, on the panel or on a dedicated build server.

Choose where to build

Service → Settings selects build placement: the runtime host (default), the panel, or a build server. Operators mark a node as a build server and set its concurrency under Servers. Building on the panel keeps private-repository credentials off runtime nodes.

Deliver the image

  • The default path transfers the built image through the panel over a sealed, checksum-verified agent channel. Operators can bind a push registry instead, so hosts pull the image by digest.
  • A failed build or image transfer stops before cutover and leaves the running service serving. Transfer history appears on the service and deployment.
  • Image transfer needs agent v0.15.2 or newer. Managed node databases need v0.15.3, and KeyDB/Dragonfly on nodes need v0.15.6.

Build packs on nodes

Nixpacks and Railpack run on agents from v0.15.2. Use v0.15.5 or newer for the Railpack preflight that explains a missing containerd image store. Enable that store, configure NINEDEPLOY_AGENT_BUILDKIT_HOST, or build on another host. Node owners can disable builds with NINEDEPLOY_AGENT_BUILDS=off.

ninedeploy servers roles
ninedeploy services placement
ninedeploy services transfers

The canonical guides live in the repository's MULTI_NODE.md.