Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoWind Shop|风行商城

开箱即用的企业级出海电商全栈脚手架

让出海电商开发如风般自由 — GoWind Shop

Go Version Vue Docker

中文 | English | 日本語


项目简介

GoWind Shop(风行商城)是一套面向出海场景的企业级多语言电商平台,采用 API 优先、前后端分离架构,提供多语言原生内容分发、多币种商品展示与单一结算币种能力。后端基于 golang + go-kratos 微服务框架,采用 Protobuf-first(契约驱动)工作流;前端后台基于 Vue.js 3 + TypeScript,店铺前台基于 Nuxt + Vue 3。

项目亮点

  • 多语言原生支持:基于 i18n 的多语言内容分发,面向出海场景
  • 契约驱动(Protobuf-first):接口、数据模型、错误码均以 proto 为单一事实源,自动生成 Go / TypeScript / OpenAPI
  • 三服务 BFF 架构admin / app 瘦网关 + core 核心实现,业务逻辑与传输层解耦
  • 全栈代码生成:Ent Schema → ORM,Wire 依赖注入,一键 CRUD 脚手架
  • 生产就绪:JWT 鉴权、Casbin / OPA 授权、SSE 推送、Asynq 异步任务、OpenTelemetry 链路追踪、Swagger 文档、Docker 一键部署

系统架构

GoWind Shop 采用三服务 BFF 架构:adminapp 为瘦网关,仅做参数校验与 gRPC 转发;core 为核心实现,所有数据访问集中于此。

HTTP/REST 请求
  └─ admin-service  (后台网关 BFF,REST:6600 / SSE:6601 / gRPC)
       └─ gRPC → core-service  (核心业务 + 数据落点)

app-service (前台网关 BFF,REST:6700) ──gRPC──→ core-service
core-service (gRPC,业务实现与数据访问)
服务 角色 是否访问 DB
app/admin/service 后台网关 BFF(接收 REST,转发 gRPC 到 core)
app/app/service 前台网关 BFF
app/core/service 核心业务实现(持久化、真实逻辑)

技术栈

层级技术
后端框架Golang · go-kratos v2 · Wire · Protobuf / Buf
ORMentgo.io/ent · PostgreSQL · MySQL
中间件Redis · MinIO(S3 兼容对象存储) · ElasticSearch / OpenSearch · etcd(服务发现)
认证授权kratos-authn(JWT HS256) · kratos-authz(Casbin / OPA)
实时通信SSE(服务端推送) · Asynq(异步任务)
分布式OpenTelemetry + Jaeger(链路追踪) · DTM(分布式事务)
后台前端Vue 3 · TypeScript · Vite · Element Plus
店铺前端Nuxt · Vue 3 · TypeScript · Tailwind CSS · i18n
部署运维Docker · Docker Compose · PM2 · Swagger UI

快速开始

环境要求

工具 版本
Go 1.25+
Node.js >= 20.10.0
pnpm >= 10.0.0
Docker 20.0+

环境脚本选型

  • Linux / macOS 开发环境:scripts/env/install_unix_dev.sh
  • Linux / macOS 生产环境:scripts/env/install_unix_prod.sh
  • Windows 开发环境:scripts/env/install_windows_dev.ps1

Docker 两种部署模式

  • full_deploy 完整模式:同步启动中间件+后端应用,适用于一键演示、生产部署
  • libs_only 依赖模式(推荐开发):仅启动中间件,应用本地 IDE 运行调试

后端启动

Linux / macOS:

# 赋予脚本执行权限
chmod +x scripts/**/*.sh

# 开发环境(推荐)
./scripts/env/install_unix_dev.sh
./scripts/docker/libs_only.sh
cd backend/app/<admin|app|core>/service
make run

# 生产环境
./scripts/env/install_unix_prod.sh
./scripts/docker/full_deploy.sh

# PM2 进程托管(生产进阶)
./scripts/deploy/pm2_service.sh

Windows(PowerShell 管理员):

# 放行脚本策略(首次仅需执行一次)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

# 初始化环境
.\scripts\env\install_windows_dev.ps1

# 本地开发
.\scripts\docker\libs_only.ps1
cd backend/app/<admin|app|core>/service
make run

# 一键完整部署
.\scripts\docker\full_deploy.ps1

前端启动

前端项目统一存放于 frontend 目录,依赖安装命令一致:

前端 目录 启动命令
后台管理 frontend/admin pnpm dev
店铺前台 frontend/app pnpm dev
# 安装依赖
pnpm install

# 后台管理(Vue3 + Element Plus)
cd frontend/admin && pnpm dev

# 店铺前台(Nuxt + Vue 3)
cd frontend/app && pnpm dev

具体监听端口见各前端目录下的 .env.development


功能列表

商品与交易

功能 说明
商品管理 商品与 SKU 的发布、上下架与维护
商品属性 商品属性与属性值管理
类目管理 商品类目管理,支持树形结构
品牌管理 品牌信息管理
SKU 与定价 SKU、属性组合与价格管理
购物车 购物车与购物车项管理
订单管理 订单与订单明细管理
支付与退款 支付交易与退款记录管理
文件传输 商品图片与资源上传传输

平台与系统

功能 说明
用户档案 用户档案信息管理
租户管理 多租户管理与初始化
角色管理 角色与角色分组管理
权限管理 权限分组与权限点管理
菜单管理 系统菜单与按钮权限配置
组织管理 组织、部门、职位管理
接口管理 接口注册与同步
字典与多语言 数据字典与多语言内容管理
任务调度 异步任务与调度日志管理
文件管理 文件上传与对象存储管理
内部消息 站内消息与消息分类管理
审计日志 登录、操作、权限与数据访问审计日志

项目结构

go-wind-shop/
├── backend/                        # 后端项目
│   ├── api/                        # Protobuf API 定义与生成代码
│   │   ├── protos/                 # .proto 源文件(按领域分层)
│   │   └── gen/go/                 # buf 生成的 Go 代码
│   ├── app/                        # 应用实现层(admin / app / core 三个微服务)
│   │   └── <admin|app|core>/service/
│   │       ├── cmd/server/         # 入口 + wire 注入
│   │       ├── configs/            # 运行时配置(YAML)
│   │       └── internal/           # 业务核心(server / service / data)
│   ├── pkg/                        # 跨服务公共库
│   ├── scripts/                    # 部署与环境脚本(env / docker / deploy)
│   ├── sql/                        # 数据库种子 / 演示数据脚本
│   └── Makefile / app.mk           # 构建编排
├── frontend/                       # 前端项目
│   ├── admin/                      # Vue 3 + Element Plus 后台
│   └── app/                        # Nuxt + Vue 3 店铺前台
└── README.md

联系我们

  • 微信个人号:yang_lin_bo(备注:go-wind-shop

About

Production-ready cross-border e-commerce full-stack scaffold built with Go-Kratos microservices, Nuxt & Vue3, multi-language & multi-currency support.

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages