{"id":51451424,"url":"https://github.com/misakatat/shipyardx","last_synced_at":"2026-07-05T21:01:33.624Z","repository":{"id":364002315,"uuid":"1186983972","full_name":"MisakaTAT/ShipyardX","owner":"MisakaTAT","description":"A desktop Docker management client based on Tauri, designed to run on Windows, macOS and Linux for a consistent local and remote container workflow.","archived":false,"fork":false,"pushed_at":"2026-06-24T06:55:42.000Z","size":1819,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-24T08:29:20.945Z","etag":null,"topics":["docker","linux","macos","rust","tauri","tauri-app","windows"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MisakaTAT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-20T07:54:11.000Z","updated_at":"2026-06-24T06:55:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/MisakaTAT/ShipyardX","commit_stats":null,"previous_names":["misakatat/shipyardx"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/MisakaTAT/ShipyardX","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisakaTAT%2FShipyardX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisakaTAT%2FShipyardX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisakaTAT%2FShipyardX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisakaTAT%2FShipyardX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MisakaTAT","download_url":"https://codeload.github.com/MisakaTAT/ShipyardX/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisakaTAT%2FShipyardX/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35168795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-05T02:00:06.290Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","linux","macos","rust","tauri","tauri-app","windows"],"created_at":"2026-07-05T21:01:32.458Z","updated_at":"2026-07-05T21:01:33.613Z","avatar_url":"https://github.com/MisakaTAT.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ShipyardX\n\n基于 Rust 和 Tauri 的桌面端 Docker 管理工具。\n\n## 技术栈\n\n- 前端：`React 19`、`TypeScript`、`Vite`、`Tailwind CSS v4`\n- 桌面：`Tauri v2`\n- 后端：`Rust`、`Tokio`\n\n## 环境要求\n\n- `Node.js \u003e= 20`\n- `pnpm 11`\n- `Rust stable`\n- Tauri 对应平台依赖\n\n项目在 [package.json](/Users/zero/Desktop/ShipyardX/package.json:5) 中声明 `pnpm@11.3.0`。\n\n```bash\nnode -v\npnpm -v\nrustc -V\ncargo -V\n```\n\n安装 `pnpm`：\n\n```bash\nnpm install -g pnpm\n```\n\n安装 Rust：\n\n```bash\nrustup toolchain install stable\nrustup default stable\n```\n\nmacOS 需要安装 Xcode Command Line Tools：\n\n```bash\nxcode-select --install\n```\n\n## 安装依赖\n\n```bash\npnpm install\n```\n\n## 开发\n\n### 前端开发\n\n```bash\npnpm dev\n```\n\n- 开发地址：`http://localhost:1420`\n- HMR 端口：`1421`\n- Vite 配置见 [vite.config.ts](/Users/zero/Desktop/ShipyardX/vite.config.ts:1)\n\n### 桌面应用开发\n\n```bash\npnpm tauri dev\n```\n\nTauri 开发配置见 [src-tauri/tauri.conf.json](/Users/zero/Desktop/ShipyardX/src-tauri/tauri.conf.json:1)。该命令会先执行 `pnpm dev`，再启动 Tauri 开发进程。\n\n涉及以下功能时，应使用 `pnpm tauri dev`：\n\n- Docker 连接\n- SSH 连接\n- 容器终端\n- 日志流和事件流\n- 文件导入导出\n- 应用安装流程\n\n## 常用命令\n\n```bash\npnpm dev\npnpm tauri dev\npnpm build\npnpm tauri build\npnpm lint\npnpm typecheck\npnpm test\npnpm format\n```\n\n## 构建\n\n前端构建：\n\n```bash\npnpm build\n```\n\n构建产物输出到 `dist/`。\n\n桌面应用构建：\n\n```bash\npnpm tauri build\n```\n\n安装包产物通常位于 `src-tauri/target/`。\n\n## 目录结构\n\n```text\nShipyardX/\n├─ src/                    # React 前端\n│  ├─ app/                 # provider、主题、全局设置\n│  ├─ features/            # 功能模块\n│  ├─ layouts/             # 布局\n│  ├─ pages/               # 页面入口\n│  ├─ shared/              # 通用组件和工具\n│  └─ types/               # 前端类型与绑定输出\n├─ src-tauri/              # Tauri + Rust\n│  ├─ src/commands/        # Tauri command\n│  ├─ src/services/        # 业务逻辑\n│  ├─ src/docker/          # Docker 通信与映射\n│  ├─ src/ssh/             # SSH 能力\n│  └─ tauri.conf.json      # Tauri 配置\n├─ public/\n├─ dist/\n└─ README.md\n```\n\n## 调试\n\n前端入口：\n\n- [src/main.tsx](/Users/zero/Desktop/ShipyardX/src/main.tsx:1)\n- [src/App.tsx](/Users/zero/Desktop/ShipyardX/src/App.tsx:1)\n\nRust 入口：\n\n- [src-tauri/src/main.rs](/Users/zero/Desktop/ShipyardX/src-tauri/src/main.rs:1)\n- [src-tauri/src/lib.rs](/Users/zero/Desktop/ShipyardX/src-tauri/src/lib.rs:1)\n\n后端代码结构：\n\n- `src-tauri/src/commands`：Tauri command 定义\n- `src-tauri/src/services`：核心业务逻辑\n- `src-tauri/src/docker`：Docker 连接与数据映射\n- `src-tauri/src/ssh`：SSH 连接与执行\n\n## 类型绑定\n\n前后端共享类型通过 `tauri-specta` 生成，输出文件位于 [src/types/app-bindings.ts](/Users/zero/Desktop/ShipyardX/src/types/app-bindings.ts:1)。\n\n开发模式下执行：\n\n```bash\npnpm tauri dev\n```\n\n即可触发绑定文件更新。\n\n## 本地数据\n\n应用数据目录中包含以下文件：\n\n- `servers.json`\n- `encryption.key`\n\n相关实现见 [src-tauri/src/config/store.rs](/Users/zero/Desktop/ShipyardX/src-tauri/src/config/store.rs:1)。\n\n运行日志由 `tauri-plugin-log` 写入应用日志目录。\n\n## License\n\n本项目采用 `GNU GPL-3.0` 许可证，详见根目录 [LICENSE](/Users/zero/Desktop/ShipyardX/LICENSE:1)。\n\n## 推荐开发环境\n\n- [VS Code](https://code.visualstudio.com/)\n- [Tauri VS Code Extension](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode)\n- [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisakatat%2Fshipyardx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmisakatat%2Fshipyardx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisakatat%2Fshipyardx/lists"}