本地部署 Firecrawl

Firecrawl 是什么?

Firecrawl 是一款功能强大的网页爬取和数据分析工具,为用户提供高效、可靠的爬虫能力。当你需要在云端服务和自托管方案之间做出选择时,选择自行部署 Firecrawl 显得尤为突出。如果你关注数据安全及合规性,那么自托管 Firecrawl 更加适合你的需求。


自主部署的意义

为什么选择自主部署 Firecrawl?

  1. 增强的安全性和合规性:
    通过自主部署,所有数据处理流程都可以按照组织内部和外部的合规标准执行,并确保敏感数据始终保存在受控环境中。此外,Firecrawl 是一个具有 SOC2 Type2 认证的 Mendable 产品,严格遵守行业内关于数据管理的最高标准。
  2. 服务的定制化:
    自主部署允许您按照自己的需求配置服务,例如为特定应用场景调整 Playwright 服务或自定义功能模块,满足一些云端解决方案无法涵盖的需求。
  3. 学习和社区贡献:
    自行搭建和维护 Firecrawl,不仅可以深入了解其运行机制,还能为开源社区的改进贡献自己的力量。

自主部署的局限性

需要注意的是,自主部署虽然带来了完全的控制权,但同时也需要承担一定的维护和配置工作。

  1. 有限的 Fire-engine 访问:
    当前,自托管的 Firecrawl 实例无法使用 Fire-engine 中的高级功能,例如处理 IP 封锁和机器人检测机制。这意味着在处理复杂场景时,可能需要更多的手动配置。
  2. 需要手动配置:
    如果需要超出基本功能的抓取方法(如 JS 屏蔽支持等),您需要在 .env 文件中手动进行设置,这可能需要一定的技术经验。

自主部署 Firecrawl 的步骤

1. 安装依赖项

根据您的环境(如 Docker 或本地环境)安装必要的软件包。

git clone https://github.com/mendableai/firecrawl.git
2. 设置环境变量

在项目根目录中创建 .env 文件,可参考 apps/api/.env.example 文件模板。以下是必要配置:

# 核心配置
NUM_WORKERS_PER_QUEUE=8 
PORT=3002
HOST=0.0.0.0
REDIS_URL=redis://redis:6379
PLAYWRIGHT_MICROSERVICE_URL=http://playwright-service:3000/html

# 数据库及其他可选配置(如未设置可跳过)
USE_DB_AUTHENTICATION=false
SUPABASE_URL=
OPENAI_API_KEY=
LOGGING_LEVEL=INFO
3. 使用 Docker 启动服务

修改 docker-compose.yml 中 Playwright 服务的设置:

build: apps/playwright-service
# 替换为 TypeScript 版本
build: apps/playwright-service-ts

运行 Docker 命令启动服务:

docker compose build
docker compose up

本地实例将运行在 http://localhost:3002,可通过浏览器访问 Bull Queue Manager UI: http://localhost:3002/admin/@/queues

4. API 测试

可以通过以下命令测试 crawl 接口是否正常工作:

curl -X POST http://localhost:3002/v0/crawl \
-H 'Content-Type: application/json' \
-d '{
  "url": "https://docs.firecrawl.dev"
}'

常见问题及解决方案

1. Supabase 客户端未配置
  • 错误日志:Supabase client is not configured.
  • 解决方法:无须担心,该问题不会影响爬虫抓取功能。目前自托管实例无法配置 Supabase,忽略此警告即可。
2. Docker 容器启动失败
  • 解决方法:
    • 确保 .env 文件的必需变量已正确设置;
    • 检查 Docker 日志:docker logs [container_name]
3. Redis 连接问题
  • 错误信息:Connection refused 或超时。
  • 解决方法:
    • 确认 Redis 服务正在运行;
    • 验证 .env 文件中的 REDIS_URL 是否正确。
4. 接口无响应
  • 检查服务状态:确保 Docker 容器在运行;
  • 检查 .env 中的 PORTHOST 设置无误。

Kubernetes 集群部署

如果需要在 Kubernetes 中部署,请参考 examples/kubernetes-cluster-install/README.md 获取详细指导。

通过以上步骤,您可以轻松部署并运行 Firecrawl,在自己的环境中实现高效的数据抓取和分析!

更多部署细节请查看官方文档

Firecrawl Docs
Learn how to self-host Firecrawl to run on your own and contribute to the project.