自托管
了解如何自托管 Firecrawl 以便自行运行并为项目做出贡献。
贡献者?
欢迎来到 Firecrawl🔥!以下是一些有关如何在本地获取项目以便您可以自行运行并做出贡献的说明。
如果您要做出贡献,请注意该过程与其他开源存储库类似,即 fork Firecrawl、进行更改、运行测试、PR。
如果您有任何疑问或需要帮助,请加入我们的 Discord 社区 此处 了解更多信息,或在 Github 上提交问题 此处!
自托管 Firecrawl
请参阅 SELF_HOST.md 了解如何在本地运行。
为什么?
自托管 Firecrawl 对于具有严格安全策略且要求数据保留在受控环境中的组织特别有益。以下是考虑自托管的一些主要原因:
- 增强的安全性和合规性:通过自托管,您可以确保所有数据处理和处理都符合内部和外部法规,将敏感信息保留在安全的基础架构中。请注意,Firecrawl 是 Mendable 产品,依赖 SOC2 Type2 认证,这意味着该平台遵守行业高标准来管理数据安全。
- 可定制服务:自托管允许您定制服务(例如 Playwright 服务),以满足特定需求或处理标准云产品可能不支持的特定用例。
- 学习和社区贡献:通过设置和维护自己的实例,您可以更深入地了解 Firecrawl 的工作原理,这也可以为项目做出更有意义的贡献。
注意事项
但是,需要注意一些限制和额外责任:
- 对 Fire-engine 的访问受限:目前,Firecrawl 的自托管实例无法访问 Fire-engine,其中包括用于处理 IP 块、机器人检测机制等的高级功能。这意味着虽然您可以管理基本的抓取任务,但更复杂的场景可能需要额外的配置或可能不受支持。
- 需要手动配置:如果您需要使用基本抓取和 Playwright 选项以外的抓取方法,则需要在
.env
文件中手动配置这些方法。这需要更深入地了解相关技术,并且可能需要更多设置时间。
自托管 Firecrawl 非常适合那些需要完全控制抓取和数据处理环境的人,但需要付出额外的维护和配置努力。
步骤
- 首先,安装依赖项
- Docker 说明
- 设置环境变量
在根目录中创建一个 .env
,您可以复制 apps/api/.env.example
中的模板
首先,我们不会设置身份验证或任何可选子服务(pdf 解析、JS 阻止支持、AI 功能)
- (可选) 使用 TypeScript Playwright 服务运行
- 更新
docker-compose.yml
文件以更改 Playwright 服务:
TO
- 在您的
.env
文件中设置PLAYWRIGHT_MICROSERVICE_URL
:
- 不要忘记根据需要在您的
.env
文件中设置代理服务器。
- 构建并运行 Docker 容器:
这将运行 Firecrawl 的本地实例,可通过 http://localhost:3002
访问。
您应该能够在 http://localhost:3002/admin/@/queues
上看到 Bull Queue Manager UI。
- (可选) 测试 API
如果您想测试抓取端点,可以运行以下命令:
故障排除
本节提供在设置或运行自托管 Firecrawl 实例时可能遇到的常见问题的解决方案。
Supabase 客户端未配置
症状:
解释: 此错误是因为 Supabase 客户端设置未完成。您应该能够毫无问题地抓取和爬取数据。目前无法在自托管实例中配置 Supabase。
您正在绕过身份验证
症状:
解释: 发生此错误是因为 Supabase 客户端设置未完成。您应该能够毫无问题地进行抓取和爬取。目前无法在自托管实例中配置 Supabase。
Docker 容器无法启动
症状: Docker 容器意外退出或无法启动。
解决方案: 使用以下命令检查 Docker 日志中是否有任何错误消息:
- 确保在 .env 文件中正确设置了所有必需的环境变量。
- 验证 docker-compose.yml 中定义的所有 Docker 服务是否已正确配置并且所需的映像是否可用。
Redis 连接问题
症状: 与连接到 Redis 相关的错误,例如超时或“连接被拒绝”。
解决方案:
- 确保 Redis 服务在您的 Docker 环境中启动并运行。
- 验证 .env 文件中的 REDIS_URL 和 REDIS_RATE_LIMIT_URL 是否指向正确的 Redis 实例。
- 检查可能阻止与 Redis 端口连接的网络设置和防火墙规则。
API 端点没有响应
症状: 对 Firecrawl 实例的 API 请求超时或没有返回响应。
解决方案:
- 通过检查 Docker 容器状态确保 Firecrawl 服务正在运行。
- 验证 .env 文件中的 PORT 和 HOST 设置是否正确,并且没有其他服务正在使用同一端口。
- 检查网络配置以确保主机可从发出 API 请求的客户端访问。
通过解决这些常见问题,您可以确保更顺利地设置和运行自托管 Firecrawl 实例。
在 Kubernetes 集群上安装 Firecrawl(简单版本)
阅读 examples/kubernetes-cluster-install/README.md 以获取有关如何在 Kubernetes 集群上安装 Firecrawl 的说明。