# go-wind-shop
**Repository Path**: tx7do/go-wind-shop
## Basic Information
- **Project Name**: go-wind-shop
- **Description**: Production-ready cross-border e-commerce full-stack scaffold built with Go-Kratos microservices, Nuxt & Vue3, multi-language & multi-currency support.
- **Primary Language**: Go
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-08-05
- **Last Updated**: 2026-08-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Go语言, 商城, 微服务
## README
# GoWind Shop|风行商城
**开箱即用的企业级出海电商全栈脚手架**
> 让出海电商开发如风般自由 — GoWind Shop
[](https://go.dev/)
[](https://vuejs.org/)
[](https://www.docker.com/)
**中文** | [English](./README.en-US.md) | [日本語](./README.ja-JP.md)
---
## 项目简介
GoWind Shop(风行商城)是一套面向出海场景的企业级多语言电商平台,采用 API 优先、前后端分离架构,提供多语言原生内容分发、多币种商品展示与单一结算币种能力。后端基于 [golang](https://go.dev/) + [go-kratos](https://go-kratos.dev/) 微服务框架,采用 Protobuf-first(契约驱动)工作流;前端后台基于 [Vue.js 3](https://vuejs.org/) + [TypeScript](https://www.typescriptlang.org/),店铺前台基于 [Nuxt](https://nuxt.com/) + 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 架构:`admin` 与 `app` 为瘦网关,仅做参数校验与 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 |
| ORM | entgo.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:**
```shell
# 赋予脚本执行权限
chmod +x scripts/**/*.sh
# 开发环境(推荐)
./scripts/env/install_unix_dev.sh
./scripts/docker/libs_only.sh
cd backend/app//service
make run
# 生产环境
./scripts/env/install_unix_prod.sh
./scripts/docker/full_deploy.sh
# PM2 进程托管(生产进阶)
./scripts/deploy/pm2_service.sh
```
**Windows(PowerShell 管理员):**
```powershell
# 放行脚本策略(首次仅需执行一次)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
# 初始化环境
.\scripts\env\install_windows_dev.ps1
# 本地开发
.\scripts\docker\libs_only.ps1
cd backend/app//service
make run
# 一键完整部署
.\scripts\docker\full_deploy.ps1
```
### 前端启动
前端项目统一存放于 `frontend` 目录,依赖安装命令一致:
| 前端 | 目录 | 启动命令 |
|------|------|---------|
| 后台管理 | `frontend/admin` | `pnpm dev` |
| 店铺前台 | `frontend/app` | `pnpm dev` |
```shell
# 安装依赖
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 三个微服务)
│ │ └── /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`)