2020-12-13 局域网中部署带https的thingsboard

基本步骤

首先采用mkcert生成证书
然后部署timescaledb
最后在局域网中部署

文件夹设置

sudo mkdir -pv /data/thingsboard/mytb-data
sudo mkdir -pv /data/thingsboard/mytb-logs
sudo mkdir -pv /data/thingsboard/keys
cd /data/thingsboard
sudo chown -R 799:799 mytb-data
sudo chown -R  799:799 mytb-logs
sudo chown -R 799:799 keys

mkcert生成证书

参考:https://github.com/FiloSottile/mkcert

cd $HOME/Downloads
sudo apt install libnss3-tools #必要依赖
wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64 -O mkcert
chmod a+x mkcert
sudo mv mkcert /usr/local/bin/
mkcert -CAROOT # 显示当前用户的CAROOT安装目录
mkcert -install # 安装CA证书
# 下载CA证书到客户端浏览器
mkcert -p12-file server.p12 -pkcs12  localhost 127.0.0.1 ::1 10.168.2.155  #生成java程序所需的p12文件
sudo cp server.p12 /data/thingsboard/keys
sudo chown -R 799:799 /data/thingsboard/keys

pull docker镜像

docker pull thingsboard/tb #不需要postgres版本

运行thingsboard

运行thingsbaord需要几个设置

  1. timescaledb数据库
    建议通过–link制定host的名字,必须知道用户名、密码和端口,并进行设置
  2. 通过mkcert生成的证书,这样才可以以https方式访问
  3. 映射好目录,并确认799的owner和group权限;
# 去掉后的注释才能正常运行!
sudo docker run -d --name tb 
--link timescaledb:timescaledb  # 已经运行的timescaledb服务器
-p 8080:9090  # 端口映射
-p 1883:1883 
-p 5683:5683/udp 
-e SSL_ENABLED=TRUE  #启用https
-e SSL_KEY_STORE=/keys/server.p12  # key的位置,默认是classpath中,实际上classpath中是没有keystore文件的
-e SSL_KEY_STORE_PASSWORD=changeit  # mkcert生成的p12文件的默认密码,可以用keytool更改
-e SSL_KEY_STORE_TYPE=PKCS12  # p12文件格式
-e SSL_KEY_ALIAS=1  # mkcert生成的p12文件中的别名,tb中默认是tomcat,会提示找不到
-e TB_QUEUE_TYPE=in-memory  # 默认
-e DATABASE_ENTITIES_TYPE=sql  # sql类型
-e DATABASE_TS_TYPE=timescale  # 使用timescaledb 必要的设置
-e DATABASE_TS_LATEST_TYPE=timescale  # 使用timescaledb 必要的设置
-e SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.PostgreSQLDialect 
-e SPRING_DRIVER_CLASS_NAME=org.postgresql.Driver 
-e SPRING_DATASOURCE_URL=jdbc:postgresql://timescaledb:5432/thingsboard 
-e SPRING_DATASOURCE_USERNAME=postgres 
-e SPRING_DATASOURCE_PASSWORD= 
-e SPRING_DATASOURCE_MAXIMUM_POOL_SIZE=5 
-e SQL_TIMESCALE_CHUNK_TIME_INTERVAL=604800000  # 1周的毫秒数
-v /data/thingsboard/mytb-data:/data 
-v /data/thingsboard/mytb-logs:/var/log/thingsboard 
-v /data/thingsboard/keys:/keys 
thingsboard/tb 

sudo docker logs -f tb # 查看启动过程

导入CA证书查看

mkcert -CAROOT输出的目录中的的rootCA.pem文件加入到浏览器的信任根证书中,重启浏览器,访问网页即可。

本文章来源于互联网,如有侵权,请联系删除!原文地址:2020-12-13 局域网中部署带https的thingsboard

相关推荐: IOT开源数据平台Thingsboard源码分析(三)-Actor模型

Actor模型在异步处理中使用广泛,尤其是scala语言中actor框架的使用。本篇主要介绍thingsboard中其自主实现的actor模型,及在数据传输中的使用。 Actor模型简介 Actor由状态(state)、行为(Behavior)和邮箱(mail…