[任务1,3,5] NAS 实际部署 + frp 隧道打通 - 端到端可访问
- 发现 NAS 本机 80/443/3000 已被 Gitea/既有服务占用,调整 docker-compose.yml/nginx.conf 端口:nginx 改 8443(对应容器内 443),one-api 改 127.0.0.1:3001(内网回环,不再冲突 Gitea 的 3000) - 验证 NAS 到 Gemini/NVIDIA/Groq/OpenRouter/Mistral 五渠道直连稳定(待办任务1完成) - 确认并实施 Oracle 侧 frp 隧道反代方案:复用已运行的 frps,在 NAS frpc.toml 追加 nexusai 代理(remotePort 443 -> NAS:8443),未影响既有 gitea/wordpress/fam-core 隧道(待办任务3完成) - NAS 上 docker compose up -d 四容器(mysql/one-api/lobe-chat/nginx)全部启动,https://129.146.203.203/ 端到端验证通过(待办任务5:部署部分完成,渠道配置/Token 待人工在 One-API 后台完成)
This commit is contained in:
39
README.md
39
README.md
@@ -76,24 +76,26 @@ NAS 本机(Docker 宿主机)
|
||||
## 3. 部署概览
|
||||
|
||||
- **部署位置**:NAS 本机(Synology DSM 7,Docker Compose / ContainerManager)
|
||||
- **对外访问**:甲骨文服务器(129.146.203.203)frp/nginx 反向代理端口 → NAS 的 Nginx 443
|
||||
- **方式**:所有服务在同一 `ai-network` 内,仅 Nginx 80/443 对局域网暴露
|
||||
- **对外访问**:甲骨文服务器(129.146.203.203)frp 隧道(frps 已运行,`frpc.toml` 追加 `nexusai` 代理)转发公网 443 → NAS 的 Nginx 容器(NAS 本机端口 8443)
|
||||
- **方式**:所有服务在同一 `ai-network` 内;NAS 本机 80/443/3000 已被 Gitea/DSM 等既有服务占用,AI 网关改用 8443(nginx)与 3001(one-api,仅 127.0.0.1)
|
||||
- **目录结构**:`docker-compose.yml` / `.env`(敏感变量,不入库)/ `nginx.conf` / `certs/` / `one-api-data/` / `mysql-data/`
|
||||
- **详细部署步骤**:见 [SDD 第 6 章](docs/02-软件设计文档-SDD.md#6-部署设计)
|
||||
|
||||
### 3.1 容器服务
|
||||
|
||||
| 服务 | 镜像 | 端口 | 说明 |
|
||||
| 服务 | 镜像 | 端口(NAS 本机) | 说明 |
|
||||
|---|---|---|---|
|
||||
| nginx | nginx:alpine | 80/443(NAS 局域网) | HTTPS 终止、反向代理 |
|
||||
| lobe-chat | lobehub/lobe-chat:latest | 3210(内网) | 前端对话界面 |
|
||||
| one-api | justsong/one-api:latest | 3000(内网) | 网关聚合层 |
|
||||
| mysql | mysql:8.0 | 3306(内网) | One-API 数据存储 |
|
||||
| nginx | nginx:alpine | 8443→443(经 frp 隧道对外) | HTTPS 终止、反向代理 |
|
||||
| lobe-chat | lobehub/lobe-chat:latest | 未发布主机端口,仅容器内网 3210 | 前端对话界面 |
|
||||
| one-api | justsong/one-api:latest | 127.0.0.1:3001→3000(仅本机回环) | 网关聚合层 |
|
||||
| mysql | mysql:8.0 | 未发布主机端口,仅容器内网 3306 | One-API 数据存储 |
|
||||
|
||||
> NAS 本机 80/443/3000 已被 Gitea(3000)与其他既有服务(80/443)占用,故 AI 网关容器改用上表端口;甲骨文侧无需改动,frps 按 `frpc.toml` 中新增的 `[[proxies]] name="nexusai"` 动态接受 remotePort 443。
|
||||
|
||||
### 3.2 安全要点
|
||||
|
||||
- 对外仅暴露甲骨文服务器反代端口,NAS 本机不直接暴露公网
|
||||
- One-API 后台端口(3000)不映射公网,远程管理走 SSH 隧道 / VPN
|
||||
- 对外仅暴露甲骨文服务器 frp 隧道转发的 443 端口,NAS 本机不直接暴露公网
|
||||
- One-API 后台端口只绑定 `127.0.0.1:3001`,不接入 frp 隧道;远程管理走 SSH 隧道:`ssh -p 2222 -L 3001:127.0.0.1:3001 ericwyuan@192.168.50.64`
|
||||
- 所有 API Key 通过服务器 `.env` 注入容器环境变量,`.env` 不入库(见 [SDD 第 5 章](docs/02-软件设计文档-SDD.md#5-安全设计))
|
||||
- 前端强制 `ACCESS_CODE` 校验;Nginx 全站 HTTPS
|
||||
|
||||
@@ -184,18 +186,19 @@ NAS 本机(Docker 宿主机)
|
||||
|
||||
- 软件需求文档(SRS V1.0)与软件设计文档(SDD V1.0)入库(`docs/`)
|
||||
- 项目仓库初始化(Gitea: ericwyuan/NexusAI)
|
||||
- NAS→各渠道直连稳定性验证、frp 隧道打通、四容器(mysql/one-api/lobe-chat/nginx)部署上线,端到端 `https://129.146.203.203/` 已可访问(详见 [PROGRESS.md](PROGRESS.md))
|
||||
|
||||
### 待办(见 SDD 第 8 章待确认事项)
|
||||
|
||||
| # | 任务 | 优先级 |
|
||||
|---|------|--------|
|
||||
| 1 | 验证 NAS 到各海外 API 官方域名的直连稳定性 | 高 |
|
||||
| 2 | 申请新 Gemini / NVIDIA API Key | 高 |
|
||||
| 3 | 确认 Oracle 反代方式(frp 隧道 vs nginx 反代) | 高 |
|
||||
| 4 | ~~生成部署骨架(docker-compose.yml / nginx.conf / .env.example)~~ 已完成 | 高 |
|
||||
| 5 | NAS 实际部署 + One-API 渠道配置 + Failover 验证 | 高 |
|
||||
| 6 | 确认 HTTPS 域名与证书方案 | 中 |
|
||||
| 7 | 确认 Server-Side 模式 / 管理端口访问方式 / 监控方案 | 中 |
|
||||
| # | 任务 | 优先级 | 说明 |
|
||||
|---|------|--------|---|
|
||||
| 1 | ~~验证 NAS 到各海外 API 官方域名的直连稳定性~~ 已完成 | 高 | 五渠道均直连正常 |
|
||||
| 2 | 申请新 Gemini / NVIDIA API Key | 高 | 需用户在对应厂商控制台自行申请 |
|
||||
| 3 | ~~确认 Oracle 反代方式(frp 隧道 vs nginx 反代)~~ 已完成 | 高 | 复用既有 frps,新增 nexusai 代理 |
|
||||
| 4 | ~~生成部署骨架(docker-compose.yml / nginx.conf / .env.example)~~ 已完成 | 高 | |
|
||||
| 5 | NAS 实际部署 + One-API 渠道配置 + Failover 验证 | 高 | 容器已部署上线;管理员账号/渠道/Token 需用户在 One-API Web UI 手动完成(涉及密钥输入,AI 不代做) |
|
||||
| 6 | 确认 HTTPS 域名与证书方案 | 中 | 当前为临时自签名证书,浏览器会提示不安全 |
|
||||
| 7 | 确认 Server-Side 模式 / 管理端口访问方式 / 监控方案 | 中 | 管理端口访问方式已定(SSH 隧道 3001) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user