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

# serve

> リモート実行と Web コンソール用の API サーバーを起動します。

## 概要

```bash theme={null}
npx @refrainai/cli serve
```

Web コンソールとリモート手順書実行を支える HTTP API サーバーを起動します。REST エンドポイント、SSE ストリーミング、Inngest によるジョブスケジューリング、Redis Pub/Sub によるリアルタイム更新を提供します。

<Note>
  API サーバーのリモート実行機能には Team プラン以上が必要です。
</Note>

## 前提条件

サーバー起動前に以下を準備してください：

1. **PostgreSQL** — 手順書、ジョブ、設定、メータリング用データベース
2. **Redis** — SSE リアルタイムストリーミングと Pub/Sub に必要
3. **Inngest**（任意） — スケジュール・バックグラウンド実行用ジョブキュー

## 環境変数

### 必須

| 変数                   | 説明                 |
| -------------------- | ------------------ |
| `DATABASE_URL`       | PostgreSQL 接続文字列   |
| `REDIS_URL`          | Redis 接続文字列        |
| `BETTER_AUTH_SECRET` | 認証用シークレット（セッション署名） |

### オプション

| 変数                    | デフォルト  | 説明             |
| --------------------- | ------ | -------------- |
| `PORT`                | `3000` | サーバーポート        |
| `INNGEST_EVENT_KEY`   | -      | Inngest イベントキー |
| `INNGEST_SIGNING_KEY` | -      | Inngest 署名キー   |
| `REFRAIN_API_KEY`     | -      | デフォルト API キー   |

### AI プロバイダー認証情報

サーバーは CLI と同じ AI プロバイダー環境変数を使用します：

| 変数                             | 説明                           |
| ------------------------------ | ---------------------------- |
| `ANTHROPIC_API_KEY`            | Anthropic API キー             |
| `OPENAI_API_KEY`               | OpenAI API キー                |
| `GOOGLE_GENERATIVE_AI_API_KEY` | Gemini API キー                |
| `AZURE_RESOURCE_NAME`          | Azure OpenAI リソース名           |
| `AZURE_API_KEY`                | Azure OpenAI API キー          |
| `AWS_REGION`                   | Bedrock の AWS リージョン          |
| `AWS_ACCESS_KEY_ID`            | Bedrock の AWS アクセスキー         |
| `AWS_SECRET_ACCESS_KEY`        | Bedrock の AWS シークレットキー       |
| `GOOGLE_VERTEX_PROJECT`        | Vertex の Google Cloud プロジェクト |
| `GOOGLE_VERTEX_LOCATION`       | Vertex の Google Cloud リージョン  |

## セットアップ

<Steps>
  <Step title="環境の設定">
    必須変数を含む `.env` ファイルを作成します：

    ```bash theme={null}
    DATABASE_URL="postgresql://user:pass@localhost:5432/refrain"
    REDIS_URL="redis://localhost:6379"
    BETTER_AUTH_SECRET="your-random-secret"
    ANTHROPIC_API_KEY="sk-ant-..."
    ```
  </Step>

  <Step title="データベースマイグレーション">
    ```bash theme={null}
    npx @refrainai/cli db:migrate
    ```
  </Step>

  <Step title="サーバーの起動">
    ```bash theme={null}
    npx @refrainai/cli serve
    ```
  </Step>
</Steps>

## API エンドポイント

サーバーは手順書、ジョブ、設定を管理する REST エンドポイントを提供します。全エンドポイントは API キーまたはセッションによる認証が必要です。

| エンドポイント                 | メソッド | 説明                                 |
| ----------------------- | ---- | ---------------------------------- |
| `/api/runbooks`         | GET  | 手順書一覧                              |
| `/api/runbooks`         | POST | 手順書の作成                             |
| `/api/runbooks/:id`     | GET  | 手順書の詳細                             |
| `/api/jobs`             | POST | ジョブの作成（execute/generate/self-heal） |
| `/api/jobs`             | GET  | ジョブ一覧                              |
| `/api/jobs/:id`         | GET  | ジョブの詳細                             |
| `/api/jobs/:id/stream`  | GET  | リアルタイム更新の SSE ストリーム                |
| `/api/jobs/:id/approve` | POST | 待機中ジョブの承認                          |
| `/api/jobs/:id/reject`  | POST | 待機中ジョブの拒否                          |
| `/api/jobs/:id/cancel`  | POST | 実行中ジョブのキャンセル                       |

プログラマティックな使用方法は [SDK](/ja/sdk/overview) を参照してください。
