# 背景
作为前文接口管理平台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/vendors
npm install --production --registry https://registry.npm.taobao.org
cd /yapi-virtual
nohup 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
界面时同时停止运行
# Docker部署
- 下载本文的
yapi-deploy
项目 - 拷贝
yapi-deploy
(文件内包含yapi-virtual
)文件夹到宿主机 cd /yapi-deploy/yapi-virtual
, 填写config.json
内servername
,user
,pass
其中authSource
为mongodb
自带库,默认通过admin
授权即可cd /yapi-deploy
docker build -f Dockerfile -t demoyapi .
docker run -d --name=yapi -p 3000:3000 demoyapi
以上6步完成部署
# 附录
pm2
基本使用
pm2 lis
t查看运行中的nodejs
项目pm2 start
pm2 stop
pm2 delete id