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

# Exécuter Firecrawl localement pour le développement

> Configurez l’environnement de développement de l’API Firecrawl, vérifiez un scrape local et exécutez le harnais de test fourni avec le code source avant de contribuer.

Exécutez Firecrawl localement lorsque vous modifiez l’API, les workers ou les tests. Cette procédure installe les dépendances de développement et démarre les services fournis avec le code source à l’aide du harnais de l’API.

<Warning>
  Il s’agit d’un environnement de développement destiné aux contributeurs, et non d’un guide de déploiement. Si
  vous souhaitez exécuter Firecrawl sur une infrastructure que vous contrôlez sans modifier le
  produit, consultez [l’auto-hébergement de Firecrawl](/fr/contributing/self-host).
</Warning>

<div id="choose-local-development-or-self-hosting">
  ## Choisissez le développement local ou l’auto-hébergement
</div>

* **Développez localement** lorsque vous avez besoin de cycles rapides de développement, test et débogage sur la révision actuelle du code source.
* **Auto-hébergez une version épinglée** si vous souhaitez disposer d’une référence Docker Compose stable sur votre propre infrastructure.
* **Utilisez Firecrawl Cloud** si vous souhaitez la solution gérée la plus rapide, sans avoir à exploiter l’un ou l’autre environnement.

Gardez ces environnements distincts. Le fichier `.env` de développement de l’API dans `apps/api/.env` et le fichier `.env` Compose à la racine sont utilisés par des processus différents et ne sont pas interchangeables.

<div id="start-the-firecrawl-development-environment">
  ## Démarrer l'environnement de développement Firecrawl
</div>

<div id="install-the-prerequisites">
  ### Installez les prérequis
</div>

Installez :

* [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/)
* Docker ou Podman pour les conteneurs PostgreSQL et RabbitMQ gérés par le harnais de l’API
* [Go](https://go.dev/dl/) 1.23 ou version ultérieure, recompilé par le harnais de l’API à chaque démarrage
* [Rust](https://www.rust-lang.org/tools/install), compilé lors de `pnpm install` pour le package natif `@mendable/firecrawl-rs`

Activez la version du gestionnaire de packages utilisée par l’API :

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

<div id="clone-firecrawl-and-install-dependencies">
  ### Clonez Firecrawl et installez les dépendances
</div>

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

Créez `apps/api/.env` avec la configuration minimale pour un environnement de développement sans authentification :

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

Ne définissez pas `NUQ_DATABASE_URL` ni `NUQ_RABBITMQ_URL` si vous souhaitez que le harnais crée des conteneurs PostgreSQL et RabbitMQ locaux. Ne les définissez que si vous gérez vous-même ces dépendances.

<div id="start-redis-and-firecrawl">
  ### Démarrer Redis et Firecrawl
</div>

Démarrez Redis dans un terminal :

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

Démarrez ensuite Firecrawl depuis `apps/api` dans un autre terminal :

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

La commande start crée l’API, lance les processus de l’API et du worker, et gère les conteneurs de file d’attente locaux. Gardez ce terminal ouvert pendant le développement.

<div id="verify-one-local-scrape">
  ### Vérifier un scrape local
</div>

Vérifiez que le processus de l’API répond :

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

Réponse attendue :

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

Testez ensuite le parcours de scraping :

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

Une réponse réussie contient `success: true`, du Markdown dans `data.markdown` et un code d’état HTTP dans `data.metadata.statusCode`.

<div id="change-and-test-firecrawl">
  ## Modifier et tester Firecrawl
</div>

Gardez chaque modification ciblée, ajoutez un scénario de réussite et des tests pertinents pour les cas d’échec, puis exécutez la commande de test la plus ciblée, gérée par le dépôt source, qui valide le comportement.

Depuis `apps/api`, exécutez la suite de snippets de l’API avec ses dépendances :

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

Le harnais démarre l’API, les workers, PostgreSQL et RabbitMQ pour exécuter la commande de test, puis arrête les processus qu’il a lancés. Utilisez un chemin Vitest plus ciblé lorsque l’exécution de toute la suite de snippets n’est pas nécessaire.

Pour contribuer, consultez le fichier [`CONTRIBUTING.md`](https://github.com/firecrawl/firecrawl/blob/main/CONTRIBUTING.md) du dépôt avant d’ouvrir une pull request.

<div id="troubleshoot-the-development-environment">
  ## Résoudre les problèmes liés à l'environnement de développement
</div>

<div id="redis-does-not-connect">
  ### Redis ne se connecte pas
</div>

Vérifiez que Redis écoute sur `localhost:6379` et que les deux URL Redis dans `apps/api/.env` utilisent cette adresse.

<div id="the-harness-cannot-start-postgresql-or-rabbitmq">
  ### Le harnais ne peut pas démarrer PostgreSQL ou RabbitMQ
</div>

Démarrez Docker ou Podman, puis relancez `pnpm start`. Si vous gérez vous-même ces services, définissez explicitement leurs URL de connexion au lieu de vous appuyer sur des conteneurs gérés par le harnais.

<div id="port-3002-is-already-in-use">
  ### Le port 3002 est déjà utilisé
</div>

Arrêtez l’autre processus ou modifiez `PORT` dans `apps/api/.env`, puis utilisez ce même port pour vos requêtes de vérification.

<div id="basic-fetch-works-but-browser-rendering-does-not">
  ### La récupération de base fonctionne, mais pas le rendu dans le navigateur
</div>

Une valeur `PLAYWRIGHT_MICROSERVICE_URL` vide laisse le service Playwright distinct désactivé. Démarrez et configurez ce service uniquement si la modification que vous testez l’exige.

<div id="where-to-go-next">
  ## Prochaines étapes
</div>

* **Vous souhaitez déployer plutôt que développer ?** Consultez [l’auto-hébergement de Firecrawl](/fr/contributing/self-host).
* **Vous hésitez encore ?** Comparez [l’open source et Firecrawl Cloud](/fr/contributing/open-source-or-cloud).
* **Prêt à contribuer ?** Consultez le [guide de contribution](https://github.com/firecrawl/firecrawl/blob/main/CONTRIBUTING.md) du dépôt source.
