thingsboard 是一个开源平台,用于收集和可视化物联网设备的数据。可以将来自任意数量设备的数据发送到云服务器,在云服务器中可以通过可自定义的仪表板查看或共享。
thingsboard 有两种安装方式一种是直接通过安装包安装 ,再者是通过源码编译安装下面会介绍。
下载安装包
wget
sudo dpkg -i thingsboard-1.3.1.deb
不过在安装 thingsboard 之前需要先安装和设置 postgresql 数据库。
sudo apt install postgresql postgresql-contrib
为 thingsboard 创建数据库和数据库用户:
sudo -u postgres psql
在数据库操作环境执行 alter user postgres with password 'postgres';
重新登录数据库 psql -u postgres -d postgres -h 127.0.0.1 -w
创建 thingsboard 数据库。在数据库操作环境中执行 create database thingsboard;
安装配置 java 环境。推荐 java8
安装配置 maven
安装配置 nodejs
下载 thingsboard 源代码
最后讲生成 jar 包 thingsboard-2.1.1-snapshot-boot.jar
修改 /etc/thingsboard/conf/thingsboard.yml
注释掉 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 进行编译,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 -rf :ui
如果编译遇到 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。
1.安装 cnpm
npm install -g cnpm --registry=
cnpm install
cnpm run build
cnpm start
java -jar thingsboard-2.1.1-snapshot-boot.jar 和 cnpm run start 分别在不同的终端执行。
原文链接: