## 项目概述
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 提供容器化快速部署方式：
1. 克隆 Docker Compose 仓库：`git clone https://github.com/ThingsPanel/thingspanel-docker.git`。
2. 进入目录并启动服务：`cd thingspanel-docker`，执行 `docker-compose -f docker-compose.yml up`。
3. 访问 `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 的发布时间为参考）。本文档基于当前仓库内容整理，不保证与未来版本完全一致。