
作为前文接口管理平台Yapi-最佳实践 (opens new window)的补充,本文将给出Yapi私有化部署方案的教程
开源代码地址https://github.com/benym/yapi-deploy (opens new window)
文件取自yapi-1.9.3开源版本
使用官方提供的yapi-cli工具,部署 YApi平台是非常容易的。执行 yapi server启动可视化部署程序,输入相应的配置和点击开始部署,就能完成整个网站的部署。部署完成之后,可按照提示信息,执行 node/{网站路径/server/app.js}启动服务器。在浏览器打开指定url, 点击登录输入您刚才设置的管理员邮箱,默认密码为 ymfe.org登录系统(默认密码可在个人中心修改)。
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server yapi-deploy项目yapi-virtual文件夹到宿主机/,如拷贝位置不同,需要同步替换entrypoint.sh中的vendors和init.lock路径cd /yapi-virtual, 填写config.json内servername, user, pass其中authSource为mongodb自带库,默认通过admin授权即可cd /yapi-virtual/vendorsnpm install --production --registry https://registry.npm.taobao.orgcd /yapi-virtualnohup sh entrypoint.sh > out.txt 2&1 &以上7步完成部署
其中entrypoint.sh脚本中内容如下
#!/bin/sh
# yapi初始化后会有一个init.lock文件
lockPath="/yapi-virtual/init.lock"
# 进入yapi项目,如部署机器不同,请修改该路径
cd /yapi-virtual/vendors
# 安装必要包
npm config set registry https://registry.npm.taobao.org/
npm install pm2 -g
npm install -g fs-extra --registry https://registry.npm.taobao.org/
npm install -g safeify
# 如果初始化文件文件存在,则直接运行,否则初始化
if [ ! -f "$lockPath" ]; then
# 启动Yapi初始化
pm2 start server/install.js
pm2 start server/app.js
else
# 运行yapi管理系统
pm2 start server/app.js
fi脚本将自动安装yapi所需要的依赖,并采用pm2进行yapi进程后台管理
提示
这里之所以需要pm2管理,是因为如果直接采用nohup等后台运行形式,yapi将在用户退出shell界面时同时停止运行
yapi-deploy项目yapi-deploy(文件内包含yapi-virtual)文件夹到宿主机cd /yapi-deploy/yapi-virtual, 填写config.json内servername, user, pass其中authSource为mongodb自带库,默认通过admin授权即可cd /yapi-deploydocker build -f Dockerfile -t demoyapi .docker run -d --name=yapi -p 3000:3000 demoyapi以上6步完成部署
pm2基本使用
pm2 list查看运行中的nodejs项目pm2 startpm2 stoppm2 delete id