Passer au contenu principal
Bienvenue sur Firecrawl 🔥 ! Voici quelques instructions pour récupérer le projet en local, afin de pouvoir l’exécuter vous-même (et y contribuer). Si vous contribuez, notez que le processus est similaire à d’autres dépôts open source (fork de Firecrawl, modifications, exécution des tests, PR). Si vous avez des questions et souhaitez de l’aide pour démarrer, écrivez à help@firecrawl.com ou ouvrez un ticket !

Exécuter le projet en local

Commencez par installer les dépendances :
  1. Node.js instructions
  2. pnpm instructions
  3. Redis instructions
  4. PostgreSQL
  5. Docker (facultatif) (pour exécuter PostgreSQL)
Vous devez configurer la base de données PostgreSQL en exécutant le fichier SQL situé à apps/nuq-postgres/nuq.sql. Le moyen le plus simple est d’utiliser l’image Docker dans apps/nuq-postgres. Avec Docker en cours d’exécution, construisez l’image :
docker build -t nuq-postgres .
puis exécutez :
docker run --name nuqdb \          
  -e POSTGRES_PASSWORD=postgres \
  -p 5433:5432 \
  -v nuq-data:/var/lib/postgresql/data \
  -d nuq-postgres
Définissez des variables d’environnement dans un fichier .env dans le répertoire /apps/api/ ; vous pouvez copier le modèle depuis .env.example. Pour commencer, nous n’allons pas configurer l’authentification ni aucun service secondaire optionnel (analyse de PDF, prise en charge du blocage de JS, fonctionnalités d’IA). .env:
# ===== Variables d’environnement requises ======
NUM_WORKERS_PER_QUEUE=8
PORT=3002
HOST=0.0.0.0
REDIS_URL=redis://localhost:6379
REDIS_RATE_LIMIT_URL=redis://localhost:6379

## Pour activer l’authentification via la base de données, vous devez configurer Supabase.
USE_DB_AUTHENTICATION=false

## Utilisation de PostgreSQL pour la file d’attente — à modifier si les identifiants, l’hôte ou la base diffèrent
NUQ_DATABASE_URL=postgres://postgres:postgres@localhost:5433/postgres

# ===== Variables d’environnement optionnelles ======

# Configuration de Supabase (utilisée pour l’authentification DB, la journalisation avancée, etc.)
SUPABASE_ANON_TOKEN=
SUPABASE_URL=
SUPABASE_SERVICE_TOKEN=

# Autres options
TEST_API_KEY= # à utiliser si vous avez configuré l’authentification et souhaitez tester avec une clé API réelle
OPENAI_API_KEY= # à ajouter pour les fonctionnalités dépendantes des LLM (génération de texte alternatif d’image, etc.)
BULL_AUTH_KEY= @
PLAYWRIGHT_MICROSERVICE_URL=  # à définir si vous souhaitez utiliser un fallback Playwright
LLAMAPARSE_API_KEY= # à définir si vous avez une clé Llamaparse à utiliser pour l’analyse de PDFs
SLACK_WEBHOOK_URL= # à définir si vous souhaitez envoyer à Slack des messages sur l’état de santé du serveur
POSTHOG_API_KEY= # à définir si vous souhaitez envoyer des événements PostHog comme les journaux de tâches
POSTHOG_HOST= # à définir si vous souhaitez envoyer des événements PostHog comme les journaux de tâches


Installation des dépendances

Commencez par installer les dépendances avec pnpm.
# cd apps/api # pour vérifier que vous êtes dans le bon dossier
pnpm install # assurez-vous d’avoir pnpm en version 9 ou supérieure !

Exécution du projet

Vous devrez ouvrir 3 terminaux.

Terminal 1 - configuration de Redis

Exécutez la commande n’importe où dans votre projet
redis-server

Terminal 2 - configuration du service

Ensuite, placez-vous dans le répertoire apps/api/ et exécutez :
pnpm start
# si vous prévoyez d’utiliser la fonctionnalité [llm-extract](https://github.com/firecrawl/firecrawl/pull/586/), vous devez également exporter OPENAI_API_KEY=sk-______
Cela va démarrer les workers chargés de traiter les jobs de crawl.

Terminal 3 - envoi de notre première requête.

Très bien : envoyons notre première requête.
curl -X GET http://localhost:3002/test
Cela devrait renvoyer la réponse « Hello, world! » Si vous souhaitez tester le point de terminaison /crawl, vous pouvez exécuter ceci
curl -X POST http://localhost:3002/v1/crawl \
    -H 'Content-Type: application/json' \
    -d '{
      "url": "https://mendable.ai"
    }'

Alternative : utiliser Docker Compose

Pour une configuration plus simple, vous pouvez utiliser Docker Compose pour exécuter tous les services :
  1. Prérequis : assurez-vous que Docker et Docker Compose sont installés
  2. Copiez le fichier .env.example en .env dans le répertoire /apps/api/, puis configurez-le selon vos besoins
  3. Depuis le répertoire racine, exécutez :
docker compose up
Cela lancera automatiquement Redis, le serveur d’API et les workers avec la configuration appropriée.

Tests :

La meilleure façon de procéder est d’exécuter les tests avec npm run test:snips.