Quick Start
Get Yaffle running your OpenTofu in under 5 minutes.
Yaffle is fully compatible with existing Terraform configurations—no changes needed.
-
Install the GitHub App
Section titled “Install the GitHub App”Install Yaffle on your repository.
-
Connect your AWS account
Section titled “Connect your AWS account”Yaffle needs credentials to run OpenTofu. Add them in the dashboard or via connection config.
-
Add
Section titled “Add yaffle.toml”yaffle.tomlyaffle.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 }}" -
Push to main
Section titled “Push to main”Yaffle will:
- Run
tofu plan - Post results to the commit
- Apply to production
- Run
-
Open a PR
Section titled “Open a PR”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
Example Terraform
Section titled “Example Terraform”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
What you’ll see
Section titled “What you’ll see”On push to main:
Yaffle / infra (production)Plan: +1 ~0 -0Applied 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"- Configuration — Full config reference
- How it works — Architecture overview
- AWS setup — Credential configuration