Skip to main content
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.
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.

Choisissez le développement local ou l’auto-hébergement

  • 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.

Démarrer l’environnement de développement Firecrawl

Installez les prérequis

Installez :
  • Git
  • Node.js 22
  • pnpm 11.4.0
  • Redis
  • Docker ou Podman pour les conteneurs PostgreSQL et RabbitMQ gérés par le harnais de l’API
  • Go 1.23 ou version ultérieure, recompilé par le harnais de l’API à chaque démarrage
  • Rust, compilé lors de pnpm install pour le package natif @mendable/firecrawl-rs
Activez la version du gestionnaire de packages utilisée par l’API :

Clonez Firecrawl et installez les dépendances

Créez apps/api/.env avec la configuration minimale pour un environnement de développement sans authentification :
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.

Démarrer Redis et Firecrawl

Démarrez Redis dans un terminal :
Démarrez ensuite Firecrawl depuis apps/api dans un autre terminal :
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.

Vérifier un scrape local

Vérifiez que le processus de l’API répond :
Réponse attendue :
Testez ensuite le parcours de scraping :
Une réponse réussie contient success: true, du Markdown dans data.markdown et un code d’état HTTP dans data.metadata.statusCode.

Modifier et tester Firecrawl

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 :
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 du dépôt avant d’ouvrir une pull request.

Résoudre les problèmes liés à l’environnement de développement

Redis ne se connecte pas

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

Le harnais ne peut pas démarrer PostgreSQL ou RabbitMQ

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.

Le port 3002 est déjà utilisé

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.

La récupération de base fonctionne, mais pas le rendu dans le navigateur

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.

Prochaines étapes