Skip to content

Coming from Terraform and OpenTofu

This page explains which parts of Terraform's model carry over to reprobuild, what reprobuild manages with it today, and why Terraform or OpenTofu remains the tool for cloud resources.

What carries over

  • You declare the state you want, not the steps. A profile describes the files, services and settings you want a machine to have.
  • Plan, then apply. repro infra plan shows the difference between the declared state and the machine's state; repro infra apply makes the change.
  • State is recorded. Each apply records what it manages, so a later apply knows what to change or remove.

Concept map

Terraform or OpenTofureprobuild
.tf configurationa home profile or system profile
terraform planrepro infra plan
terraform applyrepro infra apply
state filethe profile's recorded generations
terraform graphrepro graph

What works differently

The target is the machine you are on. repro infra plan and repro infra apply manage resources on the machine that runs repro: files, services, users, registry values and similar host resources.

Every apply is a generation you can return to. Applying a changed profile creates a new generation. repro home rollback and repro system rollback return to an earlier one.

The profile is typed code. A profile is Nim, checked by the compiler, and it uses the same packages and store as your builds.

What reprobuild does not do

  • It does not manage cloud or remote resources, and it does not run Terraform or OpenTofu providers.
  • It has no remote state, state locking across machines, import or state commands.

When Terraform or OpenTofu remains the better choice

For any cloud resource, remote service or infrastructure shared by a team, use Terraform or OpenTofu: reprobuild does not manage them.

Next steps