Skip to content

Quick Start

Get Yaffle running your OpenTofu in under 5 minutes.

Yaffle is fully compatible with existing Terraform configurations—no changes needed.

  1. Install Yaffle on your repository.

  2. Yaffle needs credentials to run OpenTofu. Add them in the dashboard or via connection config.

  3. yaffle.toml
    version = 1
    [[environments]]
    name = "production"
    [[environments]]
    name = "staging"
    [[triggers.github.push]]
    branch = "main"
    environment = "production"
    [[triggers.github.push]]
    branch = "staging"
    environment = "staging"
    [[triggers.github.pull_request]]
    branch_pattern = "*"
    [[workspaces]]
    path = "infra"
    environments = ["*"]
    variables.environment = "{{ environment }}"
  4. Yaffle will:

    • Run tofu plan
    • Post results to the commit
    • Apply to production
  5. Yaffle will:

    • Plan and apply to an isolated preview
    • Post outputs (URLs, connection strings) to the PR
    • Update on every push
    • Destroy when the PR closes
infra/main.tf
variable "environment" {
type = string
}
resource "aws_s3_bucket" "data" {
bucket = "myapp-${var.environment}"
}
output "bucket_name" {
value = aws_s3_bucket.data.bucket
}

For production: myapp-production
For a PR: myapp-pr-42

On push to main:

Yaffle / infra (production)
Plan: +1 ~0 -0
Applied successfully.

On PR:

Yaffle / infra (preview: pr-42)
Plan: +1 ~0 -0
+ aws_s3_bucket.data
bucket = "myapp-pr-42"
Applied. Outputs:
bucket_name = "myapp-pr-42"