Skip to content

Awuqing/GoAdminX

Repository files navigation

GoAdminX v3 — Enterprise Admin Scaffold Platform

Go + React 企业级后台管理脚手架平台

CI Release License Go Report Go React Arco Design


Screenshots

Login Page
登录页面
Dashboard
工作台仪表盘
User Management
用户管理 (CSV 导入/导出)
Role Management
角色管理 (Casbin RBAC)
CMS Markdown Editor
CMS Markdown 编辑器 (react-markdown + remark-gfm + 封面上传)

Overview

GoAdminX 是一个开箱即用的企业级后台管理脚手架,提供完整的权限管理、业务示范模块和开发者工具链。它不仅仅是一个 CRUD 管理后台,而是一个带有工作流引擎、定时任务调度、通知推送、代码生成器等平台级能力的快速开发基座。

Why GoAdminX?

优势 说明
开箱即用 内置完整的用户/角色/菜单/部门/字典/日志/监控等系统模块
平台级能力 SSE 实时推送、Cron 调度器、工作流审批、可视化代码生成器
最小依赖 默认 SQLite + 可选 Redis,零配置启动
多数据库 支持 MySQL / PostgreSQL / SQLite
企业级 UI Arco Design 组件库,暗色主题、国际化、响应式布局
生产就绪 Docker 一键部署,操作日志自动记录,多租户隔离

Tech Stack

层级 技术
后端 Go 1.22+, Gin, GORM, Casbin (RBAC)
前端 React 18, TypeScript, Vite 5, Arco Design
数据库 SQLite (默认) / MySQL / PostgreSQL
缓存 Redis (可选,不可用时自动降级)
部署 Docker, docker-compose

Features

🔐 权限与安全

  • 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)

🎨 UI/UX

  • 暗色主题切换 — 一键切换 + localStorage 持久化
  • 国际化 (i18n) — 中文/English 切换 + zustand 持久化
  • Markdown 编辑器 — react-markdown + remark-gfm 完整 GFM 支持
  • 封面图上传 — Upload 组件集成文件上传

📦 内置模块

模块 说明
用户管理 CRUD + CSV 导入/导出 + 头像上传
角色管理 Casbin 策略绑定
菜单管理 树形结构,驱动前端路由
部门管理 多层级组织架构
字典管理 键值对配置
系统监控 运行时信息
操作日志 自动记录 + 手动查询
API 资源 接口权限管理
系统配置 统一配置面板
通知中心 SSE 实时推送
定时任务 cron 调度 + 执行日志

🏢 业务示范模块

模块 说明
CMS 内容管理 文章全生命周期:草稿 → 待审核 → 已发布 → 已下架
工单系统 工单 CRUD + 评论 + 统计摘要
工作流引擎 流程定义 + 实例发起 + 审批记录

Quick Start

Prerequisites

  • Go 1.22+
  • Node.js 18+
  • (可选) Redis 7+
  • (可选) MySQL 8+ / PostgreSQL 15+

Local Development

# 克隆项目
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

Docker Deployment

# 一键启动 (app + Redis)
docker-compose up -d

# 访问 http://localhost:8080

Default Credentials

用户名 密码
admin 123456

Project Structure

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

Configuration

后端配置文件 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 Documentation

所有 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

欢迎贡献!请阅读 CONTRIBUTING.md 了解开发规范。

License

MIT License


Built with Go + React + Arco Design
GoAdminX — 让后台管理系统开发更简单

About

GoAdminX 是一个开箱即用的企业级后台管理脚手架,提供完整的权限管理、业务示范模块和开发者工具链。它不仅仅是一个 CRUD 管理后台,而是一个带有工作流引擎、定时任务调度、通知推送、代码生成器等平台级能力的快速开发基座。

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages