Firecrawl : alimenter un RAG local avec des pages web
Firecrawl est un robot d'exploration open source (cœur AGPL-3.0, plus de 186 000 étoiles GitHub fin septembre 2026) qui transforme une page ou un site entier en markdown ou JSON propre pour un modèle. Il s'auto-héberge en Docker Compose, mais la pile par défaut n'inclut ni captures d'écran, ni actions de page, ni le contournement anti-bot avancé du service géré : ces fonctions restent réservées à Firecrawl Cloud.
Firecrawl transforme une adresse web en texte propre, directement lisible par un modèle : le menu, la bannière cookies, les scripts et le pied de page disparaissent, l'article reste. C'est la première étape d'un pipeline RAG, celle qui décide de la qualité de tout ce qui suit. Le projet est ouvert et s'héberge chez soi, ce qui le rend compatible avec une installation entièrement locale — à condition de savoir précisément ce que la version auto-hébergée ne fait pas, par rapport au service en ligne du même nom.
#Le problème que ça résout
Donner une page web à un modèle local en lui collant son code HTML gâche l'essentiel de la fenêtre de contexte en balises, en menus et en scripts. Pire : le modèle traite les entrées de navigation comme du contenu et vous répond à côté. Toute chaîne de recherche documentaire sérieuse commence donc par une étape d'extraction qui répond à une seule question : dans cette page, qu'est-ce qui est l'article ?
Firecrawl fait ce travail, et la logique de parcours qui va autour : suivre les liens internes, s'arrêter à une limite que vous fixez, exécuter le JavaScript des sites qui n'affichent rien sans lui, et rendre un résultat structuré par page. La sortie est du markdown ou du JSON, deux formats qui se découpent proprement en morceaux pour l'indexation. Le projet, hébergé sur GitHub sous le nom firecrawl/firecrawl et décrit par ses auteurs comme « the web data API to search, scrape, and interact at scale », comptait plus de 186 000 étoiles fin septembre 2026 — un signe de traction qui compte quand on choisit une dépendance à maintenir dans la durée.
#Scrape, crawl, map, extract : quatre métiers différents
Tes documents, ton IA : un RAG local fiable sur tes PDF, notes et mails — sans rien envoyer dans le cloud.
- Espace en ligne à vie
- PDF + fichiers
- Mises à jour à vie
| Opération | Ce qu'elle fait | Quand l'utiliser |
|---|---|---|
| Scrape | Une adresse en entrée, le contenu nettoyé en sortie | Vous connaissez déjà la page exacte |
| Crawl | Parcourt un site depuis une adresse de départ en suivant les liens internes | Ingérer une documentation entière |
| Map | Renvoie la liste des adresses d'un site sans récupérer le contenu | Décider quoi ingérer avant d'y passer du temps |
| Extract | Extrait des champs structurés selon un schéma que vous fournissez | Vous voulez un tableau de prix ou de caractéristiques, pas de la prose |
Deux habitudes évitent la majorité des mauvaises surprises : lancer un map avant un crawl, pour voir la forme du site avant de lancer un travail dessus ; et fixer une limite de pages explicite à chaque crawl, parce qu'une documentation avec pagination et variantes de langue est souvent dix fois plus grande qu'elle n'en a l'air.
#L'héberger chez soi
C'est la voie qui nous intéresse si l'objectif est de garder la chaîne sur votre matériel. Il s'agit d'une pile Docker Compose de plusieurs services : l'API, PostgreSQL comme file d'attente par défaut (un moteur FoundationDB optionnel existe pour qui en a l'usage), Redis, RabbitMQ, et Playwright comme service de navigateur sans interface pour les pages qui n'existent qu'une fois le JavaScript exécuté. Le guide officiel épingle une version précise du dépôt plutôt que la branche principale — v2.11.162 fin septembre 2026 — et prévient qu'une autre version peut utiliser un fichier Compose différent. La commande officielle pour démarrer la pile est docker compose up --build -d, et l'API répond ensuite en local sur le port 3002, avec les mêmes formats de requête que la version en ligne.
#Ce qu'il faut avant de lancer la pile
Quatre prérequis suffisent d'après la documentation officielle : Git pour récupérer le dépôt, Docker Engine ou Docker Desktop, Docker Compose v2 (invoqué comme docker compose, sans tiret), et curl pour vérifier que l'API répond une fois la pile démarrée. Le port 3002 doit être libre, et la machine doit avoir assez de capacité pour construire et faire tourner plusieurs conteneurs en parallèle — sans qu'un chiffre précis de RAM ou de CPU soit garanti par le projet.
- 01Lire d'abord la page d'auto-hébergement du projetC'est la seule source à jour, et elle indique explicitement que le démarrage rapide en réseau de confiance désactive l'authentification de l'API et n'est pas une architecture de production.
- 02Trancher la question du navigateurSans rendu par navigateur, vous obtenez le HTML statique : parfait pour une documentation, inutile sur une application web monopage qui construit son contenu en JavaScript.
- 03Vérifier la licence contre votre usageLe cœur du projet est sous licence AGPL-3.0, une licence libre à réciprocité forte ; les SDK clients sont eux distribués sous licence MIT. Pour un produit commercial qui redistribue le code modifié, on la lit au lieu de la supposer.
- 04Dimensionner l'exploitationLe projet ne publie pas de taille minimale de machine garantie pour cette pile : c'est vous qui assumez les mises à jour, les secrets, le stockage, la supervision et la reprise après incident, contrairement au service géré.
- 05Ajouter le stockage durable avant de compter dessusLe démarrage rapide n'ajoute aucun volume persistant : d'après la documentation, il « démarre sans stockage durable, TLS, haute disponibilité, ni toutes les capacités de Firecrawl Cloud ». Sans volumes ajoutés à la main pour PostgreSQL, Redis et RabbitMQ, les données ne survivent pas au remplacement des conteneurs — à traiter avant de faire confiance à un corpus ingéré une seule fois.
#Piloter Firecrawl depuis un agent : le serveur MCP officiel
Pour connecter un agent compatible MCP (Claude Code, Cursor, ou un client maison) à cette instance auto-hébergée sans écrire d'intégration HTTP, le projet publie un serveur MCP officiel, firecrawl-mcp-server. Avec son profil complet, il expose jusqu'à 26 outils par défaut, feedback compris. La variable d'environnement FIRECRAWL_API_URL le pointe vers votre déploiement local au lieu du service en ligne, avec une clé d'API optionnelle si votre instance en exige une. C'est le chemin le plus direct pour donner à un agent local la capacité de chercher, explorer et extraire du web sans faire transiter le trafic par un tiers — à condition que l'agent lui-même tourne sur votre machine ou un réseau de confiance.
#Ce que la pile locale n'a pas
Le point que beaucoup découvrent après avoir déployé la pile, pas avant : l'auto-hébergement par défaut ne couvre pas tout ce que fait le service en ligne. D'après la documentation officielle, les captures d'écran et les actions de page (cliquer, faire défiler, remplir un formulaire avant de lire le résultat) ne sont pas disponibles dans la pile par défaut. Il en va de même pour les fonctions Agent et Browser, l'option « interact », le retour d'usage, et certains formats spécialisés (menu, audio, vidéo) : ces briques restent réservées à Firecrawl Cloud. Le contournement anti-bot avancé du moteur propriétaire du service géré n'est pas non plus inclus tel quel.
Autre nuance utile avant de se lancer : l'extraction assistée par un modèle de langage (le mode « extract » piloté par une instruction en langage naturel plutôt que par un schéma) suppose de connecter vous-même un fournisseur compatible avec l'API OpenAI, ou Ollama, et de tester ce chemin séparément. Ce n'est pas branché automatiquement dans la pile auto-hébergée. Rien de tout cela n'empêche d'utiliser Firecrawl en local pour alimenter un RAG — c'est justement le cas d'usage central de ce guide — mais mieux vaut le savoir avant de promettre une fonctionnalité à une équipe.
#Où ça se place dans un RAG local
Une chaîne locale qui fonctionne compte quatre étages, et Firecrawl n'occupe que le premier : l'ingestion transforme les adresses en documents ; le découpage et l'encodage les convertissent en vecteurs avec un modèle d'embedding local ; une base vectorielle stocke ces vecteurs et renvoie les passages les plus proches d'une question ; enfin un modèle local rédige la réponse à partir de ces passages.
Pour des fichiers déjà présents sur votre disque — PDF, documents bureautiques, présentations — ce n'est pas un robot d'exploration qu'il vous faut mais un convertisseur de documents comme Docling. Et si votre besoin est qu'un modèle consulte le web au moment où il répond, plutôt qu'un corpus ingéré à l'avance, un métamoteur de recherche auto-hébergé comme SearXNG est la brique adaptée : il renvoie des résultats à la demande au lieu d'un index à rafraîchir.
- Construire un RAG local de bout en bout avec Python
- Quel modèle d'embedding pour du français
- Donner la recherche web à un modèle local avec SearXNG
- Pour vos PDF et fichiers locaux : Docling
- Stocker les vecteurs dans Qdrant
- Le kit RAG local QuelLLM : tous les composants sur une page
- Source : dépôt officiel Firecrawl sur GitHub
- Source : documentation d'auto-hébergement de Firecrawl
- Source : serveur MCP officiel de Firecrawl
#Quand ne pas l'utiliser
| Votre besoin | Ce qui convient mieux |
|---|---|
| Convertir une page de temps en temps | Une petite bibliothèque HTML vers markdown dans votre script |
| Ingérer des PDF et des documents locaux | Un convertisseur de documents comme Docling, pas un robot web |
| Des réponses web en direct dans une conversation | Un moteur de recherche auto-hébergé branché au modèle |
| Des captures d'écran ou des actions de page complexes | Le service géré Firecrawl Cloud, absent de la pile par défaut |
| Une documentation entière, régulièrement, de façon automatisée | Firecrawl auto-hébergé — c'est exactement son cas |
#Le point de vigilance juridique
Collecter automatiquement des pages engage votre responsabilité, pas celle de l'outil. Les conditions générales du site visé, ses directives robots.txt, le droit applicable et l'usage que vous faites du contenu comptent davantage que la technique employée. Pour un corpus interne d'entreprise, la question se double de celle du traitement des données personnelles éventuellement présentes dans les pages collectées, et de la nécessité de documenter d'où vient chaque source dans le registre de traitement.
#FAQ
Firecrawl est-il gratuit en auto-hébergement ?+
La version auto-hébergée fait-elle tout ce que fait le service en ligne ?+
Faut-il un GPU pour Firecrawl ?+
Peut-il lire les sites qui ont besoin de JavaScript ?+
Quelle différence entre crawl et map ?+
L'extraction par IA (mode extract) fonctionne-t-elle directement en local ?+
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.