Skip to main content

本地开发

Hub 包含 Go 后端、React 管理界面与 TypeScript CLI。先克隆仓库:

环境要求

  • Go ≥ 1.25
  • Node.js ≥ 22
  • Docker + Docker Compose

启动方式

方式一:Docker Compose(推荐)

快速体验优先使用 Docker Compose quickstart。完整流程:
应用监听在 http://localhost:8081/static/,健康检查为 curl http://localhost:8081/health 要从源码本地构建镜像,叠加 docker-compose.build.yml 覆盖文件:
首次启动时会自动:
  1. 运行 AutoMigrate 创建全部数据表。
  2. 写入 5 个共享 Provider 模板——anthropic-thirdparty / openai-thirdparty(自定义兼容 API 模板,填写 base_url + api_key)/ glm-cn(GLM Coding Plan)/ kimi-cn(Kimi Code)/ bailian(阿里云百炼)——均为共享模板行,不预填任何密钥,各租户首次使用时按 copy-on-write 复制后填写。
默认 builtin 认证模式:首次访问时浏览器会弹出初始化页面创建 admin 账号,无需 Casdoor。

方式二:前后端分离(本地开发)

需要热更新和源码调试时使用此方式。仓库根目录没有 compose 文件,MySQL 使用 quickstart 的(或自备实例):
quickstart 的 MySQL 容器默认不向宿主机暴露 3306 端口。本地直连需自行放开端口映射,或另起 MySQL。数据库名默认 agent_hub
启动后端——默认 builtin 模式的最小环境变量集:
按需追加可选变量:
如需本地调试 SSO,追加 AUTH_MODE=casdoor 以及 CASDOOR_ENDPOINT / CASDOOR_CLIENT_ID / CASDOOR_CLIENT_SECRET / CASDOOR_CERTIFICATE;正常开发无需任何 CASDOOR_* 变量。各变量的完整说明见 配置 启动前端
vite dev server 默认把 /api/auth 代理到 vite.config.ts 中配置的目标。本地起后端时请把 server.proxytarget 改为 http://localhost:8081(按需修改,勿提交)。
开发时跳过登录:在 frontend/.env.local 中设置 VITE_BYPASS_AUTH=true(该文件已被 .gitignore 忽略)。

构建产物

测试

前端使用 Vitest + Testing Library + MSW:
后端:
测试位于各包内(internal/handler/*_test.gointernal/application/services/*_test.go 等),新增功能请随代码补充对应测试。

开发原则

  • 后端修改运行 Go 测试与格式检查。
  • 管理界面修改运行对应的 lint、类型检查和测试。
  • 数据结构变化必须附带可重复执行的数据库迁移。
  • API 变更同步更新 Hub 源仓库的 API 文档。
  • 不把本地凭据或 DSN 提交到 Git。

团队约定

  • Git:Conventional Commits(feat: / fix: / refactor: / chore: / style: / docs:)。
  • 错误信息:面向用户的错误用中文,内部错误附英文堆栈。
  • 字段命名:数据库字段 snake_case,JSON 字段 camelCase,Go 字段 PascalCase。
  • i18n:核心实体同时维护中文(description)与英文(descriptionEn)字段。
  • 提交前gofmt -l . 无输出、go vet 通过、cd frontend && npm run test:run 通过。