This commit is contained in:
2026-01-18 00:31:57 +08:00
parent fee5076e16
commit 5e5f4f6543
2 changed files with 149 additions and 56 deletions

View File

@@ -39,6 +39,14 @@ export const s3Proxy = async (req: http.IncomingMessage, res: http.ServerRespons
if (objectPath.startsWith(s3.bucket + '/')) { if (objectPath.startsWith(s3.bucket + '/')) {
objectPath = objectPath.replace(s3.bucket + '/', ''); objectPath = objectPath.replace(s3.bucket + '/', '');
} }
if (objectPath.endsWith('/')) {
// 获取目录列表
res.statusCode = 200;
res.setHeader('Content-Type', 'application/json; charset=utf-8');
const list = await oss.listObjects(objectPath);
res.end(JSON.stringify(list, null, 2));
return;
}
oss.getObject(objectPath).then((response) => { oss.getObject(objectPath).then((response) => {
if (!response.Body) { if (!response.Body) {
res.statusCode = 404; res.statusCode = 404;

View File

@@ -1,6 +1,6 @@
--- ---
title: '配置项介绍' title: '配置项介绍'
description: 'Assistant 应用配置项完整说明文档包括应用信息、代理、服务器、认证、AI等各项配置详解' description: 'Assistant 应用配置项完整说明文档包括应用信息、代理、服务器、认证、AI、存储等各项配置详解'
tags: ['config', 'configuration', 'settings', 'assistant'] tags: ['config', 'configuration', 'settings', 'assistant']
createdAt: '2025-12-18' createdAt: '2025-12-18'
--- ---
@@ -22,28 +22,38 @@ createdAt: '2025-12-18'
} }
``` ```
- **id**: `string` - 应用唯一标识符,用于识别具体设备或应用实例 | 字段 | 类型 | 说明 |
- **url**: `string` - 应用访问地址 |------|------|------|
| id | `string` | 应用唯一标识符,用于识别具体设备或应用实例 |
| url | `string` | 应用访问地址 |
## token - 访问令牌 ## token - 访问令牌
用于身份验证的访问令牌。
```json ```json
{ {
"token": "your-access-token" "token": "your-access-token"
} }
``` ```
- **token**: `string` - 用于身份验证的访问令牌 | 字段 | 类型 | 说明 |
|------|------|------|
| token | `string` | 访问令牌 |
## registry - 注册中心 ## registry - 注册中心
注册中心地址,默认为 `https://kevisual.cn`
```json ```json
{ {
"registry": "https://kevisual.cn" "registry": "https://kevisual.cn"
} }
``` ```
- **registry**: `string` - 注册中心地址,默认为 `https://kevisual.cn` | 字段 | 类型 | 说明 |
|------|------|------|
| registry | `string` | 注册中心地址 |
## proxy - 前端代理配置 ## proxy - 前端代理配置
@@ -61,16 +71,18 @@ createdAt: '2025-12-18'
} }
``` ```
- **proxy**: `ProxyInfo[]` - 代理配置数组 | 字段 | 类型 | 说明 |
- **path**: `string` - 匹配的路径前缀 |------|------|------|
- **target**: `string` - 目标服务器地址 | proxy | `ProxyInfo[]` | 代理配置数组 |
- **pathname**: `string` - 转发到目标服务器的路径 | proxy[].path | `string` | 匹配的路径前缀 |
| proxy[].target | `string` | 目标服务器地址 |
| proxy[].pathname | `string` | 转发到目标服务器的路径 |
示例:访问 `/root/home` 会被转发到 `https://kevisual.cn/root/home` 示例:访问 `/root/home` 会被转发到 `https://kevisual.cn/root/home`
## api - API代理配置 ## api - API代理配置
专门用于API请求的代理配置。 专门用于 API 请求的代理配置,例如 `/api``/v1` 开头的请求
```json ```json
{ {
@@ -89,17 +101,23 @@ createdAt: '2025-12-18'
} }
``` ```
- **api.proxy**: `ProxyInfo[]` - API代理配置数组配置方式同 `proxy` | 字段 | 类型 | 说明 |
|------|------|{------|
| api.proxy | `ProxyInfo[]` | API代理配置数组 |
## description - 应用描述 ## description - 应用描述
应用的描述信息。
```json ```json
{ {
"description": "我的助手应用" "description": "我的助手应用"
} }
``` ```
- **description**: `string` - 应用的描述信息 | 字段 | 类型 | 说明 |
|------|------|------|
| description | `string` | 应用描述信息 |
## server - 服务器配置 ## server - 服务器配置
@@ -114,8 +132,10 @@ createdAt: '2025-12-18'
} }
``` ```
- **server.path**: `string` - 服务器监听地址,默认 `127.0.0.1` | 字段 | 类型 | 说明 |
- **server.port**: `number` - 服务器监听端口号 |------|------|------|
| server.path | `string`` | 服务器监听地址,默认 `127.0.0.1` |
| server.port | `number` | 服务器监听端口号 |
## share - 远程访问配置 ## share - 远程访问配置
@@ -130,8 +150,10 @@ createdAt: '2025-12-18'
} }
``` ```
- **share.url**: `string` - 远程应用代理地址 | 字段 | 类型 | 说明 |
- **share.enabled**: `boolean` - 是否启用远程访问功能 |------|------|------|
| share.url | `string` | 远程应用代理地址 |
| share.enabled | `boolean` | 是否启用远程访问功能 |
## watch - 文件监听配置 ## watch - 文件监听配置
@@ -145,21 +167,27 @@ createdAt: '2025-12-18'
} }
``` ```
- **watch.enabled**: `boolean` - 是否启用文件监听 | 字段 | 类型 | 说明 |
|------|------|------|
| watch.enabled | `boolean` | 是否启用文件监听 |
## home - 首页路径 ## home - 首页路径
访问根路径 `/` 时自动重定向的首页地址。
```json ```json
{ {
"home": "/root/home" "home": "/root/home"
} }
``` ```
- **home**: `string` - 访问根路径 `/` 时自动重定向的首页地址 | 字段 | 类型 | 说明 |
|------|------|------|
| home | `string` | 首页路径 |
## ai - AI功能配置 ## ai - AI功能配置
启用和配置本地AI代理功能。 启用和配置本地 AI 代理功能。
```json ```json
{ {
@@ -172,28 +200,32 @@ createdAt: '2025-12-18'
} }
``` ```
- **ai.enabled**: `boolean` - 是否启用AI功能 | 字段 | 类型 | 说明 |
- **ai.provider**: `string` - AI提供商可选 `'DeepSeek'` | `'Custom'` 或其他自定义值 |------|------|------|
- **ai.apiKey**: `string` - API密钥 | ai.enabled | `boolean` | 是否启用 AI 功能 |
- **ai.model**: `string` - 使用的模型名称 | ai.provider | `string` | AI 提供商,可选 `'DeepSeek'` | `'Custom'` |
| ai.apiKey | `string` | API 密钥 |
| ai.model | `string` | 使用的模型名称 |
## scripts - 自定义脚本 ## asr - 语音识别配置
定义自定义脚本命令,在应用启动时执行 配置阿里云语音识别服务
```json ```json
{ {
"scripts": { "asr": {
"start": "node server.js", "enabled": true,
"build": "npm run build", "token": "your-asr-token"
"custom": "echo 'Hello World'"
} }
} }
``` ```
- **scripts**: `Record<string, string>` - 键值对形式的脚本配置 | 字段 | 类型 | 说明 |
- key: 脚本名称 |------|------|------|
- value: 要执行的命令 | asr.enabled | `boolean` | 是否启用语音识别功能 |
| asr.token | `string` | 阿里云 ASR 服务令牌 |
使用模型:`qwen3-asr-flash-realtime`
## auth - 认证和权限配置 ## auth - 认证和权限配置
@@ -207,33 +239,70 @@ createdAt: '2025-12-18'
} }
``` ```
- **auth**: `AuthPermission` - 认证权限配置对象 | 字段 | 类型 | 说明 |
- **share**: 共享访问模式 |------|------|------|
- `"protected"` - 需要认证才能访问(默认) | auth.share | `string` | 共享访问模式,影响 pages 目录下页面的对外共享权限 |
- `"public"` - 公开访问,无需认证
- `"private"` - 私有访问,完全禁止外部访问
> **说明**: `share` 配置影响 pages 目录下页面的对外共享权限 **share 可选值:**
- `"protected"` - 需要认证才能访问(默认)
- `"public"` - 公开访问,无需认证
- `"private"` - 私有访问,完全禁止外部访问
## https - HTTPS证书配置 ## storage - 存储配置
配置HTTPS服务和证书 配置文件存储,支持本地文件系统和 S3/MinIO 两种存储方式
### 本地文件存储 (FileStorage)
```json ```json
{ {
"https": { "storage": [
"type": "https", {
"keyPath": "/path/to/private.key", "id": "local-storage",
"certPath": "/path/to/certificate.crt" "path": "./uploads",
} "type": "local"
}
]
} }
``` ```
- **https.type**: `'https' | 'http'` - 服务协议类型,默认 `'http'` ### S3/MinIO 存储 (S3Storage)
- **https.keyPath**: `string` - SSL证书私钥文件路径
- **https.certPath**: `string` - SSL证书文件路径
> **注意**: 通常不需要配置HTTPS可以通过反向代理如Nginx实现HTTPS访问 ```json
{
"storage": [
{
"id": "s3-storage",
"bucket": "my-bucket",
"region": "us-east-1",
"accessKeyId": "AKIAXXXXXXXXXXXXXXXX",
"secretAccessKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"endpoint": "https://s3.amazonaws.com",
"type": "s3"
},
{
"id": "minio-storage",
"bucket": "my-bucket",
"region": "us-east-1",
"accessKeyId": "minioadmin",
"secretAccessKey": "minioadmin",
"endpoint": "http://localhost:9000",
"type": "minio"
}
]
}
```
| 字段 | 类型 | 说明 |
|------|------|------|
| storage[].id | `string` | 存储标识符,唯一标识一个存储配置 |
| storage[].type | `'local' \| 's3' \| 'minio'` | 存储类型 |
| storage[].path | `string` | 本地存储路径(仅 type 为 `local` 时有效) |
| storage[].bucket | `string` | 存储桶名称(仅 type 为 `s3` 或 `minio` 时有效) |
| storage[].region | `string` | 存储区域(仅 type 为 `s3` 或 `minio` 时有效) |
| storage[].accessKeyId | `string` | 访问密钥 ID仅 type 为 `s3` 或 `minio` 时有效) |
| storage[].secretAccessKey | `string` | 访问密钥(仅 type 为 `s3` 或 `minio` 时有效) |
| storage[].endpoint | `string` | 服务端点地址(仅 type 为 `s3` 或 `minio` 时有效,可选) |
## 完整配置示例 ## 完整配置示例
@@ -279,13 +348,29 @@ createdAt: '2025-12-18'
"apiKey": "sk-xxx", "apiKey": "sk-xxx",
"model": "deepseek-chat" "model": "deepseek-chat"
}, },
"scripts": { "asr": {
"setup": "npm install", "enabled": true,
"dev": "npm run dev" "token": "your-asr-token"
}, },
"auth": { "auth": {
"share": "protected" "share": "protected"
} },
"storage": [
{
"id": "local-storage",
"path": "./uploads",
"type": "local"
},
{
"id": "s3-storage",
"bucket": "my-bucket",
"region": "us-east-1",
"accessKeyId": "AKIAXXXXXXXXXXXXXXXX",
"secretAccessKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"endpoint": "https://s3.amazonaws.com",
"type": "s3"
}
]
} }
``` ```
@@ -295,8 +380,8 @@ createdAt: '2025-12-18'
## 最佳实践 ## 最佳实践
1. **安全性**: 不要在配置文件中硬编码敏感信息(如 token、apiKey建议使用环境变量 1. **安全性**: 不要在配置文件中硬编码敏感信息(如 token、apiKey、secretAccessKey),建议使用环境变量
2. **端口选择**: 确保选择的端口未被占用 2. **端口选择**: 确保选择的端口未被占用
3. **代理配置**: 合理配置代理路径,避免路径冲突 3. **代理配置**: 合理配置代理路径,避免路径冲突
4. **HTTPS**: 生产环境建议使用反向代理配置HTTPS而非直接在应用中配置 4. **权限控制**: 根据实际需求选择合适的 `auth.share` 模式
5. **权限控制**: 根据实际需求选择合适的 `auth.share` 模式 5. **存储配置**: 根据应用规模选择合适的存储方式本地存储适合开发和小型应用S3/MinIO 适合生产环境