---
type: how-to
title: Pakai Terraform atau OpenTofu
summary: Kelola Caputchin sebagai infrastructure-as-code dengan penyedia resmi, yang berfungsi identik di Terraform dan OpenTofu, dengan contoh kerja dan tautan ke referensi registry lengkap.
---

Penyedia resmi Caputchin membiarkanmu mengelola akunmu sebagai infrastructure-as-code: deklarasikan tim, kunci situs, kebijakan keamanan, anggota, dan token di berkas `.tf` dan terapkan seperti sumber daya lain mana pun. Ia adalah management API yang sama dengan semua hal lain di bawah [otomasi](/docs/automation/management-api), dinyatakan sebagai sumber daya Terraform.

Ia dipublikasikan sekali dan berfungsi dengan **baik Terraform maupun OpenTofu** dari sumber yang sama; HCL-nya identik, hanya biner CLI (`terraform` atau `tofu`) dan registry yang berbeda. Di mana pun di bawah, pakai yang mana pun yang kamu jalankan.

## Cetak sebuah access token [#mint-an-access-token]

Penyedia membaca token-nya dari variabel lingkungan `CAPUTCHIN_MANAGEMENT_TOKEN` (disarankan, agar ia tetap di luar sumber). Salah satu jenis token berfungsi (lihat [autentikasi API](/docs/automation/management-api#mint-an-access-token)): sebuah [personal access token](/docs/account-management/personal-access-token) untuk infrastruktur seluruh-akun, atau sebuah [troop access token](/docs/troops/tokens) tercakup ke tim yang dikelola konfigurasimu.

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

Ada kasus ayam-dan-telur: penyedia juga bisa *mencetak* token (sumber daya `caputchin_account_token` dan `caputchin_troop_pat`), tapi ia butuh sebuah token untuk berautentikasi sejak awal. Cetak yang pertama dengan tangan di dasbor, lalu biarkan Terraform mengelola sisanya.

## Konfigurasi penyedia

```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" {}
```

`source = "caputchin/caputchin"` yang sama menyelesaikan dari Terraform Registry dan OpenTofu Registry, jadi blok-nya sama di bawah salah satu alat.

## Contoh kerja: sebuah tim dengan kunci situs bergerbang

Ini membuat sebuah tim, sebuah kunci situs di dalamnya, dan menyalakan gerbang game untuk key itu:

```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
}
```

Lalu, dengan salah satu alat:

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

`secret` kunci situs adalah atribut terkomputasi yang sensitif; baca ia dari state (`terraform output`) untuk mengonfigurasi [verifikasi backend](/docs/integration-guides/verify-on-your-backend)-mu. Setiap apply diatribusikan ke token-mu di [log audit](/docs/audit-logs/overview) di Apex, jadi sebuah perubahan lewat Terraform sama bisa-dilacaknya dengan suntingan dasbor.

## Apa yang bisa kamu kelola

Sumber daya mencakup permukaan yang sama dengan dasbor: tim dan anggota serta token mereka, kunci situs, pengaturan keamanan, verifikasi terhosting, kustomisasi game dan white-label, dan token akun. Sumber data membiarkanmu membaca tim, situs, info akun, dan statistik yang ada ke dalam sebuah konfigurasi.

## Referensi lengkap

Setiap sumber daya dan sumber data, dengan semua argumen dan atribut serta sintaks impor-nya, ada di halaman registry penyedia. Ia dihasilkan dari sumber penyedia, jadi ia melacak versi yang dirilis persis:

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

Untuk operasi mendasar yang dilakukan tiap sumber daya, lihat [referensi API interaktif](/docs/api-reference).

## Lihat juga

- [Kelola Caputchin dari API](/docs/automation/management-api): API HTTP yang menjadi dasar penyedia.
- [Pakai server MCP](/docs/automation/mcp): permukaan agen-AI.
- [Tim](/docs/troops/overview) dan [kunci situs](/docs/site-keys/overview): sumber daya yang kamu kelola.
