Skip to content

命令与服务 ​

后端子命令 ​

后端是一个名为 zongce 的二进制,同一份程序按子命令区分进程角色:

子命令作用
apiHTTP API 与 MCP 服务
worker:dispatch按分发结果派发审核任务
worker:notify站内通知与邮件投递
worker:export生成汇总表、明细、归档与学院报表
worker:maintenance定时提醒、自动封存、审核时限、导出与临时文件清理
worker:backup每日数据库与对象备份、恢复演练、异地推送
worker:aiAI 材料整理
worker:agent班级资料转换与知识问答
migrate应用全部待执行的数据库迁移
migrate:down回退最近一个数据库迁移
eval:ai离线模型评测,不连接业务数据库
eval:knowledge真实班级知识 Agent 评测,需要双重外发确认
version输出版本

在 backend/ 目录中可以直接运行,例如 go run ./cmd/zongce migrate。

独立部署的服务 ​

compose.yaml 中,PostgreSQL、Redis 与 Garage 不属于任何 profile,始终启动;其余服务按 profile 启用:

服务profile说明
postgres—PostgreSQL 17
redis—Redis 8,开启 AOF 持久化
garage—Garage v2.3 单节点 S3 存储,自动建桶与密钥
migratefull、ai一次性迁移,完成后其他后端服务才启动
apifullAPI
worker-dispatch、worker-notify、worker-export、worker-maintenance、worker-backupfull各 Worker
worker-ai、worker-agentfull、aiAI 相关 Worker,常驻但在运维开关开启前保持空闲
frontendfullNginx 与静态前端

compose.images.yaml 把上述后端服务与前端改为使用 BACKEND_IMAGE 与 FRONTEND_IMAGE 指定的已发布镜像,见按组件发布与升级。

本地开发环境 ​

compose.dev.yaml 的项目名为 easygpa-plus-dev:Go API 用 air 热重载,Worker 在二进制更新后自动重启,前端运行 Vite 开发服务器。Windows 推荐使用 scripts/dev.ps1:

命令作用
./scripts/dev.ps1 up启动全部服务,就绪后打印前端与 API 地址
./scripts/dev.ps1 down停止容器,保留依赖缓存与开发数据
./scripts/dev.ps1 stop [服务…]停止指定服务
./scripts/dev.ps1 restart [服务…]重启服务,默认重启 api、workers 与 frontend
./scripts/dev.ps1 ps / status查看服务状态;status 还会检查 Docker 磁盘占用
./scripts/dev.ps1 logs [服务…]跟随日志
./scripts/dev.ps1 migrate手动运行迁移
./scripts/dev.ps1 rebuild重新构建后端镜像并启动
./scripts/dev.ps1 verify校验配置、启动并检查前端、API 与鉴权
./scripts/dev.ps1 test在隔离环境运行 Go 测试,再运行前端测试
./scripts/dev.ps1 debug [api|workers <kind>]以 Delve 调试 API 或指定 Worker
./scripts/dev.ps1 e2e / e2e-clean运行全部端到端测试 / 删除 E2E 缓存卷
./scripts/dev.ps1 clean停止容器并删除依赖与构建缓存,保留数据库和对象存储数据

其他系统可以直接使用 Compose:

sh
docker compose --env-file .env.development -f compose.dev.yaml up -d --build

Make 目标 ​

Makefile 面向在宿主上运行 Go 与 Vite、只把依赖放进容器的混合模式:

目标作用
make dev启动 PostgreSQL、Redis 与 Garage
make api / make api-plain热重载运行 API / 直接 go run
make web启动前端开发服务器
make full以 --profile full 构建并启动整套服务
make migrate-up / make migrate-down应用 / 回退迁移
make seed创建开发测试班与三个业务账号
make test / make lint / make fmt后端测试、静态检查与格式化
make sqlc由 db/queries/*.sql 生成代码
make e2e、make e2e-all、make e2e-clean端到端测试,见测试与 E2E
make garage查看 Garage 状态

前端脚本 ​

在 frontend/ 目录中:

命令作用
npm run devVite 开发服务器
npm run lintoxlint 与界面文案检查
npm test单元测试与演示站测试
npm run build类型检查、生产构建并打包对应源码
npm run mock / npm run mock:build运行 / 构建演示站
npm run mock:deploy部署演示站到 Cloudflare Pages

文档对应主仓库 main 分支,界面与行为以所部署版本为准。