feat(i18n): add multi-language support (ja/ko/vi/ru/zh-TW) with system auto-detection
- Extend AppLanguage to 7 locales: zh-CN, zh-TW, en, ja, ko, vi, ru - Auto-detect system language via navigator.languages; fallback to English - Add BCP47 locale mapping for date formatting and sorting - Create 50 translation JSON files (5 languages × 10 namespaces, 1137 keys each) - Update language selector with native language names - Extend locale key parity test to cover all 7 languages (70 assertions) - Add VNC/RDP desktop, serial terminal, AI agent, port forwarding, and SFTP features - Add credential encryption, host metrics, session backup crypto, and zmodem bridge - Update Rust backend: desktop services, host metrics, SSH/SFTP enhancements
This commit is contained in:
1 parent
fea6d8db04
commit
b0d0e3a5f3
301 files changed
+28002
-2705
No files matched your search
@@ -1,30 +1,32 @@
|
||||
# OpsXShell
|
||||
|
||||
轻量原生的跨平台 SSH / SFTP 运维终端。产品目标是让常用远程操作更直接,不做审计平台,也不依赖插件才能完成基础工作。
|
||||
轻量原生的跨平台运维终端。产品目标是让常用远程操作更直接,不做审计平台,也不依赖插件才能完成基础工作。
|
||||
|
||||
## 已支持
|
||||
|
||||
- SSH 终端:密码、私钥、SSH Agent 自动尝试、主机指纹校验
|
||||
- 会话管理:分组、标签、快速连接、多标签、终端分屏
|
||||
- 批量命令:选中多个会话执行同一命令,结果仅保留在当前窗口
|
||||
- 会话管理:分组、标签、快速连接、多标签、终端分屏;界面中英双语(zh-CN / en)
|
||||
- 批量命令:选中多个会话执行同一命令,结果仅保留在当前窗口(不含 RDP / VNC)
|
||||
- SFTP:双栏文件管理、断点续传、完整后原子替换、重命名、权限、远程文本编辑
|
||||
- 端口转发:本地、远程、动态 SOCKS5;规则可编辑和复制,与运行实例分离,支持真实启停和状态统计
|
||||
- 端口转发:本地、远程、动态 SOCKS5;状态栏「转发」打开抽屉启停;规则可编辑和复制,与运行实例分离;动态默认 `127.0.0.1:1080`,经当前 SSH 服务器出口 IP 访问外网
|
||||
- 连接代理:HTTP CONNECT、SOCKS5,可选用户名密码
|
||||
- OpenSSH 配置:导入 `~/.ssh/config` 常用字段;界面支持单跳选择,Rust 后端支持最多 8 跳
|
||||
- 系统链接:`ssh://user@host:port` 唤起已有或新启动的 OpsXShell,并进入预填充快速连接确认
|
||||
- 远程桌面:原生 RDP(IronRDP)与 VNC(vnc-rs);剪贴板与共享盘(RDP)
|
||||
- 本地终端与串口:系统 Shell、串口设备与波特率配置
|
||||
- SSH Agent CLI:OpenAI/Responses/Anthropic 兼容 Provider、new-api 与 Ollama;自然语言驱动最多 8 步的执行→观察循环,三级安全模式、五级风险和破坏性命令硬拒绝
|
||||
- 本地安全:AES-256-GCM 加密会话密码、密钥口令和模型 API Key,不保存终端命令或 AI 对话历史
|
||||
|
||||
## 产品边界
|
||||
|
||||
OpsXShell 聚焦 SSH、SFTP、代理、转发、串口和多终端工作区。审计、录像、审批等堡垒机能力不在产品范围内。
|
||||
OpsXShell 聚焦 SSH、SFTP、代理、转发、远程桌面、串口和多终端工作区。审计、录像、审批等堡垒机能力不在产品范围内。
|
||||
|
||||
当前仍需补齐的专业能力:
|
||||
|
||||
- Agent Forwarding、OpenSSH 证书与 FIDO2
|
||||
- 断网重连、休眠恢复和大量标签切换的持续压测
|
||||
- SFTP 内容校验和、显式冲突选择和任务恢复
|
||||
- RDP / VNC 生产级证书校验与更多通道能力
|
||||
- Windows 实机验收、自动更新、代码签名、macOS 公证和崩溃诊断
|
||||
|
||||
## 技术栈
|
||||
@@ -34,14 +36,16 @@ OpsXShell 聚焦 SSH、SFTP、代理、转发、串口和多终端工作区。
|
||||
| 桌面运行时 | Tauri 2 |
|
||||
| 原生后端 | Rust 2021 |
|
||||
| SSH / SFTP | `ssh2 0.9` / libssh2 |
|
||||
| 远程桌面 | IronRDP / `vnc-rs` |
|
||||
| 本地终端 | `portable-pty 0.9` |
|
||||
| 串口 | `serialport 4.8` |
|
||||
| 前端 | React 18 + TypeScript 5 + Vite 5 |
|
||||
| 状态管理 | Zustand 4.4+ |
|
||||
| 终端 | XTerm.js 5.5+ |
|
||||
| 国际化 | i18next(zh-CN / en) |
|
||||
| 测试 | Vitest + Rust test |
|
||||
|
||||
会话和设置保存在系统应用数据目录的 `opsxshell-data.json`。主密钥固定保存在 `~/.opsxshsell/master.key`,Unix 权限为目录 `0700`、文件 `0600`。
|
||||
会话和设置保存在系统应用数据目录的 `opsxshell-data.json`。主密钥固定保存在 `~/.opsxshell/master.key`,Unix 权限为目录 `0700`、文件 `0600`。旧版 typo 路径 `~/.opsxshsell/` 会在启动时自动迁移并保留 `.opsxshsell.bak` 备份。
|
||||
|
||||
## 开发
|
||||
|
||||
@@ -68,15 +72,19 @@ build.bat v2.1.1 win-x64
|
||||
|
||||
```text
|
||||
src/ React 界面与状态管理
|
||||
src/i18n/ 界面文案(zh-CN / en)
|
||||
src/platform/ Tauri 命令和事件适配层
|
||||
src/platform/sftp.ts 本地/远程路径强类型传输边界
|
||||
src/platform/rdp.ts RDP 会话适配
|
||||
src/platform/vnc.ts VNC 会话适配
|
||||
src/utils/terminalPipeline.ts 终端输入、输出和背压管线
|
||||
shared/types/ 前后端共享 TypeScript 契约
|
||||
src-tauri/src/commands/ 精简的 Tauri 命令边界
|
||||
src-tauri/src/domain/ 原生领域模型
|
||||
src-tauri/src/services/ SSH、SFTP、隧道、PTY、串口、AI、存储服务
|
||||
src-tauri/src/services/ SSH、SFTP、隧道、PTY、串口、桌面、AI、存储服务
|
||||
src-tauri/src/services/ssh/ 认证、known_hosts、代理/跳板和 SFTP 子模块
|
||||
src-tauri/src/services/tunnel/ 转发运行模型、SOCKS5 协议和双向 Relay
|
||||
src-tauri/src/services/desktop/ RDP(IronRDP)与 VNC(vnc-rs)
|
||||
test/ 前端测试与基础验收
|
||||
scripts/ 构建和验收脚本
|
||||
```
|
||||
|
||||
Reference in new issue
Block a user