Infrastructure as code · v3.0.11

Infrastructure declared, typed and checked before it exists

Provisioning turns a Nickel declaration into the running system — servers, task services, clusters — and keeps the two in step.

Declared, typed and checked before it exists.

One declaration · any provider · every change reviewable in Git

Configuration always, never a hardcoded value.

Declared, typed, checked — before it exists

One declaration drives every provider, every service and every cluster. What is declared is what runs, and what runs is checked against what was declared.

NICKEL · TYPED SCHEMAS

Configuration that cannot be wrong in shape

Every piece of infrastructure is a Nickel schema, validated before anything reaches runtime. TOML and YAML are generated output, never the source of truth — a malformed server, a missing dependency or an impossible plan is refused at the schema.

FORMULA DAG · ORCHESTRATOR

Order is structure, not a script

A workspace is composed as a typed dependency graph: containerd before etcd, etcd before Kubernetes, Kubernetes before Cilium. The orchestrator executes it in parallel where the graph allows, with checkpoints and rollback.

PROVIDERS · BOUNDARIES

One platform, any provider

Providers are a pluggable interface: a new cloud is an implementation, not a change to the platform. Hard service boundaries hold underneath — provider APIs only in the orchestrator, authorization only in the Control Center, secrets only through the vault.

Architecture

Architecture Architecture

Control plane — the orchestrator, Control Center, vault service, AI/MCP and extension registry, coordinated through the NATS JetStream event stream over shared persistence.

How it works

Define, orchestrate, execute.

1

Define with Nickel

Write servers, task services and clusters as typed declarations. Lazy evaluation and recursive merging compose them; a hierarchy of defaults, user, workspace and runtime configuration overrides them.

2

Orchestrate with Nushell

The provisioning CLI drives workflows as structured data pipelines — no fragile shell scripts. Operations report back as events on NATS JetStream, the single broker between services.

3

Execute with Rust

The orchestrator, Control Center and platform services are Rust: provider calls, SSH verified against pinned host keys, Cedar policy decisions and state in SurrealDB.

Infrastructure you can read, review and roll back

Everything lives in Git: schemas, Nickel modules and Nushell workflows are versionable, reviewable and reversible. Start from the platform overview or read how it is built.