Skip to content
P.Industries

K I L N / Open-source server runtime

Swift,
in operation.

Independent services.
One place to operate them.

Build your backend in Swift. Run its modules as separate processes, deploy them independently, and work directly with the system through SSH.

Apache 2.0 · macOS + Linux · Developer preview

Inside the runtime
An illustration of a release handoff. Ingress directs new requests to a ready release while existing connections drain. Other modules keep their own lifecycle. Conceptual animation · not live system metrics

Follow a release / interactive walkthrough

From a commit.
To a running workload.

Follow the artifact, watch the handoff, inspect the commands. Select any stage to hold the view.

Release walkthrough stage
RELEASE MAP / example-backend

01 / Developer / CI

A change becomes a candidate.

Start with a versioned Swift application. Source checkout belongs to your workstation or CI runner.

COMMAND REFERENCE · NOT EXECUTED
$ git clone https://github.com/PIndustries/kiln.git
$ cd kiln

02 / Developer / CI

Swift becomes an executable.

Build for the target operating system. The example backend is a separate process, with its own release lifecycle.

COMMAND REFERENCE · NOT EXECUTED
$ swift build -c release
→ .build/release/kiln-example-backend

03 / External storage · local manifest

Keep a version you can recover.

Your pipeline stores the executable and release manifest. Kiln currently deploys local files; built-in registry publishing and remote pulls are planned.

COMMAND REFERENCE · NOT EXECUTED
$ python3 scripts/deployment-manifests.py \
  --executable "$PWD/.build/release/kiln-example-backend" \
  --output "$PWD/releases-demo"

04 / Kiln / SSH drawer

Start the next generation.

Submit the next local manifest from the SSH command drawer. Kiln starts a candidate without restarting the runtime.

COMMAND REFERENCE · NOT EXECUTED
kiln> app deploy /absolute/path/releases-demo/26.10.07.2.json

05 / Kiln / health checks

Check before switching traffic.

Deployment checks the candidate's configured health endpoint before admitting it. A failed candidate leaves the active release unchanged.

COMMAND REFERENCE · NOT EXECUTED
kiln> app health release-demo/backend
kiln> app releases release-demo/backend

06 / Kiln / traffic handoff

New requests meet the new release.

Ingress switches new connections. Existing connections stay with the old generation until drain completes or its deadline expires. Rollback remains an explicit operation.

COMMAND REFERENCE · NOT EXECUTED
$ curl http://127.0.0.1:18090/api/version

# Inside the SSH drawer, if rollback is needed:
kiln> app rollback release-demo/backend
Runtime stays online during an application releaseRun the example ↗

Illustrative sequence, not live telemetry. Build and artifact storage are external today. Kiln's built-in source pipelines and registry are planned; deployment currently uses trusted local executables. Commands reference the documented example release cycle.

01 / A clear boundary

Change a service.
Keep the runtime.

A REST API, a WebSocket service, a background worker. Each module has its own process and release lifecycle. Health checks gate deployment; stable TCP ingress directs new connections to the new release while existing connections drain on the old one.

02 / Tools within reach

Built to be operated.

01

A terminal with context.

Connect with a standard SSH client. Inspect services, health, logs, and host metrics from a live dashboard, or use the command interface. SSH is optional; the runtime can operate without it.

Connect to Kiln ↗
02

Credentials with boundaries.

Keep credentials in an encrypted server-side Vault. Grant a module only the secrets it needs. Named users, roles, and module scopes control management access.

Read about Vault ↗
03

AI with a defined toolset.

Native Erebine and local Ollama chat can inspect the runtime and run background investigations. Changes use explicit approval proposals and Kiln's authorization rules. Provider access is configured separately.

See the tools and limits ↗
04

Bring peers into trust.

Explicitly adopt another node with pinned keys. Use typed administrative operations and durable receipts to inspect what happened. Peer management is available today; automatic scheduling and failover are not.

Understand peer adoption ↗

03 / Download the runtime

Download. Run.
SSH in.

Start with a prebuilt binary. You do not need to clone the repository or compile Kiln. Choose your platform, verify the archive, and run it with your public SSH key.

26.10.11.2 Developer preview Release notes & all assets ↗

Apple Silicon · macOS 14+

macOS

Native executable. No Swift installation or source build. Developer preview; not yet Developer-ID signed or notarized.

Download for macOS ↓
Download & run commands
curl -fLO https://github.com/PIndustries/kiln/releases/download/v26.10.11.2/kiln-26.10.11.2-macos-arm64.tar.gz
curl -fLO https://github.com/PIndustries/kiln/releases/download/v26.10.11.2/kiln-26.10.11.2-macos-arm64.tar.gz.sha256
shasum -a 256 -c kiln-26.10.11.2-macos-arm64.tar.gz.sha256
tar -xzf kiln-26.10.11.2-macos-arm64.tar.gz
cd kiln-26.10.11.2-macos-arm64
./bin/kiln up --state "$HOME/.kiln" \
  --authorized-keys "$HOME/.ssh/id_ed25519.pub"

# Connect from another terminal:
ssh -p 2222 [email protected]

x86_64 · validated on Ubuntu 24.04

Linux

Swift runtime included. Ubuntu system libraries are still required; see the installation guide.

Download for Linux ↓
Download & run commands
# Ubuntu 24.04 system libraries (no compiler):
sudo apt-get update
sudo apt-get install -y libcurl4t64 libxml2 libedit2 libatomic1 libicu74 libsqlite3-0 libzstd1 libstdc++6 libncurses6 ca-certificates

curl -fLO https://github.com/PIndustries/kiln/releases/download/v26.10.11.2/kiln-26.10.11.2-linux-x86_64.tar.gz
curl -fLO https://github.com/PIndustries/kiln/releases/download/v26.10.11.2/kiln-26.10.11.2-linux-x86_64.tar.gz.sha256
sha256sum -c kiln-26.10.11.2-linux-x86_64.tar.gz.sha256
tar -xzf kiln-26.10.11.2-linux-x86_64.tar.gz
cd kiln-26.10.11.2-linux-x86_64
./bin/kiln up --state "$HOME/.kiln" \
  --authorized-keys "$HOME/.ssh/id_ed25519.pub"

# Connect from another terminal:
ssh -p 2222 [email protected]

Supply an existing public key, or create one with ssh-keygen -t ed25519. Keep runtime state outside the package. Verify the host fingerprint when first connecting. Building an application module is separate from installing the Kiln runtime. Build from source ↗

Visible delivery / GitHub Actions

Follow the build.

All pipeline runs ↗

Latest main-branch workflow results, served by GitHub. Open a pipeline to see its run, commit, jobs and logs. These badges describe development checks, not the health of your running node.

Badges may be cached by GitHub. If a badge is unavailable, use its pipeline link. The versioned release notes record the checks for the download above.

Built by P.Industries. Open to contribution.

Make it run.
Make it yours.