ThingsPanel / thingspanel-backend-community
ThingsPanel/thingspanel-backend-community
基于Go语言开发的高性能、低门槛、易扩展的插件化物联网平台,支持MQTT、Modbus等多协议及多类型设备接入,提供可视化、自动化、报警和规则引擎等功能。
项目概览
项目概述
ThingsPanel 是一个开源的、轻量级、组件化的物联网应用支撑平台,本仓库是其社区版后端,使用 Go 语言开发。项目通过可复用插件(设备功能模板、协议接入插件、服务接入插件、可视化插件、依赖插件等)降低 IoT 项目开发与交付成本。仓库当前最新 release 为 v1.2.8.1,许可证为 Apache-2.0。
核心功能
- 多租户管理:系统管理员、租户管理员、租户用户分级,租户间数据隔离。
- 设备接入:支持 MQTT、Modbus RTU/TCP、TCP、GB28181 等接入方式,支持网关与子设备、自定义协议插件。
- 设备物模型与配置模板:物理模型、Web/App 图表、协议配置、自动化、告警、扩展信息、一型一密等。
- 监控仪表盘:设备监控图表、多仪表盘、菜单/首页设置。
- 可视化:基础可视化编辑、SCADA、大屏、3D、Three.js 等扩展。
- 产品管理:产品创建、批量管理、二维码数据、手动激活、预注册管理。
- 固件升级:产品固件管理、升级任务、升级报告。
- 自动化:场景联动、定时触发、设备触发、场景日志。
- 告警与通知:告警按项目/分组展示,支持短信、邮件、电话、Webhook 通知。
- 规则引擎:数据转发、协议转换、实时数据计算。
- 数据网关:OpenAPI、数据库 SQL 转 HTTP、第三方系统对接、授权读取。
- 设备地图:按项目、分组、设备类型筛选设备。
- 系统设置:Logo、系统标题、主题样式。
- IoT App:Uniapp 开发,扫码添加设备、查看监测值、手动控制、控制策略等。
- 依赖插件:面向行业解决方案,可复用设备插件与数据,支持可视化调用与 iframe 嵌入。
适用与不适用场景
适用场景:统一设备管理、物联网中间件、设备厂商管理后台;适合系统集成商、解决方案商、设备厂商、最终客户以及希望快速搭建 IoT 应用的个人开发者。
不适用场景:仓库未明确列出明确不适用场景。从项目定位看,如果不涉及设备接入、协议解析、遥测存储等 IoT 能力,而只是通用业务后端或纯数据展示平台,则可能不适合。生产环境部署所需的高级技术支持、私有化定制和 SLA 保障未在本社区仓库中完整提供,仓库资料未提供相关详细说明。
技术架构与依赖
- 后端语言:Go,开发文档中可见 Gin、GORM、Viper、Logrus 等库的使用。
- 前端:Vue.js 3,Node.js 16.13。
- 数据库:PostgreSQL、TimescaleDB、TDengine、Cassandra、TDSQL-PostgreSQL、PolarDB-PostgreSQL、KingBase。
- 缓存:Redis。
- Web 服务器:Nginx。
- MQTT Broker:GMQTT、VerneMQ。
- 内部架构:文档中体现了 Adapter 适配层、Uplink/Downlink 消息总线、Storage 存储层、HeartbeatMonitor 心跳监控等分层设计。
安装与快速开始
官方 README 提供容器化快速部署方式:
- 克隆 Docker Compose 仓库:
git clone https://github.com/ThingsPanel/thingspanel-docker.git。 - 进入目录并启动服务:
cd thingspanel-docker,执行docker-compose -f docker-compose.yml up。 - 访问
http://server-ip:8080,默认账号super@super.cn,密码123456。
官方 Demo:http://demo.thingspanel.cn,账号 test@test.cn,密码 123456。
本仓库未提供 Windows 原生安装、Kubernetes 部署等更多安装方式,仓库资料未提供相关说明。
典型使用方法
README 中给出的使用示例包括:通过 MQTT 网关接入温湿度传感器、使用 ESP8266 控制风扇转速、使用 BMP280 传感器测量大气压,以及与 Fox-Shifu、Fox-Edge 等第三方平台集成。
典型使用路径可以概括为:设备通过 MQTT/Modbus 等协议接入 -> 平台创建产品/设备 -> 配置设备功能模板与协议插件 -> 设备上报遥测/属性/事件 -> 在仪表盘可视化、配置自动化场景与告警、通过规则引擎转发数据。
开发者文档还提供了接口开发流程参考:router 定义路由 -> internal/api 实现 API 处理函数 -> internal/service 实现业务逻辑 -> internal/model 定义数据模型 -> internal/dal 实现数据访问。
配置与部署要点
- 配置文件位于
configs/,包括conf.yml、conf-dev.yml、messages*.yaml、RSA 公私钥等。 - 数据库初始化与迁移脚本位于
sql/目录,开发文档提示新增 SQL 需要更新到对应脚本。 - 初始化逻辑集中在
initialize/,包括 PostgreSQL、Redis、Casbin、定时任务、缓存、日志等初始化。 - 模型与查询代码使用 GORM Gen 工具生成,文档提示不要手工修改
.gen.go文件。 - 开发调试可运行
go run .,本地 Swagger 地址为http://localhost:9999/swagger/index.html。 - 生产环境的具体参数、高可用部署、监控告警配置等,仓库资料未提供更详细说明。
限制、风险与许可证
- 许可证:Apache-2.0,允许私有或商业使用,允许修改和再分发,但需保留版权声明和许可条款。
- 商业服务:官方同时提供企业版、定制支持服务、增强功能授权等,但社区仓库不包含这些企业级服务内容。
- 风险提示:
docs/demand-community/中包含大量规划、重构和优化设计文档,例如 MQTT 适配器重构、设备诊断、WebSocket 推送优化等,这些内容可能尚未完全实现或与当前 release 行为不一致,使用时应以实际代码和版本为准。 - 默认账号密码(
super@super.cn/123456)仅适合快速体验,生产环境必须修改。 - 安全审计、漏洞报告流程、SLA 等信息在仓库资料中未提供。
官方链接
- GitHub 仓库:https://github.com/ThingsPanel/thingspanel-backend-community
- Docker Compose 仓库:https://github.com/ThingsPanel/thingspanel-docker
- 在线 Demo:http://demo.thingspanel.cn
- API 文档:https://s.apifox.cn/d295178d-9c20-48df-8423-302ccf72c8ef
- Release 页面:https://github.com/ThingsPanel/thingspanel-backend-community/releases/tag/v1.2.8.1
- 社区 QQ 群:260150504(已满)、371794256
信息来源和分析时间
信息来源:仓库 README.md、docs/ 目录下的开发规范与需求设计文档、GitHub release 元数据。
分析时间:2026-08-05(以仓库最新 release 的发布时间为参考)。本文档基于当前仓库内容整理,不保证与未来版本完全一致。