Documentation

Implementations and packaging

Build and install Node, C# managed, C# NativeAOT or Rust products.

Choose one implementation for each product. All implementations use the same management UI, HTTP contracts and Knex-created SQLite database. C# managed and C# NativeAOT are two build modes of the same implementation.

TargetServer installationFleet/controller installationBuild command
NodePrivate source checkout and its built dependenciesExact @ctlflow/fleet and @ctlflow/fleetd npm archivesnpm run build, then npm pack
C# managedSelf-contained Linux x64 directorySibling native apphost directories, with the .NET runtime includednpm run publish:csharp -- --mode managed --output /absolute/new-directory
C# NativeAOTNative Linux x64 directorySibling compiled executable directoriesnpm run publish:csharp -- --mode nativeaot --output /absolute/new-directory
RustNative Linux x64 directorySibling compiled executable directoriesnpm run publish:rust -- --output /absolute/new-directory

Each guide covers prerequisites, packaging, server startup, fleet setup, upgrades and verification. The Rust distribution includes its target guide as README.md; C# includes its implementation README. Node npm archives contain their product README and product guides. No installed guide requires a local source checkout merely to resolve its documentation links.

publish:csharp and publish:rust write local directories. They do not upload releases, install host services, publish npm packages or activate an instance. Only the two Node fleet products may be public npm packages. crossfire and all internal packages remain private. No native release-download service is assumed.

Build dependencies and runtime dependencies differ. Native fleet controllers still require Node for the shared agent-tool client; selecting a native backend does not remove that requirement. Building server images requires a source checkout. Deployment uses a completed container package and does not compile source on the host.