20260507:README.md

This commit is contained in:
George 2026-05-07 21:43:27 +08:00
parent 584da2867b
commit 982ab8a56a
2 changed files with 200 additions and 77 deletions

4
.gitattributes vendored
View File

@ -1,4 +0,0 @@
* text=auto
*.xml text eol=lf # 所有 XML 文件强制使用 LF 作为行结束符(提交和拉取都为 LF)
*.yml text eol=lf # YAML 文件同理
*.java text eol=lf # Java 文件同理

273
README.md
View File

@ -1,86 +1,213 @@
# FastBee 物联网平台
基于 **若依(RuoYi)v3.8.5** 框架构建的开源物联网平台,提供设备接入、数据采集、协议解析、规则引擎、告警监控、视频接入等一站式 IoT 解决方案。
## 平台简介 ## 平台简介
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。 FastBee 是一个功能完备的企业级物联网基础平台,支持多协议设备接入、海量时序数据处理、可视化场景编排与数据展示。
* 前端采用Vue、Element UI。 - 后端采用 Spring Boot 2.5.14 + Spring Security + Redis + JWT,多模块化架构
* 后端采用Spring Boot、Spring Security、Redis & Jwt。 - 前端包含三个独立应用:Vue 2 管理后台(yack-web)、Vue 3 低代码可视化(yack-view)、UniApp 移动端(yack-app)
* 权限认证使用Jwt,支持多终端认证系统。 - 设备接入支持 MQTT、TCP、CoAP、HTTP、WebSocket、SIP(GB28181)等多种协议
* 支持加载动态权限菜单,多方式轻松权限控制。 - 内置 MQTT Broker(Netty 实现),可选择内嵌模式或连接外部 EMQX
* 高效率开发,使用代码生成器可以一键生成前后端代码。 - 时序数据存储支持 MySQL 及 TDengine
* 提供了技术栈([Vue3](https://v3.cn.vuejs.org) [Element Plus](https://element-plus.org/zh-CN) [Vite](https://cn.vitejs.dev))版本[RuoYi-Vue3](https://github.com/yangzongzhuan/RuoYi-Vue3),保持同步更新。 - 通知系统支持多渠道推送(邮件、短信等)
* 提供了单应用版本[RuoYi-Vue-fast](https://github.com/yangzongzhuan/RuoYi-Vue-fast),Oracle版本[RuoYi-Vue-Oracle](https://github.com/yangzongzhuan/RuoYi-Vue-Oracle),保持同步更新。 - 内嵌 LiteFlow 规则引擎,支持 IoT 场景自动化编排
* 不分离版本,请移步[RuoYi](https://gitee.com/y_project/RuoYi),微服务版本,请移步[RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud)
* 特别鸣谢:[element](https://github.com/ElemeFE/element),[vue-element-admin](https://github.com/PanJiaChen/vue-element-admin),[eladmin-web](https://github.com/elunez/eladmin-web)。
* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)  
* 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?userCode=brki8iof&share_source=copy_link),腾讯云优惠券:[点我领取](https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console)  
## 内置功能 ## 技术栈
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 ### 后端
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
3. 岗位管理:配置系统用户所属担任职务。
4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
7. 参数管理:对系统动态配置常用参数。
8. 通知公告:系统通知公告信息发布维护。
9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
10. 登录日志:系统登录日志记录查询包含登录异常。
11. 在线用户:当前系统中活跃用户状态监控。
12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
14. 系统接口:根据业务代码自动生成相关的api接口文档。
15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
16. 缓存监控:对系统的缓存信息查询,命令统计等。
17. 在线构建器:拖动表单元素生成相应的HTML代码。
18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
## 在线体验 | 组件 | 技术 |
|:---|:---|
| 核心框架 | Spring Boot 2.5.14 |
| 安全框架 | Spring Security + JWT |
| ORM | MyBatis(若依框架集成) |
| 数据库连接池 | Druid |
| 缓存 | Redis(Redisson) |
| MQTT Broker | Netty 自研 / EMQX |
| 消息队列 | RocketMQ |
| 规则引擎 | LiteFlow |
| 时序数据库 | MySQL / TDengine |
| 协议服务器 | Netty |
| 代码生成器 | Velocity 模板 |
| 项目管理 | Maven(多模块) |
- admin/admin123 ### 前端
- 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。
演示地址:http://vue.ruoyi.vip | 应用 | 技术 | 用途 |
文档地址:http://doc.ruoyi.vip |:---|:---|:---|
| yack-web | Vue 2 + Element UI + Vuex | 管理后台 |
| yack-view | Vue 3 + TypeScript + Vite + Naive UI + Pinia | 低代码可视化设计器 |
| yack-app | UniApp + uView 2.0 | 移动端(iOS/Android/微信小程序) |
## 演示图 ## 架构
<table> ### 数据流
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/cd1f90be5f2684f4560c9519c0f2a232ee8.jpg"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/1cbcf0e6f257c7d3a063c0e3f2ff989e4b3.jpg"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-8074972883b5ba0622e13246738ebba237a.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-9f88719cdfca9af2e58b352a20e23d43b12.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-39bf2584ec3a529b0d5a3b70d15c9b37646.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-936ec82d1f4872e1bc980927654b6007307.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-b2d62ceb95d2dd9b3fbe157bb70d26001e9.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-d67451d308b7a79ad6819723396f7c3d77a.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/5e8c387724954459291aafd5eb52b456f53.jpg"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/644e78da53c2e92a95dfda4f76e6d117c4b.jpg"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-8370a0d02977eebf6dbf854c8450293c937.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-49003ed83f60f633e7153609a53a2b644f7.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-d4fe726319ece268d4746602c39cffc0621.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-c195234bbcd30be6927f037a6755e6ab69c.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/b6115bc8c31de52951982e509930b20684a.jpg"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-5e4daac0bb59612c5038448acbcef235e3a.png"/></td>
</tr>
</table>
```
设备 → 协议服务器(Netty,端口因协议而异)
→ iot-server-core 消息分发器
→ RocketMQ
→ fastbee-record 持久化
→ MySQL / TDengine
→ WebSocket 推送至前端
```
## 业务记录 ### 模块结构
1、建立每个设备的轮询iot_modbus_job任务之前会查看是否存在设备任务iot_device_job; ```
fastbee-admin/ # Spring Boot 入口,Web 层
fastbee-framework/ # 安全配置、拦截器、核心框架
fastbee-common/ # 公共工具类、领域模型、注解、常量
fastbee-open-api/ # 对外 REST API
fastbee-service/
fastbee-iot-service/ # IoT 业务逻辑
fastbee-system-service/ # 系统管理(用户、角色、菜单)
fastbee-server/
base-server/ # 服务器抽象基类
iot-server-core/ # 消息分发核心
mqtt-broker/ # 内嵌 MQTT Broker
http-server/ # HTTP 设备接入(端口 8081)
tcp-server/ # TCP 服务器(端口 8888)
coap-server/ # CoAP 服务器(端口 5683)
sip-server/ # SIP/GB28181 视频监控
boot-strap/ # 服务器启动引导
fastbee-protocol/ # 协议编解码
base/ # 协议抽象层
collect/ # 数据采集协议实现
fastbee-iot-data/ # 时序数据存储(TDengine)
fastbee-mq/ # RocketMQ 集成
fastbee-notify/ # 多渠道通知
fastbee-record/ # 设备数据记录/持久化
fastbee-plugs/
generator/ # 代码生成器
quartz/ # 定时任务
ruleEngine/ # LiteFlow 规则引擎
oss/ # 对象存储(S3/阿里云 OSS)
mqtt-client/ # MQTT 客户端
oauth/ # OAuth 2.0(JustAuth)
pay/ # 支付集成
http/ # HTTP 客户端(Forest)
```
## 核心功能
- **多协议接入**:MQTT、TCP、CoAP、HTTP、WebSocket、SIP(GB28181)
- **设备管理**:注册、分组、共享、固件升级
- **产品管理**:产品定义、物模型、分类管理、授权码
- **数据采集**:Modbus 轮询、自定义协议解析
- **告警监控**:告警规则、告警历史、通知推送
- **场景编排**:LiteFlow 规则引擎、数据桥接(HTTP/MQTT/数据库)
- **时序数据**:支持 TDengine 高性能时序存储
- **视频监控**:GB28181 国标协议接入、PTZ 控制、录像回放
- **可视化**:低代码拖拽式大屏设计
- **规则引擎**:图形化场景编排,支持脚本
- **通知系统**:多渠道消息推送
- **多租户**:内置多租户数据隔离
- **代码生成**:一键生成前后端 CRUD 代码
## 快速开始
### 环境要求
- JDK 1.8+
- Maven 3.6+
- MySQL 5.7+
- Redis
- RocketMQ(可选)
- TDengine(可选)
- EMQX(可选,使用外部 MQTT Broker 时)
### 本地开发
```bash
# 1. 初始化数据库
执行 sql/yack-20260316.sql
# 2. 修改配置
编辑 application-dev.yml,配置 MySQL、Redis 连接信息
# 3. 启动后端
mvn clean package -DskipTests
cd fastbee-admin/target
java -jar fastbee-admin.jar --spring.profiles.active=dev
# 4. 启动管理后台(yack-web)
cd yack-web
npm install
npm run dev
# 5. 启动可视化设计器(yack-view)
cd yack-view
pnpm install
pnpm dev
# 6. 启动移动端(yack-app)
cd yack-app
npm install
# 使用 HBuilderX 打开并运行
```
### API 文档
启动服务后访问:`http://localhost:8080/swagger-ui/index.html`
### 协议端口
| 协议 | 端口 | 说明 |
|:---|:---:|:---|
| MQTT | 1883 | 未加密 TCP |
| MQTTS | 8883 | 加密 TCP |
| WS | 8083 | WebSocket |
| WSS | 8084 | 加密 WebSocket |
| HTTP 设备接入 | 8081 | HTTP 协议 |
| TCP | 8888 | TCP 协议 |
| CoAP | 5683 | CoAP 协议 |
## 部署
### Docker 部署
```bash
cd docker
docker-compose up -d
```
### 前端部署
- **yack-web**:`npm run build:prod`,产物部署至 Nginx
- **yack-view**:`pnpm build`,产物部署至 Nginx `/var/data/nginx/view/`
## 数据库
FastBee 共使用 117 张表,涵盖以下业务领域:
- 设备管理、产品管理、物模型
- 告警监控、场景编排、规则引擎
- 网关与子设备、Modbus 配置
- 固件升级、SCADA 可视化
- SIP 视频监控、OAuth 认证
- 系统管理(若依 RBAC)、通知系统
- 对象存储、代码生成、Quartz 定时任务
完整的数据库初始化脚本位于 `sql/yack-20260316.sql`。
## 相关项目
| 项目 | 技术栈 | 说明 |
|:---|:---|:---|
| yack-web | Vue 2 + Element UI | 管理后台 |
| yack-view | Vue 3 + Vite + Naive UI | 低代码可视化 |
| yack-app | UniApp + uView | 移动端 |
## 开源协议
本项目基于 [MIT 许可证](LICENSE) 开源。
## 致谢
- [若依(RuoYi)](https://gitee.com/y_project/RuoYi) — 提供优秀的后台开发框架
- [Element UI](https://github.com/ElemeFE/element)
- [Naive UI](https://github.com/tusen-ai/naive-ui)
- [GoView](https://github.com/dromara/GoView)