# EveryPublish 技术栈定版(唯一权威来源) > 2026-08-20 · 其他文档中与本文件冲突之处,以本文件为准。 ## 1. 总览 | 端 | 层 | 技术 | |---|---|---| | 网页端 | 页面(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 抽象预留) | ## 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 打包)