Centos7环境下源码部署ThingsBoard

2019-07-14 admin

本文为有thingsboard二次开发需求的同学准备,可以修改源码后编译运行。

准备工作

一台4Gb内存以上的服务器(官方推荐8Gb以上,但实测以下配置即可正常运行)

clipboard.png

Centos7系统

clipboard.png

打开8080端口

clipboard.png

安装wget

sudo yum install -y wget

更新 EPEL release

sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

开始安装

安装Java JDK-1.8

sudo yum install java-1.8.0-openjdk

sudo update-alternatives --config java

查看Java是否安装成功

java -version

期望输出为

openjdk version "1.8.0_xxx"
OpenJDK Runtime Environment (...)
OpenJDK 64-Bit Server VM (build ...)

如果输出不正常则需要配置环境变量

vim /etc/profile export JAVA_HOME = ${你的安装路径不带bin}

在PATH后边加入

$JAVA_HOME/bin

安装最新版Maven(直接用yum安装可能会导致版本过低无法编译)

下载

wget https://www-eu.apache.org/dist/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz

解压缩

tar xvf apache-maven-3.6.0-bin.tar.gz -C /usr/lib/

配置环境变量

vi /etc/profile

添加以下代码

M2_HOME="/usr/lib/apache-maven-3.6.0"
export M2_HOME

M2="$M2_HOME/bin"
MAVEN_OPTS="-Xms256m -Xmx512m"
export M2 MAVEN_OPTS

PATH=$M2:$PATH
export PATH

加载更新后的profile

. /etc/profile

source /etc/profile

查看Maven是否配置成功

mvn -version

有如下返回则表示成功
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T23:41:47+05:00)
Maven home: /usr/lib/apache-maven-3.6.0
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"

安装PostgreSQL

更新yum

sudo yum update

安装RPM

sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

安装Packages

sudo yum install postgresql96-server postgresql96-contrib

初始化PostgreSQL

sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

启动服务

sudo systemctl start postgresql-9.6

设置PostgreSQL为开机启动

sudo systemctl enable postgresql-9.6

配置PostgreSQL密码

切换用户postgres

sudo su - postgres

进入PostgreSQL

psql

设置密码(注意’'也需要输入)

\password

记住设置的密码并退出

\q

更改PostgreSQL配置项

sudo vim /var/lib/pgsql/9.6/data/pg_hba.conf

更改以下行

# IPv4 local connections:
host    all             all             127.0.0.1/32            ident

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

重启PostgreSQL

sudo systemctl restart postgresql-9.6.service

创建database

进入数据库

如果在postgres用户下可以直接输入

psql

否则输入

psql -U postgres -d postgres -h 127.0.0.1 -W

创建thingsboard数据库并退出

CREATE DATABASE thingsboard; \q

下载Thingsboard源码

安装git

yum install git

Clone源码

cd ~ git clone git@github.com:thingsboard/thingsboard.git

切换版本(这里以2.3版为例)

cd thingsboard git checkout release-2.3

更改Thingsboard配置项

绕过License选项

vim pom.xml

找到275行开始的的
<plugin>
    <groupId>com.mycila</groupId>
    <artifactId>license-maven-plugin</artifactId>
    <version>3.0</version>
    <configuration>
    ....
</plugin>
整体注释掉
<!-- <plugin>
    <groupId>com.mycila</groupId>
    <artifactId>license-maven-plugin</artifactId>
    <version>3.0</version>
    <configuration>
    ....
</plugin> -->
保存并退出vim

:wq

修改Thingsboard数据库相关配置

进入目录

cd ~/thingsboard/application/src/main/resources

vim thingsboard.yml

从297行起,注释掉HSQLDB部分,取消注释PostgreSQL部分
# HSQLDB DAO Configuration
#spring:
#  data:
#    jpa:
#      repositories:
#        enabled: "true"
#  jpa:
#    hibernate:
#      ddl-auto: "validate"
#    database-platform: "${SPRING_JPA_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_si#ze=false;hsqldb.log_size=5}"
#    username: "${SPRING_DATASOURCE_USERNAME:sa}"
#    password: "${SPRING_DATASOURCE_PASSWORD:}"

# PostgreSQL DAO Configuration
spring:
 data:
    sql:
      repositories:
        enabled: "true"
  sql:
    hibernate:
      ddl-auto: "validate"
    database-platform: "${SPRING_JPA_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}"
修改此行数据库登录密码为之前步骤中设置的密码

password: "${SPRING_DATASOURCE_PASSWORD:postgres}"

跳过js-executor和web-ui的windows编译

分别修改以下两个文件

vim msa/js-executor/pom.xml vim msa/web-ui/pom.xml

注释掉以下内容(两个文件都要改)

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.0.0</version>
    <configuration>
        <finalName>${pkg.name}</finalName>
        <descriptors>
            <descriptor>src/main/assembly/windows.xml</descriptor>
        </descriptors>
    </configuration>
    <executions>
        <execution>
            <id>assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

编译thingsboard源码

cd ~/thingsboard

耗时较长需要耐心等待

mvn clean install -DskipTests -X

出现如下提示则编译成功(缺一不可)

clipboard.png

安装编译好的tingsboard

找到编译好的安装文件

cd application/target

运行安装

sudo rpm -Uvh thingsboard.rpm

运行脚本

sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo

启动服务

sudo service thingsboard start

完成

至此从配置环境到源码编译运行的Thingsboard运行成功

可以访问localhost:8080服务器ip:8080访问页面

clipboard.png

注意事项

前端的同学注意

thingsboard有热更新服务,可以用于开发。

具体操作: cd ~/thingsboard/ui maven install -P npm-start 即可在3000端口启动前端服务。

不过需要注意的是

如果前端后端不在同域名下,例如后端服务在云端,前端服务在本地,则需要修改以下文件中的内容

vim ~/thingsboard/ui/server.js

const forwardHost = 'localhost';

const ruleNodeUiforwardHost = 'localhost';

把localhost改成你的域名或ip即可

附录

一些相关的命令

PostgreSQL导入SQL

psql -d 数据库名称 -U 用户名 -f xxx.sql

如果当前用户是postgres

psql -d 数据库名称 -f xxx.sql

删除数据库

进入数据库后输入

drop database 数据库名称

Thingsboard服务启动/停止

sudo service thingsboard [start | stop]

查看Thingsboard错误日志

cat /var/log/thingsboard/thingsboard.log | grep ERROR

[转载]原文链接:https://segmentfault.com/a/1190000019755315

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-69751.html

文章标题:Centos7环境下源码部署ThingsBoard

相关文章
HTML5会是下一个风口吗?
2014年10月底, W3C(万维网联盟)正式宣布HTML5正式定稿,科技圈就像发现了可以打破谷歌、苹果所统领的原生APP世界的方法,发表了很多宣讲HTML5将真正开始颠覆原生(Native)App的文章,也开始着力发展HTML5,开始抢占...
2015-11-12
JS中Select下拉列表类(支持输入模糊查询)功能
下面给大家分享一段代码关于select下拉列表类支持输入模糊查询功能的实现代码,具体代码如下所示: &lt;span style=&quot;font-size:14px;&quot;&gt; &lt;HTML&gt; &lt...
2017-03-06
mpvue 小程序如何开启下拉刷新,上拉加载?
https://developers.weixin.qq.com/miniprogram/dev/api/pulldown.html#onpulldownrefresh 小程序API 微信小程序之下拉加载和上拉刷新 微信小程序下拉加载和上拉...
2018-05-25
Windows Server 2003将于7月14日停服
腾讯数码讯(文心)据PCWorld网站报道,微软的Windows Server 2003操作系统将很快重蹈Windows XP停服的覆辙,对于迟迟没有升级到新版本服务器操作系统的IT主管来说,这确实是个坏消息。 微软将于7月14日叫停对W...
2015-11-12
VSCode配置react开发环境的步骤
vscode 默认配置对于 react 的 JSX 语法不友好,体现在使用自动格式化或者粘贴后默认缩进错误,尽管可以通过改变 language mode 缓解错误,但更改 language mode 后的格式化依然不够理想。 通过搭配使用 ...
2017-12-28
为你的 VS Code 搭建远程开发环境
开篇先说一下自己遇到的烦恼,介绍下写这篇文章的背景。我有一台低配的 MacBook 和 一台性能强悍的台式机。之前自己都是在 Mac 上跑前端项目的,那台台式机基本上处于闲置状态,偶尔用来看看文档。后来随着自己需要做服务端开发,有时候需要同...
2018-02-26
7个你可能不认识的CSS单位
浼楁墍鍛ㄧ煡CSS鎶€鏈�鎴戜滑铏界劧寰堢啛鎮夛紝鍦ㄤ娇鐢ㄧ殑杩囩▼鍗村緢瀹规槗琚�鍥颁綇锛岃繖璁╂垜浠�鍦ㄦ柊闂�棰樺嚭鐜扮殑鏃跺€欏彉寰楀緢涓嶅埄銆� 闅忕潃web缁х画涓嶆柇鍦板彂灞曪紝瀵逛簬鏂版妧鏈�鏂拌В鍐虫柟妗堢殑瑕佹眰涔熶細涓...
2015-11-11
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
1.bootstrap-table 单击单行选中 $(&#x27;#gzrwTable&#x27;).on(&#x27;click-row.bs.table&#x27;, function(e, row, $element) { $(&#x...
2017-02-17
windows 下安装nodejs 环境变量设置
要设置两个东西,一个是PATH上增加node.exe的目录C:\Program Files\nodejs,一个是增加环境变量NODE_PATH,值为C:\Program Files\nodejs\node_modules 一、下载 去nod...
2017-03-18
回到顶部