技术架构 · 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,实现自然语言驱动的开发运维工作流。
01 整体架构
02 进程模型
03 技术选型
04 核心模块
05 数据流
06 完整功能
07 数据模型
08 安全设计
09 路线图
10 团队与风险
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 三进程协作,远程资源作为外部终结点。
窗口 / 托盘 / 通知
IPC 路由 + 权限
资源 / 连接池管理
SSH/SFTP/Docker
跳板机 / 隧道
系统 Keyring
Go Sidecar 启动器
自动更新
Vue 3 应用
xterm.js 终端
Monaco / CodeMirror
Univer 工作簿 / 数据库结果网格
跨 Sheet 公式 / 服务端分页编辑
ECharts 图表
Vuetify 3 / 自研组件
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%+
04 核心模块5 DOMAINS
五大功能域,每个域独立开发、可单独交付。共 280+ 子功能,完整功能列表见配套技术方案文档。
终端、跳板机、隧道、命令广播、批量执行、实时面板
xterm.js
russh
ZMODEM
jump host
心跳保活
三栏/双栏布局、断点续传、跨服务器中转、内置代码编辑
russh-sftp
SCP/ZMODEM
并发传输
断点续传
15 种数据库、SQL 编辑器、虚拟滚动表格、跨库同步、国产化
pgx / go-redis
CodeMirror 6
百万级表格
流式查询
国产库
容器/镜像管理、SSH 连远程 Docker、镜像加速、实时监控
bollard
镜像加速
实时监控
容器终端
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
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 累加 → 虚拟滚动
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()
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 本机操作
优先级分布(Phase 1 MVP)
SSH/SFTP :连接管理、终端渲染、PTY、跳板机、隧道、拖拽、ZMODEM、SCP
数据库 :MySQL/PG/SQLite/Redis 完整链路、SQL 编辑器、表格编辑、跨库同步
Docker :本地/SSH 通道连接、容器/镜像管理、终端、日志、监控
AI :多 LLM、Planner → Executor、有界多轮上下文、最近对话恢复/删除、会话级 # 绑定、#LOCAL、AI SFTP、stdio / Streamable HTTP / SSE MCP、发送引导、Function Calling 与危险操作确认
安全 :主密码、Keyring、敏感加密、危险拦截、审计
基础 :多平台、中英文、双主题、资产中心、导入导出、命令面板
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(优先) 系统保护
密码(备选) 本地 SQLite AES-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
关键安全措施
Tauri 权限最小化 :只 expose 必要 command
CSP :default-src 'self' 禁止 inline script
输入校验 :所有 IPC 参数 zod schema 校验
密钥保护 :密码、私钥和 AI API Key 不落盘明文;Windows 长私钥使用带版本清单的 Keyring 分片
危险拦截 :检测 rm -rf /、dd if=、mkfs 等
审计日志 :所有"写"操作带时间戳/用户/目标,可追溯
更新安全 :Tauri Updater 验证签名
主密码 :应用启动解锁,空闲 N 分钟自动锁
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 月调
性能与体验目标
下一步: 基于本方案跑通 SSH 终端最小链路(关键路径验证);同步拆解 P0 任务,排迭代;边做边验证假设,尤其是中文输入法和 LLM 工具调用这两个高风险点。