mirror of
https://gitee.com/NexIoT/Universal-IoT-Java.git
synced 2026-10-31 00:41:27 +08:00
feat:增加一键启动
This commit is contained in:
@@ -87,6 +87,13 @@
|
||||
- **文档地址(国内)**: <http://docs.192886.xyz:81/>
|
||||
|
||||
|
||||
## 🧭 部署与启动(一键启动)
|
||||
|
||||
- 一键启动:`docker-compose up -d`
|
||||
- 访问:
|
||||
- 前端 `http://localhost:80` (默认 `iot/IoTAbc2025001@`)
|
||||
- EMQX 管理 `http://localhost:18083`(默认 `admin/public`)
|
||||
- Adminer `http://localhost:8081`
|
||||
## 📸 实战案例与视频教程
|
||||
|
||||
### 📊 已对接设备案例(仅展示部分)
|
||||
|
||||
@@ -0,0 +1,165 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
backend:
|
||||
image: ${BACKEND_IMAGE:-nexiot/cn-universal-backend:1.0.0}
|
||||
container_name: cn-universal-backend
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "9092:9092"
|
||||
environment:
|
||||
- SPRING_DATASOURCE_URL=${SPRING_DATASOURCE_URL:-jdbc:mysql://mysql:3306/univ?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true}
|
||||
- SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME:-root}
|
||||
- SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD:-Haha@2025}
|
||||
- SPRING_DATA_REDIS_HOST=${REDIS_HOST:-redis}
|
||||
- SPRING_DATA_REDIS_PORT=${REDIS_PORT:-6379}
|
||||
- SPRING_DATA_REDIS_PASSWORD=${REDIS_PASSWORD:-Nexiot2025}
|
||||
- SPRING_DATA_REDIS_DATABASE=${REDIS_DATABASE:-11}
|
||||
- MQTT_CFG_HOST=${MQTT_HOST:-tcp://emqx:1883}
|
||||
- MQTT_CFG_CLIENT_USERNAME=${MQTT_USERNAME:-universal_iot}
|
||||
- MQTT_CFG_CLIENT_PASSWORD=${MQTT_PASSWORD:-Abc@2025}
|
||||
- MQTT_CFG_CLIENT_ID_PREFIX=${MQTT_CLIENT_ID_PREFIX:-univ_iot_docker}
|
||||
- MQTT_CFG_HOST_OUT=${MQTT_HOST_OUT:-tcp://127.0.0.1:1883}
|
||||
- MQTT_CFG_EMQX_HEADER_KEY=${EMQX_HEADER_KEY:-universal-emqx}
|
||||
- MQTT_CFG_EMQX_HEADER_VALUE=${EMQX_HEADER_VALUE:-d41d8cd98f00b204e9800998ecf8427e}
|
||||
- SPRING_PROFILES_ACTIVE=docker
|
||||
- RUN_MODE=docker
|
||||
- LOGGING_FILE_PATH=/app/logs
|
||||
- LOGGING_FILE_NAME=/app/logs/cn-universal-web.log
|
||||
- SERVER_PORT=9092
|
||||
- SERVER_HTTP2_ENABLED=false
|
||||
- JAVA_TOOL_OPTIONS=-Dio.netty.native.workdir=/app/logs
|
||||
- TCP_PROTOCOL_ENABLED=false
|
||||
- UDP_PROTOCOL_ENABLED=false
|
||||
- CTAIOT_PROTOCOL_ENABLE=false
|
||||
- ONENET_PROTOCOL_ENABLED=false
|
||||
- IMOULIFE_PROTOCOL_ENABLED=false
|
||||
- SHARD_LOG_ENABLE=true
|
||||
- SPRING_APPLICATION_JSON={"server":{"port":9092},"management":{"endpoints":{"web":{"exposure":{"include":"health,info,metrics,prometheus"},"base-path":"/actuator"}}}},"shard":{"log":{"enable":true,"table":{"number":24},"virtual":{"number":8}},"logMeta":{"enable":true,"table":{"number":24},"virtual":{"number":8}}},"iot":{"register":{"auto":{"unionId":"auto_register","latitude":31.081598,"longitude":81.314141}}}}
|
||||
depends_on:
|
||||
- mysql
|
||||
- redis
|
||||
- emqx
|
||||
networks:
|
||||
- release-network
|
||||
volumes:
|
||||
- backend_logs:/app/logs
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
read_only: true
|
||||
tmpfs:
|
||||
- /tmp
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
frontend:
|
||||
image: ${FRONTEND_IMAGE:-nexiot/cn-universal-frontend:1.0.0}
|
||||
container_name: cn-universal-frontend
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80"
|
||||
depends_on:
|
||||
- backend
|
||||
networks:
|
||||
- release-network
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
mysql:
|
||||
image: ${MYSQL_IMAGE:-mysql:8.0}
|
||||
container_name: cn-universal-mysql
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD:-Haha@2025}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE:-univ}
|
||||
ports:
|
||||
- "3306:3306"
|
||||
volumes:
|
||||
- mysql_data:/var/lib/mysql
|
||||
networks:
|
||||
- release-network
|
||||
command: --default-authentication-plugin=mysql_native_password --lower_case_table_names=1 --sql_mode=STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
redis:
|
||||
image: ${REDIS_IMAGE:-redis:7-alpine}
|
||||
container_name: cn-universal-redis
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-Nexiot2025}
|
||||
ports:
|
||||
- "6379:6379"
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
networks:
|
||||
- release-network
|
||||
command: redis-server --requirepass ${REDIS_PASSWORD:-Nexiot2025}
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
emqx:
|
||||
image: ${EMQX_IMAGE:-emqx/emqx:5.3}
|
||||
container_name: cn-universal-emqx
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- EMQX_NAME=emqx
|
||||
- EMQX_HOST=localhost
|
||||
ports:
|
||||
- "1883:1883"
|
||||
- "8083:8083"
|
||||
- "8084:8084"
|
||||
- "18083:18083"
|
||||
volumes:
|
||||
- emqx_data:/opt/emqx/data
|
||||
- emqx_log:/opt/emqx/log
|
||||
networks:
|
||||
- release-network
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
adminer:
|
||||
image: ${ADMINER_IMAGE:-adminer}
|
||||
container_name: cn-universal-adminer
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8081:8080"
|
||||
environment:
|
||||
- ADMINER_DEFAULT_SERVER=mysql
|
||||
depends_on:
|
||||
- mysql
|
||||
networks:
|
||||
- release-network
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
volumes:
|
||||
mysql_data:
|
||||
redis_data:
|
||||
emqx_data:
|
||||
emqx_log:
|
||||
backend_logs:
|
||||
|
||||
networks:
|
||||
release-network:
|
||||
driver: bridge
|
||||
-80
@@ -1,80 +0,0 @@
|
||||
### 📅 2025年9月第4周(9.20-9.23)
|
||||
|
||||
- 🔧 【产品管理优化】
|
||||
- ✅ MQTT和TCP产品默认开启自动注册功能
|
||||
- ✅ 完善产品管理连接信息显示,解决无法找到入口问题
|
||||
- ✅ 系统支持使用内置连接和自建连接
|
||||
- ✅ 优化TCP连接信息显示,支持SNI信息和概念
|
||||
- ✅ TCP服务默认绑定网络服务,支持绑定状态管理
|
||||
|
||||
- 🏠 【网关设备管理】
|
||||
- ✅ 网关与网关子设备功能调整,支持一个网关绑定多个不同产品的子设备
|
||||
- ✅ 网关子设备显示绑定网关设备信息
|
||||
- ✅ 乐橙设备增删改查增加验证机制
|
||||
|
||||
- 📹 【视频模块优化】
|
||||
- ✅ 乐橙播放器界面优化
|
||||
- ✅ 视频模块权限调整
|
||||
- ✅ 真实设备播放摄像头功能修复
|
||||
- ✅ 暂时移除音频检查功能
|
||||
|
||||
- 🛠️ 【系统优化与修复】
|
||||
- ✅ 移除fastjson2依赖,减少系统间强依赖
|
||||
- ✅ 调整依赖注入方式,修复无效bean注入问题
|
||||
- ✅ 优化查询条件与索引匹配
|
||||
- ✅ 修复test环境显示问题
|
||||
- ✅ 清理无用代码和文档
|
||||
|
||||
- 📝 【文档与描述】
|
||||
- ✅ 删除部分markdown设计过程文档
|
||||
- ✅ 调整描述文字和界面显示
|
||||
|
||||
### 📅 2025年9月第3周(9.12-9.19)
|
||||
|
||||
- 🧩 【设备协议扩展】
|
||||
- ✅ 新增 UDP 通信模块(默认开启),适配 UDP 协议传输
|
||||
- ✅ 新增 Ezviz(萤石)接入模块,支持萤石设备接入
|
||||
- ✅ 优化 imoulife(乐橙)模块,支持自有开放平台账号
|
||||
|
||||
- 🧠 【设备影子系统】
|
||||
- ✅ 增加设备影子强制刷盘机制,支持异常状态恢复
|
||||
- ✅ 解析流程可获取历史影子数据(零代码侵入联动判断)
|
||||
- ✅ Web IDE 支持直接读取设备影子数据
|
||||
|
||||
- 🔌 【连接管理优化】
|
||||
- ✅ 设备重连时自动替换旧连接,解决僵尸连接问题
|
||||
- ✅ 重构 TCP 通信逻辑(tcpdown 模块),提升可维护性
|
||||
|
||||
- ⚙️ 【性能与稳定性】
|
||||
- ✅ 修复产品缓存不失效问题,优化数据库查询效率
|
||||
- ✅ 日志表结构升级,支持自动分区
|
||||
- ✅ 完善集群消息日志存储逻辑,避免指令路由异常
|
||||
|
||||
- 🧰 【工具与配置】
|
||||
- ✅ 封装统一工具类(uniqueId 生成、时间格式化等)
|
||||
- ✅ 公共配置支持 boolean 类型适配
|
||||
- ✅ 修复时间格式化、枚举命名重复等问题
|
||||
|
||||
### 📅 2025年9月第2周(9.8-9.12)
|
||||
|
||||
- 🔧 【零代码侵入-TCP接入】解决电表DT645使用netty协议半包全包的问题,增加一个codec和2个工具类。
|
||||
|
||||
- 🛠️ 【WEB-IDE调试器】增加16进制、ASCII和Modbus相关等20余个公共方法,供IDE的直接调用。
|
||||
|
||||
- 🔄 【cluster集群】集群环境低概率会遇到指令路由错误的问题。
|
||||
|
||||
- ⚡ 【优化若干】重构iotId的生成逻辑,极大较少数据库的非必要查询。
|
||||
|
||||
- 📸 【产品管理】增加产品图片上传,增加七牛云。
|
||||
|
||||
### 📅 2025年9月第1周(9.1-9.7)
|
||||
|
||||
- 🚀 【设备影子】设备影子热数据不再实时更新数据库,用redis缓存,定时刷库,提高吞吐量。
|
||||
|
||||
- 🌐 【北向应用】HTTP北向应用数据推送问题修复若干、推送安全鉴权功能增强。
|
||||
|
||||
- 🛡️ 【TCP接入服务】增加异常IP的封禁策略;集群环境的控制重启、关闭、启动优化。
|
||||
|
||||
- 📊 【流程编排】增加可视化的集成,为工业场景及特殊情况的接入、采集和推送作为补充。
|
||||
|
||||
- 🔧 【其他】修复错误若干;优化日志;
|
||||
Binary file not shown.
Reference in New Issue
Block a user