> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cartesia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# エアギャップ環境でのデプロイメント

> Cartesia のライセンスサーバーへのインターネット接続なしで Cartesia をデプロイします

Cartesia のライセンスサーバーへのインターネット接続がないデプロイメントでは、エアギャップモードで動作させることができます。このモードでは、リアルタイム認証の代わりにオフラインライセンスファイルを使用します。

<Note>オフラインライセンスファイルは [オンプレミスポータル](https://play.cartesia.ai/on-prem) からダウンロードできます。詳細は [プロビジョニング済みリソース](/self-hosted/provisioned-resources) を参照してください。</Note>

## 設定

<Tabs>
  <Tab title="Terraform">
    ```hcl theme={null}
    # In your .tfvars file
    authenticate               = false
    license_proxy_persistence  = true   # Required for air-gapped mode
    ```
  </Tab>

  <Tab title="Helm">
    ```yaml theme={null}
    infra:
      authenticate: false
    licenseProxy:
      persistence:
        enabled: true
        storageClass: gp2  # Use appropriate storage class for your cluster
    ```
  </Tab>
</Tabs>

## ライセンスの読み込み

インストール時にライセンスをシード（初回デプロイで推奨）するか、稼働中のクラスタの `/license` エンドポイントにアップロードできます。

### インストール時

ダウンロードしたライセンスファイルを直接デプロイツールに渡します。チャートはライセンスを含む `ConfigMap` を作成し、初回起動時にそれを license-proxy のボリュームへコピーする `initContainer` を追加します。これにより、`terraform apply` / `helm install` 1 回でセットアップが完了します。

<Tabs>
  <Tab title="Terraform">
    ```hcl theme={null}
    # In your .tfvars file
    authenticate              = false
    license_proxy_persistence = true
    license_proxy_seed_file   = "/path/to/license.json"
    ```

    次のコマンドを実行します:

    ```bash theme={null}
    terraform apply
    ```
  </Tab>

  <Tab title="Helm">
    ```bash theme={null}
    helm install cartesia ./cartesia \
      --set infra.authenticate=false \
      --set licenseProxy.persistence.enabled=true \
      --set-file licenseProxy.licenseContent=/path/to/license.json
    ```

    <Note>ファイル内容を渡すには `--set-file` を使ってください。`--set` だと JSON を構造化された値としてパースしようとして失敗します。</Note>
  </Tab>
</Tabs>

このシードは一度きりのブートストラップであり、ライセンスが既にディスク上に存在する場合、initContainer はコピーをスキップします。後から `POST /license` 経由でアップロードされたライセンスが自動的に優先されます（license proxy は最新の `issued_at` を持つライセンスを選択します）。また、Pod の再起動でも上書きされません。

シードされたライセンスをローテーションするには、新しいライセンスを `POST /license` でアップロードしてください（下記参照）。`terraform apply` / `helm upgrade` の再実行だけではディスク上の既存ライセンスを上書きしません。

### 稼働中のクラスタ

<Note>`/license` および `/audit` エンドポイントは、API Pod ではなく、`cartesia-license-proxy` サービス背後の license proxy Pod によって提供されます。</Note>

エアギャップモードでは、ライセンス管理のために `/license` エンドポイントが公開されます。

#### Port-Forward 経由

```bash theme={null}
kubectl port-forward svc/cartesia-license-proxy 8080:8080 -n cartesia
```

別のターミナルで:

```bash theme={null}
curl -X POST http://localhost:8080/license -d '<license-json>'
```

#### Ingress 経由

ingress が有効な場合:

```bash theme={null}
curl -X POST https://<your-domain>/license -d '<license-json>'
```

## 監査ログの取得

エアギャップモードでは、利用状況の監査ログを取得するための `/audit` エンドポイントが利用できます:

```bash theme={null}
curl -X GET https://<your-domain>/audit --output audits.tar
```

これらの監査ログには、課金照合のための利用メタデータが含まれます。トランスクリプトデータは一切含まれておらず、出力内容を確認することでそれを検証できます。
