# rbac-user-service **Repository Path**: grow-project/rbac-user-service ## Basic Information - **Project Name**: rbac-user-service - **Description**: go语言的权限管理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-28 - **Last Updated**: 2026-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RBAC User Service 基于 Go + Gin + GORM 构建的 RBAC 用户权限管理服务。 ## 技术栈 - **Web 框架**: Gin v1.12.0 - **数据库 ORM**: GORM v1.31.2 - **数据库**: MySQL - **缓存/限流**: Redis v9.21.0 - **认证**: JWT (golang-jwt v5.3.1) - **日志**: Zap v1.28.0 - **配置管理**: Viper v1.21.0 ## 快速开始 ### 1. 安装依赖 ```bash go mod download ``` ### 2. 准备配置 ```bash cp .env.example .env # 按需修改 .env:DB 密码、Redis 地址、JWT secret 等 ``` ### 3. 启动 MySQL 与 Redis —— 二选一 应用代码不区分 MySQL/Redis 是 Docker 还是本机原生安装, 仅看 `.env` 中的 `APP_DATABASE_HOST` / `APP_REDIS_ADDR`。 两种方式可以随时切换。 #### 方式 A:Docker Compose(开箱即用) ```bash make dev # 起 MySQL + Redis + (可选) app 容器 make dev-down # 停止 ``` `.env` 里需要: ```env APP_DATABASE_HOST=localhost # 通过宿主机端口映射访问 APP_REDIS_ADDR=localhost:6379 ``` 如果让 app 也跑在 compose 内,则 host 改成 `mysql` / `redis:6379`。 #### 方式 B:本机原生 MySQL / Redis(不依赖 Docker) 前提:本机已经 `brew install mysql redis` / `apt install mysql-server redis-server`。 ```bash make local-up # brew services 或 systemctl 启动两者 make local-init # 用 root 建库 + 建用户 + 执行 migrations # 或者一步到位: make local-bootstrap # = local-up + local-init ``` 详细步骤、平台差异和常见问题见 👉 [docs/v1.0/local-setup.md](docs/v1.0/local-setup.md)。 ### 4. 启动服务 ```bash export $(grep -v '^#' .env | xargs) make run ``` 服务默认监听 `http://localhost:8080`。 --- ## 项目结构 ``` rbac-user-service/ ├── cmd/server/ # 应用入口 ├── configs/ # 配置文件 ├── deployments/ # Docker 部署文件 ├── docs/ # 文档 ├── internal/ # 内部包 │ ├── config/ # 配置 / MySQL / Redis / Logger 初始化 │ ├── handler/ # HTTP 处理器 │ ├── middleware/ # 中间件 │ ├── model/ # 数据模型 │ ├── repository/ # 数据访问层 │ ├── service/ # 业务逻辑层 │ └── pkg/ # 公共工具 ├── migrations/ # 数据库迁移 SQL └── scripts/ # 本地启动 / 初始化脚本 ``` ## 文档 - [学习文档索引](docs/00-index.md) - [本地(非 Docker)启动指南](docs/v1.0/local-setup.md) - [优雅关闭说明](docs/v1.0/graceful-shutdown.md) - [Swagger API](docs/v1.0/swagger.json) - [HTTP 请求脚本(.http 文件)](http/README.md) — JetBrains / VS Code REST Client 可直接发请求 ## 核心功能 - 用户注册、登录(JWT 双令牌) - RBAC 角色权限管理 - 滑动窗口限流 - 审计日志 - 数据脱敏 - 优雅关闭 ## License MIT