---
type: how-to
title: استخدم Terraform أو OpenTofu
summary: أدِر Caputchin كبنية تحتية ككود بالمزوّد الرسمي، الذي يعمل بالمثل على Terraform وOpenTofu، مع مثال مشروح ورابط إلى مرجع السجلّ الكامل.
---

يتيح لك مزوّد Caputchin الرسمي إدارة حسابك كبنية تحتية ككود: تعلن الفرق، ومفاتيح المواقع، وسياسة الأمان، والأعضاء، والرموز في ملفّات `.tf` وتطبّقها كأي مورد آخر. إنه API الإدارة نفسه كأي شيء آخر تحت [الأتمتة](/docs/automation/management-api)، معبَّرًا عنه كموارد Terraform.

تُنشَر مرة واحدة وتعمل مع **Terraform وOpenTofu كليهما** من المصدر نفسه؛ الـ HCL متطابق، ولا يختلف سوى ثنائي الـ CLI‏ (`terraform` أو `tofu`) والسجلّ. في كل ما أدناه، استخدم أيًّا تشغّل.

## اسكك رمز وصول [#mint-an-access-token]

يقرأ المزوّد رمزه من متغيّر البيئة `CAPUTCHIN_MANAGEMENT_TOKEN` (موصى به، كي يبقى خارج المصدر). كلا نوعي الرمز يعمل (انظر [مصادقة الـ API](/docs/automation/management-api#mint-an-access-token)): [رمز وصول شخصي](/docs/account-management/personal-access-token) لبنية الحساب الكاملة، أو [رمز وصول فريق](/docs/troops/tokens) محصور بالفرق التي يديرها إعدادك.

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

هناك حالة بيضة ودجاجة: يستطيع المزوّد أيضًا *سكّ* الرموز (موردا `caputchin_account_token` و`caputchin_troop_pat`)، لكنه يحتاج رمزًا ليصادق من الأساس. اسكك الأول يدويًّا في لوحة التحكّم، ثم دع Terraform يدير البقية.

## أعدّ المزوّد

```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"` نفسه يُحلّ من Terraform Registry وOpenTofu Registry، فالكتلة هي ذاتها تحت أيّ أداة.

## مثال مشروح: فريق بمفتاح موقع محكوم ببوّابة

ينشئ هذا فريقًا، ومفتاح موقع فيه، ويشغّل بوّابة اللعبة لذلك المفتاح:

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

ثم، بأيّ أداة:

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

‏`secret` مفتاح الموقع سمة محسوبة حسّاسة؛ اقرأها من الحالة (`terraform output`) لإعداد [التحقّق على خادمك الخلفي](/docs/integration-guides/verify-on-your-backend). كل تطبيق منسوب إلى رمزك في [سجلّ التدقيق](/docs/audit-logs/overview) على Apex، فتغيير عبر Terraform قابل للتتبّع كتحرير في لوحة التحكّم.

## ما الذي تستطيع إدارته

تغطّي الموارد السطح نفسه كلوحة التحكّم: الفرق وأعضاؤها ورموزها، ومفاتيح المواقع، وإعدادات الأمان، والتحقّق المُستضاف، وتخصيص اللعبة والعلامة البيضاء، ورموز الحساب. تتيح مصادر البيانات قراءة الفرق والمواقع ومعلومات الحساب والإحصاءات القائمة إلى إعداد.

## المرجع الكامل

كل مورد ومصدر بيانات، بكل وسائطه وسماته وصياغة استيراده، على صفحة سجلّ المزوّد. إنه مولَّد من مصدر المزوّد، فيتتبّع النسخة المنشورة بدقّة:

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

للعمليات الأساسية التي يؤدّيها كل مورد، انظر [مرجع الـ API التفاعلي](/docs/api-reference).

## انظر أيضًا

- [أدِر Caputchin من الـ API](/docs/automation/management-api): API عبر HTTP الذي يجلس عليه المزوّد.
- [استخدم خادم MCP](/docs/automation/mcp): سطح وكيل الذكاء الاصطناعي.
- [الفرق](/docs/troops/overview) و[مفاتيح المواقع](/docs/site-keys/overview): الموارد التي تديرها.
