Vous souhaitez contribuer ?
Auto-hébergement de Firecrawl
Pourquoi ?
- Sécurité et conformité renforcées : En auto‑hébergeant, vous garantissez que l’ensemble de la gestion et du traitement des données respecte les réglementations internes et externes, en conservant les informations sensibles au sein de votre infrastructure sécurisée. Notez que Firecrawl est un produit Mendable et s’appuie sur la certification SOC 2 Type II, ce qui signifie que la plateforme respecte des normes élevées du secteur en matière de sécurité des données.
- Services personnalisables : L’auto‑hébergement vous permet d’adapter des services, comme Playwright, pour répondre à des besoins spécifiques ou couvrir des cas d’usage particuliers qui ne sont pas forcément pris en charge par l’offre cloud standard.
- Apprentissage et contribution à la communauté : En configurant et en maintenant votre propre instance, vous approfondissez votre compréhension du fonctionnement de Firecrawl, ce qui peut également conduire à des contributions plus significatives au projet.
Considérations
- Accès limité à Fire-engine : Actuellement, les instances auto-hébergées de Firecrawl n’ont pas accès à Fire-engine, qui comprend des fonctionnalités avancées pour gérer les blocages d’IP, les mécanismes de détection des robots, et plus encore. Cela signifie que, même si vous pouvez traiter des tâches de scraping de base, des cas plus complexes peuvent nécessiter une configuration supplémentaire ou ne pas être pris en charge.
- Configuration manuelle requise : Si vous devez utiliser des méthodes de scraping au-delà des options de base
fetchet Playwright, vous devrez les configurer manuellement dans le fichier.env. Cela nécessite une compréhension plus approfondie des technologies et peut impliquer davantage de temps de mise en place.
Étapes
- Commencez par installer les dépendances
- Docker instructions
- Définissez les variables d’environnement
.env à la racine du projet. Vous pouvez copier le modèle situé dans apps/api/.env.example.
Pour commencer, nous ne configurerons ni l’authentification ni aucun sous-service optionnel (parsing PDF, prise en charge du blocage de JS, fonctionnalités IA)
Les fonctionnalités d’IA suivantes nécessitent qu’un fournisseur de LLM soit configuré (par exemple,
OPENAI_API_KEY ou des alternatives dans la section des fonctionnalités d’IA ci-dessus) :- Format JSON lors du scrape
- API /extract
- Format de résumé
- Format de branding
- Format de suivi des modifications
-
(Optionnel) Exécuter avec le service Playwright en TypeScript
-
Mettez à jour le fichier
docker-compose.ymlpour modifier le service Playwright :EN -
Définissez la variable
PLAYWRIGHT_MICROSERVICE_URLdans votre fichier.env: -
N’oubliez pas de configurer le serveur proxy dans votre fichier
.envsi nécessaire.
-
Mettez à jour le fichier
-
Construisez et lancez les conteneurs Docker :
http://localhost:3002.
Vous devriez voir l’interface Bull Queue Manager à l’adresse http://localhost:3002/admin/@/queues.
- (Optionnel) Tester l’API
Dépannage
Le client Supabase n’est pas configuré
Vous contournez le mécanisme d’authentification
Les conteneurs Docker ne démarrent pas
- Assurez-vous que toutes les variables d’environnement nécessaires sont correctement définies dans le fichier .env.
- Vérifiez que tous les services Docker définis dans docker-compose.yml sont correctement configurés et que les images requises sont disponibles.
Problèmes de connexion avec Redis
- Assurez-vous que le service Redis est démarré et fonctionne dans votre environnement Docker.
- Vérifiez que les variables REDIS_URL et REDIS_RATE_LIMIT_URL dans votre fichier .env pointent vers la bonne instance Redis.
- Vérifiez les paramètres réseau et les règles de pare-feu susceptibles de bloquer la connexion au port Redis.
Le point de terminaison API ne répond pas
- Assurez-vous que le service Firecrawl est en cours d’exécution en vérifiant l’état du conteneur Docker.
- Vérifiez que les variables PORT et HOST dans votre fichier .env sont correctes et qu’aucun autre service n’utilise le même port.
- Contrôlez la configuration réseau pour vous assurer que l’hôte est accessible depuis le client qui effectue la requête API.

