一、命令行 or web界面 那种部署方式更好?
yapi github 官方仓库提供了通过执行yapi server启动http服务,然后在web浏览器配置部署yapi的方式,但笔者更喜欢通过命令行的方式来部署,
因为在命令行中通过源码部署yapi,更易于理解程序其中的运行逻辑,方便日后运维。而且随时使用官方仓库最新源代码,不用等待作者更新yapi-cli部署工具。
二、配置node环境
配置node环境,推荐使用旧版v14.19.0,使用最新的node,我这边安装测试会出现各种各样的问题。从国内镜像站下载node
http://nodejs.cn/download/current/
下载nodejs,解压到 /usr/local 下wget https://cdn.npmmirror.com/binaries/node/v14.19.0/node-v14.19.0-linux-x64.tar.xztar -xf node-v14.19.0-linux-x64.tar.xz -C /usr/local/配置node 环境变量cat <<__EOF__ >> /etc/profileexport NODE_HOME=/usr/local/node-v14.19.0-linux-x64export PATH=$PATH:${NODE_HOME}/bin__EOF__让环境变量生效source /etc/profilesu - root查看node版本node --version
三、配置yapi
笔者看了好多网络上的文章,大部分人喜欢把文件夹名改为 vendors, 刚开始一脸疑惑,其实大可不必,命名为其他名称也可以,不影响正常部署,我这里就保留了yapi-master的命名
需要注意的是config.json 必须放在源码的上一层级的目录。
git clone https://github.com/YMFE/yapi.git 或者浏览器里下载yapi master分支 yapi-master.zipmkdir /opt/yapi-projectcp yapi-master.zip /opt/yapi-project/cd /opt/yapi-project/unzip yapi-master.zipcp yapi-master/config_example.json config.json配置mongodb 管理员用户名和密码, mongodb 用户名和密码需要手工创建,在安装mongodb那一步我们会讲到,这里的密码用的比较简单,生产环境强烈建议使用高复杂度密码。vim config.json{"port": "3000","closeRegister":true,"adminAccount": "[email protected]","timeout":120000,"db": {"servername": "127.0.0.1","DATABASE": "yapi","port": 27017,"user": "root","pass": "123456","authSource": ""},"mail": {"enable": true,"host": "smtp.163.com","port": 465,"from": "***@163.com","auth": {"user": "***@163.com","pass": "*****"}}}现在的目录层级结构如下,新建的config.json在源码的上一层级目录[root@pangu yapi-project]# tree -L 2.├── config.json├── yapi-master│ ├── CHANGELOG.md│ ├── client│ ├── common│ ├── config_example.json│ ├── docs│ ├── exts│ ├── LICENSE│ ├── nodemon.json│ ├── npm-publish.js│ ├── package.json│ ├── package-lock.json│ ├── plugin.json│ ├── README.md│ ├── SECURITY.md│ ├── server│ ├── static│ ├── test│ ├── webpack.alias.js│ ├── yapi-base-flow.jpg│ ├── ydocfile.js│ ├── ydoc.js│ └── ykit.config.js└── yapi-master.zip在yapi-master路径下安装npm依赖包cd /opt/yapi-project/yapi-masterrm package-lock.json -rfnpm install --production --registry=https://registry.npmmirror.com --unsafe-perm
四、 安装mongodb
我从mongodb 官方网站
https://www.mongodb.com/try/download/community 下载了server,shell,tools 三个 mongodb rpm 包,分别对应服务器端,mongo客户端,还有mongodump 等备份工具,所以这三个包都需要安装。
[root@pangu opt]# ls -1 mongo*mongodb-org-server-3.2.22-1.el7.x86_64.rpmmongodb-org-shell-3.2.22-1.el7.x86_64.rpmmongodb-org-tools-3.2.22-1.el7.x86_64.rpmyum -y localinstall mongodb*systemctl start mongodsystemctl enable mongod使用mongo客户端工具在命令行登陆数据库mongo创建mongodb高权限用户,如图1
```use yapidb.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})exit
五、初始化数据库,启动服务
#初始化mongodb数据库,config.json里的用户名和密码必须和 mongo命令行手工创建的用户名和密码一致,否则加载数据库会失败如图2
npm run install-server# 启动服务,如图3
node /opt/yapi-project/yapi-master/server/app.js
六、使用pm2管理yapi服务
最后安装pm2,以便更好地管理node服务,比如,我们要关闭注册或者mock等功能,修改完配置,直接执行pm2 restart yapi就可以完成配置加载,使用pm2 info yapi 可以查看服务器使用资源等一些统计信息。
安装pm2npm install pm2 -g --registry=https://registry.npmmirror.compm2管理yapi服务,如图4
pm2 start "/opt/yapi-project/yapi-master/server/app.js" --name yapi查看服务信息pm2 statuspm2 info yapi停止服务pm2 stop yapi重启服务pm2 restart yapi删除服务pm2 delete yapi
通过以上我们回顾了yapi从源码部署的整个过程,其实只要不厌其烦,仔细认真,我们就能很准确快速地完成yapi新版本部署啦。