Skip to content

What is DOTkit ​

DOTkit is an Ops Toolkit It is a catalog of verified infrastructure components and a command-line tool, dotkit, that scaffolds, provisions and wires them. You describe your application once in a Score file, pick the components it needs, and run dotkit up. Your machine needs Docker and Node; OpenTofu and every cloud tool run inside containers.

The problem it removes ​

Every team that ships an app needs the same twenty things: a container runtime, a bucket, a database, logs and traces, secrets that don't leak, a URL. Every team rebuilds them, slightly wrong, on every cloud. The work is not hard; it is guesswork, repeated.

Who it is for ​

Developers with nobody doing ops. You never learn what an ALB target group is. score.yaml says "my container, port 3000, I need openobserve"; DOTkit does the rest and injects the endpoint into your container.

Ops and platform people. Scaffold a working baseline in minutes, hand it over, and stop answering the same questions. Everything generated is plain OpenTofu you can read, own and extend through inputs.

AI agents. An agent can write cloud HCL, and it will look right. It cannot promise the result works on your cloud today, and you pay tokens every time it regenerates and debugs it. Pointing the agent at a verified catalog turns generation into consumption: zero guesswork, no apply-time surprises, and far fewer tokens.

What a component is ​

A versioned, digest-pinned unit with a conformance test. Three kinds:

kindwhat it isportable?
primitivean OpenTofu module per (cloud, target): network, runtime, bucket, secret, postgresthe interface is; the implementation is per cloud
composed servicea manifest only (containers + required primitives): openobserve, umamiyes, everywhere the primitives exist
chart servicea Helm chart wrapper for Kubernetes-only tools (SigNoz-class)Kubernetes only

A component's outputs are wired into your containers through Score placeholders (${resources.obs.otlp_endpoint}). Sensitive outputs travel as platform secret references, never plain environment variables.

What it is not ​

  • Not a platform you host (Coolify, Dokploy). Nothing of DOTkit keeps running after up.
  • Not a new configuration language. Score in, OpenTofu out.
  • Not Kubernetes-first. Serverless containers first; Kubernetes for the services that need it.

Claims are tiers ​

A component x cloud x target cell exists only when its conformance test is green: emulator-tested (MiniStack, on every merge) or cloud-tested (real account, nightly). Nothing else is listed on this site.

Status (2026-09) ​

piecestate
Contract: input files, components, primitives, provider profilesv2.5 frozen
Node -> Dagger -> OpenTofu -> MiniStack -> real ECS containerproven by a spike
CLI experiencedesigned; implementation in stream B
Example app (examples/hello): the §2 workload and §7 fixturepublished image, multi-arch
CLI, generator, runnerbeing built
network, runtime, bucket, secret (aws/serverless), openobservebeing built
Providersaws (emulator); Scaleway, GCP, Azure planned
Targetsserverless; Kubernetes planned

This page changes in the same merge request as the code it describes.

Released under the MIT License