Files
NexusAI/PROGRESS.md
ericwyuan 188c02478b docs(部署方案): 同步 NAS+甲骨文反代决策 + 生成部署骨架
- SRS/SDD/README/PROGRESS 统一将部署目标由"美国服务器"更正为"NAS 本机 + 甲骨文服务器反向代理"(此前已确认但未入库)
- 新增 docker-compose.yml / nginx.conf / .env.example(对应待办任务4)
- 相对 SDD 草稿的安全加固:one-api 端口改绑 127.0.0.1(原为公网端口映射),lobe-chat 不再发布主机端口,仅走容器内网
2026-08-23 08:31:09 +08:00

64 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目进度追踪
> 最后更新: 2026-08-23
## 服务运行状态
| 服务 | 节点 | 状态 | 说明 |
|------|------|------|------|
| 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.203frp/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`
## 任务进度
### 已完成
| # | 任务 | 日期 |
|---|------|------|
| 1 | 软件需求文档SRS V1.0)入库 | 2026-08-23 |
| 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 | 验证 NAS 到各海外 API 官方域名的直连稳定性 | - | 高 |
| 2 | 申请新 Gemini / NVIDIA API Key | - | 高 |
| 3 | 确认 Oracle 反代方式frp 隧道 vs nginx 反代) | 决策 | 高 |
| 5 | NAS 实际部署 + One-API 渠道配置5 家)+ Failover 验证 | Key | 高 |
| 6 | 配置 Oracle 反代端口 → NAS 网关入口 | 反代方式 | 高 |
| 7 | HTTPS 域名与证书 | NAS | 中 |
| 8 | 确认 Server-Side 模式 / 管理端口访问方式 / 监控方案 | 决策 | 中 |
## 技术决策记录
1. **不重复造轮子** - 网关用 One-API、前端用 LobeChat仅做配置层工作前端、网关、各 AI 渠道间均走 OpenAI 兼容接口,任一组件可替换
2. **模型映射** - 前端只感知 `auto-vision`(图文)与 `auto-text`(纯文本)两个聚合模型名,多渠道不同模型映射到统一对外模型名
3. **优先级路由** - 渠道优先级数字越小越优先,同优先级内按权重轮询分摊负载
4. **冷却恢复** - 渠道连续失败超阈值5 次/5 分钟进入冷却禁用冷却期10 分钟)后自动恢复参与路由
5. **最小暴露面** - 对外仅暴露甲骨文服务器反代端口NAS 本机不直接暴露公网One-API 后台与 MySQL 端口仅容器内网可访问
6. **部署位置** - NAS 本机 Docker ComposeSynology ContainerManager甲骨文服务器 frp/nginx 反代公网端口 → NAS 网关入口NAS 出站直连海外 API