一个为中后台管理系统设计的现代化后端解决方案,基于 Go Zero 框架构建,提供完整的 RBAC(基于角色的访问控制)能力。
Last Admin Core 是 Last Admin 开源方案的后端核心组件。它提供了一套可扩展的 API 和 RPC 服务基础设施,用于构建企业级管理系统,具备权限控制和多角色支持能力。
- RBAC 实现:基于 Casbin 的灵活角色权限控制
- 多角色支持:
- 多角色菜单管理
- 多角色配置项管理
- 细粒度权限控制
- 双服务架构:
- REST API 服务(面向客户端应用)
- gRPC RPC 服务(内部服务通信)
- 企业级可靠性:基于成熟技术栈,生产级别的稳定性
- Go Zero:高性能微服务框架
- Go 1.24.2
- gRPC & Protocol Buffers:高效的 RPC 通信
- Ent:数据库实体框架
- Casbin:权限管理库(RBAC 实现)
- Redis:缓存和分布式锁
- PostgreSQL:主数据库(支持 MySQL 和 SQLite3)
- JWT:令牌认证
- OAuth2:第三方认证支持
- OTP:一次性密码支持(双因素认证)
- UUID:唯一标识符生成
- Validator:输入验证和本地化支持
last-admin-core/
├── api/ # REST API 服务
│ ├── core.go # API 入口
│ ├── desc/ # API 定义
│ ├── internal/ # 内部实现
│ ├── etc/ # 配置文件
│ └── swagger.json # API 文档
├── rpc/ # gRPC RPC 服务
│ ├── core.go # RPC 入口
│ ├── core.proto # Protocol Buffer 定义
│ ├── internal/ # 内部实现
│ ├── types/ # 生成的类型
│ ├── ent/ # 实体定义
│ └── etc/ # 配置文件
├── deploy/ # 部署脚本
│ ├── install.sh # Linux/macOS 部署
│ ├── install.ps1 # Windows 部署
│ ├── docker-compose.yml # Docker Compose 配置
│ └── templates/ # 配置模板
├── scripts/ # 工具脚本
│ └── migrate/ # 数据库迁移
├── Dockerfile.api # API 服务 Docker 镜像
├── Dockerfile.rpc # RPC 服务 Docker 镜像
├── Makefile # 构建和代码生成命令
└── go.mod # Go 模块定义
为客户端应用提供 HTTP REST 接口,处理:
- 用户认证和授权
- 资源管理
- 配置管理
- 菜单和角色管理
入口文件:api/core.go
为内部服务通信提供高性能 gRPC 接口,包含:
- API 服务
- 字典服务
- 角色服务
- 菜单服务
- 部门服务
- 职位服务
- 用户服务
- OAuth 提供商服务
- 初始化服务
- 令牌服务
- 配置服务
入口文件:rpc/core.go
- Go 1.24.2 或更高版本
- PostgreSQL 数据库
- Redis
项目提供了自动化部署脚本,支持多种部署方式:
无需克隆整个仓库,直接下载并运行安装脚本:
Linux/macOS:
curl -fsSL https://raw.githubusercontent.com/Wenpiner/last-admin-core/main/install-bootstrap.sh | bash或使用 wget:
wget -qO- https://raw.githubusercontent.com/Wenpiner/last-admin-core/main/install-bootstrap.sh | bash如果已克隆仓库,可以使用本地脚本:
Linux/macOS:
cd deploy
bash install.shWindows:
cd deploy
.\install.ps1使用 Docker Compose 快速启动所有服务:
cd deploy
docker compose up -d生成 RPC 服务代码:
make gen-rpc生成 API 服务代码:
make gen-api生成 Swagger 文档:
make swagger生成 Ent 实体代码:
make ent-generate执行数据库迁移:
make ent-migrateAPI 和 RPC 服务均使用 YAML 配置文件,位置如下:
- API:
api/etc/core.yaml - RPC:
rpc/etc/core.yaml
API 文档通过 Swagger UI 提供。部署完成后,可通过配置的 API 端点访问 Swagger 界面。
本地生成 Swagger 文档:
make swagger
make swagger-serveSwagger UI 将在 http://localhost:36666 可访问
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
MIT 许可证是一个宽松的开源许可证,允许你:
- ✅ 将软件用于任何目的
- ✅ 复制、修改和分发软件
- ✅ 在私有或商业项目中使用软件
唯一的要求是:
- 📋 包含许可证副本和版权声明
更多信息,请访问 opensource.org/licenses/MIT
如有问题或建议,请参考项目仓库。
Last Admin Core - 用 Go 构建企业级管理系统