Files
goukiandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 12fa2b0d19
Build and Publish Commercial Web / build (push) Failing after 1m25s
Build and Publish Server / build (push) Successful in 3m25s
refactor(server): 拆分 cmd/mini 与 cmd/web 两个部署入口
小程序接口(lunar.neatcn.com)与商业版 Web(kepo.net)此前共用一个
二进制,导致小程序域名暴露商业后台与 Stripe Webhook,商业站点也
暴露了许愿树等小程序接口。现拆为两个入口:

- cmd/mini:微信登录、生辰档案、许愿树、百科、版本号
- cmd/web:邮箱登录、commerce、报告/订单、/admin 后台、商业前端
  静态托管与 SPA 回退
- internal/app 承载共用启动与路由注册;图片资源移至 internal/assets

CI:server-deploy.yml 改构建 cmd/mini 并随包移除后台静态资源;
新增 web-deploy.yml 构建 cmd/web + web-commercial 前端,发布
web-v* Release;deploy-watch.sh 支持 TAG_PREFIX/ASSET_NAME 变量;
新增 deploy-web.sh(systemd 版)与 kepo 一次性配置文档
.gitea/docs/PULL_DEPLOY_WEB.md。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-18 11:31:51 +00:00

4.0 KiB
Raw Permalink Blame History

AGENTS.md — lunar 项目代理指令

项目概述

lunar 是一个融合中国传统文化(农历、八字、许愿树)的现代化应用,包含:

  • mini/: 微信小程序前端(农历日历、八字排盘、许愿树、百科)
  • server/: Go 后端服务(Gin + GORM + MySQL,提供小程序 API 和商业版支付)
  • web/: 前端工程化包(core + web)
  • web-commercial/: 商业版前端(React + Vite)
  • wishing-tree-pages/: 许愿树独立页面(Next.js)

核心路径导航

路径 说明 关键文件
server/cmd/mini/ 小程序接口入口(lunar.neatcn.com) main.go
server/cmd/web/ 商业版 Web 入口(kepo.net,含后台与前端静态托管) main.go
server/internal/app/ 两个入口的路由注册与共用启动逻辑 app.go, mini.go, web.go
server/internal/handler/ HTTP API 处理器 user.go, commerce.go, pay.go, wiki.go
server/internal/service/ 业务逻辑层 user.go, commerce.go, payment_provider.go, wish.go
server/internal/model/ 数据模型 user.go, order.go, commerce.go, wish.go
server/internal/middleware/ 中间件 middleware.go(认证、CORS、限流)
server/internal/config/ 配置管理 config.go, database.go
server/migrations/ 数据库迁移 001_init.sql, 002_commerce.sql
mini/pages/ 小程序页面 home/, calendar/, wish-tree/, bazi/, wiki/
mini/utils/ 小程序工具 lunar.js, request.js, birth-profile.js
mini/components/ 小程序组件 calendar-grid/, score-ring/, badge/
mini/ci/ 小程序 CI 脚本 preview-ci.cjs, upload-ci.cjs

高频变更热点

  • mini/pages/wish-tree/wish-tree.js — 许愿树页面(30 天 churn 4549 行)
  • mini/utils/core/index.js — 核心工具(churn 1734 行)
  • server/internal/handler/user.go — 用户 API(churn 488 行)
  • server/internal/middleware/middleware.go — 中间件(churn 259 行)

启动与验证命令

后端(server/)

cd server
cp .env.example .env.local   # 首次运行
go mod download
go run ./cmd                  # 开发启动,默认 :8080
go test ./...                 # 运行测试
go build -o bin/server ./cmd  # 构建

小程序(mini/)

cd mini
npm install
npm run dev                   # 开发模式(微信开发者工具预览)
npm run upload                # 上传体验版(需配置 CI)

商业前端(web-commercial/)

cd web-commercial
pnpm install
pnpm dev                      # 开发服务器
pnpm build                    # 构建

高风险操作警示

  • 生产部署: 禁止 SSH 直连服务器,使用 Gitea Actions + Release 拉取式部署
  • 数据库: 禁止执行 fresh 或 refresh,新环境用 AutoMigrate,已有库手动执行 migrations
  • 支付: 任何支付功能必须同时具备真实下单、Webhook 验签、订单状态机、幂等处理、退款处理
  • 密钥: 所有支付与邮件密钥必须通过环境变量注入,禁止提交到 Git

测试覆盖现状

  • Go 后端:6 个已跟踪测试文件(server/internal/service/ 3 个:baike_term_sync_test.go、payment_provider_test.go、wiki_sync_test.go;server/internal/handler/ 2 个:commerce_test.go、本次新增的邮箱验证码测试 email_auth_test.go;server/internal/middleware/ 1 个:middleware_test.go)
  • web 前端核心(web/packages/core/):10 个 TypeScript 测试文件(src/__tests__/ 下:bazi、boneWeight、day、elementStrength、fortune、fortuneLuck、plumBlossom、relationship、shensha、yearMonths)
  • 小程序前端:0 个测试文件
  • 商业前端:0 个测试文件

相关文档

  • server/README.md — 后端服务详细说明
  • web/docs/ARCHITECTURE.md — 前端架构文档
  • web/docs/REQUIREMENTS.md — 需求文档
  • REMINDER.md — 开发提醒(商业化功能规范)