---
type: how-to
title: Terraform oder OpenTofu nutzen
summary: Verwalte Caputchin als Infrastructure-as-Code mit dem offiziellen Provider, der auf Terraform und OpenTofu identisch funktioniert, mit einem ausgearbeiteten Beispiel und einem Link zur vollständigen Registry-Referenz.
---

Der offizielle Caputchin-Provider lässt dich dein Konto als Infrastructure-as-Code verwalten: deklarier Teams, Site-Keys, Sicherheitsrichtlinie, Mitglieder und Tokens in `.tf`-Dateien und wende sie wie jede andere Ressource an. Es ist dieselbe Management-API wie alles andere unter [Automatisierung](/docs/automation/management-api), ausgedrückt als Terraform-Ressourcen.

Er wird einmal veröffentlicht und funktioniert mit **sowohl Terraform als auch OpenTofu** aus derselben Quelle; das HCL ist identisch, nur das CLI-Binary (`terraform` oder `tofu`) und die Registry unterscheiden sich. Überall unten nimm, was du auch ausführst.

## Ein Access Token prägen [#mint-an-access-token]

Der Provider liest seinen Token aus der Umgebungsvariable `CAPUTCHIN_MANAGEMENT_TOKEN` (empfohlen, damit er aus dem Quellcode bleibt). Beide Token-Arten funktionieren (siehe [API-Authentifizierung](/docs/automation/management-api#mint-an-access-token)): ein [Personal Access Token](/docs/account-management/personal-access-token) für vollständige Konto-Infrastruktur oder ein [Troop Access Token](/docs/troops/tokens), eingeschränkt auf die Teams, die deine Konfiguration verwaltet.

```bash
export CAPUTCHIN_MANAGEMENT_TOKEN=cpt_pat_...
```

Es gibt einen Henne-Ei-Fall: der Provider kann auch Tokens *prägen* (die Ressourcen `caputchin_account_token` und `caputchin_troop_pat`), aber er braucht überhaupt erst einen Token, um sich zu authentifizieren. Präg den ersten von Hand im Dashboard, dann lass Terraform den Rest verwalten.

## Den Provider konfigurieren

```hcl
terraform {
  required_providers {
    caputchin = {
      source  = "caputchin/caputchin"
      version = "~> 0.1"
    }
  }
}

# Token from CAPUTCHIN_MANAGEMENT_TOKEN; endpoint defaults to https://api.caputchin.com.
provider "caputchin" {}
```

Dasselbe `source = "caputchin/caputchin"` löst sich aus der Terraform Registry und der OpenTofu Registry auf, also ist der Block unter beiden Tools gleich.

## Ein ausgearbeitetes Beispiel: ein Team mit einem gegateten Site-Key

Das erstellt ein Team, einen Site-Key darin und schaltet das Spiel-Gate für diesen Key ein:

```hcl
resource "caputchin_troop" "shop" {
  name = "shop-team"
}

resource "caputchin_site_key" "shop_frontend" {
  name     = "shop-frontend"
  troop_id = caputchin_troop.shop.id
}

resource "caputchin_site_security_settings" "shop_frontend" {
  site_id      = caputchin_site_key.shop_frontend.id
  require_game = true
}

# The public key is an attribute; the secret is sensitive, in state only.
output "shop_site_key" {
  value = caputchin_site_key.shop_frontend.key
}
```

Dann, mit beiden Tools:

```bash
terraform init && terraform apply
# or
tofu init && tofu apply
```

Das `secret` des Site-Keys ist ein sensitives berechnetes Attribut; lies es aus dem State (`terraform output`), um deine [Backend-Verifizierung](/docs/integration-guides/verify-on-your-backend) zu konfigurieren. Jeder Apply wird deinem Token im [Audit-Log](/docs/audit-logs/overview) auf Apex zugeschrieben, sodass eine Änderung durch Terraform so nachverfolgbar ist wie eine Dashboard-Bearbeitung.

## Was du verwalten kannst

Ressourcen decken dieselbe Fläche wie das Dashboard ab: Teams und ihre Mitglieder und Tokens, Site-Keys, Sicherheitseinstellungen, gehostete Verifizierung, Spiel- und White-Label-Anpassung und Konto-Tokens. Data Sources lassen dich bestehende Teams, Sites, Konto-Infos und Statistik in eine Konfiguration einlesen.

## Die vollständige Referenz

Jede Ressource und Data Source, mit all ihren Argumenten und Attributen und ihrer Import-Syntax, ist auf der Registry-Seite des Providers. Sie wird aus der Provider-Quelle generiert, also verfolgt sie die veröffentlichte Version exakt:

- Terraform Registry: `registry.terraform.io/providers/caputchin/caputchin`
- OpenTofu Registry: `search.opentofu.org/provider/caputchin/caputchin`

Für die zugrunde liegenden Operationen, die jede Ressource ausführt, sieh dir die [interaktive API-Referenz](/docs/api-reference) an.

## Siehe auch

- [Caputchin über die API verwalten](/docs/automation/management-api): die HTTP-API, auf der der Provider sitzt.
- [Den MCP-Server nutzen](/docs/automation/mcp): die KI-Agenten-Fläche.
- [Teams](/docs/troops/overview) und [Site-Keys](/docs/site-keys/overview): die Ressourcen, die du verwaltest.
