# OpsXShell 原生运维终端:SSH、SFTP、端口转发、RDP/VNC、串口、本地终端。短路径好用,不做审计/审批/堡垒机。 需要 Node.js 18+、npm 9+、Rust 1.77+。macOS 打包还要 Xcode Command Line Tools。 ## 本地调试(GUI) ```bash ./run.sh ``` 会清掉旧的 Vite / 应用进程,缺依赖时自动 `npm install`,再开 Tauri 开发窗。DevTools:`Cmd+Option+I` 或 `F12`。日志: ```bash tail -f "$HOME/Library/Application Support/opsxshell/logs/opsxshell.log" ``` 只要前端、不要原生窗:`npm run dev:ui`(默认 `http://127.0.0.1:1420`)。 ## 测试 ```bash npm run test:patrol # 改功能后优先跑 npm run acceptance:quick npm run acceptance:full ``` ## 打包 必须在目标系统上打:macOS 包在 Mac 打,Windows 包在 Windows 打。 ```bash ./scripts/build.sh # 当前平台;产物在 release/v<版本>/ ./scripts/build.sh mac-arm64 --quick # 本机重复打包 ./scripts/macos-notarize.sh # 新 DMG:Apple 公证 + staple ``` Windows:`scripts\build.bat win-x64` 本机有 gitignore 的 `src-tauri/tauri.signing.conf.json` 时,`build.sh` 会签 Developer ID。没这份配置就是 ad-hoc,别人电脑会 Gatekeeper 拦截。新打的 DMG **必须再公证**。申请证书、导入钥匙串的步骤见 [download/Apple开发者签名.md](./download/Apple开发者签名.md);发版细节见 [docs/release.md](./docs/release.md)。 Gitee Release(tag 推上去之后): ```bash ./scripts/release.py v2.1.1 --dry-run ./scripts/release.py v2.1.1 ``` ## 文档 - [使用指南](docs/user-guide.md) - [架构](docs/architecture.md) · [验收](docs/testing-acceptance.md) · [发布](docs/release.md) - [路线图](ROADMAP.md) · [当前任务](TASKS.md) MIT,见 [LICENSE](./LICENSE)。