一、命令行 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.xz tar -xf node-v14.19.0-linux-x64.tar.xz -C /usr/local/ 配置node 环境变量 cat <<__EOF__ >> /etc/profile exportNODE_HOME=/usr/local/node-v14.19.0-linux-x64 exportPATH=$PATH:${NODE_HOME}/bin __EOF__ 让环境变量生效 source /etc/profile su- root 查看node版本 node--version
三、配置yapi
笔者看了好多网络上的文章,大部分人喜欢把文件夹名改为 vendors, 刚开始一脸疑惑,其实大可不必,命名为其他名称也可以,不影响正常部署,我这里就保留了yapi-master的命名
需要注意的是config.json 必须放在源码的上一层级的目录。
git clone https://github.com/YMFE/yapi.git 或者浏览器里下载yapi master分支 yapi-master.zip mkdir /opt/yapi-project cp yapi-master.zip /opt/yapi-project/ cd /opt/yapi-project/ unzip yapi-master.zip cp yapi-master/config_example.json config.json 配置mongodb 管理员用户名和密码, mongodb 用户名和密码需要手工创建,在安装mongodb那一步我们会讲到,这里的密码用的比较简单,生产环境强烈建议使用高复杂度密码。 vim config.json { "port": "3000", "closeRegister":true, "adminAccount": "admin@admin.com", "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-master rm 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.rpm mongodb-org-shell-3.2.22-1.el7.x86_64.rpm mongodb-org-tools-3.2.22-1.el7.x86_64.rpm yum -y localinstall mongodb* systemctl start mongod systemctl enable mongod 使用mongo客户端工具在命令行登陆数据库 mongo 创建mongodb高权限用户,如图1 use yapi db.createUser( { user:"root", pwd:"123456", roles:[{role:"root",db:"admin"}] } ) exit
五、初始化数据库,启动服务
# 初始化mongodb数据库,config.json里的用户名和密码必须和 mongo命令行手工创建的用户名和密码一致,否则加载数据库会失败如图2 npm run install-server # 启动服务,如图3node /opt/yapi-project/yapi-master/server/app.js
六、使用pm2管理yapi服务
最后安装pm2,以便更好地管理node服务,比如,我们要关闭注册或者mock等功能,修改完配置,直接执行pm2 restart yapi就可以完成配置加载,使用pm2 info yapi 可以查看服务使用资源等一些统计信息。
安装pm2 npm install pm2 -g--registry=https://registry.npmmirror.com pm2管理yapi服务,如图4 pm2 start"/opt/yapi-project/yapi-master/server/app.js"--name yapi 查看服务信息 pm2 status pm2 info yapi 停止服务 pm2 stop yapi 重启服务 pm2 restart yapi 删除服务 pm2 delete yapi
通过以上我们回顾了yapi从源码部署的整个过程,其实只要不厌其烦,仔细认真,我们就能很准确快速地完成yapi新版本部署啦。