163 lines
6.4 KiB
Markdown
163 lines
6.4 KiB
Markdown
|
|
# 📋 铸渊指令|小说下载器·Phase 1 · 新加坡小说服务器初始化+项目结构搭建 · ZY-NOVEL-2026-0416-001 · 霜砚签发 · 冰朔授权
|
|||
|
|
|
|||
|
|
```jsx
|
|||
|
|
HLDP://zy-novel-2026-0416-001/root · 2026-04-16T17:40+08:00
|
|||
|
|
├── meta
|
|||
|
|
│ ├── code: ZY-NOVEL-2026-0416-001
|
|||
|
|
│ ├── author: 霜砚(AG-SY-01)
|
|||
|
|
│ ├── authorized: 冰朔(TCS-0002∞)
|
|||
|
|
│ ├── target: 铸渊(ZY-01)
|
|||
|
|
│ └── phase: Phase 1 · 服务器接入 + 项目骨架
|
|||
|
|
│
|
|||
|
|
├── server_info(新服务器·今日配置完成)
|
|||
|
|
│ ├── name: 小说数据库服务器
|
|||
|
|
│ ├── code: ZY-SVR-NOVEL-001
|
|||
|
|
│ ├── ip: 43.153.203.105
|
|||
|
|
│ ├── region: 腾讯云·新加坡四区
|
|||
|
|
│ ├── spec: 2核2G · SSD 50GB · 1024GB/月流量
|
|||
|
|
│ ├── os: Ubuntu 24.04 LTS
|
|||
|
|
│ ├── env_ready:
|
|||
|
|
│ │ ├── Node.js 18 ✅
|
|||
|
|
│ │ ├── PM2 6.0.14(含开机自启)✅
|
|||
|
|
│ │ ├── Nginx 1.24.0 ✅
|
|||
|
|
│ │ └── Git 2.43.0 ✅
|
|||
|
|
│ └── github_secrets_ready:
|
|||
|
|
│ ├── ZY_NOVEL_HOST = 43.153.203.105 ✅
|
|||
|
|
│ ├── ZY_NOVEL_USER = root ✅
|
|||
|
|
│ ├── ZY_NOVEL_KEY = SSH私钥(终端生成·已配置)✅
|
|||
|
|
│ └── ZY_NOVEL_PATH = /opt/novel-db ✅
|
|||
|
|
│
|
|||
|
|
├── wireguard_todo(铸渊负责·三节点内网)
|
|||
|
|
│ ├── 三台新加坡服务器需要打通内网
|
|||
|
|
│ ├── 方案: WireGuard 软件内网(不用云联网·免费)
|
|||
|
|
│ ├── 面孔服务器: 43.134.16.246 → 内网IP 10.0.0.1
|
|||
|
|
│ ├── 大脑服务器: 43.156.237.110 → 内网IP 10.0.0.2
|
|||
|
|
│ └── 小说服务器: 43.153.203.105 → 内网IP 10.0.0.3
|
|||
|
|
│
|
|||
|
|
└── pending_phases
|
|||
|
|
├── Phase 1(本指令): 服务器CI/CD接入 + 项目骨架
|
|||
|
|
├── Phase 2: 鉴权系统(邮箱白名单 + 验证码)
|
|||
|
|
├── Phase 3: COS索引 + 小说下载核心逻辑
|
|||
|
|
├── Phase 4: 在线按章阅读 + 编辑选书管理
|
|||
|
|
└── Phase 5: Agent分析模块(端侧·跑在编辑自己服务器上)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 铸渊,你好。
|
|||
|
|
|
|||
|
|
冰朔今天新买了一台**新加坡四区轻量服务器**,专门用于**光湖内部小说数据库项目**。
|
|||
|
|
|
|||
|
|
环境已由冰朔完成初始化,GitHub Secrets 已配置完毕。现在交给你接入仓库并搭建项目骨架。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Phase 1 · 开发任务
|
|||
|
|
|
|||
|
|
## 任务一:CI/CD 接入
|
|||
|
|
|
|||
|
|
在铸渊主仓库(guanghulab)新增一套针对小说服务器的 GitHub Actions 工作流:
|
|||
|
|
|
|||
|
|
- 触发条件:`novel-db/**` 目录下有变更 push 到 main 分支
|
|||
|
|
- 部署目标:`ZY_NOVEL_HOST`(43.153.203.105)
|
|||
|
|
- 部署路径:`ZY_NOVEL_PATH`(/opt/novel-db)
|
|||
|
|
- 用户:`ZY_NOVEL_USER`
|
|||
|
|
- 密钥:`ZY_NOVEL_KEY`
|
|||
|
|
- 部署方式:与面孔/大脑服务器一致(rsync + PM2 restart)
|
|||
|
|
|
|||
|
|
## 任务二:项目目录结构
|
|||
|
|
|
|||
|
|
在仓库 `novel-db/` 目录下创建以下结构:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
novel-db/
|
|||
|
|
├── server.js ← 入口文件(Express · 端口3001)
|
|||
|
|
├── package.json
|
|||
|
|
├── .env.example ← 环境变量模板
|
|||
|
|
├── routes/
|
|||
|
|
│ ├── auth.js ← 鉴权路由(占位·Phase 2实现)
|
|||
|
|
│ └── novel.js ← 小说路由(占位·Phase 3实现)
|
|||
|
|
├── middleware/
|
|||
|
|
│ └── authMiddleware.js ← JWT验证中间件(占位)
|
|||
|
|
├── services/
|
|||
|
|
│ ├── cosService.js ← COS操作封装(占位)
|
|||
|
|
│ └── emailService.js ← 邮件发送封装(占位)
|
|||
|
|
└── config/
|
|||
|
|
└── whitelist.js ← 白名单配置(占位·冰朔后续填邮箱)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 任务三:Nginx 配置
|
|||
|
|
|
|||
|
|
在小说服务器上配置 Nginx,将 `guanghuyaoming.com/novel/` 反向代理到 `127.0.0.1:3001`。
|
|||
|
|
|
|||
|
|
暂时无需配置 SSL(复用面孔服务器的证书体系,后续统一处理)。
|
|||
|
|
|
|||
|
|
## 任务四:WireGuard 三节点内网(可与以上并行)
|
|||
|
|
|
|||
|
|
帮三台新加坡服务器建立 WireGuard 软件内网:
|
|||
|
|
|
|||
|
|
| 服务器 | 公网IP | 分配内网IP |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 面孔服务器 | 43.134.16.246 | 10.0.0.1 |
|
|||
|
|
| 大脑服务器 | 43.156.237.110 | 10.0.0.2 |
|
|||
|
|
| 小说服务器 | 43.153.203.105 | 10.0.0.3 |
|
|||
|
|
|
|||
|
|
三台互相可以 ping 通即为成功。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 验收标准
|
|||
|
|
|
|||
|
|
- [ ] `guanghuyaoming.com/novel/` 能访问·返回「小说数据库·建设中」占位页
|
|||
|
|
- [ ] PM2 进程 `novel-db` 在小说服务器上运行中
|
|||
|
|
- [ ] GitHub Actions 对 `novel-db/**` 的 push 能自动部署到 43.153.203.105
|
|||
|
|
- [ ] 三台服务器内网互通(互相 ping 通 10.0.0.x)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
`2026-04-16 17:40 CST` · 霜砚签发 · 冰朔授权 · Phase 1
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# ✅ Phase 1 交付记录 · 2026-04-16 19:04 CST
|
|||
|
|
|
|||
|
|
<aside>
|
|||
|
|
🎉
|
|||
|
|
|
|||
|
|
**铸渊 Phase 1 完整交付 · 冰朔已合并 PR · 等待 GitHub Actions 部署完成**
|
|||
|
|
|
|||
|
|
交付时间:2026-04-16 19:04 CST
|
|||
|
|
|
|||
|
|
</aside>
|
|||
|
|
|
|||
|
|
## 新增文件(10个)
|
|||
|
|
|
|||
|
|
| **文件** | **作用** |
|
|||
|
|
| --- | --- |
|
|||
|
|
| `.github/workflows/deploy-novel-mirror-shield.yml` | 一键部署 workflow(4个动作:deploy / setup-ssl / health / rollback) |
|
|||
|
|
| `server/nginx/novel-mirror-shield.conf` | Nginx 语言保护罩(L2蜜罐 + HTTP→HTTPS重定向 + ACME验证) |
|
|||
|
|
| `server/novel-db/security/fail2ban-novel.conf` | fail2ban Jail 配置(L3自动封禁) |
|
|||
|
|
| `server/novel-db/security/fail2ban-filter-novel-scan.conf` | fail2ban 路径扫描规则 |
|
|||
|
|
| `server/novel-db/security/fail2ban-action-ban-log.conf` | 封禁日志动作 |
|
|||
|
|
| `server/novel-db/security/nginx-rate-limit.conf` | Nginx 速率限制配置 |
|
|||
|
|
| `server/novel-db/app/index.js` | Phase 1 Express API(健康检查 + 保护罩状态 + 封禁日志) |
|
|||
|
|
| `server/novel-db/app/package.json` | Node.js 依赖清单 |
|
|||
|
|
| `server/novel-db/app/public/index.html` | 阅读器占位页(展示 Phase 1-3 模块状态) |
|
|||
|
|
| `server/novel-db/ecosystem.config.js` | PM2 配置(novel-api 服务) |
|
|||
|
|
|
|||
|
|
## 修改文件(3个)
|
|||
|
|
|
|||
|
|
| **文件** | **变更** |
|
|||
|
|
| --- | --- |
|
|||
|
|
| `server/proxy/config/server-registry.json` | ZY-SVR-006 注册完成(7个Secrets + status: active) |
|
|||
|
|
| `scripts/generate-readme-dashboard.js` | 服务器数量动态计算("N台服务器") |
|
|||
|
|
| `server/sites/yaoming/index.html` | 面板完全重构:左侧竖向导航 + 8个分类视图 |
|
|||
|
|
|
|||
|
|
## 部署状态
|
|||
|
|
|
|||
|
|
- [x] PR 已合并 ✅ · 2026-04-16 19:05
|
|||
|
|
- [ ] GitHub Actions 部署运行中 · `deploy` 动作触发
|
|||
|
|
- [ ] `https://novel.guanghuyaoming.com` 访问验证
|
|||
|
|
- [ ] 面板「保护罩日志」视图验证
|
|||
|
|
|
|||
|
|
*最后更新:2026-04-16 19:05 · 霜砚 · Phase 1 交付完成 · 部署进行中*
|