本地部署 Firecrawl
本文档概述了如何本地部署 Firecrawl。
为什么要本地部署?
- 增强安全性和合规性: 数据处理和存储完全在您的控制之下,符合内部和外部法规。Firecrawl 作为 Mendable 产品,依赖于 SOC2 Type2 认证,保证了高数据安全标准。
- 可定制的服务: 可以根据特定需求定制服务,例如 Playwright 服务。
- 深入学习和社区贡献: 深入了解 Firecrawl 的工作原理,更有助于贡献代码。
注意事项:
- Fire-engine 访问受限: 自行部署的实例无法访问 Fire-engine,这意味着无法使用 IP 封锁、机器人检测等高级功能。
- 手动配置: 需要手动配置
.env
文件以支持基本 fetch 和 Playwright 之外的抓取方法。
部署步骤:
-
克隆代码
-
设置环境变量:
- 创建根目录下的
.env
文件,使用以下模板:
===== Required ENVS ======
PORT=3002
HOST=0.0.0.0To turn on DB authentication, you need to set up Supabase.
USE_DB_AUTHENTICATION=false
===== Optional ENVS ======
OpenAI API Key (用于 AI 功能)
OPENAI_API_KEY=
Ollama (实验性)
OLLAMA_BASE_URL=http://localhost:11434/api
MODEL_NAME=deepseek-r1:7b
MODEL_EMBEDDING_NAME=nomic-embed-text
OpenAI 兼容 API (实验性)
OPENAI_BASE_URL=https://example.com/v1
OPENAI_API_KEY=
代理设置
PROXY_SERVER=
PROXY_USERNAME=
PROXY_PASSWORD=
SearXNG API (用于 /search API)
SEARXNG_ENDPOINT=http://your.searxng.server
SEARXNG_ENGINES=
SEARXNG_CATEGORIES=
Supabase 设置 (用于数据库认证等)
SUPABASE_ANON_TOKEN=
SUPABASE_URL=
SUPABASE_SERVICE_TOKEN=
测试 API 密钥
TEST_API_KEY=
ScrapingBee API 密钥 (作为备用抓取引擎)
SCRAPING_BEE_API_KEY=
Bull Queue 管理员密钥 (请修改默认值)
BULL_AUTH_KEY=CHANGEME
(Docker Compose 自动配置,无需手动设置)
PLAYWRIGHT_MICROSERVICE_URL=http://playwright-service:3000/scrape
REDIS_URL=redis://redis:6379
REDIS_RATE_LIMIT_URL=redis://redis:6379
Llamaparse API 密钥 (用于 PDF 解析)
LLAMAPARSE_API_KEY=
Slack Webhook URL (用于健康状态通知)
SLACK_WEBHOOK_URL=
Posthog API Key (用于事件跟踪)
POSTHOG_API_KEY=
POSTHOG_HOST=
- 创建根目录下的
-
构建并运行 Docker 容器:
bash
docker compose build
docker compose up -d
- 访问 Firecrawl: 在浏览器中访问
http://localhost:3002
。 - Bull Queue 管理员界面: 在浏览器中访问
http://localhost:3002/admin/CHANGEME/queues
(请务必修改BULL_AUTH_KEY
)。
API 测试 (可选):
bash
curl -X POST http://localhost:3002/v1/crawl \
-H 'Content-Type: application/json' \
-d '{
"url": "https://firecrawl.dev"
}'
常见问题及解决方案:
- API 密钥: 使用 SDK 时,API 密钥是可选的,仅在连接云服务时需要。
- Supabase 未配置: 目前自行部署的实例不支持 Supabase 配置,但可以正常抓取和爬取。
- Docker 容器启动失败: 检查 Docker 日志 (
docker logs [container_name]
),确保环境变量设置正确,以及 Docker Compose 文件配置正确。 - Redis 连接问题: 确保 Redis 服务运行,
.env
文件中的REDIS_URL
和REDIS_RATE_LIMIT_URL
设置正确,并且网络配置允许连接。 - API 接口无响应: 检查 Firecrawl 服务是否运行,
PORT
和HOST
设置是否正确,以及网络配置。