1919- Docker (可选)
2020- Redis (可选,用于数据持久化)
2121
22- > 💡 ** 提示** : 如果使用二进制文件部署,无需安装 Node.js 环境
23-
2422### ⚙️ 环境配置
2523
2624创建 ` .env ` 文件并配置以下参数:
@@ -32,7 +30,7 @@ LISTEN_ADDRESS=localhost # 监听地址
3230SERVICE_PORT=3000 # 服务端口
3331
3432# 🔐 安全配置
35- API_KEY=sk-123456 # API 密钥 (必填)
33+ API_KEY=sk-123456,sk-456789 # API 密钥 (必填,支持多密钥 )
3634ACCOUNTS= # 账户配置 (格式: user1:pass1,user2:pass2)
3735
3836# 🚀 PM2 多进程配置
@@ -59,7 +57,7 @@ CACHE_MODE=default # 图片缓存模式 (default/file)
5957| ` API_PREFIX ` | API 路径前缀,不填则为根路径 | ` /api ` → ` http://localhost:3000/api ` |
6058| ` LISTEN_ADDRESS ` | 服务监听地址 | ` localhost ` 或 ` 0.0.0.0 ` |
6159| ` SERVICE_PORT ` | 服务运行端口 | ` 3000 ` |
62- | ` API_KEY ` | API 访问密钥 (必填) | ` sk-your-secret-key ` |
60+ | ` API_KEY ` | API 访问密钥,支持多密钥配置。第一个为管理员密钥(可访问前端管理页面),其他为普通密钥(仅可调用API)。多个密钥用逗号分隔 | ` sk-admin123,sk-user456,sk-user789 ` |
6361| ` PM2_INSTANCES ` | PM2进程数量 | ` 1 ` /` 4 ` /` max ` |
6462| ` PM2_MAX_MEMORY ` | PM2内存限制 | ` 100M ` /` 1G ` /` 2G ` |
6563| ` SEARCH_INFO_MODE ` | 搜索结果展示格式 | ` table ` 或 ` text ` |
@@ -73,6 +71,36 @@ CACHE_MODE=default # 图片缓存模式 (default/file)
7371| ` MAX_LOG_FILE_SIZE ` | 最大日志文件大小(MB) | ` 10 ` |
7472| ` MAX_LOG_FILES ` | 保留的日志文件数量 | ` 5 ` |
7573
74+ #### 🔑 多API_KEY配置说明
75+
76+ ` API_KEY ` 环境变量支持配置多个API密钥,用于实现不同权限级别的访问控制:
77+
78+ ** 配置格式:**
79+ ``` bash
80+ # 单个密钥(管理员权限)
81+ API_KEY=sk-admin123
82+
83+ # 多个密钥(第一个为管理员,其他为普通用户)
84+ API_KEY=sk-admin123,sk-user456,sk-user789
85+ ```
86+
87+ ** 权限说明:**
88+
89+ | 密钥类型 | 权限范围 | 功能描述 |
90+ | ----------| ----------| ----------|
91+ | ** 管理员密钥** | 完整权限 | • 访问前端管理页面<br >• 修改系统设置<br >• 调用所有API接口<br >• 添加/删除普通密钥 |
92+ | ** 普通密钥** | API调用权限 | • 仅可调用API接口<br >• 无法访问前端管理页面<br >• 无法修改系统设置 |
93+
94+ ** 使用场景:**
95+ - ** 团队协作** : 为不同团队成员分配不同权限的API密钥
96+ - ** 应用集成** : 为第三方应用提供受限的API访问权限
97+ - ** 安全隔离** : 将管理权限与普通使用权限分离
98+
99+ ** 注意事项:**
100+ - 第一个API_KEY自动成为管理员密钥,拥有最高权限
101+ - 管理员可以通过前端页面动态添加或删除普通密钥
102+ - 所有密钥都可以正常调用API接口,权限差异仅体现在管理功能上
103+
76104#### 📸 CACHE_MODE 缓存模式说明
77105
78106` CACHE_MODE ` 环境变量控制图片缓存的存储方式,用于优化图片上传和处理性能:
@@ -110,9 +138,21 @@ caches/
110138#### 方式一:直接运行
111139
112140``` bash
141+ # 单个API密钥部署
113142docker run -d \
114143 -p 3000:3000 \
115- -e API_KEY=sk-your-secret-key \
144+ -e API_KEY=sk-your-admin-key \
145+ -e DATA_SAVE_MODE=none \
146+ -e CACHE_MODE=file \
147+ -e ACCOUNTS= \
148+ -v ./caches:/app/caches \
149+ --name qwen2api \
150+ rfym21/qwen2api:latest
151+
152+ # 多个API密钥部署(推荐)
153+ docker run -d \
154+ -p 3000:3000 \
155+ -e API_KEY=sk-admin123,sk-user456,sk-user789 \
116156 -e DATA_SAVE_MODE=none \
117157 -e CACHE_MODE=file \
118158 -e ACCOUNTS= \
@@ -261,6 +301,27 @@ Qwen2API/
261301
262302## 📖 API 文档
263303
304+ ### 🔐 API 认证说明
305+
306+ 本API支持多密钥认证机制,所有API请求都需要在请求头中包含有效的API密钥:
307+
308+ ``` http
309+ Authorization: Bearer sk-your-api-key
310+ ```
311+
312+ ** 支持的密钥类型:**
313+ - ** 管理员密钥** : 第一个配置的API_KEY,拥有完整权限
314+ - ** 普通密钥** : 其他配置的API_KEY,仅可调用API接口
315+
316+ ** 认证示例:**
317+ ``` bash
318+ # 使用管理员密钥
319+ curl -H " Authorization: Bearer sk-admin123" http://localhost:3000/v1/models
320+
321+ # 使用普通密钥
322+ curl -H " Authorization: Bearer sk-user456" http://localhost:3000/v1/chat/completions
323+ ```
324+
264325### 🔍 获取模型列表
265326
266327获取所有可用的 AI 模型列表。
0 commit comments