源码安装
系统环境
启动ThingsPanel之前,请先确定已经安装好以下环境:
提示
安装成功后,国内往往要配置代理
go env -w GO111MODULE=on;go env -w GOPROXY=https://goproxy.cn
- (数据库使用docker简化安装步骤)安装Docker(安装docker社区版)
- redis 6 安装 可参考docker安装(如果没有/home/tp/backend/redis/目录会自动创建):
docker run --name tp-redis \
-v /home/tp/backend/redis/data:/data \
-v /home/tp/backend/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /home/tp/backend/redis/logs:/logs \
-d -p 6379:6379 redis redis-server --requirepass redis2022
- TimescaleDB 12 安装
(可参考)timescaledb数据库搭建
- 获取数据库镜像
docker pull timescale/timescaledb:latest-pg12
- 创建并运行容器
POSTGRES_DB 数据库名
POSTGRES_USER 用户名
POSTGRES_PASSWORD 密码
提示
此处如果修改了数据库名、用户名或密码请对应修改后端配置文件(./conf/app.conf)
docker run --name timescaledb -p 5432:5432 \
-e TZ=Asia/Shanghai \
-e POSTGRES_DB=ThingsPanel \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgresThingsPanel2022 \
-v /home/tp/data/dir:/var/lib/postgresql/data \
timescale/timescaledb:latest-pg12
GMQTT安装启动
GMQTT是平台接入设备消息的服务,设备消息通过GMQTT进入到平台,平台通过GMQTT发送消息给设备。
- 进入GMQTT仓库
- Star仓库
- 下载源代码,建议使用git clone下载源代码,注意代码分支,master为最新的开发分支.Tags列对应其他版本.
配置文件
./gmqtt/cmd/gmqttd/default_config.yml --系统配置
./gmqtt/cmd/gmqttd/default_config.yml说明:
listeners:
- address: ":1883" # 接入端口
- address: ":8883" # mqtts接入
tls:
cacert: "./certs/ca.crt"
cert: "./certs/server.crt"
key: "./certs/server.key"
api:
http:
- address: "tcp://0.0.0.0:8083" # http服务配置(ThingsPanel-GO调用,主要用来管理接入的权限)
log:
level: info # 日志级别 debug | info | warn | error
(推荐)直接运行服务
这里有三种方式可根据实际需要选择其中一种
直接运行
$ git clone https://github.com/ThingsPanel/gmqtt.git
$ cd gmqtt/cmd/gmqttd
$ go run . start -c default_config.yml
(推荐)pm2托管
这里建议使用pm2托管(pm2的安装需要node.js环境,安装pm2的步骤非常简单,可百度自行查找)
- git clone https://github.com/ThingsPanel/gmqtt.git
- cd gmqtt/cmd/gmqttd,在这个目录下创建gmqtt.sh
- 将go run . start -c default_config.yml写入gmqtt.sh
- pm2 start gmqtt.sh即可启动gmqtt(pm2 save后会保存进程状态(运行或停止),在系统重启后会自动恢复到保存状态)
docker方式运行服务
$ git clone https://github.com/ThingsPanel/gmqtt.git
$ cd gmqtt
$ docker build -t gmqtt .
$ docker run -p 1883:1883 -p 8883:8883 -p 8082:8082 -p 8083:8083 -p 8084:8084 gmqtt