feat: add portkey-gateway/libreoffice/jodconverter/bolt-diy
This commit is contained in:
@@ -6,39 +6,66 @@
|
||||
|
||||
## 服务
|
||||
|
||||
- `firecrawl`: Firecrawl API 主服务器。
|
||||
- `redis`: 用于作业队列和缓存的 Redis。
|
||||
- `playwright`: 用于浏览器自动化的 Playwright 服务。
|
||||
- `api`: Firecrawl API 主服务器,集成了工作进程
|
||||
- `redis`: 用于作业队列和缓存的 Redis
|
||||
- `playwright-service`: 用于浏览器自动化的 Playwright 服务
|
||||
- `nuq-postgres`: 用于队列管理和数据存储的 PostgreSQL 数据库
|
||||
|
||||
## 环境变量
|
||||
|
||||
| 变量名 | 说明 | 默认值 |
|
||||
| ------------------------------------- | ---------------------- | -------------- |
|
||||
| FIRECRAWL_VERSION | Firecrawl 镜像版本 | `v1.16.0` |
|
||||
| REDIS_VERSION | Redis 镜像版本 | `7.4.2-alpine` |
|
||||
| PLAYWRIGHT_VERSION | Playwright 服务版本 | `latest` |
|
||||
| REDIS_PASSWORD | Redis 密码 | `firecrawl` |
|
||||
| NUM_WORKERS_PER_QUEUE | 每个队列的工作进程数 | `8` |
|
||||
| SCRAPE_RATE_LIMIT_TOKEN_BUCKET_SIZE | 速率限制的令牌桶大小 | `20` |
|
||||
| SCRAPE_RATE_LIMIT_TOKEN_BUCKET_REFILL | 每秒令牌填充速率 | `1` |
|
||||
| PROXY_SERVER | 代理服务器 URL(可选) | `""` |
|
||||
| PROXY_USERNAME | 代理用户名(可选) | `""` |
|
||||
| PROXY_PASSWORD | 代理密码(可选) | `""` |
|
||||
| BLOCK_MEDIA | 阻止媒体内容 | `true` |
|
||||
| FIRECRAWL_PORT_OVERRIDE | Firecrawl API 端口 | `3002` |
|
||||
| 变量名 | 说明 | 默认值 |
|
||||
| ----------------------- | ----------------------------- | ---------- |
|
||||
| FIRECRAWL_VERSION | Firecrawl 镜像版本 | `latest` |
|
||||
| REDIS_VERSION | Redis 镜像版本 | `alpine` |
|
||||
| PLAYWRIGHT_VERSION | Playwright 服务版本 | `latest` |
|
||||
| NUQ_POSTGRES_VERSION | NUQ PostgreSQL 镜像版本 | `latest` |
|
||||
| POSTGRES_USER | PostgreSQL 用户名 | `postgres` |
|
||||
| POSTGRES_PASSWORD | PostgreSQL 密码 | `postgres` |
|
||||
| POSTGRES_DB | PostgreSQL 数据库名称 | `postgres` |
|
||||
| POSTGRES_PORT_OVERRIDE | PostgreSQL 端口映射 | `5432` |
|
||||
| INTERNAL_PORT | 内部 API 端口 | `3002` |
|
||||
| FIRECRAWL_PORT_OVERRIDE | 外部 API 端口映射 | `3002` |
|
||||
| EXTRACT_WORKER_PORT | 提取工作进程端口 | `3004` |
|
||||
| WORKER_PORT | 工作进程端口 | `3005` |
|
||||
| USE_DB_AUTHENTICATION | 启用数据库身份验证 | `false` |
|
||||
| OPENAI_API_KEY | OpenAI API 密钥(可选) | `""` |
|
||||
| OPENAI_BASE_URL | OpenAI API 基础 URL(可选) | `""` |
|
||||
| MODEL_NAME | AI 模型名称(可选) | `""` |
|
||||
| MODEL_EMBEDDING_NAME | 嵌入模型名称(可选) | `""` |
|
||||
| OLLAMA_BASE_URL | Ollama 基础 URL(可选) | `""` |
|
||||
| BULL_AUTH_KEY | Bull 队列管理面板身份验证密钥 | `@` |
|
||||
| TEST_API_KEY | 测试 API 密钥(可选) | `""` |
|
||||
| SLACK_WEBHOOK_URL | Slack Webhook 通知(可选) | `""` |
|
||||
| POSTHOG_API_KEY | PostHog API 密钥(可选) | `""` |
|
||||
| POSTHOG_HOST | PostHog 主机(可选) | `""` |
|
||||
| SUPABASE_ANON_TOKEN | Supabase 匿名令牌(可选) | `""` |
|
||||
| SUPABASE_URL | Supabase URL(可选) | `""` |
|
||||
| SUPABASE_SERVICE_TOKEN | Supabase 服务令牌(可选) | `""` |
|
||||
| SELF_HOSTED_WEBHOOK_URL | 自托管 Webhook URL(可选) | `""` |
|
||||
| SERPER_API_KEY | Serper 搜索 API 密钥(可选) | `""` |
|
||||
| SEARCHAPI_API_KEY | SearchAPI 密钥(可选) | `""` |
|
||||
| LOGGING_LEVEL | 日志级别 | `info` |
|
||||
| PROXY_SERVER | 代理服务器 URL(可选) | `""` |
|
||||
| PROXY_USERNAME | 代理用户名(可选) | `""` |
|
||||
| PROXY_PASSWORD | 代理密码(可选) | `""` |
|
||||
| BLOCK_MEDIA | 阻止媒体内容 | `true` |
|
||||
| SEARXNG_ENDPOINT | SearXNG 端点(可选) | `""` |
|
||||
| SEARXNG_ENGINES | SearXNG 引擎(可选) | `""` |
|
||||
| SEARXNG_CATEGORIES | SearXNG 分类(可选) | `""` |
|
||||
|
||||
请根据实际需求修改 `.env` 文件。
|
||||
|
||||
## 卷
|
||||
|
||||
- `redis_data`: 用于作业队列和缓存的 Redis 数据存储。
|
||||
- `redis_data`: 用于作业队列和缓存的 Redis 数据存储
|
||||
- `postgres_data`: 用于队列管理和元数据的 PostgreSQL 数据存储
|
||||
|
||||
## 使用方法
|
||||
|
||||
### 启动服务
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### 访问 API
|
||||
@@ -49,12 +76,22 @@ Firecrawl API 可在以下地址访问:
|
||||
http://localhost:3002
|
||||
```
|
||||
|
||||
### 管理面板
|
||||
|
||||
访问 Bull 队列管理面板:
|
||||
|
||||
```text
|
||||
http://localhost:3002/admin/@/queues
|
||||
```
|
||||
|
||||
如果修改了 `BULL_AUTH_KEY`,请将 `@` 替换为您的值。
|
||||
|
||||
### API 调用示例
|
||||
|
||||
**抓取单个页面:**
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:3002/v0/scrape \
|
||||
curl -X POST http://localhost:3002/v1/scrape \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"url": "https://example.com"
|
||||
@@ -64,12 +101,27 @@ curl -X POST http://localhost:3002/v0/scrape \
|
||||
**爬取网站:**
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:3002/v0/crawl \
|
||||
curl -X POST http://localhost:3002/v1/crawl \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"url": "https://example.com",
|
||||
"crawlerOptions": {
|
||||
"limit": 100
|
||||
"limit": 100
|
||||
}'
|
||||
```
|
||||
|
||||
**提取结构化数据:**
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:3002/v1/extract \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"urls": ["https://example.com"],
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {"type": "string"},
|
||||
"description": {"type": "string"}
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
@@ -80,16 +132,31 @@ curl -X POST http://localhost:3002/v0/crawl \
|
||||
- **网站爬取**: 递归爬取整个网站
|
||||
- **JavaScript 渲染**: 完全支持动态 JavaScript 渲染的页面
|
||||
- **Markdown 输出**: 将网页内容清晰地转换为 markdown
|
||||
- **速率限制**: 内置速率限制以防止滥用
|
||||
- **结构化数据提取**: 使用 JSON Schema 提取数据
|
||||
- **队列管理**: 内置 Bull 作业队列
|
||||
- **速率限制**: 可配置的速率限制
|
||||
- **代理支持**: 所有请求的可选代理配置
|
||||
- **AI 驱动功能**: 可选的 OpenAI 集成以进行高级提取
|
||||
|
||||
## 架构
|
||||
|
||||
此部署使用官方 Firecrawl 架构:
|
||||
|
||||
- **API 服务器**: 处理 HTTP 请求并管理作业队列
|
||||
- **工作进程**: 内置于主容器中,处理抓取作业
|
||||
- **PostgreSQL**: 存储队列元数据和作业信息
|
||||
- **Redis**: 处理作业队列和缓存
|
||||
- **Playwright 服务**: 提供浏览器自动化功能
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 该服务使用 Playwright 进行浏览器自动化,支持复杂的网页
|
||||
- Redis 用于作业队列和缓存
|
||||
- 速率限制可通过环境变量配置
|
||||
- 对于生产环境,考虑扩展工作进程数量
|
||||
- BLOCK_MEDIA 可以通过阻止图像/视频来减少内存使用
|
||||
- 该服务使用官方的 `ghcr.io/firecrawl/firecrawl` 镜像
|
||||
- PostgreSQL 使用官方的 `ghcr.io/firecrawl/nuq-postgres` 镜像进行队列管理(NUQ - Not Quite Bull)
|
||||
- Redis 默认不使用密码(运行在私有网络上)
|
||||
- 对于生产环境,启用 `USE_DB_AUTHENTICATION` 并配置 Supabase
|
||||
- 在生产部署中应更改 `BULL_AUTH_KEY`
|
||||
- AI 功能需要 `OPENAI_API_KEY` 或 `OLLAMA_BASE_URL`
|
||||
- 所有工作进程都在单个 API 容器中使用 harness 模式运行
|
||||
|
||||
## 许可证
|
||||
|
||||
|
||||
Reference in New Issue
Block a user