docs(部署方案): 同步 NAS+甲骨文反代决策 + 生成部署骨架
- SRS/SDD/README/PROGRESS 统一将部署目标由"美国服务器"更正为"NAS 本机 + 甲骨文服务器反向代理"(此前已确认但未入库) - 新增 docker-compose.yml / nginx.conf / .env.example(对应待办任务4) - 相对 SDD 草稿的安全加固:one-api 端口改绑 127.0.0.1(原为公网端口映射),lobe-chat 不再发布主机端口,仅走容器内网
This commit is contained in:
34
PROGRESS.md
34
PROGRESS.md
@@ -6,14 +6,25 @@
|
||||
|
||||
| 服务 | 节点 | 状态 | 说明 |
|
||||
|------|------|------|------|
|
||||
| Nginx | 美国服务器(待申请) | ⏳ 未部署 | HTTPS 反向代理层 |
|
||||
| LobeChat | 美国服务器(待申请) | ⏳ 未部署 | 前端对话界面 |
|
||||
| One-API | 美国服务器(待申请) | ⏳ 未部署 | 网关聚合层 |
|
||||
| MySQL | 美国服务器(待申请) | ⏳ 未部署 | One-API 数据存储 |
|
||||
| Oracle 反代层 | 甲骨文服务器 129.146.203.203 | ⏳ 未配置 | frp/nginx 反代端口 → NAS 网关入口 |
|
||||
| Nginx | NAS 192.168.50.64 | ⏳ 未部署 | HTTPS 反向代理层 |
|
||||
| LobeChat | NAS 192.168.50.64 | ⏳ 未部署 | 前端对话界面 |
|
||||
| One-API | NAS 192.168.50.64 | ⏳ 未部署 | 网关聚合层 |
|
||||
| MySQL | NAS 192.168.50.64 | ⏳ 未部署 | One-API 数据存储 |
|
||||
|
||||
## 2026-08-23 部署骨架生成:docker-compose.yml / nginx.conf / .env.example
|
||||
|
||||
- **产出**:仓库根目录新增 `docker-compose.yml`(mysql / one-api / lobe-chat / nginx 四服务)、`nginx.conf`(443 SSL + 80→443 跳转 + SSE 流式透传配置)、`.env.example`(含 MYSQL_ROOT_PASSWORD / ONE_API_TOKEN / LOBE_ACCESS_CODE / 各渠道 Key 占位)。
|
||||
- **相对 SDD 草稿的两处安全加固**:
|
||||
1. `one-api` 端口改为 `127.0.0.1:3000:3000`(原草稿是 `3000:3000` 全网卡暴露),管理需通过 SSH 隧道(`ssh -p 2222 -L 3000:127.0.0.1:3000 ericwyuan@192.168.50.64`)转发后本地访问,符合 SRS FR-5.2 / SDD 第5章"后台管理端口不映射公网"的要求。
|
||||
2. `lobe-chat` 不再发布主机端口(原草稿 `3210:3210`),仅通过 `ai-network` 容器网络被 nginx 访问,进一步收敛暴露面。
|
||||
- **nginx.conf 待确认项**:`server_name` 暂用 `_` 通配(域名与证书方案见 SDD 8.4 待确认事项,任务 6);`certs/fullchain.pem` / `privkey.pem` 尚未生成,需任务 6 确认证书方案后补充。
|
||||
- **尚未做**:实际登录 NAS 部署(依赖新 Gemini/NVIDIA Key 与 Oracle 反代方式确认,任务 1-3, 5, 6)。
|
||||
|
||||
## 2026-08-23 项目启动:文档入库 + 仓库初始化
|
||||
|
||||
- **决策**:采用成熟开源组件(Nginx + LobeChat + One-API + MySQL)容器化搭建,不重复造轮子;网关对外统一暴露 `auto-vision` / `auto-text` 两个聚合模型名。
|
||||
- **部署方案(用户 2026-08-23 确认)**:部署于 NAS 本机(Docker Compose),由甲骨文服务器(129.146.203.203)frp/nginx 反向代理端口对外提供访问(与 FAM 项目 frp 方案一致);NAS 出站直连各海外 API。
|
||||
- **文档**:`docs/01-软件需求文档-SRS.md`(V1.0)+ `docs/02-软件设计文档-SDD.md`(V1.0)入库;README 汇总架构/服务器访问信息/提交规范。
|
||||
- **安全**:Gemini 与 NVIDIA 的旧 API Key 不写入仓库(将申请新值);所有 Key 计划通过服务器 `.env` 管理(已加入 .gitignore)。
|
||||
- **仓库**:本地初始化,推送 Gitea `http://192.168.50.64:3000/ericwyuan/NexusAI`。
|
||||
@@ -28,17 +39,19 @@
|
||||
| 2 | 软件设计文档(SDD V1.0)入库 | 2026-08-23 |
|
||||
| 3 | README(架构/服务器信息/提交规范) | 2026-08-23 |
|
||||
| 4 | 仓库初始化 + 推送 Gitea | 2026-08-23 |
|
||||
| 5 | 生成部署骨架(docker-compose.yml / nginx.conf / .env.example) | 2026-08-23 |
|
||||
|
||||
### 待完成
|
||||
|
||||
| # | 任务 | 依赖 | 优先级 |
|
||||
|---|------|------|--------|
|
||||
| 1 | 申请美国服务器(网关部署目标) | - | 高 |
|
||||
| 1 | 验证 NAS 到各海外 API 官方域名的直连稳定性 | - | 高 |
|
||||
| 2 | 申请新 Gemini / NVIDIA API Key | - | 高 |
|
||||
| 3 | 生成部署骨架(docker-compose.yml / nginx.conf / .env.example) | 文档 | 高 |
|
||||
| 4 | 实际部署 + One-API 渠道配置(5 家)+ Failover 验证 | 服务器/Key | 高 |
|
||||
| 5 | HTTPS 域名与证书 | 服务器 | 中 |
|
||||
| 6 | 确认 Server-Side 模式 / 管理端口访问方式 / 监控方案 | 决策 | 中 |
|
||||
| 3 | 确认 Oracle 反代方式(frp 隧道 vs nginx 反代) | 决策 | 高 |
|
||||
| 5 | NAS 实际部署 + One-API 渠道配置(5 家)+ Failover 验证 | Key | 高 |
|
||||
| 6 | 配置 Oracle 反代端口 → NAS 网关入口 | 反代方式 | 高 |
|
||||
| 7 | HTTPS 域名与证书 | NAS | 中 |
|
||||
| 8 | 确认 Server-Side 模式 / 管理端口访问方式 / 监控方案 | 决策 | 中 |
|
||||
|
||||
## 技术决策记录
|
||||
|
||||
@@ -46,4 +59,5 @@
|
||||
2. **模型映射** - 前端只感知 `auto-vision`(图文)与 `auto-text`(纯文本)两个聚合模型名,多渠道不同模型映射到统一对外模型名
|
||||
3. **优先级路由** - 渠道优先级数字越小越优先,同优先级内按权重轮询分摊负载
|
||||
4. **冷却恢复** - 渠道连续失败超阈值(5 次/5 分钟)进入冷却禁用,冷却期(10 分钟)后自动恢复参与路由
|
||||
5. **最小暴露面** - 仅 Nginx 80/443 对公网暴露,One-API 后台与 MySQL 端口仅容器内网可访问
|
||||
5. **最小暴露面** - 对外仅暴露甲骨文服务器反代端口,NAS 本机不直接暴露公网;One-API 后台与 MySQL 端口仅容器内网可访问
|
||||
6. **部署位置** - NAS 本机 Docker Compose(Synology ContainerManager),甲骨文服务器 frp/nginx 反代公网端口 → NAS 网关入口;NAS 出站直连海外 API
|
||||
|
||||
Reference in New Issue
Block a user