|
| 1 | +# OpenTaco (formerly Digger) |
| 2 | + |
| 3 | +> OpenTaco is an all-in-one, open-source Terraform toolkit providing state management, PR automation, remote runs, and drift detection. It runs in your CI (GitHub Actions) and can be self-hosted. |
| 4 | + |
| 5 | +## Documentation |
| 6 | + |
| 7 | +- [Introduction](https://docs.opentaco.dev/readme/introduction): Overview of OpenTaco's core capabilities — state management, PR automation, remote runs, and drift detection. |
| 8 | +- [How It Works](https://docs.opentaco.dev/readme/howitworks): Architecture overview — five components: Statesman (state/remote runs), Drift, Token, Orchestrator (CI/PR automation), and UI (gateway proxy). |
| 9 | + |
| 10 | +## Getting Started |
| 11 | + |
| 12 | +- [Quick Start with Terraform](https://docs.opentaco.dev/ce/getting-started/with-terraform): Step-by-step guide to set up PR automation with GitHub Actions — create account at otaco.app, install GitHub App, configure cloud credentials, create digger.yml and workflow file. |
| 13 | +- [Quick Start with OpenTofu](https://docs.opentaco.dev/ce/getting-started/with-opentofu): Same flow using OpenTofu instead of Terraform. |
| 14 | +- [Quick Start with Terragrunt](https://docs.opentaco.dev/ce/getting-started/with-terragrunt): Same flow using Terragrunt. |
| 15 | +- [State Management Setup](https://docs.opentaco.dev/ce/getting-started/state-management): Connect local Terraform/OpenTofu to OpenTaco state backend — create a unit, configure cloud block, authenticate via `terraform login otaco.app`. |
| 16 | + |
| 17 | +## Concepts |
| 18 | + |
| 19 | +- [Units](https://docs.opentaco.dev/ce/concepts/unit): A unit is the smallest deployable Terraform state plus its lock and history. Supports lifecycle management (create, ls, info, rm), state operations (pull, push), lock coordination, versioning, and restore. |
| 20 | +- [Roles](https://docs.opentaco.dev/ce/concepts/role): Role definitions for access control. |
| 21 | + |
| 22 | +## State Management |
| 23 | + |
| 24 | +- [Introduction](https://docs.opentaco.dev/ce/state-management/introduction): Self-hostable state management with built-in RBAC, validation, multi-account access, versioning, and rollback. Currently supports S3 backend. |
| 25 | +- [Architecture](https://docs.opentaco.dev/ce/state-management/architecture): Statesman service provides REST API for state operations. TFE-compatible — supports `terraform login`. Stores state in S3-compatible storage with metadata in SQLite/PostgreSQL/MySQL/MSSQL. |
| 26 | +- [Quickstart](https://docs.opentaco.dev/ce/state-management/quickstart): Quick setup guide for state management. |
| 27 | +- [AWS Fargate Quickstart](https://docs.opentaco.dev/ce/state-management/aws-fargate-ad-quickstart): Deploy state management on AWS Fargate. |
| 28 | +- [GCP Quickstart](https://docs.opentaco.dev/ce/state-management/gcp-quickstart): Deploy state management on GCP. |
| 29 | +- [Cloud Backend](https://docs.opentaco.dev/ce/state-management/cloud-backend): Cloud backend configuration. |
| 30 | +- [RBAC](https://docs.opentaco.dev/ce/state-management/rbac): Role-based access control for state management. |
| 31 | +- [SSO](https://docs.opentaco.dev/ce/state-management/sso): Single sign-on integration. |
| 32 | +- [Versioning](https://docs.opentaco.dev/ce/state-management/versioning): State versioning and rollback capabilities. |
| 33 | +- [Query Backend](https://docs.opentaco.dev/ce/state-management/query-backend): Database backend configuration (SQLite, PostgreSQL, MySQL, MSSQL). |
| 34 | +- [Digger Integration](https://docs.opentaco.dev/ce/state-management/digger-integration): Integrating state management with the Digger orchestrator. |
| 35 | +- [Analytics](https://docs.opentaco.dev/ce/state-management/analytics): State management analytics. |
| 36 | +- [Development](https://docs.opentaco.dev/ce/state-management/development): Development setup for state management. |
| 37 | + |
| 38 | +## PR Automation Features |
| 39 | + |
| 40 | +- [CommentOps](https://docs.opentaco.dev/ce/features/commentops): Control terraform via PR comments — `digger plan`, `digger apply`, `digger lock`, `digger unlock`. Use `-p` flag to target specific projects. |
| 41 | +- [PR-Level Locks](https://docs.opentaco.dev/ce/features/pr-level-locks): Prevent concurrent terraform operations on the same project. |
| 42 | +- [Plan Preview](https://docs.opentaco.dev/ce/features/plan-preview): Preview terraform plan output in PR comments. |
| 43 | +- [AI Summaries](https://docs.opentaco.dev/ce/features/ai-summaries): AI-generated summaries of terraform plan output. |
| 44 | +- [Concurrency](https://docs.opentaco.dev/ce/features/concurrency): Parallel execution of terraform operations. |
| 45 | +- [Layering](https://docs.opentaco.dev/ce/features/layering): Control execution order of dependent projects. |
| 46 | +- [OPA Policies](https://docs.opentaco.dev/ce/features/opa-policies): Policy-as-code with Open Policy Agent — plan policies (validate terraform plan output) and access policies (control who can run operations). Configure via management repo, orchestrator API, or inline Conftest. |
| 47 | +- [RBAC](https://docs.opentaco.dev/ce/features/rbac): Role-based access control at organisation, repository, and project levels. Integrates with OPA and CODEOWNERS. |
| 48 | +- [Remote Jobs](https://docs.opentaco.dev/ce/features/remote-jobs): Run terraform remotely via `dgctl exec` with streamed logs. Local directory is zipped and uploaded to CI. Respects OPA RBAC policies. |
| 49 | +- [Private Runners](https://docs.opentaco.dev/ce/features/private-runners): Use private GitHub Actions runners. |
| 50 | +- [Multi-GitHub](https://docs.opentaco.dev/ce/features/multi-github): Support for multiple GitHub organizations. |
| 51 | +- [FIPS 140](https://docs.opentaco.dev/ce/features/fips-140): FIPS 140 compliance support. |
| 52 | + |
| 53 | +## Drift Detection |
| 54 | + |
| 55 | +- [Set Up in UI](https://docs.opentaco.dev/ce/drift/set-up-in-ui): Configure drift detection schedules (hourly, daily, or custom crontab) via the UI. |
| 56 | +- [Slack Notifications](https://docs.opentaco.dev/ce/drift/slack-notifications): Send drift alerts to Slack via webhooks. |
| 57 | +- [GitHub Issues](https://docs.opentaco.dev/ce/drift/github-issues): Create GitHub issues for detected drift. |
| 58 | +- [Remediation](https://docs.opentaco.dev/ce/drift/remediation): Remediate detected drift. |
| 59 | +- [Scoping Projects](https://docs.opentaco.dev/ce/drift/scoping-projects): Scope drift detection to specific projects. |
| 60 | +- [Self-Host](https://docs.opentaco.dev/ce/drift/self-host): Self-host drift detection. |
| 61 | +- [Troubleshooting](https://docs.opentaco.dev/ce/drift/troubleshooting): Troubleshoot drift detection issues. |
| 62 | + |
| 63 | +## How-To Guides |
| 64 | + |
| 65 | +- [Apply on Merge](https://docs.opentaco.dev/ce/howto/apply-on-merge): Automatically run terraform apply when PRs are merged. |
| 66 | +- [Apply Requirements](https://docs.opentaco.dev/ce/howto/apply-requirements): Configure conditions before apply (approved, mergeable, undiverged). |
| 67 | +- [Auto Merge](https://docs.opentaco.dev/ce/howto/auto-merge): Automatically merge PRs after successful apply. |
| 68 | +- [Backendless Mode](https://docs.opentaco.dev/ce/howto/backendless-mode): Run without the orchestrator backend. |
| 69 | +- [Caching Strategies](https://docs.opentaco.dev/ce/howto/caching-strategies): Cache terraform providers and modules. |
| 70 | +- [CODEOWNERS](https://docs.opentaco.dev/ce/howto/codeowners): Use CODEOWNERS files for approval workflows. |
| 71 | +- [Commenting Strategies](https://docs.opentaco.dev/ce/howto/commenting-strategies): Configure how plan output is posted to PRs. |
| 72 | +- [Custom Commands](https://docs.opentaco.dev/ce/howto/custom-commands): Run custom shell commands in workflows. |
| 73 | +- [Destroy Manual](https://docs.opentaco.dev/ce/howto/destroy-manual): Manually destroy terraform resources. |
| 74 | +- [Disable Auto Checkout](https://docs.opentaco.dev/ce/howto/disable-auto-checkout): Disable automatic repository checkout. |
| 75 | +- [Disable Telemetry](https://docs.opentaco.dev/ce/howto/disable-telemetry): Disable anonymized usage data collection. |
| 76 | +- [Draft PRs](https://docs.opentaco.dev/ce/howto/draft-prs): Handle draft pull requests. |
| 77 | +- [Generate Projects](https://docs.opentaco.dev/ce/howto/generate-projects): Auto-discover projects using glob patterns. |
| 78 | +- [Ignore PR Events](https://docs.opentaco.dev/ce/howto/ignore-pull-request-events): Ignore specific pull request events. |
| 79 | +- [Include/Exclude Patterns](https://docs.opentaco.dev/ce/howto/include-exclude-patterns): Filter file changes that trigger operations. |
| 80 | +- [Masking Sensitive Values](https://docs.opentaco.dev/ce/howto/masking-sensitive-values): Mask sensitive values in plan output. |
| 81 | +- [Multi-Account AWS](https://docs.opentaco.dev/ce/howto/multiacc-aws): Configure multiple AWS accounts. |
| 82 | +- [Noise Reduction](https://docs.opentaco.dev/ce/howto/noise-reduction): Reduce noise in PR comments. |
| 83 | +- [Plan Artefacts](https://docs.opentaco.dev/ce/howto/plan-artefacts): Store and retrieve plan artefacts. |
| 84 | +- [Policy Overrides](https://docs.opentaco.dev/ce/howto/policy-overrides): Override OPA policies. |
| 85 | +- [Project-Level Roles](https://docs.opentaco.dev/ce/howto/project-level-roles): Configure roles per project. |
| 86 | +- [Segregate Cloud Accounts](https://docs.opentaco.dev/ce/howto/segregate-cloud-accounts): Separate cloud account access. |
| 87 | +- [Specify Terraform Version](https://docs.opentaco.dev/ce/howto/specify-terraform-version): Pin terraform version. |
| 88 | +- [Trigger Directly](https://docs.opentaco.dev/ce/howto/trigger-directly): Trigger operations without PR events. |
| 89 | +- [Using Checkov](https://docs.opentaco.dev/ce/howto/using-checkov): Integrate Checkov static analysis. |
| 90 | +- [Using Infracost](https://docs.opentaco.dev/ce/howto/using-infracost): Integrate Infracost cost estimation. |
| 91 | +- [Using OPA/Conftest](https://docs.opentaco.dev/ce/howto/using-opa-conftest): Integrate OPA via Conftest CLI. |
| 92 | +- [Using Terragrunt](https://docs.opentaco.dev/ce/howto/using-terragrunt): Configure Terragrunt support. |
| 93 | +- [Versioning](https://docs.opentaco.dev/ce/howto/versioning): Version management. |
| 94 | + |
| 95 | +## Cloud Providers |
| 96 | + |
| 97 | +- [AWS](https://docs.opentaco.dev/ce/cloud-providers/aws): AWS provider configuration. |
| 98 | +- [Authenticating with OIDC on AWS](https://docs.opentaco.dev/ce/cloud-providers/authenticating-with-oidc-on-aws): Use OIDC for AWS authentication instead of static credentials. |
| 99 | +- [Setting Up Separate Management Account](https://docs.opentaco.dev/ce/cloud-providers/setting-up-separate-mgmt-account): Configure a dedicated management account. |
| 100 | +- [GCP + GitHub Actions](https://docs.opentaco.dev/ce/gcp/setting-up-gcp-+-gh-actions): Set up GCP with GitHub Actions. |
| 101 | +- [GCP Federated OIDC](https://docs.opentaco.dev/ce/gcp/federated-oidc-access): Use federated OIDC for GCP access. |
| 102 | +- [GCP Bucket for Locks](https://docs.opentaco.dev/ce/gcp/using-gcp-bucket-for-locks): Use GCP bucket for state locking. |
| 103 | +- [Azure](https://docs.opentaco.dev/ce/azure-specific/azure): Azure provider configuration. |
| 104 | +- [Azure DevOps Locking](https://docs.opentaco.dev/ce/azure-specific/azure-devops-locking-connection-methods): Azure DevOps locking connection methods. |
| 105 | + |
| 106 | +## Self-Hosting |
| 107 | + |
| 108 | +- [Deploy with Docker](https://docs.opentaco.dev/ce/self-host/deploy-docker): Deploy the orchestrator backend as a Docker container. Requires PostgreSQL, GitHub App setup. |
| 109 | +- [Deploy with Docker Compose](https://docs.opentaco.dev/ce/self-host/deploy-docker-compose): Deploy using Docker Compose. |
| 110 | +- [Deploy Binary](https://docs.opentaco.dev/ce/self-host/deploy-binary): Deploy as a standalone binary. |
| 111 | +- [Deploy with Helm](https://docs.opentaco.dev/ce/self-host/deploy-helm): Deploy on Kubernetes with Helm. |
| 112 | +- [Self-Host on Azure](https://docs.opentaco.dev/ce/self-host/self-host-on-azure): Deploy on Azure. |
| 113 | +- [Self-Host on Railway](https://docs.opentaco.dev/ce/self-host/self-host-on-railway): Deploy on Railway platform. |
| 114 | +- [Auth Methods](https://docs.opentaco.dev/ce/self-host/auth-methods): Authentication methods for self-hosted deployments. |
| 115 | + |
| 116 | +## Reference |
| 117 | + |
| 118 | +- [digger.yml Configuration](https://docs.opentaco.dev/ce/reference/digger.yml): Complete configuration reference. Top-level: telemetry, pr_locks, auto_merge, traverse_to_nested_projects, comment_render_mode. Per-project: name, dir, workspace, branch, terragrunt/opentofu/pulumi, layer, apply_requirements, drift_detection, depends_on, include/exclude patterns, AWS role assumption. Workflows: on_pull_request_pushed, on_pull_request_closed, on_commit_to_default with plan/apply stages and custom run steps. |
| 119 | +- [Action Inputs](https://docs.opentaco.dev/ce/reference/action-inputs): GitHub Action inputs — cloud provider setup (AWS/GCP/Azure), tool versions (Terraform/Terragrunt/OpenTofu/Checkov), plan upload destinations, execution options (disable-locking, no-backend, digger-filename, mode, reporting-strategy). |
| 120 | +- [Environment Variables](https://docs.opentaco.dev/ce/reference/environment-variables): Complete env var reference for all services — Statesman (OPENTACO_PORT, OPENTACO_STORAGE, OPENTACO_QUERY_BACKEND, auth/OIDC/JWT config, sandbox config), Core Services (DATABASE_URL, GITHUB_APP_* vars), E2B Sandbox Sidecar, UI/WorkOS auth. |
| 121 | +- [Comment Args](https://docs.opentaco.dev/ce/reference/comment-args): Arguments available in PR comments. |
| 122 | +- [API](https://docs.opentaco.dev/ce/reference/api): Orchestrator REST API — policy retrieval and updates at project and org levels. Bearer token auth. API is not yet stable. |
| 123 | +- [terraform.lock](https://docs.opentaco.dev/ce/reference/terraform.lock): Handling terraform lock files. |
| 124 | +- [Terragrunt Parsing](https://docs.opentaco.dev/ce/reference/terragrunt-parsing): How Digger parses Terragrunt configurations. |
| 125 | + |
| 126 | +## Local Development |
| 127 | + |
| 128 | +- [Overview](https://docs.opentaco.dev/ce/local-development/overview): Local development environment overview. |
| 129 | +- [Backend](https://docs.opentaco.dev/ce/local-development/backend): Set up the backend locally. |
| 130 | +- [GitHub App](https://docs.opentaco.dev/ce/local-development/github-app): Set up a GitHub App for local development. |
| 131 | +- [Statesman](https://docs.opentaco.dev/ce/local-development/statesman): Set up Statesman locally. |
| 132 | +- [UI](https://docs.opentaco.dev/ce/local-development/ui): Set up the UI locally. |
| 133 | + |
| 134 | +## Troubleshooting |
| 135 | + |
| 136 | +- [Action Errors](https://docs.opentaco.dev/ce/troubleshooting/action-errors): Common GitHub Action errors and solutions. |
| 137 | +- [Comments](https://docs.opentaco.dev/ce/troubleshooting/comments): Issues with PR comments. |
| 138 | +- [Importing Existing Resources](https://docs.opentaco.dev/ce/troubleshooting/importing-existing-resources): Import existing infrastructure into Digger. |
| 139 | + |
| 140 | +## Contributing |
| 141 | + |
| 142 | +- [Setup Dev Environment](https://docs.opentaco.dev/ce/contributing/setup-dev-environment): Set up a development environment for contributing to OpenTaco. |
0 commit comments