内网部署yapi

之前用swagger来做api文档,但有的同学不喜欢在接口中写swagger的代码,于是便决定试试yapi。但需要注意的是:不管是yapi还是swagger,都要自己去增加api配置的相关信息,只是配置方式不一样。
部署文档:https://yapi.ymfe.org/devops/index.html
本次机器的环境是:Ubuntu 16.04 ,未安装其他工具。

环境准备

需要node,mongodb。这里通过 nvm 来安装node

安装nvm

准备工具

sudo apt-get update
sudo apt-get install git-core curl build-essential openssl  libssl-dev

安装nvm

git clone https://github.com/creationix/nvm.git
cd nvm
./install.sh

刷新环境

source ~/.bashrc

使用nvm安装任意版本的node

先改下nvm的镜像

NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node

安装node 11

 nvm install 11

安装MongoDB

默认apt安装的版本教低,手动安装之

wget https://repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/4.0/multiverse/binary-amd64/mongodb-org-server_4.0.4_amd64.deb
dpkg -i mongodb-org-server_4.0.4_amd64.deb
mkdir -p /data/mongodb #创建mongodb的储存路径

创建mongodb的配置文件/etc/mongodb.conf

dbpath=/data/mongodb
logpath=/data/mongodb/mongodb.log
logappend=true
bind_ip = 127.0.0.1
journal=true

启动mongodb

/usr/bin/mongod --config /etc/mongodb.conf --fork

安装yapi

安装好node和mongodb后,就可以开始安装yapi了。文档里推荐是可视化部署,但在部署的过程中,最后一步失败,提示:

Error:  (node:16589) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.

本着快速部署的目的,先不纠结这个问题了,用本地部署。

mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录
cp vendors/config_example.json ./config.json //复制完成后将mongodb中的用户名user,密码pass删除
cd vendors
npm install --production --registry https://registry.npm.taobao.org
npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候

如果报错:

sh: 1: node-gyp: Permission denied
sh: 1: node: Permission denied

执行:

npm config set user 0 
npm config set unsafe-perm true 

服务启动后,在浏览器访问http://ip:3000,输入用户名[email protected],密码ymfe.org 即可登录系统
这里是手动使用node来启动服务,不太方便管理,可以用pm2来维护。

安装pm2

npm install -g pm2

通过pm2来启动yapi

pm2 start server/app.js --watch -i 2 
# 这里的i是指启用多少个实例,可用于负载均衡

启动后,可以看看yapi的运行状态

root@hz210:~/yapi/vendors# pm2 status
┌──────────┬────┬─────────┬─────────┬───────┬────────┬─────────┬────────┬──────┬───────────┬──────┬──────────┐
│ App name │ id │ version │ mode    │ pid   │ status │ restart │ uptime │ cpu  │ mem       │ user │ watching │
├──────────┼────┼─────────┼─────────┼───────┼────────┼─────────┼────────┼──────┼───────────┼──────┼──────────┤
│ app      │ 0  │ 1.4.1   │ cluster │ 17756 │ online │ 0       │ 15m    │ 0.1% │ 71.0 MB   │ root │ enabled  │
│ app      │ 1  │ 1.4.1   │ cluster │ 17762 │ online │ 0       │ 15m    │ 0.1% │ 69.5 MB   │ root │ enabled  │
└──────────┴────┴─────────┴─────────┴───────┴────────┴─────────┴────────┴──────┴───────────┴──────┴──────────┘
 Use `pm2 show ` to get more details about an app

至此整个部署就完成了,后续就是如何使用yapi了。

迁移yapi

迁移mongodb即可:

  1. 在原机器上导出mongodb数据:
mongodump -h 127.0.0.1 -d yapi -o yapi.mg
  1. 在新机器上导入mongodb数据:
mongorestore -h 127.0.0.1  -d yapi yapi.mg/yapi

你可能感兴趣的:(后端)