部署可以参考官网:http://doc.jetlinks.cn/install-deployment/start-with-source.html
我自己部署遇到许多坑 所以这里记录一下
1.准备环境 按照官网要求 准备好需要的软件
部署服务器需要安装的软件:
(1)JDK 1.8.0_2xx (需要小版本号大于200) 下载jdk
(2)Redis 5.x
(3)PostgreSQL 11 或者 mysql 5.7 +
(4)ElasticSearch 6.8 + 下载 ,也可以直接使用内嵌ElasticSearch.
(5)nginx (启动nginx):
/usr/sbin/nginx -c /etc/nginx/conf.d/default.conf
(6)以上1-5我是利用docker安装的 所以我需要先在服务器安装docker
yum install docker
本地需要安装的软件,仅作参考:
(1)xftp:上传本地文件到服务器
(2)secureCRT:链接服务器,执行命令
(3)nodeJs v12.xx (本地打包前端工程使用 下面会有具体介绍)
(4)npm v6.xx (本地打包前端工程使用 下面会有具体介绍)
2.准备前端包 ps:我都是在本地打包直接上传到linux服务器的
(1)本地打包前端代码环境要求:
- nodeJs v12.xx
- npm v6.xx 需要用npm对前端进行打包
- nodejs和npm的配置可以参考这篇文章(转):https://www.cnblogs.com/kellyPan/p/9653609.html
(2)拉取前端代码
$ git clone https://github.com/jetlinks/jetlinks-ui-antd.git
(3)用npm对前端工程进行打包 会生成一个dist目录
npm install
npm run-script build
(4)用nginx部署前端
复制dist
目录下到文件到服务器/usr/share/nginx/html
配置nginx配置文件(参考官网即可)
server {
listen 80;
# gzip config
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
root /usr/share/nginx/html;
include /etc/nginx/mime.types;
location / {
index index.html;
}
location ^~/jetlinks/ {
proxy_pass http://jetlinks:8848/; #jetlinks改为服务器ip
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 1;
proxy_buffering off;
chunked_transfer_encoding off;
proxy_cache off;
proxy_send_timeout 30m;
proxy_read_timeout 30m;
client_max_body_size 100m;
}
}
3.后端部署(在本地拉取后端代码,并打包)
(1)拉取后端代码
$ git clone https://github.com/jetlinks/jetlinks-community.git
(2)在代码根目录执行:
mvnw clean package -Dmaven.test.skip=true
打出的jar包在j: jetlinks-standalone/target/jetlinks-standalone.jar 这个目录下
(3)将jar包上传到服务器 ,并在jar包存放目录执行命令 启动jar包:
java -jar jetlinks-standalone.jar
4.可能会遇到的问题
(1)启动报错链接不上redis
解决办法:查看自己是否已经安装并启动redis
(2)启动报链接不上postgresql
解决办法:
(1)若postgresql没启动 则先启动:
docker run --name postgres -e POSTGRES_PASSWORD=jetlinks -p 5432:5432 -d postgres:11.4
(2)查看postgresql安装的端口是否与代码配置一致 代码配置是默认端口5432
查看谁在使用某个端口:
lsof -i :5432
(3)链接的数据库jetlinks是否存在 不存在会报找不到数据库错误 新建一个名为jetlinks的数据库即可
root@3d971ead02b8:/# su postgres
postgres@3d971ead02b8:/$ psql
psql (11.4 (Debian 11.4-1.pgdg90+1))
Type "help" for help.
postgres=# create database jetlinks;
5.测试是否启动部署成功,部署成功会返回页面信息
curl http://localhost:nginx端口 我这边是80