Files

75 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# VNT Desktop
基于 Tauri 2 + Vue 3 的 VNT PC 客户端。桌面端直接内置 `vnt-web` 的服务能力,不需要另行启动 `vnt2_web`
桌面端与 Web 端共用 `vnt-web/ui/src/` 下的同一套 Vue 应用、路由、状态、组件和样式。`vnt-desktop/src/main.js` 只负责注册 Tauri IPC 桥接,不维护第二套界面代码。
## 功能
- 桌面工作台:总览、实例、在线设备、路由和配置管理
- 多实例启动、停止、重启及启动日志
- 表单 / TOML 双模式配置编辑
- 原生窗口、系统托盘、单实例运行
- 关闭主窗口时隐藏到托盘,托盘菜单可彻底退出
- 深浅主题与 `Ctrl/Cmd + 1~5` 页面快捷键
- 响应式布局:桌面侧栏、移动端顶部栏和抽屉导航
- 桌面工作台通过 Tauri IPC 直接调用进程内 `vnt-core`,不监听本地 API 端口
- 可选 Web 访问:启停、端口、本机/局域网监听范围、访问令牌、打开浏览器
- Web API 强制使用 Bearer 令牌鉴权,令牌可在桌面端重新生成
- 关于页提供 GitHub 开源地址与更新检查;桌面端可通过 Tauri Updater 下载并安装更新
桌面数据存放在系统应用数据目录的 `com.vnt.desktop` 下,包括 `vnt_config`、自启动记录、`web_access.toml`、日志及 Windows 下的 `wintun.dll`
## 开发
要求:Rust、Node.js、pnpm,以及 Tauri 2 对应的系统依赖。
依赖由仓库根目录的 pnpm workspace 统一管理:
```powershell
pnpm install
pnpm dev:desktop
```
只验证前端:
```powershell
pnpm build:desktop-ui
```
验证 Rust 桌面模块:
```powershell
cargo check -p vnt-desktop
```
## 打包
```powershell
$env:TAURI_SIGNING_PRIVATE_KEY=Get-Content -Raw -LiteralPath "$HOME\.tauri\vnt-desktop.key"
$env:TAURI_SIGNING_PRIVATE_KEY_PASSWORD=""
pnpm build:desktop
```
Windows 使用虚拟网卡模式时,可能需要以管理员身份运行;TAP(二层)模式还需要预先安装 `tap-windows``tap0901`)驱动,内置的 `wintun.dll` 只用于 TUN(三层)模式。
### 发布桌面更新
Tauri Updater 会从以下 GitHub Release 资源检查更新:
```text
https://github.com/vnt-dev/vnt/releases/latest/download/latest.json
```
更新包必须使用与 `tauri.conf.json` 内公钥匹配的私钥签名。当前密钥默认保存在 `~/.tauri/vnt-desktop.key`,请妥善备份并在 CI 中将私钥内容配置为 `TAURI_SIGNING_PRIVATE_KEY`;私钥不得提交到仓库。发布时需将 Tauri 生成的安装包、`.sig` 文件以及对应的 `latest.json` 一并上传到 GitHub Release。
仓库的 Release 流水线会在推送版本标签后自动构建 Windows 桌面安装包及 updater 元数据。请在 GitHub Actions Secrets 中配置 `TAURI_SIGNING_PRIVATE_KEY`;如果私钥设置了密码,同时配置 `TAURI_SIGNING_PRIVATE_KEY_PASSWORD`。流水线还会将桌面安装包和各平台 VNT 工具包的直接下载链接写入 Release Notes。
## 应用图标
图标母版保存在 `vnt-desktop/assets/vnt-icon-master.png`。需要重新生成各平台图标时,在仓库根目录执行:
```powershell
pnpm --filter vnt-desktop tauri icon assets/vnt-icon-master.png --ios-color '#4F46E5'
```