# 1.搭建自己的ELCube平臺
ELCube 是一個輕量級的企業(yè)應(yīng)用開發(fā)模型,采用后端Java前端Vue的前后端分離模式開發(fā), 因此安裝ELCube需要滿足下述安裝環(huán)境要求,并同時部署服務(wù)端程序及WEB端資源文件,并通過反向代理向外提供服務(wù)。
# 安裝環(huán)境
| 環(huán)境 | 要求 | 說明 |
|---|---|---|
| JAVA | jdk1.8+ | 推薦使用Oracle JDK |
| RDBMS | MySQL5.6、Oracle9、10、11等 | 支持各大主流關(guān)系型數(shù)據(jù)庫 |
| Redis | v2.0+ | 推薦分配內(nèi)存2G以上 |
| ElasticSearch | v7.7.1,v7.9.3 | 推薦7.9.3版本,集群3個節(jié)點以上 |
| RabbitMQ | v3+ | 可選,如不使用可移除對kernel-mq模塊的引用 |
| Nginx | v1.14.0+ |
提示
ElasticSearch 必須安裝IK分詞器
# 開發(fā)環(huán)境
| 環(huán)境 | 要求 | 說明 |
|---|---|---|
| git | v2.23+ | 版本管理 |
| maven | v2.0+ | 服務(wù)端使用Maven構(gòu)建,推薦使用Maven3 |
| node.js | v14.8.0+ | WEB端使用node環(huán)境構(gòu)建 |
| npm | v6.0+ | WEB端包管理器 |
# 源碼下載
ELCube 通過Gitee進行代碼托管,您可以從下述地址check代碼
Java服務(wù)端 https://gitee.com/newcorenet/elcube-backend (opens new window)
Vue前端 https://gitee.com/newcorenet/elcube-front (opens new window)
# 運行
# 配置服務(wù)端
elcube-backend/application 模塊是ELCube的入口模塊
在application-dev.yml中配置您的資源連接
nk:
# env-key 不是必須的,它允許您在同一個ElasticSearch應(yīng)用下啟動多個ELCube程序,并作為索引名的前綴
env-key: elcube_rd
# env-name 不是必須的,它會在主界面顯示,可用于區(qū)分不同的應(yīng)用環(huán)境,如dev、poc等,生產(chǎn)環(huán)境下推薦為空
env-name: 研發(fā)環(huán)境2.0
# 文件上傳的存儲路徑,如不使用外部文件存儲服務(wù),則必須設(shè)置
file-root-path: /home/user/files
compress:
enabled: false
# 需要掃描的腳本對象所在的java package
component-base-packages:
- cn.nkpro.elcube.components
# 是否禁用在線編碼,驗證階段,推薦true
component-disable-online-editing: true
# 是否優(yōu)先從classpath加載腳本對象,驗證階段,推薦true
component-reload-class-path: true
doc:
indices:
- demo-index: cn.nkpro.elcube.docengine.model.es.DocExtES
spring:
# 數(shù)據(jù)庫連接部分
datasource:
url: jdbc:mysql://127.0.0.1:3306/elcube
username: root
password: password
driver-class-name: com.mysql.jdbc.Driver
# Redis連接部分
redis:
host: 127.0.0.1
port: 6379
password: password
# ElasticSearch連接部分
elasticsearch:
rest:
uris: ["http://127.0.0.1:9200"]
username: elastic
password: password
# 自動創(chuàng)建數(shù)據(jù)庫表
liquibase:
enabled: true
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
# 運行服務(wù)端
通過SpringBoot入口類
ELCubeApplication啟動應(yīng)用第一次啟動時,
ELCube會根據(jù)yml配置自動創(chuàng)建數(shù)據(jù)庫表及ElasticSearch的索引結(jié)構(gòu)初始化管理員賬號為
admin/adminJava服務(wù)的默認端口配置為
9200,當(dāng)然你也可以通過yml配置修改
# 運行WEB端
# 安裝依賴項
npm install
# 啟動前端服務(wù)
npm run dev
2
3
4
- WEB端默認端口號為
7200
點擊這里http://localhost:7200 (opens new window)試著登陸體驗
# 服務(wù)器部署
# 硬件配置
- 服務(wù)器支持 Linux、Windows Server 2008+ 等操作系統(tǒng)
- 推薦使用Linux部署,支持Centos、Ubuntu等主流Linux發(fā)行版,支持Docker方式部署
| 環(huán)境 | 最低配置 | 推薦配置 |
|---|---|---|
| 演示部署 | 4c8g 存儲500G 所有服務(wù)安裝在一臺服務(wù)器上,作為演示部署 | 4c8g 存儲500G 2臺 數(shù)據(jù)庫與應(yīng)用獨立部署 |
| 生產(chǎn)部署 | 4c8g 存儲500G 2臺 數(shù)據(jù)庫與應(yīng)用獨立部署,應(yīng)用服務(wù)器兼顧數(shù)據(jù)備份 | 根據(jù)實際業(yè)務(wù)壓力部署 |
# 部署
- 通過maven命令打包服務(wù)端程序
mvn clean compile package
- 通過node命令打包WEB端程序
npm run build
分別將服務(wù)端jar文件
elcube-application.jar及WEB端dist文件夾 上傳到服務(wù)器配置nginx代理
server {
listen 80;
server_name demo.youdomain.cn;
gzip on;
gzip_min_length 1k;
gzip_comp_level 1;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript;
gzip_vary on;
gzip_buffers 2 4k;
gzip_http_version 1.1;
location / {
root /nk/applications/resources/dist;
index index.html;
}
location /api/ {
proxy_pass http://localhost:9200/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
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
- 在服務(wù)器端啟動程序
java -jar elcube-application.jar
2.模型 →