# indie-modules **Repository Path**: candu/indie-modules ## Basic Information - **Project Name**: indie-modules - **Description**: 第三步, 一个集Gateway,登录,鉴权,MQTT示例,RabbitMQ示例,Elasticsearch示例,SpringDataJpa示例, 分布式项目 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-06-23 - **Last Updated**: 2026-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # indie-modules 微服务快速开发脚手架,基于 Spring Cloud 构建,包含完整的用户管理、认证授权、网关路由、消息队列等企业级功能。 ## 项目简介 indie-modules 是一套完整的企业级微服务解决方案,采用 Spring Cloud 微服务架构,提供用户管理、OAuth 认证、API 网关、消息队列、物联网 MQTT 等核心功能。项目包含多个独立模块,支持灵活的技术选型和组合使用。 ## 模块说明 | 模块 | 说明 | 端口 | |--------------------------|--------------------------|------| | indie-module-oauth | 认证中心 - 登录授权、验证码、短信验证 | 8080 | | indie-module-gateway | API 网关 - 路由、限流、日志、跨域 | 8080 | | indie-module-core-admin | 管理后台 - 用户管理、Excel 导入导出 | 8080 | | indie-module-core-attach | 文件服务 - 分片上传、文件管理 | 8080 | | indie-module-chat | AI 聊天服务 - Langchain4j 集成 | 8080 | | indie-module-channel | RabbitMQ 消息通道配置 | - | | indie-module-common | 公共模块 - 工具类、Redis Key 定义 | - | | indie-module-elastic | Elasticsearch 日期转换 | - | | indie-module-open-mqtt | MQTT 物联网消息处理 | 8080 | ## 技术栈 - **核心框架**: Spring Boot 3.x / Spring Cloud - **服务注册与发现**: Nacos / Eureka - **网关**: Spring Cloud Gateway - **持久层**: JPA / QueryDSL - **数据库**: PostgreSQL - **缓存**: Redis - **消息队列**: RabbitMQ - **物联网**: MQTT - **AI**: Langchain4j (通义千问) - **安全**: Spring Security ## 核心功能 ### 用户管理 - 用户 CRUD 操作 - 分页查询 - 用户类型与状态管理 - Excel 导入/导出 ### 认证授权 - 用户名密码登录 - 手机号验证码登录 - 微信小程序登录 - Token 刷新机制 ### 网关服务 - 请求路由转发 - 全局限流(防抖) - 链路追踪 - 访问日志 - 跨域处理 ### 文件服务 - 分片上传 - 文件 hash 校验 - 文件预览与下载 ### AI 聊天 - 对话记忆 - 流式响应 - 多模型支持 ### 消息处理 - RabbitMQ 通道配置 - 死信队列处理 - 消息重试机制 ### 物联网 MQTT - MQTT 协议接入 - 消息路由分发 - 通道管道处理 ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.8+ - Redis - PostgreSQL - RabbitMQ(可选) ### 构建项目 ```bash # 克隆项目 git clone https://gitee.com/jinshengming/indie-modules.git # 进入项目目录 cd indie-modules # 编译所有模块 mvn clean compile package -DskipTests ``` ### 启动服务 1. **启动 Redis 和 PostgreSQL** 2. **启动 OAuth 认证服务** ```bash cd indie-module-oauth java -jar indie-module-oauth.jar ``` 3. **启动 Gateway 网关** ```bash cd indie-module-gateway java -jar indie-module-gateway.jar ``` 4. **启动 Admin 管理后台** ```bash cd indie-module-core/indie-module-core-admin java -jar indie-module-core-admin.jar ``` ## 项目结构 ``` indie-modules ├── indie-module-oauth/ # 认证服务 │ └── src/main/java/io/github/indie/module/oauth/ │ ├── protocol/ # API 控制器 │ ├── service/ # 业务服务 │ └── support/ # 登录策略 ├── indie-module-gateway/ # 网关服务 │ └── src/main/java/io/github/indie/module/gateway/ │ ├── filter/ # 网关过滤器 │ ├── events/ # 事件处理 │ └── configurer/ # 配置类 ├── indie-module-core/ # 核心模块 │ ├── indie-module-core-admin/ # 用户管理 │ │ ├── model/ # 数据模型 │ │ ├── payload/ # 请求载荷 │ │ ├── protocol/ # API 控制器 │ │ └── service/ # 业务服务 │ └── indie-module-core-attach/ # 文件服务 │ ├── model/ # 数据模型 │ ├── payload/ # 请求载荷 │ └── service/ # 业务服务 ├── indie-module-chat/ # AI 聊天服务 │ └── src/main/java/io/github/indie/module/chat/ │ ├── protocol/ # API 控制器 │ ├── configurer/ # AI 配置 │ └── service/ # 聊天服务 ├── indie-module-channel/ # RabbitMQ 通道配置 │ └── src/main/java/io/github/indie/module/channel/ │ └── configurer/ # 通道配置 ├── indie-module-common/ # 公共模块 │ └── src/main/java/io/github/indie/module/commons/ │ ├── servlet/ # Web 拦截器 │ └── toolkit/ # 工具类 └── indie-module-open/ # 开放模块 └── indie-module-open-mqtt/ # MQTT 物联网 └── src/main/java/io/github/indie/module/open/mqtt/ ├── channel/ # 消息通道 └── configurer/ # MQTT 配置 ``` ## API 接口 ### 认证接口 | 接口 | 说明 | |--------------------------|---------| | POST /oauth/login | 用户登录 | | POST /oauth/logout | 用户登出 | | GET /oauth/refresh-token | 刷新令牌 | | GET /oauth/captcha.jpg | 图形验证码 | | GET /oauth/captcha | 发送短信验证码 | ### 用户接口 | 接口 | 说明 | |--------------------|------------| | GET /user/paging | 分页查询用户 | | GET /user/{id} | 获取用户详情 | | POST /user | 新增用户 | | PUT /user | 更新用户 | | DELETE /user/{id} | 删除用户 | | GET /user/download | 导出用户 Excel | | POST /user/upload | 导入用户 Excel | ### 文件接口 | 接口 | 说明 | |-----------------------------|---------| | POST /attach/upload | 文件上传 | | GET /attach/preview | 文件预览 | | GET /attach/download | 文件下载 | | GET /attach/upload-init | 分片上传初始化 | | POST /attach/upload-part | 分片上传 | | GET /attach/upload-complete | 上传完成确认 | ### 聊天接口 | 接口 | 说明 | |---------------------|--------| | GET /chat/v1 | 普通对话 | | GET /chat/v2 | 带记忆对话 | | GET /chat/v3 | 指定会话对话 | | GET /stream-chat/v1 | 流式对话 | ## 配置说明 主要配置项位于各模块的 `application.yml` 中: ```yaml spring: datasource: url: jdbc:postgresql://localhost:5432/indie_db username: postgres password: your_password redis: host: localhost port: 6379 rabbitmq: host: localhost port: 5672 ``` ## 打包命令 ```bash mvn clean compile package -Pdev -DskipTests ``` ## License MIT License