Skip to content

Repository files navigation

GoWind Admin|风行

GoWind Admin|风行

License Go Version Vue React Docker

English | 中文 | 日本語


项目亮点

  • 多前端适配:同时提供 Vue3 Vben(Ant Design Vue)、Vue3 Element PlusReact19 Antd 三套前端,满足不同团队偏好
  • 企业级 RBAC:支持多租户、多角色、多部门、菜单/按钮/数据级权限控制(Casbin / OPA / Zanzibar)
  • 安全与等保合规:按等保 2.0 技术要求内置 180 天审计日志留存归档、口令策略三件套、TOTP MFA、口令应用层加密、动态 RBAC 与多租户隔离、定时备份轮换,详见安全与等保合规
  • 微服务 + 单体自由切换:基于 go-kratos 微服务框架,但支持单体架构模式开发与部署,灵活适配团队规模
  • 全栈代码生成:Protobuf → Go API / TypeScript 客户端,Ent Schema → ORM,一键 CRUD 脚手架;配套桌面端可视化代码生成器与 CLI(go-wind-toolkit,见配套工具
  • 生产就绪:JWT 鉴权、SSE 消息推送、异步任务调度、分布式链路追踪、Swagger 文档、Docker 一键部署

演示地址

前端版本 演示地址
Vue3 Vben https://vben.admin.gowind.cloud
Vue3 Element Plus https://ele.admin.gowind.cloud
React https://react.admin.gowind.cloud

技术栈

层级技术
后端框架Golang · go-kratos v2 · Protobuf / Buf
ORMEnt(主要) · GORM(辅助) · MySQL · PostgreSQL
中间件Redis 8.0+ · MinIO(S3 兼容对象存储) · Jaeger(链路追踪)
认证授权JWT · Casbin · OPA · Zanzibar
实时通信SSE(服务端推送) · Asynq(异步任务)
脚本引擎go-scripts · Lua(gopher-lua) · JavaScript(goja) · 多语言 Hook 插件系统
Vue Vben 版Vue 3 · TypeScript · Vite · Ant Design Vue · Vben Admin
Vue Element 版Vue 3 · TypeScript · Vite · Element Plus(轻量纯净版)
React 版React 19 · TypeScript · Vite · Zustand · Ant Design V6(无 UMI)
部署运维Docker · Docker Compose · PM2 · Swagger UI

安全与等保合规

本项目的安全能力参照《网络安全等级保护 2.0》(二级/三级)技术要求设计,面向企业高隐私私有化部署场景开箱即用:

等保技术要求 落地实现
安全审计 六类审计日志全覆盖:登录 / 操作 / API / 数据访问 / 权限变更 / 策略评估,记录 IP 归属地与 trace_id。asynq 每日定时归档:库内留存 180 天(AUDIT_RETENTION_DAYS 可调),超期数据导出 JSONL 归档文件留痕,库瘦身与日志留存两不误
身份鉴别 口令复杂度(≥8 位、小写/大写/数字/符号四类取三)、历史口令复用检查(默认近 3 条)、口令有效期(默认 90 天),阈值经「参数管理」平台参数调整(内置参数启动时播种,环境变量配置已废弃);TOTP 多因素认证(MFA);图形验证码;Redis 登录失败限流(IP + 用户名双维度);可配置登录限制策略
访问控制 动态 RBAC 权限引擎(Casbin / OPA / Zanzibar 可切换),角色—权限—接口映射存于数据库,权限变更即时热更新生效;菜单/按钮级权限控制,角色级行数据权限范围(V1 试点:岗位表)与字段级权限(V1 试点:用户表,黑名单字段自响应裁剪);每次鉴权判定落策略评估日志可追溯
多租户隔离 ent Privacy 策略编译级数据隔离:读查询自动注入租户过滤,Create 防伪造租户、Update / Delete 注入租户谓词(跨租户变更命中 0 行);租户请求按 (path, method) 经 Api 表 fail-closed 校验(缺权限点即拒绝);套餐模块白名单与到期只读策略
数据保密性 登录口令应用层 AES 加密传输、bcrypt 哈希存储;敏感任务配置 AES-256-GCM 静态加密(Ent Hook 透明加解密);JWT RS256 非对称签名;refresh token 走 HttpOnly Cookie;传输层 TLS 由部署层启用(后端 server.rest.tls 配置或 nginx / 负载均衡终止)
数据备份恢复 scripts/backup/pg_backup.sh 定时全量备份(pg_dump,默认保留 30 份自动轮换),支持 Docker 容器 / 本地直连双模式,附恢复操作文档
前端安全 三套前端生产构建均启用 CSP、X-Frame-Options、HSTS 等安全响应头

说明:等保测评除技术要求外,还包含管理制度、物理环境、人员组织等非软件范畴的内容。本项目覆盖的是技术措施部分,可为私有化部署的等保测评准备提供直接支撑,但不能替代完整的等保测评流程。


快速开始

环境要求

工具 版本
Go 1.26+(以 backend/go.mod 为准)
Node.js 以各前端 package.jsonengines 为准(当前约束交集 ≥ 20.19.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 运行调试

后端启动

后端命令统一走 gow CLI(安装:go install github.com/tx7do/go-wind-toolkit/gowind/cmd/gow@latest,详见配套工具)。

Linux / macOS:

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

# 开发环境(推荐)
./scripts/env/install_unix_dev.sh
./scripts/docker/libs_only.sh
gow run admin

# 生产环境
./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
gow run admin

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

前端启动

前端统一存放于 frontend/admin 目录,三版前端共享依赖安装命令:

前端版本 目录 启动命令 端口
React frontend/admin/react pnpm dev 5888
Vue Element frontend/admin/vue-element pnpm dev 5777
Vue Vben frontend/admin/vue-vben pnpm dev:antd 5666
# 安装依赖
pnpm install

# React 版本
cd frontend/admin/react && pnpm dev

# Vue3 Element 版本
cd frontend/admin/vue-element && pnpm dev

# Vue3 Vben 版本
cd frontend/admin/vue-vben && pnpm dev:antd

功能列表

各列表页(业务数据与审计日志)均支持按当前筛选条件分页聚合导出,格式可选 CSV / XLSX(上限 1 万行)。

组织与权限

功能 说明
用户管理 管理和查询用户,支持高级查询和按部门联动用户,用户可禁用/启用、设置/取消主管、重置密码、配置多角色、多部门和上级主管、一键登录指定用户等功能
租户管理 管理租户,新增租户后自动初始化租户部门、默认角色和管理员。支持配置套餐、禁用/启用、一键登录租户管理员功能
套餐与配额管理 管理租户订阅套餐及其资源配额(如模块白名单、用量上限),支持套餐与配额项的增删改查
角色管理 管理角色和角色分组,支持按角色联动用户,设置菜单授权、数据权限范围(五档 / 自定义组织单元集)与字段级权限(黑名单字段集),批量添加和移除员工
权限管理 管理权限分组、菜单、权限点,支持树形列表展示
组织管理 管理组织,支持树形列表展示
职位管理 用户职务管理,职务可作为用户的一个标签;支持 Excel 导入(客户端模板下载、逐行走既有创建接口、行级错误回报,所属组织列按组织名称精确匹配回填组织单元)
菜单管理 配置系统菜单,操作权限,按钮权限标识等,包括目录、菜单、按钮;支持菜单同步(三端齐备,事务化清空重建或增量合并两种模式,合并模式按全路径匹配原位更新并保留既有菜单 ID 与角色授权)

系统功能

功能 说明
接口管理 管理接口,支持接口同步功能,主要用于新增权限点时选择接口,支持树形列表展示、操作日志请求参数和响应结果配置
字典管理 管理数据字典大类及其小类,支持按字典大类联动字典小类、服务端多列排序、数据导入和导出
任务调度 管理和查看任务及其任务运行日志,支持任务新增、修改、删除、启动、暂停、立即执行
文件管理 管理文件上传,支持文件查询、上传到 OSS 或本地、下载、复制文件地址、删除文件、图片支持查看大图功能
登录策略 管理登录限制策略,配置目标用户的限制类型、限制方式、限制值与限制原因
账号登录 支持用户名 / 邮箱 / 手机号多标识登录,可叠加图形验证码、登录策略与 TOTP 多因素认证
多因素认证(MFA) 基于 TOTP 的多因素认证,含登录挑战、个人中心绑定管理,以及管理员救援重置用户 MFA 的解锁路径
找回密码 绑定邮箱验证码找回密码:验证码 10 分钟单次有效、重置成功即吊销全部会话,静默处理防用户枚举
通知渠道 管理通知渠道(EMAIL / SMTP),密码加密存储、列表脱敏展示,支持启用 / 停用与测试发送
服务监控 只读展示服务运行时指标(CPU 核数、内存、goroutine 数、运行时长等),自动刷新
脚本系统 脚本级插件系统(Lua / JavaScript,数据库为事实源,管理页增改即时生效):实体生命周期钩子(before 可否决 / after 异步)、定时任务(asynq 调度)、HTTP 出站(域名白名单 fail-closed)、试运行与执行日志;详见 docs/script_system.md
参数管理 平台全局系统参数的键值管理(区别于业务字典),内置参数启动时播种、禁删可改;服务侧经缓存 accessor 读取,多实例部署下参数变更经 Redis 发布订阅广播失效各实例缓存
机器凭证(AK/SK) 租户级 AccessKey / SecretKey 管理:创建时 Secret 一次性展示,支持启停、删除与密钥轮换重置(轮换后旧 Secret 立即失效);AK / Secret 可经令牌交换端点换取租户作用域机器 JWT(machine 角色、仅签发 access 令牌),交换端点按 IP + AK 接入尝试限流
语言管理 管理系统支持的多语言,配置语言名称、语言代码、本地名称、启用与默认状态

消息与日志

功能 说明
消息分类 管理消息分类,支持 2 级自定义消息分类,用于消息管理消息分类选择
消息管理 管理消息,支持按发送范围(全员 / 指定用户)发送与消息撤销,全员广播走异步任务队列投递(断点恢复、幂等),可查看用户是否已读和已读时间
站内信 站内消息管理,支持消息详细查看、删除、标为已读、全部已读功能
登录日志 登录日志列表查询,记录用户登录成功和失败日志,支持 IP 归属地记录
操作日志 操作日志列表查询,记录用户操作正常和异常日志,支持 IP 归属地记录与资源对象定位,查看操作日志详情
API 日志 API 日志列表查询,记录 API 请求的操作者、请求路径、方法与成功状态,支持 IP 归属地记录
数据日志 数据访问日志列表查询,记录数据访问行为,SQL 词法脱敏,自动提取涉及表名与数据分类
权限日志 权限变更日志列表查询,记录权限变更的操作者、目标对象与原因,留存请求快照
策略评估日志 策略评估日志列表查询,记录每次鉴权判定的结果与评估上下文,支持 trace_id 关联排障
Redis 缓存监控 Redis 缓存监控,只读展示 Redis INFO、DBSIZE 与慢日志数据,不执行写操作

个人中心

功能 说明
个人中心 个人信息展示和修改,查看最后登录信息,密码修改、邮箱绑定 / 换绑(验证码校验)等功能

项目结构

go-wind-admin/
├── backend/                        # 后端项目
│   ├── api/                        # Protobuf API 定义与生成代码
│   │   ├── protos/                 # .proto 源文件(按领域分层)
│   │   └── gen/go/                 # buf 生成的 Go 代码
│   ├── app/admin/service/          # Admin 服务应用
│   │   ├── cmd/server/             # 入口 (main.go, wiring_ent.go 依赖装配)
│   │   ├── configs/                # 配置文件 (YAML)
│   │   └── internal/               # 业务核心(data/service/server)
│   ├── pkg/                        # 公共包
│   │   ├── scripting/              # 多语言脚本引擎(Lua + JavaScript)
│   │   ├── oss/                    # 对象存储(MinIO)
│   │   ├── eventbus/               # 事件总线
│   │   └── ...                     # 其他工具包
│   ├── scripts/                    # 部署与备份脚本(env/docker/deploy/backup)
│   └── sql/                        # 演示数据 SQL(默认数据由服务启动自动播种)
├── frontend/admin/                 # 前端项目
│   ├── react/                      # React 19 + Ant Design V6
│   ├── vue-element/                # Vue 3 + Element Plus
│   └── vue-vben/                   # Vue 3 + Ant Design Vue + Vben Admin
└── docs/                           # 项目文档

截图展示

后台用户登录界面 后台分析界面
后台用户列表界面 后台创建用户界面
后台租户列表界面 后台创建租户界面
组织单位列表界面 创建组织单位界面
后台职位列表界面 后台创建职位界面
后台角色列表界面 后台创建角色界面
后台权限列表界面 后台创建权限界面
后台目录列表界面 后台创建目录界面
后台调度任务列表界面 后台创建调度任务界面
后台数据字典列表界面 后台创建数据字典条目界面
后台站内信消息列表界面 后台发布站内信消息界面
登录策略列表界面 登录策略创建界面
后台登录日志界面 后台操作日志界面
API列表界面 后端内置Swagger UI界面

配套工具

  • go-wind-toolkit / gowind-uiapp —— 跨平台桌面端代码生成器(Go + Wails):一键导入 SQL 或直连数据库表(MySQL / PostgreSQL / SQLite / SQL Server / Oracle),自动生成服务端与前端代码,支持 gRPC / RESTful 等多种模板与简单表单生成;另提供非交互、JSON 输出的 CLI(gowind-cli),便于脚本与 AI Agent 调用。
  • gow —— GoWind CLI —— 本项目的推荐命令行入口:gow run admin 运行服务,gow ent / gow api 代码生成,gow generate 从数据库 DSN 生成 CRUD 微服务,gow extract 微服务模块拆分演进。在 backend/ 下执行,自动发现 app/*/service,日常开发优先于 Makefile 使用。

社区与贡献

欢迎参与 GoWind Admin 的建设。以下文档说明如何贡献代码、报告问题与反馈安全漏洞:

联系我们

  • 微信个人号:yang_lin_bo(备注:go-wind-admin
  • 掘金专栏:go-wind-admin

致谢

JetBrains

感谢 JetBrains 提供免费的 GoLand & WebStorm 开源授权。

About

Out-of-the-box enterprise full-stack admin scaffold powered by Go (Kratos/Ent) and Vue3/React19. Multi-tenant ready.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

554 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages