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 transfersThe canonical guides live in the repository's MULTI_NODE.md.