技术架构 · Architecture

StarHub · 完整架构与实现方案

基于方案 B(dsh 主壳融合)构建的"All-in-One 开发运维桌面中枢"——Tauri 2 桌面壳加载 dsh 官方 Web GUI(React)作为唯一主壳,StarHub 各功能页(SSH/SFTP/DB/Docker 等)以同源 iframe 嵌入并复用 Tauri IPC;Rust 处理系统集成与协议、Go Sidecar 负责数据库驱动;通过 AI 编排打通 SSH、数据库、Docker,实现自然语言驱动的开发运维工作流。

版本 v0.66.0
技术栈 Tauri 2 / dsh(React) / Vue 3 / Rust / Go / Node
MVP 周期 3-4 月(3 人)
核心模块 5 大域 / 280+ 子功能

01整体架构5 LAYERS · CLEAN SEPARATION

采用经典五层架构,职责清晰、依赖单向:从用户操作到远程资源,每一层只依赖下层。

L5
表现
Vue 3composition Vuetify 3 / Element Plus Pinia xterm.js Monaco / CodeMirror 6 ECharts
L4
交互
Tauri IPC Bridge invoke / event 权限白名单 CSP
L3
业务
Rust 主进程 SSH/SFTP 客户端 Docker (bollard) 跳板机/隧道 系统监控 AI Gateway
L2
数据
Go Sidecar 数据库驱动池 (pgx/redis-go) 流式数据桥 (goroutine) 导入导出引擎
L1
资源
本地 SQLite 系统 Keyring 远程 SSH 主机 数据库服务 Docker Daemon LLM API
关键设计: Rust 处理系统协议(SSH/SFTP/网络)与系统集成,Go Sidecar 跑数据库驱动、Docker Engine API 与持久 TTY Exec。Sidecar 通过 stdio JSON-RPC 按请求 ID 并发关联响应,默认超时 120 秒;交互终端以长轮询传输有界原始字节流,启动时校验协议版本与关键 RPC 方法清单,拒绝加载历史或不完整的 Sidecar。

02进程模型MULTI-PROCESS

Tauri 主进程 + WebView + Go Sidecar 三进程协作,远程资源作为外部终结点。

Tauri 主进程Rust · 主控
  • 窗口 / 托盘 / 通知
  • IPC 路由 + 权限
  • 资源 / 连接池管理
  • SSH/SFTP/Docker
  • 跳板机 / 隧道
  • 系统 Keyring
  • Go Sidecar 启动器
  • 自动更新
WebView 渲染系统原生 · 主窗口
  • Vue 3 应用
  • xterm.js 终端
  • Monaco / CodeMirror
  • Univer 工作簿 / 数据库结果网格
  • 跨 Sheet 公式 / 服务端分页编辑
  • ECharts 图表
  • Vuetify 3 / 自研组件
Go Sidecar子进程 · 数据库代理
  • go-sql-driver/mysql
  • jackc/pgx/v5
  • modernc.org/sqlite
  • redis/go-redis/v9
  • segmentio/kafka-go / NSQ Stats API
  • Docker Engine API + 持久 TTY Exec
  • Docker SSH: Unix-Over-Nc(-Sudo)
  • 流式查询 (goroutine + channel)
  • Excel 全 Sheet 快照 / 公式持久化
  • 国产库 ODBC 桥接
  • JSON-RPC over stdio
  • 单二进制 ~15MB

进程间通信

graph LR A[Vue 组件
in WebView] -->|invoke| B[Tauri IPC Bridge] B -->|Tauri Command| C[Rust 主进程] C -->|tokio spawn| D[SSH/Docker
异步任务] C -->|stdio JSON-RPC| E[Go Sidecar] E -->|pgx/go-redis| F[数据库] D -->|tokio mpsc| C C -->|emit event| B B -->|event listener| A E -.->|流式 chunk| C

03技术选型STACK MAP

核心依赖矩阵

类别选型理由
桌面壳 Runtime Tauri 2 (Rust) 体积小 5×、内存省 50%、原生权限模型
前端 框架 Vue 3.4 + Vite 5 Composition API、心智负担低
UI 库 Vuetify 3 / Element Plus Material Design / 通用风格,二选一
终端 xterm.js 5 VSCode 同款、插件生态丰富
Rust 侧 SSH russh + russh-sftp 纯 Rust 异步实现,活跃维护
Docker bollard 异步 Docker API 客户端
密钥存储 keyring-rs 对接系统 Keychain/Credential Vault
系统监控 sysinfo 跨平台 CPU/内存/进程信息
Go 侧 MySQL go-sql-driver/mysql 流式查询支持好
PostgreSQL jackc/pgx/v5 流式必备
Redis redis/go-redis/v9 健壮、集群支持
SQLite modernc.org/sqlite(纯 Go) 同步,极快,适合本地
Kafka segmentio/kafka-go Broker 元数据、Topic 与分区状态
NSQ nsqd TCP + HTTP Stats API Topic、Channel、积压与消息统计

Tauri vs Electron(为什么选 Tauri)

安装包
~20MB (Tauri 2)

vs Electron 动辄 100MB+

空闲内存
< 200MB (目标)

比 Electron 节省 50%+

冷启动
< 2s

无 Chromium 启动开销

04核心模块5 DOMAINS

五大功能域,每个域独立开发、可单独交付。共 280+ 子功能,完整功能列表见配套技术方案文档。

SSH 终端

终端、跳板机、隧道、命令广播、批量执行、实时面板

xterm.js russh ZMODEM jump host 心跳保活
SFTP 传输

三栏/双栏布局、断点续传、跨服务器中转、内置代码编辑

russh-sftp SCP/ZMODEM 并发传输 断点续传
数据库

15 种数据库、SQL 编辑器、虚拟滚动表格、跨库同步、国产化

pgx / go-redis CodeMirror 6 百万级表格 流式查询 国产库
Docker 面板

容器/镜像管理、SSH 连远程 Docker、镜像加速、实时监控

bollard 镜像加速 实时监控 容器终端
AI 助手

Planner → Executor 多 Agent 编排、有界多轮上下文、最近对话恢复/删除、会话级 # 绑定、AI SFTP、三类 MCP 传输、发送引导与危险操作追溯

Claude / GPT Function Call Agent + Skills Planner / Executor Direct Workspace Parallel Agents Multi-turn Context SSH Exec-only AI SFTP Recent Chats Prompt Guide Skill Import Ollama 本地 MCP stdio / HTTP / SSE
资产与监控

连接分组、标签、收藏、多服务器实时面板、告警规则

SQLite 本地 云端同步 告警 快捷指令

05关键数据流END-TO-END

场景 A:用户执行 SQL 查询
STEP 01
Vue: SqlEditor
用户输入 SQL,按 Ctrl+Enter
STEP 02
Tauri IPC
invoke('db:query', {connId, sql})
STEP 03
Rust 路由
校验参数 → 转发 Go Sidecar
STEP 04
Go 驱动
pgx/go-redis stream → 分批 chunk
STEP 05
前端渲染
DataTable 累加 → 虚拟滚动
场景 B:用户敲入 SSH 命令
STEP 01
xterm.js 键盘
onData 触发(含 IME 输入)
STEP 02
Tauri IPC
invoke('ssh:write', {sessionId, data})
STEP 03
Rust SSH
russh channel.write(data)
STEP 04
远端 shell
PTY exec → stdout/stderr
STEP 05
回流渲染
emit 'ssh:data' → xterm.write()
场景 C:AI 自然语言排障
STEP 01
用户输入
"查 payment-api 最近报错"
STEP 02
AI Gateway
加载系统 Prompt + 工具定义
STEP 03
LLM 决策
返回 tool_call: docker_logs + ssh_exec
STEP 04
工具执行
# 授权直连 SSH/Docker,不打开标签
STEP 05
结果回流
工具结果 → LLM → 总结输出

06完整功能列表280+ ITEMS

覆盖五大域、十二个子系统的完整功能矩阵。详细 PRD 骨架见配套技术方案文档(包含每项的优先级 P0/P1/P2/P3 标注)。

全局基础
18

跨平台、主题、多窗口、资产中心、命令面板

SSH 终端
40

连接、终端渲染、高级功能(跳板机/隧道/批量)

SFTP 传输
25

布局、拖拽、并发、ZMODEM/SCP

数据库
83

15 种 DB、SQL 编辑、数据浏览、结构管理

Docker
34

容器/镜像/网络/卷/Compose

AI 助手
32

Planner/Executor、多轮上下文、步骤结果传递、粘性 # 绑定、#LOCAL 本机操作

协作
10

团队工作空间、审计、权限、审批

监控告警
10

实时面板、阈值告警、渠道分发

优先级分布(Phase 1 MVP)

07数据模型与本地存储SQLITE + KEYRING

本地 SQLite 存元数据,系统 Keyring 存密钥,敏感数据按需加密。

erDiagram ASSET_GROUPS ||--o{ ASSETS : "分组" ASSETS ||--o| KEYS : "引用" ASSETS ||--o{ SQL_HISTORY : "记录" USERS ||--o{ SNIPPETS : "拥有" MONITOR_RULES }o--|| ASSETS : "监控" ASSETS { string id PK string type "ssh/db/docker" string name string group_id FK json config_json string key_id FK bool favorite } KEYS { string id PK string type "password/key" blob encrypted_data string keyring_ref } SQL_HISTORY { int id PK string conn_id text sql int executed_at int duration_ms }

加密策略

数据存储加密
私钥系统 Keyring(优先)系统保护
密码(备选)本地 SQLiteAES-256-GCM(主密码派生)
资产配置本地 SQLite否(仅本地)
云端同步远端存储端到端加密(libsodium)

08安全设计DEFENSE IN DEPTH

三层信任边界,每一层都做最小授权 + 输入校验 + 审计。

graph TB subgraph UNTRUSTED["不可信边界"] SSH[远程 SSH 主机] DB[数据库服务] DOCKER[Docker Daemon] LLM[LLM API] end subgraph SEMI["半可信边界 · WebView"] CSP[严格 CSP] PERM[Tauri 权限白名单] XSS[DOMPurify] end subgraph TRUSTED["可信边界 · Rust / Go"] VALID[Zod 参数校验] AUDIT[审计日志] KEYRING[Keyring 保护] end UNTRUSTED -.加密通道.-> SEMI SEMI -.IPC 校验.-> TRUSTED

关键安全措施

09开发路线图4 PHASES · 12 MONTHS

Phase 1: MVP(3-4 个月)
M1 - M4 · 3 人团队
  • M1:脚手架 + SSH 终端跑通(关键路径)
  • M2:SFTP + 资产中心 + 跨平台打包
  • M3:MySQL 完整支持 + Docker 基础
  • M4:AI 基础集成 + 内测发布
Phase 2: 完整版(5-8 个月)
M5 - M8 · 6-8 人团队
  • P0 收尾 + 国产数据库适配
  • P1 功能:告警、Compose、批量操作、协作
  • 完善监控、运维面板
  • 公测发布
Phase 3: 商业化(9-12 个月)
M9 - M12
  • P2 协作、安全增强
  • 团队版特性、订阅模式
  • 销售渠道(官网、JetBrains 工具集等)
Phase 4: 生态(Year 2+)
M13+
  • 插件市场、主题市场
  • iPad / Android 平板适配
  • 私有化部署方案

10团队与风险TEAM & RISK

MVP 最小团队(3 人,4 月)

  • Rust 全栈 × 1:Tauri + SSH + 系统集成
  • Vue 全栈 × 1:前端 + 终端 + SQL 编辑器
  • Go 全栈 × 0.5:数据库驱动
  • 产品/设计 × 0.5:原型、UI、文档
  • 成本估算:40-50 万 RMB(自建团队)
  • 兼职/外包可压到:20-30 万

关键风险

  • 中文输入法卡顿(高):xterm.js modes API + 自定义键盘
  • ZMODEM 二进制边界(中):PTY 原始字节 + Webview zmodem.js,禁止 UTF-8 损失转换
  • 国产数据库兼容(中):优先用兼容协议,ODBC 兜底
  • LLM 成本失控(中):缓存 + token 限速 + 显式显示花费
  • 数据安全合规(高):端到端加密 + 审计 + 第三方审计
  • 跨平台打包(中):Tauri 2 已大幅改善,预留 1 月调

性能与体验目标

冷启动
< 2s
SSH 连接
< 1.5s
百万行表格
60fps
空闲内存
< 200MB
安装包
< 30MB
终端输入延迟
< 30ms
文件传输
跑满带宽
自动更新下载
< 5s
下一步:基于本方案跑通 SSH 终端最小链路(关键路径验证);同步拆解 P0 任务,排迭代;边做边验证假设,尤其是中文输入法和 LLM 工具调用这两个高风险点。