开发环境源码构建ThingsPanel物联网平台
开发环境源码构建ThingsPanel物联网平台(Windows+IDEA版)
一、文档概述
1.1 文档目的
本文档详细阐述在开发环境中通过源码部署ThingsPanel开源物联网平台的完整流程,涵盖部署前的环境准备、依赖安装、源码获取、配置修改、服务启动及验证等关键步骤,旨在为开发人员提供清晰、可操作的部署指南,确保顺利完成平台部署并投入开发测试。
1.2 适用范围
本指南适用于开发人员在Windows本地原生开发环境中部署ThingsPanel源码,用于平台二次开发、功能调试及定制化需求验证。
1.3 平台简介
ThingsPanel是一款开源的物联网(IoT)平台,具备设备接入、数据采集、规则引擎、可视化监控、告警管理等核心功能,支持MQTT、HTTP等多协议接入,可广泛应用于工业物联网、智能家居、智慧园区等场景。其开源特性为开发人员提供了灵活的定制空间,便于根据业务需求进行功能扩展与优化。
二、部署前准备
2.1 环境要求
为确保ThingsPanel正常部署运行,开发环境需满足以下硬件及软件要求:
| 类别 | 具体要求 | 说明 |
|---|---|---|
| 硬件 | CPU | 至少4核,推荐8核及以上,保障服务编译与运行效率 |
| 内存 | 至少8GB,推荐16GB及以上,避免多服务运行时内存不足 | |
| 存储空间 | 至少50GB空闲空间,推荐SSD,提升依赖下载与数据读写速度 | |
| 软件 | 操作系统 | Windows 11,确保环境兼容性 |
| 网络 | 稳定网络连接,用于获取源码、依赖包及设备接入测试 |
2.2 依赖软件清单
ThingsPanel运行依赖以下软件及工具,需提前安装并配置正确,避免部署过程中出现依赖缺失问题:
| 软件名称 | 版本要求 | 作用 |
|---|---|---|
| Git | 2.0+ | 获取ThingsPanel社区版前后端源码 |
| PostgresSQL | 14+ | 存储平台核心数据(替代Docker部署方式) |
| Redis | 6.2+ | 提供缓存服务,提升平台响应速度与数据处理效率 |
| RabbitMQ | 4.1.4+ | MQTT消息代理,负责设备与平台间的通信交互 |
| Go | 1.19+ | 编译ThingsPanel后端服务(thingspanel-backend-community) |
| Node.js | 16.x+(LTS版本) | 编译ThingsPanel前端项目(thingspanel-frontend-community) |
| pnpm / yarn | pnpm 10.8+ / yarn 1.22+ | 管理前端项目依赖,提升依赖安装与管理效率 |
| IntelliJ IDEA | 2022.x+ | 集成开发环境,用于前后端项目开发、调试与管理 |
| Docker / Docker Compose | Docker 28.1+ / Docker Compose 2.35+ | 快速部署PostgresSQL、Redis、RabbitMQ等依赖服务 |
三、基础环境搭建
3.1 部署依赖服务
3.1.1 编写docker-compose.yml配置文件
创建docker-compose.yml文件,用于统一管理PostgresSQL、Redis、RabbitMQ服务的部署配置,内容如下:
version: "3.9"
services:
postgres:
image: registry.cn-hangzhou.aliyuncs.com/thingspanel/timescaledb:14
volumes:
- postgres_data:/var/lib/PostgresSQL/data
ports:
- "5432:5432"
environment:
- "TZ=Asia/Shanghai"
- "LC_ALL=C.UTF-8"
- "POSTGRES_DB=ThingsPanel"
- "POSTGRES_USER=postgres"
- "POSTGRES_PASSWORD=postgresThingsPanel"
- "POSTGRES_HOST_AUTH_METHOD=md5"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d ThingsPanel"]
interval: 10s
timeout: 5s
retries: 5
start_period: 40s
restart: unless-stopped
networks:
- thingspanel_network
redis:
image: registry.cn-hangzhou.aliyuncs.com/thingspanel/redis:6.2.7
command: redis-server --requirepass redis
volumes:
- redis_data:/data
ports:
- "6379:6379"
environment:
- "TZ=Asia/Shanghai"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
networks:
- thingspanel_network
gmqtt:
image: registry.cn-hangzhou.aliyuncs.com/thingspanel/thingspanel-gmqtt:v1.1.2
container_name: mq
volumes:
- gmqtt_data:/gmqttd
ports:
- "1883:1883"
environment:
- "TZ=Asia/Shanghai"
- "GMQTT_DB_REDIS_CONN=redis:6379"
- "GMQTT_DB_REDIS_PASSWORD=redis"
- "GMQTT_DB_PSQL_PSQLADDR=postgres"
- "GMQTT_DB_PSQL_PSQLPORT=5432"
- "GMQTT_DB_PSQL_PSQLDB=ThingsPanel"
- "GMQTT_DB_PSQL_PSQLUSER=postgres"
- "GMQTT_DB_PSQL_PSQLPASS=postgresThingsPanel"
healthcheck:
test: ["CMD", "nc", "-z", "localhost", "1883"]
interval: 10s
timeout: 3s
retries: 3
start_period: 30s
hostname: gmqtt
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
restart: unless-stopped
networks:
- thingspanel_network
volumes:
rabbitmq:
postgres_data:
redis_data:
networks:
thingspanel_network:
driver: bridge
ipam:
driver: default3.1.2 启动依赖服务
在docker-compose.yml文件所在目录,打开命令行工具并执行以下命令,启动所有依赖服务:
docker-compose up -d服务启动后,执行以下命令查看服务运行状态,确保所有依赖服务正常启动:
docker-compose ps若命令输出中所有服务的“State”列均显示为“Up”,则说明依赖服务启动成功;若存在服务未启动的情况,可通过docker-compose logs [服务名]命令查看日志,定位问题原因。
3.2 Go语言环境安装
访问Go官方网站(https://go.dev/dl/),下载Go 1.20+ Windows版安装包(建议选择与系统匹配的64位版本)。
双击安装包,按引导完成安装,默认安装路径为
C:\Program Files\Go,建议保持默认路径以简化后续配置。打开新的命令提示符(CMD或PowerShell),执行以下命令验证安装:
go version若输出类似“go version go1.20.0 windows/amd64”的版本信息,即为安装成功。
3.3 Node.js与依赖管理工具安装
访问Node.js官方网站(https://nodejs.org/en/download/),下载Node.js 16.x LTS Windows版安装包(LTS版本稳定性更高,适合开发环境)。
运行安装包,在安装向导中勾选“Add to PATH”选项,确保Node.js可在命令行中直接调用,按引导完成安装。
打开新的命令提示符,执行以下命令验证Node.js和npm的安装:
node --version
npm --version- 安装pnpm(推荐用于前端依赖管理),执行以下命令:
npm install -g pnpm
pnpm --version四、社区版源码获取与目录结构
4.1 获取社区版源码
ThingsPanel社区版前后端源码分别托管在Gitee仓库(国内访问速度更快),通过Git克隆至本地开发目录(建议选择空间充足的磁盘分区,如D:\WorkSpace\ThingPanel)。
打开命令提示符,导航至目标目录后执行以下命令:
git clone https://gitee.com/ThingsPanel/thingspanel-frontend-community.git
git clone https://gitee.com/ThingsPanel/thingspanel-backend-community.git若克隆过程中出现网络问题,可尝试重新执行命令或检查网络连接。
4.2 目录结构说明
克隆完成后,ThingPanel目录下将生成两个核心子目录,其功能如下:
thingspanel-backend-community:后端社区版核心服务,基于Go语言开发,包含设备管理、数据处理、API接口、规则引擎等核心功能模块,是平台的服务核心。
thingspanel-frontend-community:前端社区版Web管理界面,基于Vue.js开发,提供可视化的设备管理、数据监控、告警配置等操作界面,便于开发人员与运维人员使用。
五、IDEA开发环境配置
5.1 IDEA安装与基础配置
IntelliJ IDEA对Go、Vue.js等开发语言支持完善,且具备强大的调试与项目管理功能,是ThingsPanel前后端统一开发的理想工具。
5.1.1 IDEA安装
访问JetBrains官方网站(https://www.jetbrains.com/idea/),下载社区版(Community Edition)或专业版安装包。社区版已满足基础开发需求,若需更高级的功能可选择专业版。
运行安装包,在安装选项中勾选:
Create Desktop Shortcut(创建桌面快捷方式)首次启动IDEA时,可根据个人习惯选择默认配置或自定义主题、插件路径,完成初始化设置后进入主界面。
5.1.2 必备插件安装
打开IDEA后,通过“File → Settings → Plugins”进入插件管理界面,搜索并安装以下插件,安装完成后重启IDEA使插件生效:
Go:JetBrains官方Go语言插件,提供语法高亮、代码补全、编译运行、断点调试等核心功能,是后端开发的必备插件。
Vue.js:支持Vue.js语法解析、组件提示、热重载等功能,提升前端开发效率,是前端开发的核心插件。
Database Tools and SQL:IDEA内置数据库工具,支持连接PostgresSQL等数据库,可用于查看表结构、执行SQL语句、数据查询等操作。
5.2 后端项目(thingspanel-backend-community)配置
5.2.1 项目导入与依赖安装
打开IDEA,点击“File → Open”,导航至本地
thingspanel-backend-community目录,选择目录后点击“OK”,在弹出的对话框中选择“Open as Project”。IDEA会自动识别Go项目结构并加载
go.mod文件中的依赖。若出现“Go SDK not configured”提示,点击提示中的“Configure”,选择本地Go安装路径(默认C:\Program Files\Go)即可。打开IDEA的Terminal(终端)工具,执行以下命令安装项目依赖:
go mod download依赖下载完成后,IDEA会自动索引相关包,确保项目无依赖报错。
5.2.2 配置文件修改
后端项目需通过配置文件指定PostgresSQL、Redis、RabbitMQ等依赖服务的连接信息,确保与本地部署的服务匹配。操作步骤如下:
在IDEA的项目结构中,找到并编辑
conf.yml配置文件。修改核心配置项如下(与3.1.1节docker-compose.yml中的配置保持一致):
db:
psql:
host: localhost
port: 5432
dbname: ThingsPanel
username: postgres
password: postgresThingsPanel
redis:
addr: localhost:6379
db: 1
db1: 10
password: "redis"
mqtt:
access_address: localhost:1883
broker: localhost:1883
user: root
pass: root
mqtts:
broker: localhost:8883
user: root
pass: root若本地依赖服务的端口、账号或密码有修改,需同步更新上述配置项,避免连接失败。
5.2.3 项目启动
在IDEA的Terminal中执行以下命令,启动后端服务:
go run .等待服务启动完成,若终端输出“server started”提示,说明后端服务已成功启动;若出现连接错误等提示,需检查依赖服务是否正常运行及配置文件是否正确。
5.3 前端项目(thingspanel-frontend-community)配置
5.3.1 项目导入与依赖安装
点击IDEA的“File → Open”,选择本地
thingspanel-frontend-community目录,点击“OK”导入项目。打开IDEA的Terminal,确保当前路径为前端项目根目录,执行以下命令安装前端依赖:
pnpm install若依赖安装过程缓慢,可配置npm或pnpm镜像源(如淘宝镜像)加速下载。依赖安装完成后,确保项目无依赖报错。
5.3.2 配置文件修改
前端项目需配置后端服务的接口地址,确保与本地启动的后端服务通信。操作步骤如下:
在IDEA的项目结构中,找到并编辑
env.config.ts,.env.development文件。修改开发环境的后端接口地址,确保与后端服务的地址和端口匹配:
const devURL = 'http://localhost:9999/api/v1'若后端服务的端口有修改,需同步更新上述URL中的端口号。VITE_AUTH_ROUTE_MODE=dynamic代表动态获取路由
5.3.3 项目启动
在IDEA的Terminal中执行以下命令,启动前端服务:
npm run dev服务启动完成后,终端会输出“App running at”提示及前端服务的访问地址(默认为http://localhost:5002)。
六、平台访问与验证
6.1 启动服务流程
在IDEA中启动ThingsPanel平台时,需按以下顺序操作,确保各服务间正常通信(前提是3.1节的依赖服务已提前启动):
通过
docker-compose ps命令确认本地PostgresSQL、Redis、RabbitMQ服务已正常运行。在IDEA中启动后端服务“thingspanel-backend”,等待终端输出“server started”提示,确保后端服务启动成功。
在IDEA中启动前端服务“thingspanel-frontend-serve”,等待终端输出“App running at”提示,获取前端服务访问地址。
6.2 登录平台与验证
打开浏览器,输入前端服务访问地址(默认http://localhost:5002),进入ThingsPanel登录页面。
使用数据库初始化时默认创建的账号登录,支持管理员账号和租户账号:
默认管理员账号:用户名 super@super.cn,密码 123456(具备平台最高操作权限)
默认租户账号:用户名 tenant@tenant.cn,密码 123456(适用于租户级功能测试)
输入账号密码并点击登录,若成功进入平台首页,说明前端与后端服务已正常通信,平台部署完成。
后续可进行简单的功能验证,如创建测试设备、模拟数据上报等,确保平台核心功能正常。
提示:首次登录后建议及时修改默认密码,提升平台安全性。若登录失败,可检查后端服务是否正常运行、前端接口地址配置是否正确及数据库连接是否正常。