# OpsXShell 原生运维**桌面**终端:SSH、SFTP、端口转发、RDP/VNC、串口、本地终端。短路径好用,不做审计/审批/堡垒机。 开发规范:[AGENTS.md](./AGENTS.md)(短入口 [CLAUDE.md](./CLAUDE.md))。授权走 `opsx-licence`。 产品形态(对齐 opsxdb / opsxapi): ```text 浏览器 → 官网 + 文档(Gin :8789) 操作 → 桌面 Tauri(./run.sh gui) ``` 官网与用户文档在本仓 `apps/server`(原独立仓 `site-opsxshell` 已并入)。Gin **不做**桌面操作后端。 需要 Node.js 18+、npm 9+、Rust 1.77+、Go 1.22+(跑官网时)。macOS 打包还要 Xcode Command Line Tools。 ## 本地调试 ```bash ./run.sh # = web:官网 + docs → http://127.0.0.1:8789/ ./run.sh web # 同上 ./run.sh gui # 桌面操作入口(默认顺带起 Gin) ./run.sh stop | status ``` 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 ``` ## 开发机卫生 Launchpad / Spotlight 若扫到 `target` 里重复的 Opsx 应用,跑:`~/devops/scripts/clean-opsx-apps.sh`(可选 `--delete-target-apps` / `--reset-launchpad`)。 ## 打包 必须在目标系统上打: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 ``` 发版安装包也可放到 `apps/server/download/` 供本地 Gin `/download/` 挂载(勿把大 DMG 提交进 Git)。 ## 文档 - 用户文档站(本地):`./run.sh web` → http://127.0.0.1:8789/docs - [使用指南](docs/user-guide.md)(开发向) - [架构](docs/architecture.md) · [验收](docs/testing-acceptance.md) · [发布](docs/release.md) - [路线图](ROADMAP.md) · [当前任务](TASKS.md) MIT,见 [LICENSE](./LICENSE)。