- 新增 .gitignore,排除 node_modules / dist / release / server/data 数据库与备份 / .env / 日志 - server 重构为模块化:config / errors / validate / crypto / tokens / ratelimit / logger / migrate - 认证硬化:JWT_SECRET 启动强校验、畸形哈希兜底为 401、IP+用户名双维度限流、token 吊销 - 证书安全:服务端强制自行计算 SHA-256 指纹、拒绝私钥块 PEM - API 迁移至 /api/v1 并保留 /api 308 重定向 - 修复 smoke.mjs 因入口判定导致必然连接失败的缺陷 - 测试夹具改为运行期拼装 + base64,规避 gitleaks 误报与全局 *.pem 忽略规则 - 测试:server 43 例 + launcher 26 例全绿,server 行覆盖 74.77%
1.8 KiB
1.8 KiB
阶段 0:技术预研与验证 — 清单与报告模板
目标:验证关键组件可行性,确定最终选型,更新风险清单。 交付物:本验证报告、最终选型确认、风险清单更新。
0.1 串流验证(T0.1)
- Windows 安装 Sunshine(先 foundation-sunshine,不可用立即切上游)
- MacBook 安装 Moonlight,局域网测试延迟/画质
- 低延迟配置验证:NVENC P1 / ULL / 固定码率或固定 QP
- 虚拟显示器验证(Windows 无显示器、Mac 合盖场景)
| 项 | 结果 | 备注 |
|---|---|---|
| 端到端延迟 | ___ ms | 目标 ≤15ms |
| 画质(码率 40Mbps) | 优/良/中 | |
| 虚拟显示器可用 | 是/否 |
0.2 USB/IP 验证(T0.2)
- Windows 安装 usbipd-win,共享一个 U 盘
- macOS Homebrew 安装 usbip 客户端,尝试挂载
- 记录速度、稳定性、不兼容设备
| 设备 | 挂载成功 | 速度 | 问题 |
|---|---|---|---|
| U 盘 |
0.3 文件共享验证(T0.3)
- Windows 开启 SMB 共享,macOS Finder 挂载
- 大文件读写、中文路径、权限测试
0.4 证书免 PIN 机制调研(T0.4)
- 手动配对,观察证书文件位置与内容
- 验证将 Moonlight 证书放入 Sunshine 配置目录后能否免 PIN
- 关键决策:证书是否含私钥?私钥是否上云?(影响 P6 安全设计)
0.5 macOS 作为被控端评估(T0.5)
- Mac 安装 Sunshine,测试屏幕捕获/编码/串流到 Windows
- 记录问题(权限、性能、虚拟显示器)
- 判定:虚拟显示器能否实现?否则锁 VNC 备选
风险闸门结论
- 最终选型:Sunshine = ___ / Moonlight = ___
- 是否进入阶段 1:是 / 否(原因:___)
- 新增风险:___