河图, 是一个 低代码
平台, 通过可视化界面, 快速生成各种后台页面, 极大减少开发成本。
河图是贝壳找房内部孵化项目, 目前已在公司大多数业务线落地, 完成200+项目, 1500+页面。
- 对重复模块(增、删、改、查页面)进行抽象、封装,大幅降低前端开发工作量
- 通过可视化编辑界面,非前端人员(后端、测试), 也能进行页面开发
FE、QA、RD 等。
- PC 端 后台管理系统
- 数据增、删、改、查页面
- 图表展示
河图的开发、调试、测试、上线都是在浏览器中进行的
- 现代浏览器和 IE9 及以上。
用于代码部署
需要开启SMTP服务, 用于发送验证码
可选择以下两种方式,部署MySQL服务
- 手动部署MySQL数据库
- 购买MySQL云服务
将server/open_hetu.sql
文件, 导入到数据库
在/server/src
目录下创建system_config.ini
文件, 内容如下
[ssh]
- ssh_ip 云服务器ip
- ssh_user 云服务器登录账号
[client]
- cdn_host 静态资源CDN, 例如
cdn.beike.plus
- cdn_host 静态资源CDN, 例如
[server]
- port node服务启动端口
[mysql]
mysql配置[email]
- host SMTP服务域名
- port 连接端口
- user 公共邮箱账号
- pass 授权密码
配置格式为
[ssh]
ssh_ip = ******
ssh_user = ******
[client]
cdn_host = ******
[server]
port = 9536
[mysql]
host = ****
port = ****
user = ****
password = ****
database = ****
[email]
host = smtp.163.com
port = 364
user = ****
pass = ****
/plugin
目录下的内容为组件库/plugin/site
目录下的内容为组件库文档
在云服务器上创建文件夹, 用于存在静态资源
cd /data/www/
# 创建文件夹, 用于存放静态资源
mkdir hetu-client hetu-doc hetu-plugin hetu-server
# 创建配置文件, 内容见上一步
touch system_config.ini
如果没有安装nginx, 需要先 安装nginx
# 进入nginx配置目录
cd /etc/nginx/conf.d/
# 创建配置文件
touch hetu-cdn.conf hetu-doc.conf hetu-server.conf
申请3个域名, 例如 河图node服务xxx.com
、cdn静态资源服务cdn.xxx.com
、文档服务doc.xxx.com
, 将这3个域名分别指向前面申请的云开发机ip, 配置如下:
server {
listen 80;
server_name cdn.xxx.com;
root /data/www/;
gzip on;
gzip_http_version 1.1;
gzip_buffers 256 64k;
gzip_comp_level 5;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/javascript application/x-javascript t
ext/css application/xml text/javascript application/vnd.ms-fontobject font/ttf font/open
type font/x-woff;
gzip_disable "MSIE 6";
if ( $request_method !~ GET|POST|HEAD ) {
return 403;
}
location ^~ /hetu-plugin/ {
add_header 'Access-Control-Allow-Origin' '*';
alias /data/www/hetu-plugin/;
}
location ^~ /hetu-client/ {
add_header 'Access-Control-Allow-Origin' '*';
alias /data/www/hetu-client/;
}
}
server {
listen 80;
server_name doc.xxx.com;
root /data/www/hetu-doc;
gzip on;
gzip_http_version 1.1;
gzip_buffers 256 64k;
gzip_comp_level 5;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/javascript application/x-javascript t
ext/css application/xml text/javascript application/vnd.ms-fontobject font/ttf font/open
type font/x-woff;
gzip_disable "MSIE 6";
if ( $request_method !~ GET|POST|HEAD ) {
return 403;
}
location / {
index index.html index.htm;
if (!-f $request_filename) {
rewrite ^/(.*)$ /index.html?/$1 last;
break;
}
}
}
server {
listen 80;
server_name xxx.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:9536;
}
}
重启nginx
# 检测配置文件是否正确
nginx -t
# 重启nginx
nginx -s reload
- 打开
http://doc.xxx.com
预览文档服务 - 打开
http://cdn.xxx.com/hetu-plugin/manifest.json
预览静态资源服务
# server
cd ./server && npm install
# client
cd ../client && npm install
# client
cd ./client && npm start
# server
cd server && npm run dev
打开
127.0.0.1:1234
预览
# 打包 && 部署client
sh online_client.sh
# 打包 && 部署server
sh online_server.sh
EPEL(Extra Packages for Enterprise Linux)企业版Linux的额外软件包,是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。
# 先确认系统是否已安装epel-release包
yum info epel-release
# 若已安装, 则跳过
sudo yum install epel-release
# 安装nodejs
sudo yum install nodejs
# 查看node版本
node -v
pm2是node进程管理工具, 利用它可以简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等。
# 全局安装
sudo npm i -g pm2
# 启动一个名为hetu的node服务, --watch意味着文件变化, 就会重新启动服务
pm2 start dist/app.js --watch --name 'hetu'
# 设置开机启动
pm2 start up
# 保存当前进程状态
pm2 save
# 查看当前node服务进程
pm2 list
Name | Avatar | Name | Avatar | Name | Avatar | Name | Avatar | Name | Avatar |
---|---|---|---|---|---|---|---|---|---|
好爸爸 | 嘻老师 | 姚泽源 | liaoqixin | 般若超 |
Copyright(c) 2020 Lianjia, Inc. All Rights Reserved