为什么要本地部署?
- 增强安全性和合规性: 数据处理和存储完全在您的控制之下,符合内部和外部法规。Firecrawl 作为 Mendable 产品,依赖于 SOC2 Type2 认证,保证了高数据安全标准。
- 可定制的服务: 可以根据特定需求定制服务,例如 Playwright 服务。
- 深入学习和社区贡献: 深入了解 Firecrawl 的工作原理,更有助于贡献代码。
注意事项:
- Fire-engine 访问受限: 自行部署的实例无法访问 Fire-engine,这意味着无法使用 IP 封锁、机器人检测等高级功能。
- 手动配置: 需要手动配置
.env
文件以支持基本 fetch 和 Playwright 之外的抓取方法。
部署步骤:
- 克隆代码
git clone https://github.com/mendableai/firecrawl.git
- 设置环境变量:
- 创建根目录下的
.env
文件,使用以下模板:
- 创建根目录下的
# ===== Required ENVS ======
PORT=3002
HOST=0.0.0.0# To 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 容器:
docker compose build
docker compose up -d
- 访问 Firecrawl: 在浏览器中访问
http://localhost:3002
。 - Bull Queue 管理员界面: 在浏览器中访问
http://localhost:3002/admin/CHANGEME/queues
(请务必修改BULL_AUTH_KEY
)。
API 测试 (可选):
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
设置是否正确,以及网络配置。