做过后台管理系统的程序员,应该都有过这样的经历。
每次接手一个新项目,业务功能还没开始写,就得先搭建一套后台管理系统。
用户管理、角色管理、菜单管理、权限控制、登录认证、操作日志......
这些功能几乎每个项目都需要,但每次从零开发又要花费不少时间。
尤其是对于个人开发者或者小团队来说,很多时候真正需要的,并不是一套庞大复杂的企业级框架,而是一个技术栈现代、功能完善、部署简单,还方便二次开发的基础项目。
所以,我开源了一个通用后台管理系统:ShiyuAdmin。
项目采用 Go + Gin + Gorm 作为后端,React + Ant Design Pro 作为前端,并且集成了 RBAC 权限管理、JWT 登录认证、系统监控、操作日志、Redis 缓存管理等功能。
最重要的是,项目已经适配 Docker Compose,可以快速部署一套完整的后台管理系统。
项目地址:
https://github.com/Rodert/ShiyuAdmin
项目主页:
https://rodert.github.io/ShiyuAdmin/
一、ShiyuAdmin 是什么?
ShiyuAdmin(仕宇通用管理后台)是一套开源、免费的前后端分离后台管理系统。
项目的目标很简单:
让开发者不再重复开发后台基础功能,把更多时间投入真正的业务开发。
比如你要开发一个电商后台、CMS 内容管理系统、内部管理平台,或者 AI 应用的管理后台。
通常都需要用户登录、权限分配、菜单管理、操作记录等基础能力。
有了 ShiyuAdmin,就可以直接在现有基础上进行二次开发,不必每次从零开始搭建。
它既适合作为实际业务项目的基础脚手架,也适合用来学习 Go 后端开发、React 前端开发和 RBAC 权限模型。
二、项目长什么样?
先来看一下实际界面。
1. 登录页面

项目内置 JWT 登录认证,并提供管理员和普通用户两种默认账户,方便快速体验不同的权限配置。
2. 后台首页

前端基于 Ant Design Pro 构建,整体界面比较简洁。
对于熟悉 React 技术栈的开发者来说,后续增加页面、菜单和业务模块也比较方便。
3. 数据可视化仪表盘

项目还集成了一套数据可视化仪表盘。
通过 ECharts 展示用户、角色、部门、操作日志、系统监控、访问地理分布等信息,包括趋势图、排行榜和地图等可视化组件。
对于需要系统监控大屏或者运营数据展示的场景,可以在此基础上继续扩展。
三、技术栈
技术选型上,我没有追求复杂,而是尽量选择成熟、社区活跃、方便维护的技术方案。
| 模块 | 技术 |
|---|---|
| 后端开发 | Go + Gin |
| ORM 框架 | Gorm |
| 身份认证 | JWT |
| 配置管理 | Viper |
| 前端开发 | React + TypeScript |
| 前端框架 | Umi Max + Ant Design Pro |
| 数据可视化 | ECharts |
| 数据库 | PostgreSQL、MySQL、SQLite、SQL Server |
| 缓存 | Redis |
| 容器部署 | Docker + Docker Compose |
| 自动化 | GitHub Actions |
这里比较值得一提的是 Go。
Go 本身具有并发模型简单、编译部署方便、运行资源开销相对较小等特点,很适合用来开发 API 服务和各类业务后台。
而 Gin 和 Gorm 的组合,也是不少 Go 开发者比较熟悉的技术方案。
前端则选择 React 和 Ant Design Pro,减少后台基础 UI 的重复开发工作。
整套项目采用前后端分离架构,前后端可以独立开发,部署时也可以通过统一容器提供访问入口。
四、内置了哪些功能?
ShiyuAdmin 不只是一个空白的后台页面,而是已经实现了一批通用管理功能。
1. 用户、角色、菜单和部门管理
对于后台管理系统而言,权限管理往往是最基础,也是最重要的部分。
ShiyuAdmin 内置了常见的系统管理模块,包括:
- 用户管理:管理后台用户及其账户信息。
- 角色管理:为不同用户分配对应角色。
- 菜单管理:配置后台菜单和访问权限。
- 部门管理:维护组织和部门信息。
这些功能可以为后续开发业务模块提供基础支持。
2. RBAC 权限控制
RBAC,全称 Role-Based Access Control,也就是基于角色的访问控制。
简单来说,就是通过角色来管理用户能够访问哪些资源。
例如一个后台系统中,有超级管理员、运营人员、普通用户三种角色。
超级管理员拥有完整管理权限;运营人员可以查看和管理指定业务数据;普通用户只能访问被授权的页面。
ShiyuAdmin 集成了 RBAC 权限模型,并结合 JWT 登录认证、动态菜单和接口权限控制,实现不同角色之间的权限隔离。
这样一来,开发新的业务模块时,就可以基于已有权限体系继续扩展。
3. 操作日志审计
后台系统除了实现功能,还需要知道用户做过什么。
比如谁修改了配置、谁删除了数据、什么时候执行了某个操作。
项目提供操作日志功能,用于记录新增、修改、删除等写操作,同时记录登录成功和登录失败的审计信息。
对于多用户协作的管理平台,这类日志非常实用。
4. 系统监控
项目提供系统监控能力,可以查看服务运行状态、系统运行信息以及数据库状态。
对于开发调试、部署检查和日常维护来说,不必所有问题都依靠登录服务器查看。
5. Redis 缓存管理
如果你的业务使用 Redis,缓存排查通常少不了 Redis CLI 或其他管理工具。
ShiyuAdmin 提供了 Redis 缓存管理功能,支持查看不同逻辑库中的数据,并按照 Key 和数据类型进行查询。
支持的类型包括 String、List、Set、ZSet、Hash 和 Stream。
这对于缓存调试和日常维护也有帮助。当然,生产环境中应严格限制缓存管理权限。
6. 数据库管理
项目还提供数据库基础管理功能,可以查看数据表结构、字段注释和基础数据。
开发过程中查看数据库信息会更加方便。
五、Docker 一键部署
我在开发这个项目时,比较重视的一点就是部署体验。
很多开源后台系统功能虽然丰富,但安装起来可能比较麻烦。
需要分别安装前端依赖、编译后端、配置数据库、配置 Redis,还要处理 Nginx 反向代理。
所以 ShiyuAdmin 提供了 Docker Compose 部署方案。
如果你的电脑已经安装了 Docker 和 Docker Compose,可以直接执行:
bash
git clone https://github.com/Rodert/ShiyuAdmin.git
cd ShiyuAdmin
docker compose -f docker-compose.yml -f docker-compose.local.yml up -d --build
这套本地部署配置会从源码构建应用,并启动 PostgreSQL、Redis 和包含前后端的应用容器。
完成后,在浏览器访问:
就可以进入后台管理页面。
默认管理员账号:
text
用户名:admin
密码:Admin@123
默认普通用户账号:
text
用户名:user
密码:User@123
需要注意的是,上面的账号用于本地体验。部署到公网或正式环境前,务必修改默认密码、数据库凭据及相关密钥。
如果不想从源码构建,项目还提供了通过 GHCR 镜像部署的方式。
除此之外,项目也支持 PostgreSQL、MySQL、SQLite、SQL Server 等不同数据库部署配置。
比如只想在本地快速体验,可以选择 SQLite;已有 MySQL 环境的开发者,也可以使用对应的 Compose 配置。
具体命令以项目 README 和部署文档为准。
六、代码结构怎么样?
项目的目录划分比较清晰。
text
ShiyuAdmin
├── backend/
│ └── shiyu-admin-backend
├── frontend/
│ └── shiyu-admin-web
├── site/
├── docs/
├── img/
├── docker-compose.yml
└── README.md
其中:
backend 是 Go 后端,主要承载 API 和业务逻辑。
frontend 是 React 前端,负责后台界面与交互。
site 是基于 Docusaurus 的项目官网和文档站。
docs 保存项目相关的部署说明与开发文档。
这样的结构比较适合二次开发。无论是增加新的 API,还是扩展后台管理页面,都可以在对应目录下进行维护。
对于正在学习 Go + React 全栈开发的同学,也可以把它作为一个完整的参考项目。
七、适合哪些场景?
我认为 ShiyuAdmin 比较适合以下几类场景。
第一种:快速搭建业务后台。
例如电商后台、内容管理系统、企业内部管理系统等。不必重复开发登录、用户、角色、菜单、权限管理,可以直接基于现有系统扩展。
第二种:个人独立开发。
对于独立开发者来说,时间往往比技术选型更加重要。
一个人既要写后端,又要开发前端,还得负责部署运维。
使用现成的后台脚手架,可以减少很多重复工作。
第三种:Go 全栈学习。
如果你正在学习 Go、Gin、Gorm、React,或者想系统了解 JWT 认证、RBAC 权限管理、Docker 部署,那么这个项目可以作为一个实践案例。
从登录认证到权限控制,再到数据库和缓存管理,都可以结合实际代码进行学习。
第四种:AI Coding 实战。
现在 AI 编程工具已经越来越成熟。
有了 ShiyuAdmin 这样的基础项目,还可以结合 Codex、Claude Code 等 AI 编程工具,尝试扩展新的业务功能。
比如让 AI 在现有后台基础上增加订单管理、商品管理、API Key 管理等模块。
这样不仅能练习 AI Coding,也更容易形成真正可以使用的项目。
当然,AI 生成的新功能仍然需要检查权限边界、接口安全和数据处理逻辑。
八、为什么选择开源?
我一直认为,开发者最有价值的工作,不应该是反复编写那些已经非常成熟的基础功能。
如果一套通用后台能够帮助其他开发者节省几个小时,甚至几天的开发时间,那它就有了实际价值。
ShiyuAdmin 目前采用 Apache License 2.0 开源协议。
无论你是想学习源码,还是用于自己的项目,都可以根据许可证要求使用和修改。
项目也欢迎大家提交 Issue、PR,参与功能完善和问题修复。
后续我也希望继续完善这套系统的基础能力、开发体验和部署流程,让它成为一个真正实用的 Go 后台管理脚手架。
九、最后
如果你正在寻找一套 Go + React 技术栈的后台管理系统,或者准备开发自己的 SaaS 平台、企业内部工具、AI 应用后台,可以看看 ShiyuAdmin。
项目不追求堆砌大量业务功能,而是希望把后台开发中最常见的基础能力做好。
让开发者可以把精力放在真正有价值的业务上。
项目完全开源,欢迎下载体验,也欢迎提出建议。
GitHub:
https://github.com/Rodert/ShiyuAdmin
项目主页:
https://rodert.github.io/ShiyuAdmin/
国内 Gitee:
https://gitee.com/rodert/ShiyuAdmin
如果这个项目对你有帮助,也欢迎在 GitHub 点个 Star,支持项目持续维护。
我是 JavaPub,我们下期再见!