跨平台一键部署桌面工具
将本地工作目录打包为 ZIP → SFTP 上传 → SSH 解压覆盖,一气呵成
ZipShip 是一款跨平台桌面部署工具,专为需要频繁将本地代码同步到远程服务器的开发者/运维人员设计。
只需选目录 → 点发布,即可完成:
.zipshipignore 规则生成 ZIP无需手动敲命令,GUI 一点搞定"压缩 + 上传 + 解压"全流程。
| 主界面 | 设置面板 |
|---|---|
![]() | ![]() |
| 部署确认 | 日志面板 |
|---|---|
![]() | - |
| 主界面 | 设置面板 |
|---|---|
![]() | ![]() |
| 部署确认 |
|---|
![]() |
| 功能 | 说明 |
|---|---|
| 🔒 多种认证方式 | 支持密码认证和私钥认证(可选口令) |
| 🖐️ 主机指纹验证 | 首次连接提示确认,类似系统 SSH 体验 |
| 📊 版本号管理 | 自动递增(v1.0.0 → v1.0.1),支持手动调整 |
| 🚫 智能忽略 | 支持 .zipshipignore,语法兼容 .gitignore |
| ⚠️ 覆盖保护 | 每次压缩前弹窗提醒,可设置"不再提醒" |
| 📶 断点续传 | SFTP 支持续传被中断的大文件 |
| 📜 操作日志 | 完整记录每次操作,支持日志落盘 |
| 🎨 双主题 | 支持浅色/深色模式,响应系统主题 |
| 层级 | 技术 |
|---|---|
| 框架 | Tauri 2.x |
| 后端 | Rust |
| 前端 | React 19 + TypeScript |
| 样式 | Tailwind CSS |
| 动画 | Framer Motion |
| SSH/SFTP | ssh2 |
| ZIP | zip crate |
首次使用需要配置:
1. 选择本地工作目录
2. 填写远程服务器信息(主机、端口、用户名)
3. 选择认证方式(密码/私钥)
4. 选择目标服务器系统类型(Linux/Windows)
5. 填写远程上传目录
6. 设置初始版本号(如 v1.0.0)
点击「发布」按钮 → 自动完成:打包 → 上传 → 解压
如需单独执行某个阶段:
# 安装前端依赖
pnpm install
# 检查 Tauri 环境
pnpm tauri info
# 启动前端 + Tauri 开发服务器
pnpm tauri dev
# 构建生产版本
pnpm tauri build
构建产物位于:
src-tauri/target/release/bundle/nsis/*.exesrc-tauri/target/release/bundle/app/*.appsrc-tauri/target/release/bundle/appimage/*.AppImageCodeFerry/
├── src/ # React 前端源码
│ ├── components/ # UI 组件
│ │ ├── Header.tsx # 顶部导航
│ │ ├── Footer.tsx # 底部状态栏
│ │ ├── LocalSection.tsx # 本地配置区
│ │ ├── RemoteSection.tsx # 远程配置区
│ │ ├── SettingsPanel.tsx # 设置面板
│ │ ├── DeployButton.tsx # 发布按钮
│ │ ├── LogsPanel.tsx # 日志面板
│ │ └── ...
│ ├── App.tsx # 主应用组件
│ ├── zipship-api.ts # Tauri API 调用封装
│ └── main.tsx # 入口文件
├── src-tauri/ # Tauri/Rust 后端
│ ├── src/
│ │ └── main.rs # Rust 主入口
│ ├── Cargo.toml # Rust 依赖
│ └── tauri.conf.json # Tauri 配置
├── crates/
│ └── zipship-core/ # 核心业务逻辑库
│ ├── src/
│ │ ├── lib.rs # 库入口
│ │ ├── package.rs # ZIP 打包
│ │ ├── sftp.rs # SFTP 上传
│ │ ├── ssh.rs # SSH 执行
│ │ └── config.rs # 配置管理
│ └── Cargo.toml
├── screen/ # 界面截图
├── package.json # Node 依赖
├── Cargo.toml # Rust workspace
└── README.md # 本文件
与 .gitignore 兼容:
# 忽略 node_modules
node_modules/
# 忽略所有 .log 文件
*.log
# 忽略 .zipship 目录(自动忽略,无需配置)
!.gitkeep
# 只忽略 build,但保留 dist/build
/build/
!dist/build
配置存储在应用数据目录:
| 平台 | 路径 |
|---|---|
| Windows | %APPDATA%\com.zipship.app\ |
| macOS | ~/Library/Application Support/com.zipship.app/ |
| Linux | ~/.config/com.zipship.app/ |
欢迎提交 Issue 和 Pull Request!
git checkout -b feature/xxx)git commit -m 'Add xxx')git push origin feature/xxx)MIT License - 详见 LICENSE 文件。
Built with ❤️ using Tauri + Rust