Go + React 企业级后台管理脚手架平台
![]() 登录页面 |
![]() 工作台仪表盘 |
![]() 用户管理 (CSV 导入/导出) |
![]() 角色管理 (Casbin RBAC) |
![]() CMS Markdown 编辑器 (react-markdown + remark-gfm + 封面上传) |
|
GoAdminX 是一个开箱即用的企业级后台管理脚手架,提供完整的权限管理、业务示范模块和开发者工具链。它不仅仅是一个 CRUD 管理后台,而是一个带有工作流引擎、定时任务调度、通知推送、代码生成器等平台级能力的快速开发基座。
| 优势 | 说明 |
|---|---|
| 开箱即用 | 内置完整的用户/角色/菜单/部门/字典/日志/监控等系统模块 |
| 平台级能力 | SSE 实时推送、Cron 调度器、工作流审批、可视化代码生成器 |
| 最小依赖 | 默认 SQLite + 可选 Redis,零配置启动 |
| 多数据库 | 支持 MySQL / PostgreSQL / SQLite |
| 企业级 UI | Arco Design 组件库,暗色主题、国际化、响应式布局 |
| 生产就绪 | Docker 一键部署,操作日志自动记录,多租户隔离 |
| 层级 | 技术 |
|---|---|
| 后端 | Go 1.22+, Gin, GORM, Casbin (RBAC) |
| 前端 | React 18, TypeScript, Vite 5, Arco Design |
| 数据库 | SQLite (默认) / MySQL / PostgreSQL |
| 缓存 | Redis (可选,不可用时自动降级) |
| 部署 | Docker, docker-compose |
- Casbin 细粒度 RBAC 权限控制
- JWT 认证 + 可选 Redis Token 黑名单
- 操作日志自动记录中间件 (POST/PUT/DELETE)
- 多租户数据隔离 (GORM 全局 Scope)
- SSE 实时通知 — 服务端推送,Header 徽标实时更新
- Cron 定时任务 — 基于 robfig/cron/v3,任意 cron 表达式
- 工作流引擎 — 多步骤审批流,角色匹配
- 通知模板 — Go text/template 引擎,7 个内置模板
- 数据导入/导出 — CSV 导入 (Upload) + CSV 导出
- 可视化代码生成器 — 选表 → 配置字段 → 预览 → 一键写入项目
- 动态路由 (后端菜单驱动,Vite import.meta.glob)
- 暗色主题切换 — 一键切换 + localStorage 持久化
- 国际化 (i18n) — 中文/English 切换 + zustand 持久化
- Markdown 编辑器 — react-markdown + remark-gfm 完整 GFM 支持
- 封面图上传 — Upload 组件集成文件上传
| 模块 | 说明 |
|---|---|
| 用户管理 | CRUD + CSV 导入/导出 + 头像上传 |
| 角色管理 | Casbin 策略绑定 |
| 菜单管理 | 树形结构,驱动前端路由 |
| 部门管理 | 多层级组织架构 |
| 字典管理 | 键值对配置 |
| 系统监控 | 运行时信息 |
| 操作日志 | 自动记录 + 手动查询 |
| API 资源 | 接口权限管理 |
| 系统配置 | 统一配置面板 |
| 通知中心 | SSE 实时推送 |
| 定时任务 | cron 调度 + 执行日志 |
| 模块 | 说明 |
|---|---|
| CMS 内容管理 | 文章全生命周期:草稿 → 待审核 → 已发布 → 已下架 |
| 工单系统 | 工单 CRUD + 评论 + 统计摘要 |
| 工作流引擎 | 流程定义 + 实例发起 + 审批记录 |
- Go 1.22+
- Node.js 18+
- (可选) Redis 7+
- (可选) MySQL 8+ / PostgreSQL 15+
# 克隆项目
git clone https://github.com/Awuqing/GoAdminX.git
cd GoAdminX
# 启动后端
cd server
cp config.yaml.example config.yaml # 按需修改配置
go mod tidy
go run main.go
# 服务运行在 http://localhost:8080
# 启动前端 (新终端)
cd web
npm install
npm run dev
# 访问 http://localhost:5174# 一键启动 (app + Redis)
docker-compose up -d
# 访问 http://localhost:8080| 用户名 | 密码 |
|---|---|
admin |
123456 |
GoAdminX/
├── server/ # Go 后端
│ ├── api/ # HTTP 处理器
│ │ ├── auth.go # 认证 (登录/登出/刷新)
│ │ ├── user.go # 用户管理
│ │ ├── cms.go # CMS 文章/分类/标签
│ │ ├── ticket.go # 工单系统
│ │ ├── workflow.go # 工作流引擎
│ │ ├── job.go # 定时任务
│ │ ├── notification.go # 通知中心
│ │ ├── sse.go # SSE 实时推送
│ │ ├── dashboard.go # 仪表盘统计
│ │ ├── codegen.go # 代码生成器
│ │ ├── codegen_write.go # 代码写入 + CSV 导入
│ │ └── export.go # 数据导出
│ ├── middleware/ # 中间件
│ │ ├── jwt.go # JWT 认证 (支持 query token)
│ │ ├── operation_logger.go # 操作日志自动记录
│ │ ├── tenant.go # 多租户隔离
│ │ └── ...
│ ├── model/ # GORM 数据模型
│ ├── service/ # 业务逻辑
│ │ ├── scheduler.go # Cron 调度器 (robfig/cron/v3)
│ │ └── notification_template.go # 通知模板引擎
│ ├── initialize/ # 初始化 (DB, Router, Logger)
│ ├── config/ # 配置加载
│ ├── global/ # 全局变量
│ └── main.go # 入口
├── web/ # React 前端
│ ├── src/
│ │ ├── api/ # API 客户端
│ │ ├── components/ # 共享组件
│ │ ├── layout/ # 应用布局 (SSE, 主题, i18n)
│ │ ├── locales/ # 国际化翻译
│ │ ├── pages/ # 页面组件
│ │ │ ├── dashboard/ # 仪表盘 (真实统计)
│ │ │ ├── system/ # 系统管理模块
│ │ │ ├── cms/ # CMS (Markdown 编辑器)
│ │ │ ├── ticket/ # 工单系统
│ │ │ ├── workflow/ # 工作流
│ │ │ ├── devtools/ # 代码生成器
│ │ │ └── profile/ # 个人中心 (头像上传)
│ │ ├── router/ # 动态路由
│ │ └── store/ # Zustand 状态管理
│ └── vite.config.ts
├── Dockerfile # 多阶段构建
├── docker-compose.yml # 编排 (app + Redis)
├── LICENSE
└── README.md
后端配置文件 server/config.yaml:
server:
port: 8080
mode: debug # debug / release
database:
driver: sqlite # sqlite / mysql / postgres
dbname: admin.db
redis:
mode: single # single / sentinel / cluster
addr: localhost:6379
jwt:
secret: your-secret-key
expires: 86400 # seconds所有 API 以 /api/v1 为前缀,需携带 Authorization: Bearer <token> 头。
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/v1/auth/login |
用户登录 |
| GET | /api/v1/users |
用户列表 |
| GET | /api/v1/dashboard/stats |
仪表盘统计 |
| GET | /api/v1/sse/notifications |
SSE 实时通知 |
| POST | /api/v1/codegen/generate |
代码生成 |
| POST | /api/v1/codegen/write |
代码写入项目 |
| GET | /api/v1/export/users |
用户导出 CSV |
| POST | /api/v1/import/users |
用户导入 CSV |
完整 API 列表见 server/initialize/router.go。
欢迎贡献!请阅读 CONTRIBUTING.md 了解开发规范。
Built with Go + React + Arco Design
GoAdminX — 让后台管理系统开发更简单




