Skip to content

JimouChen/NexusPushApp

Repository files navigation

NexusPush App

简介

NexusPush App 是一款基于 Tauri + Vue 3 开发的桌面客户端工具,用于高效地将本地文件或文件夹上传到远程服务器,并支持在上传完成后执行远程命令。

image

功能特性

  • 文件/文件夹上传:支持上传单个文件或整个文件夹
  • 进度显示:实时显示上传进度百分比与进度条
  • 远程命令执行:上传完成后自动在远程服务器执行指定命令,并等待命令执行结束
  • 主题切换:支持亮/暗主题,并记住选择
  • 配置自动保存:自动缓存最近一次输入(服务器地址、用户名、密码、远程路径、命令),下次启动自动恢复
  • 精美界面:圆角设计、阴影与渐变、响应式布局

技术栈

  • 前端框架:Vue 3 + TypeScript
  • 构建工具:Vite
  • 桌面框架:Rust + Tauri
  • 远程连接:SSH/SFTP (通过 Rust ssh2 库实现)

安装依赖

# 使用 cnpm/npm 安装依赖,下同
cnpm install

开发模式

# 启动开发服务器
cnpm run tauri dev

构建应用

# 构建发布版本
cnpm run tauri build

图标

  • 源图标位于 src-tauri/icons/nexus-push-icon.svg(1024×1024,透明背景)。
  • 生成多尺寸平台图标(icns/ico/png):
cnpm run icon

生成的文件将覆盖 src-tauri/icons/ 下对应图标。

使用说明

  1. 选择本地文件或文件夹:点击 "选择文件" 或 "选择文件夹" 按钮
  2. 输入远程服务器信息:填写服务器地址、用户名、密码和远程路径
  3. 输入远程命令(可选):上传完成后要在远程服务器执行的命令;会等待命令完成
  4. 开始上传:点击 "开始上传" 按钮
  5. 查看进度:上传过程中可实时查看进度条和百分比
  6. 目录上传规则:若选择的是本地目录 abc,远端最终结构为 remote_path/abc/...

配置存储

应用配置保存在用户目录的配置文件夹中:

  • Windows: %APPDATA%\nexus-push-app\config.json
  • macOS: ~/Library/Application Support/nexus-push-app/config.json
  • Linux: ~/.config/nexus-push-app/config.json

说明:打包产物不会包含该配置文件;首次运行时若不存在会按程序逻辑创建。密码等仅保存在本机用户目录,请注意机器物理安全。

注意事项

  • 确保远程服务器已开启 SSH 服务(默认端口 22)
  • 上传大文件或文件夹时可能需要较长时间
  • 远程命令需要有足够的权限执行

打包流程(推荐)

  1. 安装依赖:
cnpm install
  1. 生成平台图标(如有修改):
cnpm run icon
  1. 前端构建:
cnpm run build
  1. 打包应用:
cnpm run tauri build
  1. 产物位置:src-tauri/target/release/bundle/

体积优化建议

  • Rust 发布配置(src-tauri/Cargo.toml)使用 release 优化(ltoopt-levelpanic = "abort")。
  • 前端生产构建禁用 sourcemap、启用 treeshake、压缩 CSS/JS;避免将大体积样例资源置于 public/
  • 图标资源统一由 cnpm run icon 生成,确保只包含必要尺寸。

窗口尺寸自定义

  • 默认窗口尺寸与最小高度在 src-tauri/tauri.conf.jsonapp.windows[0] 中配置(如 width, height, minHeight)。

常见问题(Troubleshooting)

  • 账号/密码错误:弹出“用户名或密码错误,请检查后重试。”
    • 检查输入的用户名/密码;尝试用终端 ssh user@host 验证。
  • 无法连接服务器/超时:
    • 检查服务器地址、网络连通性、防火墙与 22 端口是否开放。
  • 无法建立 SFTP 会话:
    • 确认服务器启用了 SFTP 子系统,或具有对应权限。
  • 上传目录但远端没有顶层文件夹:
    • 现在已修复:当选择目录时,远端会创建 remote_path/<本地目录名> 再上传其内容。

License

MIT

This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 <script setup> SFCs, check out the script setup docs to learn more.

Recommended IDE Setup

About

🚀 NexusPush — 一款轻量级桌面客户端,支持本地文件一键上传至远程服务器并自动执行命令|🚀 NexusPush — A lightweight desktop client for uploading local files to remote servers and executing commands automatically.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors