Go to file
2026-08-03 19:54:37 +00:00
.forgejo/workflows 补齐持续集成与 Docker 健康验证 2026-08-03 19:06:05 +00:00
scripts 补齐持续集成与 Docker 健康验证 2026-08-03 19:06:05 +00:00
src 禁用原生右键菜单并改进行选择 2026-08-03 19:53:21 +00:00
src-tauri 启动跨平台桌面客户端项目 2026-08-03 18:41:38 +00:00
.dockerignore 启动跨平台桌面客户端项目 2026-08-03 18:41:38 +00:00
.gitignore 启动跨平台桌面客户端项目 2026-08-03 18:41:38 +00:00
compose.yaml 支持 Docker 启动 Web 测试服务 2026-08-03 18:49:17 +00:00
Dockerfile 启动跨平台桌面客户端项目 2026-08-03 18:41:38 +00:00
index.html 启动跨平台桌面客户端项目 2026-08-03 18:41:38 +00:00
package-lock.json 整合全页面导航并完成可访问性验收 2026-08-03 19:42:33 +00:00
package.json 整合全页面导航并完成可访问性验收 2026-08-03 19:42:33 +00:00
README.md 合并主分支并解决协议模型冲突 2026-08-03 19:10:06 +00:00
tsconfig.app.json 启动跨平台桌面客户端项目 2026-08-03 18:41:38 +00:00
tsconfig.json 启动跨平台桌面客户端项目 2026-08-03 18:41:38 +00:00
tsconfig.node.json 启动跨平台桌面客户端项目 2026-08-03 18:41:38 +00:00
vite.config.ts 启动跨平台桌面客户端项目 2026-08-03 18:41:38 +00:00

Gaza

Gaza 是一个协议优先、跨平台的多 Teamserver 桌面工作台。当前仓库包含可运行的首个项目骨架,重点验证 Teamserver 工作区和标签页隔离模型。

标准协议模型

src/protocol 定义 GUI 与兼容 Teamserver 之间的首版强类型模型,包括 Teamserver、Project、Session、Capability、Task、Event、Artifact 和 Audit。该模块不包含网络请求、认证或私有 C2 适配。

ServerIdProjectIdSessionId 等采用品牌类型,避免在编译期误用不同层级 ID枚举允许未来服务端新增值解析器保留未知枚举和扩展字段。迁移现有界面数据时可从 src/protocol/fixtures 引入最小演示 fixture。

技术栈

  • Tauri 2桌面容器
  • React 19 + TypeScript + Vite界面
  • Vitest + Testing Library单元与组件测试

快速开始

本机安装 Node.js 22 与 Rust stable 后:

npm ci
npm run dev          # 浏览器开发模式
npm run tauri dev    # 桌面开发模式

无需本机 Node.js 的前端验证:

docker compose build test build
docker compose run --rm test
docker compose run --rm build
docker compose run --rm test npm run typecheck
docker compose run --rm test npm audit --audit-level=high

Docker 启动 Web 测试服务

构建镜像并在后台启动:

docker compose up --build -d

浏览器访问 http://127.0.0.1:1420。查看状态和日志:

docker compose ps
docker compose logs -f web
./scripts/check-web-health.sh

停止服务:

docker compose down

默认只监听本机回环地址。需要让局域网测试设备访问时,显式设置监听地址和端口:

WEB_BIND_ADDRESS=0.0.0.0 WEB_PORT=1420 docker compose up --build -d

开放到局域网前请确认主机防火墙和测试网络范围Web 预览不包含认证能力。

当前范围

  • 展示多 Teamserver 连接状态和独立工作区。
  • 切换 Teamserver 时隔离标签、项目导航和激活状态。
  • 所有演示业务状态仅保存在进程内存,不写入本地存储。
  • 提供 Tauri 最小权限配置;后续连接、协议与加密 SQLite 能力按独立迭代接入。

常用命令

npm ci
npm run typecheck
npm test
npm run build
npm audit --audit-level=high
npm run tauri build

持续集成与本地复现

Forgejo 工作流 .forgejo/workflows/ci.yml 在推送到 main 和拉取请求时运行两个独立作业:

  • Node 质量门禁依次执行锁定依赖安装、TypeScript 类型检查、测试、生产构建和高危依赖审计。
  • Docker 门禁构建 web 镜像,按 Compose 的最小权限配置启动服务,并等待镜像内置健康检查通过。

本机装有 Node.js 22.18.0 时,可使用“常用命令”中的前五条命令逐步复现 Node 作业。仅安装 Docker 时,可完整复现 CI

docker compose build test build
docker compose run --rm test npm run typecheck
docker compose run --rm test
docker compose run --rm build
docker compose run --rm test npm audit --audit-level=high
docker compose build web
docker compose up --no-build -d web
./scripts/check-web-health.sh
docker compose down --volumes --remove-orphans

依赖审计会在发现高危或严重漏洞时失败网络或软件源不可用同样视为审计失败不静默跳过。Docker 服务仍以非 root 用户运行,并保留只读根文件系统与 no-new-privileges 限制。