Production
Build, seal and run
From Kit’s staging tree to the Ajo Engine production runtime.
Use a matching pair
The compiler prepares bytecode; the engine executes it. Use both from one verified release and check the engine pin. A different bytecode contract requires resealing.
The current native release is verified on Linux x64 with Alpine/musl and the Freedesktop glibc runtime. Check the package platform matrix before choosing a build host. The engine is a focused Kit runtime, not a general-purpose Node replacement.
Install the native pair
On a verified Linux x64 build host, install the same exact version of the runtime and compiler. These npm packages contain the executables directly; installation does not build or download another runtime. Use engine-strict=true with pnpm to enforce the platform restriction. Install in a separate toolchain directory so its npm lockfile stays separate from the App’s pnpm lockfile; UI development does not need these native tools.
mkdir -p /path/to/ajo-toolchain
cd /path/to/ajo-toolchain
npm install --save-dev --save-exact ajo-engine@0.1.0 ajo-engine-compiler@0.1.0Stage the application
Kit writes the closed server graph, migrations, client assets and compiler.json into .ajo/. The build rejects Node builtins and imports outside the engine production graph.
cd /path/to/your-app
pnpm exec kit buildSeal with the compiler
Pass the compiler to build to produce dist/ajo. Its manifest records the engine pin, chunk hashes, client assets and capabilities. Source text is stripped by default.
pnpm exec kit build --compiler /path/to/ajo-toolchain/node_modules/.bin/ajo-engine-compilerRun the artifact
Set APP_URL to the public origin and provide the App’s required environment. On-disk SQLite also needs a writable, declared data root. This website has no database.
NODE_ENV=production HOST=127.0.0.1 PORT=8080 APP_URL=http://localhost:8080 \
/path/to/ajo-toolchain/node_modules/.bin/ajo-engine dist/ajo