ThingsBoard是一个开源平台,用于收集和可视化物联网设备的数据。可以将来自任意数量设备的数据发送到云服务器,在云服务器中可以通过可自定义的仪表板查看或共享。
ThingsBoard 有两种安装方式一种是直接通过安装包安装 ,再者是通过源码编译安装下面会介绍。
下载安装包
wget https://github.com/thingsboard/thingsboard/releases/download/v1.3.1/thingsboard-1.3.1.deb
安装
sudo dpkg -i thingsboard-1.3.1.deb
不过在安装ThingsBoard之前需要先安装和设置postgreSQL数据库。
创建thingsboard数据库。在数据库操作环境中执行
CREATE DATABASE thingsboard;
注释掉HSQLDB相关配置
# HSQLDB DAO Configuration
#spring:
# data:
# jpa:
# repositories:
# enabled: "true"
# jpa:
# hibernate:
# ddl-auto: "validate"
# database-platform: "org.hibernate.dialect.HSQLDialect"
# datasource:
# driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.hsqldb.jdbc.JDBCDriver}"
# url: "${SPRING_DATASOURCE_URL:jdbc:hsqldb:file:${SQL_DATA_FOLDER:/tmp}/thingsboardDb;sql.enforce_size=false}"
# username: "${SPRING_DATASOURCE_USERNAME:sa}"
# password: "${SPRING_DATASOURCE_PASSWORD:}"
在同一节中,取消注释PostgreSQL配置块。用thingsboard
用户名和密码替换用户名和密码字段thingsboard
: thingsboard-master/application/src/main/resources/thingsboard.yml
# PostgreSQL DAO Configuration
spring:
data:
jpa:
repositories:
enabled: "true"
jpa:
hibernate:
ddl-auto: "validate"
database-platform: "org.hibernate.dialect.PostgreSQLDialect"
datasource:
driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}"
url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/thingsboard}"
username: "${SPRING_DATASOURCE_USERNAME:postgres}"
password: "${SPRING_DATASOURCE_PASSWORD:postgres}"
7.进入Thingsboard源码主目录,执行mvn clean install.(注意要先修改thingsboard.yml 再编译)
通过安装包安装。同样需要修改thingsboard.yml 此时 文件路径是/etc/thingsboard/conf/thingsboard.yml
如果是使用安装包安装:
运行此安装脚本: sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo
启动ThingsBoard服务: sudo systemctl enable thingsboard sudo systemctl start thingsboard
如果是编译源码安装:
第一次启动前需要修改application/target/bin/install/下的install.sh和install_dev_db.sh 文件几个文件夹路径改为/application/target/的路径。
例如:
CONF_FOLDER=/home/user/data/log/thingsboard/thingsboard-master/application/target/conf
configfile=thingsboard.conf
jarfile=/home/user/data/log/thingsboard/thingsboard-master/application/target/thingsboard-2.1.1-SNAPSHOT-boot.jar
installDir=/home/user/data/log/thingsboard/thingsboard-master/application/target/data
run_user 改为当前的用户或者不指定(install.sh和install_dev_db.sh 都需要修改)。
然后在application/target/bin/install/ 下执行
./install_dev_db.sh
./install.sh --loadDemo
执行完如果没问题会提示 ThingsBoard installed successfully 。
然后回到application/target目录执行 java -jar thingsboard-2.1.1-SNAPSHOT-boot.jar。
在浏览器中输入localhost:8080 ,你应该看到ThingsBoard登录页面。
docker 环境下编译
由于编译环境搭建繁琐,推荐使用docker进行编译,thingsboard可以运行在docker环境中。
下载docker 镜像:sudo docker pull curlyxi/things-board-env:v1
启动docker 镜像: sudo docker run -t -i curlyxi/things-board-env:v1
在docker环境中: cd /root/thingsboard/thingsboard-master 执行 mvn clean install 即可。
docker 中运行thingsboard
运行thingsboard前需要执行 service postgresql start 启动 postgresql.
第一次启动前需要修改application/target/bin/install/下的install.sh和install_dev_db.sh 文件几个文件夹路径改为/application/target/的路径。
例如:
CONF_FOLDER=/home/user/data/log/thingsboard/thingsboard-master/application/target/conf
configfile=thingsboard.conf
jarfile=/home/user/data/log/thingsboard/thingsboard-master/application/target/thingsboard-2.1.1-SNAPSHOT-boot.jar
installDir=/home/user/data/log/thingsboard/thingsboard-master/application/target/data
run_user 改为当前的用户或者不指定(install.sh和install_dev_db.sh 都需要修改)。
然后在application/target/bin/install/ 下执行
./install_dev_db.sh
./install.sh --loadDemo
执行完如果没问题会提示 ThingsBoard installed successfully 。
然后回到application/target目录执行 java -jar thingsboard-2.1.1-SNAPSHOT-boot.jar。
在宿主机浏览器中输入localhost:8080 ,你应该看到ThingsBoard登录页面。
错误处理
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.0:npm (npm install) on project ui: Failed to run task: 'npm install' failed. (error code 1) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn
如果编译遇到UI 模块编译不过,可以先跳过UI编译。
单独编译tool和application模块。编译application模块的时候修改pom.xml 注释掉UI库的依赖。
同样会生成thingsboard-2.1.1-SNAPSHOT-boot.jar 。执行thingsboard-2.1.1-SNAPSHOT-boot.jar和上文介绍步骤一样:
修改install_dev_db.sh和执行install.sh. 在application/target/bin/install/ 下执行
./install_dev_db.sh
./install.sh --loadDemo
执行完如果没问题会提示 ThingsBoard installed successfully 。
然后回到application/target目录执行 java -jar thingsboard-2.1.1-SNAPSHOT-boot.jar。
UI库需要单独编译和单独执行
使用npm 编译UI 库.
1.安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
2. 在UI目录依次执行
cnpm install
cnpm run build
cnpm start
3. 由于UI库是单独执行,所以需要打开的网页是 http://localhost:3000 。
java -jar thingsboard-2.1.1-SNAPSHOT-boot.jar 和 cnpm run start分别在不同的终端执行。