server: 平台抽象层+bilibili、服务端加密凭据库、角色中间件;web: 精简页面/路由、macOS 客户端(Swift)与多份方案文档;移除误入库的编译产物
This commit is contained in:
+13
-43
@@ -1,47 +1,17 @@
|
||||
# EveryPublish 技术栈定版(唯一权威来源)
|
||||
# EveryPublish Web-only 技术栈
|
||||
|
||||
> 2026-08-20 · 其他文档中与本文件冲突之处,以本文件为准。
|
||||
|
||||
## 1. 总览
|
||||
|
||||
| 端 | 层 | 技术 |
|
||||
| 层 | V1 选型 | 说明 |
|
||||
|---|---|---|
|
||||
| 网页端 | 页面(UI) | React 18 + TypeScript + TDesign React(Tencent starter,MIT,已拉取 apps/web) |
|
||||
| 网页端 | 服务端/API | **Go**:gin + coder/websocket + asynq + GORM + argon2 |
|
||||
| 客户端 | UI 壳 | WinUI 3(C# / .NET 8) |
|
||||
| 客户端 | 核心 | **Go**:WSS 客户端 + go-rod(CDP)+ 凭据保险库 |
|
||||
| 数据 | 数据库 | **MySQL 8.x**(GORM + go-sql-driver/mysql;迁移 golang-migrate) |
|
||||
| 数据 | 队列/缓存 | Redis 7(asynq) |
|
||||
| 存储 | 一期 | 服务器本地盘(签名直链下载) |
|
||||
| 存储 | 二期 | OSS 双桶(StorageDriver 抽象预留) |
|
||||
| 前端 | React 18 + TypeScript + TDesign React + Vite | 当前工程保留,统一表单/表格/上传/弹窗 |
|
||||
| API | Go + Gin | JWT、工作区隔离、素材、任务、挑战 |
|
||||
| 实时 | Browser WebSocket + REST 兜底 | 不依赖 Agent WSS |
|
||||
| 数据库 | MySQL 8 + GORM | 任务、账号、素材、挑战、审计持久化 |
|
||||
| 队列 | Redis + 进程内 dispatcher(V1) | V1 先保证本机可重复,后续可换持久队列 |
|
||||
| 执行器 | `WebExecutor` + `PlatformAdapter` | mock 先行,真实平台逐个接入 |
|
||||
| 浏览器自动化 | Patchright/Playwright adapter | 借鉴三个 MIT 参考仓库,隔离 profile/cookie |
|
||||
| 存储 | 本地 StorageDriver | 保留 OSS 接口,不让大文件走 WebSocket |
|
||||
| 测试 | Go test/vet + TypeScript + Playwright 浏览器冒烟 | 前端不能再以空 test 脚本代替测试 |
|
||||
|
||||
## 2. 「网页端与后端都用 Go」的说明
|
||||
## 暂停技术
|
||||
|
||||
- **页面层仍是 React + TDesign**(starter 已拉取预览,MIT 可商用),不写自定义样式。
|
||||
- 「用 Go」指两处:**网页端的服务端/API 层** 与 **客户端 agent-core**,统一 Go 语言。
|
||||
- 二者共享同一协议 Go module(server 与 agent-core 引用同一 shared/proto 包),消息 Schema 只写一次。
|
||||
|
||||
## 3. Go 选型明细
|
||||
|
||||
- Web 框架:gin
|
||||
- WebSocket:github.com/coder/websocket(原生 JSON 协议,不用 Socket.IO)
|
||||
- 任务队列:asynq(Redis)
|
||||
- ORM/DB:GORM + go-sql-driver/mysql(MySQL 8.x);迁移 golang-migrate
|
||||
- 鉴权:golang-jwt + x/crypto/argon2(用户);Ed25519 设备签名(Agent)
|
||||
- 浏览器自动化(客户端):go-rod + rod-stealth,驱动系统 Chrome/Edge
|
||||
- 常驻服务(二期):kardianos/service
|
||||
|
||||
## 4. 目录结构(monorepo)
|
||||
|
||||
- web/ —— React 前端(现有 apps/web 的 starter)
|
||||
- server/ —— Go 服务器(REST + WSS 网关 + 队列 worker)
|
||||
- client/ui —— WinUI 3 壳(C#)
|
||||
- client/core —— agent-core(Go)
|
||||
- shared/ —— 协议 Go module(server 与 core 共用)
|
||||
- tools/ —— 联调诊断(diag-connection.mjs 等)
|
||||
|
||||
## 5. 版本与工具
|
||||
|
||||
- Go 1.23+;Node 20 LTS(前端,starter 依赖升级见交付文档 D1);.NET 8;MySQL 8.x;Redis 7
|
||||
- 包管理:pnpm(前端)、go mod(后端)
|
||||
- CI:GitHub Actions(前端构建 / Go 单测 / WinUI 打包)
|
||||
SwiftUI/AppKit、WinUI/Electron、Agent core、Agent WSS、设备 Ed25519 配对和客户端安装包全部移出 V1 验收。旧代码保留但不再由 `make build/test` 默认构建。
|
||||
|
||||
Reference in New Issue
Block a user