From 3aa87057002eab421fc268b40e3ef9179e185eec Mon Sep 17 00:00:00 2001 From: xujiang Date: Sun, 31 Jan 2021 01:25:02 +0800 Subject: [PATCH] =?UTF-8?q?:new:=20=E6=B7=BB=E5=8A=A0https=E6=94=AF?= =?UTF-8?q?=E6=8C=81,=20=E6=B7=BB=E5=8A=A0=E5=AF=B9=E5=BA=94api=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/.vuepress/config.js | 32 +++++++++++++++++ doc/img/common/deploy.png | Bin 0 -> 96578 bytes doc/zh/guide/deployDev/api.md | 58 ++++++++++++++++++++++++++++++ doc/zh/guide/deployDev/deploy.md | 27 ++++++++++++++ doc/zh/guide/deployDev/https.md | 59 +++++++++++++++++++++++++++++++ doc/zh/guide/deployDev/oss.md | 45 +++++++++++++++++++++++ package.json | 2 +- src/pages/document.ejs | 3 ++ 8 files changed, 225 insertions(+), 1 deletion(-) create mode 100644 doc/img/common/deploy.png create mode 100644 doc/zh/guide/deployDev/api.md create mode 100644 doc/zh/guide/deployDev/deploy.md create mode 100644 doc/zh/guide/deployDev/https.md create mode 100644 doc/zh/guide/deployDev/oss.md diff --git a/doc/.vuepress/config.js b/doc/.vuepress/config.js index 0dc9433..e9fd765 100755 --- a/doc/.vuepress/config.js +++ b/doc/.vuepress/config.js @@ -112,6 +112,38 @@ module.exports = { }, ], }, + { + title: '私有化部署和二次开发', + collapsable: false, + sidebarDepth: 1, + type: 'group', + children: [ + { + title: '私有化部署', + path: '/zh/guide/deployDev/deploy', + collapsable: false, + sidebarDepth: 1, + }, + { + title: '支持https', + path: '/zh/guide/deployDev/https', + collapsable: false, + sidebarDepth: 1, + }, + { + title: '接入第三方oss', + path: '/zh/guide/deployDev/oss', + collapsable: false, + sidebarDepth: 1, + }, + { + title: 'API接口文档', + path: '/zh/guide/deployDev/api', + collapsable: false, + sidebarDepth: 1, + }, + ], + }, ], }, }; diff --git a/doc/img/common/deploy.png b/doc/img/common/deploy.png new file mode 100644 index 0000000000000000000000000000000000000000..deca669380be2f7560c5ffb6e6d8c291348e9927 GIT binary patch literal 96578 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 + +**H5-Dooring**后端部分主要使用 `Nodejs` 开发, 为了满足更多定制化需求和服务的可移植性, 特意编写了API接口文档, +方便大家使用不同的后端语言实现服务接入. + +## 用户相关 + +### 登录注册 + +### 权限控制 + +### 用户列表 + +### 删除用户 + +### 修改用户信息 + + +## H5页面管理 + +### 获取H5数据 + +### 保存H5数据 + +### 修改H5数据 + +### 删除H5数据 + +## H5表单数据管理 + +### 保存表单数据 + +### 批量导入表单数据 + +### 删除表单数据 + +## 模版管理 + +### 获取模版库 + +### 保存模版 + +### 修改模版 + +### 删除模版 + +## 文件上传 + +## 数据统计 + +### 数据大盘接口 + +### 页面埋点 \ No newline at end of file diff --git a/doc/zh/guide/deployDev/deploy.md b/doc/zh/guide/deployDev/deploy.md new file mode 100644 index 0000000..d768233 --- /dev/null +++ b/doc/zh/guide/deployDev/deploy.md @@ -0,0 +1,27 @@ + + +私有化部署需要获取4个核心项目包, 包括 +- H5编辑器(h5_plus) +- H5基座(h5) +- Dooring管理后台(Dooring-Admin) +- 服务端项目(Server) + +获取以上四个核心源码工程需要满足商业授权协议, 具体可联系[徐小夕](http://h5.dooring.cn/uploads/WechatIMG3_1758e9753e2.jpeg) + +### 部署架构图 + +H5-dooring部署 + +部署流程如下: + +1. 下载4个源码工程, 安装依赖(npm install 或 yarn) +2. 打包3个前端工程至`server`的static目录下 +3. 在`server`下本地运行 `yarn start` 或 `npm start` 启动服务端进行本地测试 +4. 打包服务端代码, `yarn build` 生成 `dist` 目录, 建议使用 `pm2` 做`nodejs`服务的负载均衡, 运行 `pm2 start dist/index.js`启动生产环境代码 + +也可以将以上步骤集成到gitlab等CI, CD服务中, 进行自动化打包发布, 或者采用`docker`进行容器化部署. diff --git a/doc/zh/guide/deployDev/https.md b/doc/zh/guide/deployDev/https.md new file mode 100644 index 0000000..c0c3467 --- /dev/null +++ b/doc/zh/guide/deployDev/https.md @@ -0,0 +1,59 @@ + + +目前**H5-Dooring**全面支持https部署, 具体方式方案如下. + +### 前端工程 + +我们需要在前端工程中的`src/pages/document.ejs`中的`head`中添加如下代码: + +``` html + +``` + +目的是强制将页面中HTTP请求转换为HTTPS. + +### 服务器工程 + +#### 1. 申请SSL证书 + +#### 2. 生成 server.csr+server.key + +#### 3. 通过证书链生成.pem文件 + +#### 在`server`中的`src/index.js`按如下方式修改 + +``` js +// 忽略部分无影响代码 +import https from 'https'; + +// 你的ssl存放路径, 建议直接放在server目录下 +const filePath = path.join(__dirname, '../ssl') + +// 启动逻辑 +async function start() { + // https配置 + const httpsOptions = { + key: fs.readFileSync(path.join(filePath, '3536084__doctopia.com.cn.key')), //ssl文件路径 + cert: fs.readFileSync(path.join(filePath, '3536084__doctopia.com.cn.pem')) //ssl文件路径 + }; + + // https服务 + const server = https.createServer(httpsOptions, app.callback()); + + const io = require('socket.io')(server); + + // 忽略其他无影响代码 + + // https默认443, 这里我们可以走公共配置 + server.listen(443, () => { + console.log(`服务器地址:${config.staticPath}`) + }); +} + +start() +``` \ No newline at end of file diff --git a/doc/zh/guide/deployDev/oss.md b/doc/zh/guide/deployDev/oss.md new file mode 100644 index 0000000..1e9e284 --- /dev/null +++ b/doc/zh/guide/deployDev/oss.md @@ -0,0 +1,45 @@ + + +**H5-Dooring**全面支持第三方对象存储服务, 我们以七牛云对象存储为例. + +### 前端上传文件到oss +首先我们需要在第三方对象储存服务中配置对应的服务和域名. 其次安装对应的sdk, 如七牛云sdk: + +``` js +import * as qiniu from 'qiniu-js'; +``` + +其次我们修改`h5_plus`工程的`Upload`组件, 详细地址为`src/core/FormComponents/Upload`. + +修改内容如下: + +``` js +const fileName = file.name +const suffix = '自定义文件后缀' +const putExtra = { + fname: fileName, + params: {} +} +const uid = +new Date() + uuid(16, 8) + suffix +// 使用七牛云上传api, 前提是提前在前端拿到对应的ticket, 可以通过请求的方式获取 +const observe = qiniu.upload(file, uid, this.state.qnToken.ticket, putExtra, {}) +observe.subscribe(() => {}, null, (res) => { + // 拼接路径 + const url = `${this.state.qnToken.domain}/${res.key}`; + // 存库 + const fileList = [{ uid, name: fileName, status: 'done', url }]; + this.setState({ + curImgUrl: url, + fileList + }) + this.props.onChange && this.props.onChange(fileList) +}) +``` + +其他oss服务类似, 如果不清楚如何配置, 可以在[H5-Dooring官网](http://h5.dooring.cn/)中找到我们. + diff --git a/package.json b/package.json index 7390e74..c9d475d 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "author": { "name": "徐小夕", "email": "xujiang156@qq.com", - "url": "http://io.nainor.com/h5_visible" + "url": "http://h5.dooring.cn/h5_visible" }, "keywords": [ "h5 editor", diff --git a/src/pages/document.ejs b/src/pages/document.ejs index 2473b41..ef5db85 100644 --- a/src/pages/document.ejs +++ b/src/pages/document.ejs @@ -8,6 +8,9 @@ + + +