> ## Documentation Index
> Fetch the complete documentation index at: https://firecrawl-claude-eager-dijkstra-27eiio.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 開発用に Firecrawl をローカルで実行する

> Firecrawl API の開発環境をセットアップし、ローカルでのスクレイピングを確認して、コントリビュート前にリポジトリ提供のテストハーネスを実行します。

API、ワーカー、テストを変更する場合は、Firecrawl をローカルで実行します。この手順では開発用の依存関係をインストールし、API ハーネスとともにリポジトリ提供のサービスを起動します。

<Warning>
  これはコントリビューター向けの開発環境であり、デプロイガイドではありません。
  プロダクトを変更せずに、自身で管理するインフラで Firecrawl を実行する場合は、
  [Firecrawl のセルフホスティング](/ja/contributing/self-host)を参照してください。
</Warning>

<div id="choose-local-development-or-self-hosting">
  ## ローカル開発またはセルフホスティングを選択する
</div>

* 現在のソースリビジョンに対してコードの変更・テスト・デバッグを迅速に繰り返す必要がある場合は、**ローカルで開発する**。
* 自身のインフラで安定した Docker Compose ベースラインを使用したい場合は、**特定バージョンのリリースをセルフホストする**。
* どちらの環境も運用せず、最も迅速に利用できるマネージド環境を求める場合は、**Firecrawl Cloud を使用する**。

これらの環境は分けて使用してください。`apps/api/.env` の API 開発用ファイルとルートの Compose `.env` はそれぞれ異なるプロセスで使用されるため、互換性はありません。

<div id="start-the-firecrawl-development-environment">
  ## Firecrawl 開発環境を起動する
</div>

<div id="install-the-prerequisites">
  ### 前提条件をインストールする
</div>

以下をインストールします。

* [Git](https://git-scm.com/downloads)
* Node.js 22
* pnpm `11.4.0`
* [Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/)
* API ハーネスが管理する PostgreSQL および RabbitMQ コンテナ用の Docker または Podman
* [Go](https://go.dev/dl/) 1.23 以降 (API ハーネスにより起動のたびに再ビルドされます)
* [Rust](https://www.rust-lang.org/tools/install) (`@mendable/firecrawl-rs` ネイティブパッケージ用に `pnpm install` 時にビルドされます)

API で使用するパッケージマネージャーのバージョンを有効にします。

```bash theme={null}
corepack enable
corepack prepare pnpm@11.4.0 --activate
```

<div id="clone-firecrawl-and-install-dependencies">
  ### Firecrawl をクローンし、依存関係をインストールする
</div>

```bash theme={null}
git clone https://github.com/firecrawl/firecrawl.git
cd firecrawl/apps/api
pnpm install
```

`apps/api/.env` を作成し、認証なしの最小限の開発用構成を設定します：

```bash theme={null}
cat > .env <<'EOF'
PORT=3002
HOST=0.0.0.0
REDIS_URL=redis://localhost:6379
REDIS_RATE_LIMIT_URL=redis://localhost:6379
USE_DB_AUTHENTICATION=false
PLAYWRIGHT_MICROSERVICE_URL=
EOF
```

ハーネスにローカルの PostgreSQL および RabbitMQ コンテナを作成させる場合は、`NUQ_DATABASE_URL` と `NUQ_RABBITMQ_URL` を設定しないでください。これらの依存関係を自分で運用する場合にのみ設定してください。

<div id="start-redis-and-firecrawl">
  ### Redis と Firecrawl を起動する
</div>

まず、1 つのターミナルで Redis を起動します。

```bash theme={null}
redis-server
```

次に、別のターミナルで `apps/api` に移動し、Firecrawl を起動します：

```bash theme={null}
pnpm start
```

start コマンドは、API をビルドし、API とワーカープロセスを起動するとともに、ローカルのキューコンテナを管理します。開発中は、このターミナルを開いたままにしてください。

<div id="verify-one-local-scrape">
  ### ローカルで1回スクレイピングする
</div>

APIプロセスが応答することを確認します：

```bash theme={null}
curl \
  --fail \
  --silent \
  --show-error \
  http://localhost:3002/v0/health/readiness
```

想定されるレスポンス：

```json theme={null}
{"status":"ok"}
```

次に、スクレイピングのパスを試します。

```bash theme={null}
curl \
  --fail-with-body \
  --silent \
  --show-error \
  --max-time 75 \
  -X POST \
  http://localhost:3002/v2/scrape \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "https://example.com",
    "formats": ["markdown"],
    "timeout": 60000
  }'
```

成功したレスポンスには、`success: true`、`data.markdown` 内のMarkdown、`data.metadata.statusCode` 内のHTTPステータスが含まれます。

<div id="change-and-test-firecrawl">
  ## Firecrawl を変更してテストする
</div>

各変更は目的を絞り、正常系と関連する異常系を追加し、動作を検証できる最も限定的なソース管理下のテストコマンドを実行してください。

`apps/api` で、依存関係を含めて API スニペットスイートを実行します。

```bash theme={null}
pnpm harness pnpm test:snips
```

ハーネスはテストコマンド用に API、ワーカー、PostgreSQL、RabbitMQ を起動し、完了後に起動したプロセスをクリーンアップします。スニペットスイート全体を実行する必要がない場合は、対象を絞った Vitest のパスを使用してください。

コントリビューションの手順については、プルリクエストを作成する前に、リポジトリの [`CONTRIBUTING.md`](https://github.com/firecrawl/firecrawl/blob/main/CONTRIBUTING.md) を確認してください。

<div id="troubleshoot-the-development-environment">
  ## 開発環境のトラブルシューティング
</div>

<div id="redis-does-not-connect">
  ### Redis に接続できない
</div>

Redis が `localhost:6379` で待ち受けており、`apps/api/.env` 内の両方の Redis URL がそのアドレスを使用していることを確認してください。

<div id="the-harness-cannot-start-postgresql-or-rabbitmq">
  ### ハーネスが PostgreSQL または RabbitMQ を起動できない
</div>

Docker または Podman を起動してから、`pnpm start` を再実行してください。サービスを自分で管理している場合は、ハーネスが管理するコンテナに依存せず、接続 URL を明示的に設定してください。

<div id="port-3002-is-already-in-use">
  ### ポート3002はすでに使用されています
</div>

別のプロセスを停止するか、`apps/api/.env` の `PORT` を変更し、確認用のリクエストでも同じポートを使用してください。

<div id="basic-fetch-works-but-browser-rendering-does-not">
  ### 基本的なフェッチは動作するが、ブラウザレンダリングは動作しない
</div>

`PLAYWRIGHT_MICROSERVICE_URL` が空の場合、別途用意された Playwright サービスは無効のままになります。テスト中の変更で必要な場合にのみ、このサービスを起動・設定してください。

<div id="where-to-go-next">
  ## 次のステップ
</div>

* **開発ではなくデプロイが目的ですか？** [Firecrawlのセルフホスティング](/ja/contributing/self-host)をご覧ください。
* **まだどちらにするか迷っていますか？** [オープンソースとFirecrawl Cloudの比較](/ja/contributing/open-source-or-cloud)をご覧ください。
* **コントリビュートする準備はできましたか？** ソースで管理されている[コントリビューションガイド](https://github.com/firecrawl/firecrawl/blob/main/CONTRIBUTING.md)をご利用ください。
