基于 GoFrame v2.9.5 构建的前后端分离电商系统,聚焦 GoFrame 最佳实践与中后台业务落地。
本电商系统采用前后端分离架构,基于GoFrame框架开发,提供了完整的电商功能和管理后台。
- 后端代码:项目主目录采用GoFrame建议的目录结构设计,便于维护和扩展
- 前端代码:
frontend_web:电商网站前端目录frontend_manage:系统管理后台前端目录
- 配置文件:
hack/config.yaml:开发环境配置manifest/config/config.yaml:生产环境配置
- 数据库脚本:
hack/shop.sql - API文档:基于Swagger自动生成
- 商品管理、规格与库存、订单与地址、优惠券、文章/CMS
- 文件上传(支持七牛云,可选),本地上传目录可配置
- JWT 前台认证、RBAC 后台权限、统一中间件与响应封装
- Swagger/OpenAPI 自动文档,接口开发体验友好
- 秒杀示例与优化(含基准测试与 SQL 优化示例)
- 可选 Docker/K8s 部署清单,支持企业级上线
Go >= 1.23(模块goframe-shop-v2,参考go.mod)- GoFrame
v2.9.5(项目已集成,参考依赖) - MySQL、Redis 本地可用
- 可选:安装
gfCLI 以便热重载与代码生成
git clone https://github.com/wangzhongyang007/goframe-shop-v2
cd goframe-shop-v2- 导入 SQL:
hack/shop.sql
- 复制示例配置为正式配置,并按需修改数据库与存储:
manifest/config/example_config.yaml→manifest/config/config.yaml- 数据库密码修改:
manifest/config/config.yaml的database.default.pass - Redis 可选修改:
manifest/config/config.yaml的redis.default - 七牛云为可选,需填写
qiniu的bucket/accessKey/secretKey/url
- 可选:
hack/example_config.yaml为gf gen dao的生成配置(仅开发阶段)
# 直接运行
go run main.go
# 使用 GoFrame CLI 热重载
gf run main.go启动后接口文档:http://127.0.0.1:8000/swagger/
- Web 前台:
frontend_web(Vue)- 安装依赖与启动:见
frontend_web/README.md
- 安装依赖与启动:见
- 管理后台:
frontend_manage(Vue + ElementUI) http://127.0.0.1:8199/swagger/
测试账号(前台):账号 wangzhongyang,密码 111111(参考 frontend_web/README.md)
- 打包二进制:使用
gf build生成./temp/linux_amd64/main - 镜像构建:使用
manifest/docker/Dockerfile - 运行:镜像将加载
resource与编译好的二进制
- 基础清单:
manifest/deploy/kustomize/base - 开发环境覆盖:
manifest/deploy/kustomize/overlays/develop - 根据环境调整
configmap.yaml与deployment.yaml
- Go/GoFrame 版本不匹配:请使用
Go >= 1.23与 GoFrame v2.9.x - 数据库或配置错误:检查
manifest/config/config.yaml的账号密码 - 七牛云未配置:不影响项目启动,上传功能不可用
- 欢迎提交 Issue/PR,规范化分支与提交信息
- 推荐流程:Fork → 新建特性分支 → 提交代码 → 提 PR
- 博客:
https://juejin.cn/user/2189882892232029/posts - 公众号:王中阳
- 微信:
wangzhongyang1993
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
本仓库代码仅用于学习与交流,正式商用请依据自身合规要求配置许可证。
https://wx.zsxq.com/dweb2/index/group/15528828844882
wangzhongyang1993
https://juejin.cn/user/2189882892232029/posts
王中阳
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
- 本地提交git
- 远程服务器已经安装Go环境
- 执行部署脚本:
setup.sh
gf run main.go