jetLinks

1、仓库地址

后端 前端
github https://github.com/jetlinks/jetlinks-community.git https://github.com/jetlinks/jetlinks-ui-antd.git
gitee https://gitee.com/jetlinks/jetlinks-community.git https://gitee.com/jetlinks/jetlinks-ui-antd.git

2、基础环境

  1. jdk 1.8.0_2xx
  2. maven
  3. node v12.x
  4. npm v6.x
  5. nginx
  6. redis 5.x
  7. PostgreSQL 11 或者 mysql 5.7 +
  8. ElasticSearch 6.8 + 下载 (未实现)

3、原码启动

  1. 后台配置修改

    配置文件地址:jetlinks-standalone/src/main/resources/application.yml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # 只涉及修改的地方
    spring:
    r2dbc:
    # 需要手动创建数据库,启动会自动创建表,修改了配置easyorm相关配置也要修改
    # url: r2dbc:postgresql://localhost:5432/jetlinks
    url: r2dbc:mysql://localhost:3306/jetlinks?ssl=false&serverZoneId=Asia/Shanghai # 修改了配置easyorm相关配置也要修改
    username: jetlinks # 数据库用户名
    password: jetlinks # 数据库密码
    easyorm:
    default-schema: jetlinks # 数据库名 修改了数据库请修改这里,mysql为数据库名
    dialect: mysql # 数据库方言,支持 postgres,mysql,h2
    elasticsearch:
    embedded:
    enabled: true # 为true时使用内嵌的elasticsearch,不建议在生产环境中使用
  2. 打包

    1
    ./mvnw clean package -Dmaven.test.skip=true
  3. 启动 (自行放置到部署目录)

    1
    java -jar ./jetlinks-standalone/target/jetlinks-standalone.jar
  4. 前端:修改后台接口地址: 后台接口配置文件地址:config/proxy.ts

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /**
    * 在生产环境 代理是无法生效的,所以这里没有生产环境的配置
    */
    export default {
    dev: {
    '/jetlinks': {
    target: '后台地址',
    changeOrigin: true,
    pathRewrite: { '^/jetlinks': '' },
    },
    },
    test: {
    '/jetlinks': {
    target: '后台地址',
    changeOrigin: true,
    pathRewrite: { '^/jetlinks': '' },
    },
    },
    pre: {
    '/jetlinks': {
    target: '后台地址',
    changeOrigin: true,
    pathRewrite: { '^/jetlinks': '' },
    },
    },
    };
  5. 启动

    1
    2
    npm install
    npm start
  6. 打包

    1
    npm run-script build
  7. nginx普通部署

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    server {
    listen 80; #端口号
    #你的域名
    server_name "你的域名";

    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 "实际dist目录";
    include /etc/nginx/mime.types;
    location / {
    try_files $uri $uri/ @router;
    index index.html;
    }

    location ^~/jetlinks/ {
    proxy_pass "后台服务器地址"; #修改此地址为后台服务地址
    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;
    }
    }

4、docker启动

  1. 获取原码

    1
    git clone https://github.com/jetlinks/jetlinks-community.git
  2. 启动

    1
    2
    3
    cd jetlinks-community
    cd docker/run-all
    docker-compose up
  3. 访问

    默认端口9000,用户名:admin,密码:admin

5、Https安全

  1. 获取 SSL 安全证书

  2. 下载证书并上传至服务器

    这里默认下载 nginx 证书

  3. 安全部署代理转发

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
server {
#监听443端口
listen 443 ssl;
#你的域名
server_name "你的域名";
# ssl on;
#ssl证书的凑crt文件路径 (阿里云证书没有crt使用pem)
ssl_certificate "crt证书路径";
#ssl证书的key文件路径
ssl_certificate_key "key路径";
ssl_session_cache shared:SSL:1m;
#指定客户端可以重用会话参数的时间
ssl_session_timeout 5m;
#配置加密套件。为空字符串时,由openssl自行选择加密算法
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#为遵循安全规范,配置协议不支持SSLv3、SSLv2 、TLSv1
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000";

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 "dist文件路径";
include /etc/nginx/mime.types;
location / {
try_files $uri $uri/ @router;
index index.html;
}

location ^~/jetlinks/ {
proxy_pass "后端地址"; #修改此地址为后台服务地址
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;
}
}
# 自动跳转https
server {
listen 80;
listen [::]:80;
charset utf-8;
server_name "你的域名";
rewrite ^(.*)$ https://$host$1 permanent;
}