feat(deploy): 添加 Gitea 自动部署 Webhook 及配套工具

新增 `/deploy/webhook` 接口,支持 Gitea HMAC 签名校验、指定分支部署、构建并发锁与超时控制
添加前端项目部署脚本 `scripts/deploy_front.sh`,负责拉取代码、安装依赖并执行构建
新增部署相关配置项并更新 `.env.example` 示例配置
更新项目文档说明自动部署的使用约定
补充 `.gitignore` 规则忽略证书和 PEM 格式文件
This commit is contained in:
wenfp
2026-07-27 11:51:55 +08:00
parent cd4fdc6079
commit 5717c651b2
8 changed files with 269 additions and 2 deletions
+3
View File
@@ -18,6 +18,7 @@
- `app/routers/products.py`:商品管理接口,提供 `/products` 的增删改查。
- `app/routers/orders.py`:订单管理接口,提供 `/orders` 的增删改查。
- `app/routers/payments.py`:微信支付接口,提供 JSAPI 预下单和支付通知处理。
- `app/routers/deploy.py`:自动部署 webhook 接口,供 Gitea 推送后触发前端构建。
- `app/routers/rituals.py`:法事管理接口,提供 `/ritual-services` 的增删改查。
- `app/routers/uploads.py`:图片上传接口,提供 `/uploads/images` 并上传到阿里云 OSS。
- `app/config.py`:项目运行配置,目前预留阿里云 OSS 配置。
@@ -91,6 +92,7 @@ pnpm dev
- 新增后端业务模块时,优先新增 `app/routers/<module>.py` 和对应 `app/schemas.py` 模型。
- 新增前端业务模块时,优先新增 `front/src/views/<module>/``front/src/api/<module>.ts`,并在 `front/src/router/index.ts` 注册路由。
- 登录认证已接入,后台路由由前端守卫检查登录状态;认证令牌由后端 HttpOnly Cookie 管理,前端不保存 token。
- 自动部署接口为 `/deploy/webhook`,生产环境经 Nginx 的 `/api/deploy/webhook` 暴露给 Gitea;部署密钥、项目目录、前端目录、部署分支和脚本路径通过 `.env` 或环境变量配置。
## 修改记录约定
@@ -113,3 +115,4 @@ pnpm dev
- 2026-07-23:新增登录认证功能,后端支持动态验证码、bcrypt 密码哈希、失败次数限制、账号临时锁定、HttpOnly/Secure Cookie 会话、退出登录和登录 IP/设备日志;前端登录页支持用户名、密码、验证码、自动聚焦、账号 trim、密码显示/隐藏、提交 loading、友好错误提示和路由守卫;`requirements.txt` 新增 `bcrypt`。验证:后端编译通过,前端 `pnpm typecheck``pnpm build` 通过,运行态登录测试待安装 `bcrypt` 后执行。
- 2026-07-23:商品模型新增商品描述字段,后端补充 `products.description` 迁移、Pydantic 模型和 CRUD 读写,前端商品 API 类型与商品编辑基础信息表单同步。验证:后端编译通过,前端 `pnpm typecheck``pnpm build` 通过,运行态接口测试待安装 `bcrypt` 后执行。
- 2026-07-23:新增微信支付 JSAPI 预下单和支付通知处理,后端增加 `payment_transactions` 支付流水表、微信支付 API v3 签名/通知验签/回调解密工具和配置占位,前端订单管理页增加微信预下单入口;`requirements.txt` 新增 `cryptography`。验证:后端编译通过,前端 `pnpm typecheck``pnpm build` 通过,真实预下单和支付通知待填写微信商户配置后联调。
- 2026-07-27:新增 Gitea 自动部署 webhook,后端 `/deploy/webhook` 校验 Gitea HMAC 签名或部署 token 后执行 `scripts/deploy_front.sh`,脚本负责拉取代码、安装前端依赖并执行 `pnpm build`;新增 `.env.example` 记录部署环境变量。验证:后端编译通过,webhook 密钥与 Gitea 签名校验测试通过。