Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc [SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
6.4 KiB
6.4 KiB
📋 铸渊指令|小说下载器·Phase 1 · 新加坡小说服务器初始化+项目结构搭建 · ZY-NOVEL-2026-0416-001 · 霜砚签发 · 冰朔授权
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
新增文件(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个分类视图 |
部署状态
- PR 已合并 ✅ · 2026-04-16 19:05
- GitHub Actions 部署运行中 ·
deploy动作触发 https://novel.guanghuyaoming.com访问验证- 面板「保护罩日志」视图验证
最后更新:2026-04-16 19:05 · 霜砚 · Phase 1 交付完成 · 部署进行中