本地部署 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/apiMODEL_NAME=deepseek-r1:7bMODEL_EMBEDDING_NAME=nomic-embed-textOpenAI 兼容 API (实验性)OPENAI_BASE_URL=https://example.com/v1OPENAI_API_KEY=代理设置PROXY_SERVER=PROXY_USERNAME=PROXY_PASSWORD=SearXNG API (用于 /search API)SEARXNG_ENDPOINT=http://your.searxng.serverSEARXNG_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/scrapeREDIS_URL=redis://redis:6379REDIS_RATE_LIMIT_URL=redis://redis:6379Llamaparse 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设置是否正确,以及网络配置。