yapi离线部署

YApi 是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台

yapi的仓库地址: https://github.com/ymfe/yapi

本人在内网机器不允许访问外网的情况下在内网部署一套yapi, 这里记录下成功的流程.

所需准备的是一台能访问外网的机器(我这里是安装了一个ubuntu16.04的虚拟机, 内网机器操作系统是RedHat6.9), 通过这台外网机器完成所有需要网络的操作. 另外外网机器需要gcc 4.8+(因为在安装yapi依赖时需要build node-sass), 没有gcc或者版本较低需要自行安装升级.


下载nodejsmongodb.

通过有网络的机器进行下载, 这里一定要下载编译好的压缩文件.

nodejs下载页中选择对应平台的Binaries下载. 因为nodejs在内外网机器都需要使用, 如果有必要的话可能需要下载两份. 我这里因为都是linux平台所以只下载一份, 版本是node-v8.11.1-linux-x64.tar.xz.

mongodb下载页选择适合内网机器的版本, 我这里用的是mongodb-linux-x86_64-3.6.4.tgz.

在外网机器安装nodejs

解压nodejs并放到想要的目录下(我这里直接把解压的内容放在当前目录的node文件夹下, 也可以放在其他目录但请确保读写权限).

1
2
tar xvJf node-v8.11.1-linux-x64.tar.xz
mv node-v8.11.1-linux-x64 node

nodejs加入环境变量

1
vim ~/.bashrc

在其中加入一行

1
export PATH=<node文件夹的路径>/bin:$PATH

启用环境变量并验证nodejs安装成功

1
2
source ~/.bashrc
node -v

如果能正确显示版本信息说明安装成功.


在外网机器获取yapi源码并安装依赖

使用git获取yapi源码, 如果没有git命令请按照对应平台的安装方法安装git.

创建一个新文件夹yapi, 使用cloneyapi源码放入vendors中:

1
2
3
4
5
6
mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors
cp vendors/config_example.json ./config.json
cd vendors
npm install --production

我这里还安装了pm2

1
npm install -S pm2

将创建的yapi文件夹打成压缩包得到yapi.tar.gz(其目录下有config.jsonvendors)

1
tar -czf yapi.tar.gz yapi

至此, 所有需要外部网络的操作已经完成, 可以进行内网部署.


内网安装的准备工作

nodejs,mongodb和上面打包的yapi三个压缩包传到内网机器上, 并按照之前的流程安装nodejs.


内网安装mongodb

解压mongodb-linux-x86_64-3.6.4.tgz并放入mongodb文件夹中

1
2
tar -zxvf mongodb-linux-x86_64-3.6.4.tgz
mv mongodb-linux-x86_64-3.6.4 mongodb

mongodb放入环境变量中, 修改~/.bashrc, 加入以下内容

1
export PATH=<mongodb文件夹的路径>/bin:$PATH

验证安装

1
2
source ~/.bashrc
mongo --version

创建dbdata/db文件夹和dblog文件夹(请自行确保这些文件夹的读写权限)

1
2
mkdir -p dbdata/db
mkdir dblog

启动mongodb服务

1
sudo ./mongodb/bin/mongod --fork --dbpath ./dbdata --logpath ./dblog/log

启动yapi

解压yapi.tar.gz

1
tar -zxvf yapi.tar.gz

按需要修改yapi/config.json中的相关配置(例如管理员账号等)

初始化数据库:

1
2
cd ./yapi/vendors
npm run install-server

使用pm2启动

1
npx pm2 start ./server/app.js

启动完成后即可尝试访问yapi看是否成功, 具体地址要根据内网机器的ip和在config.json中配置的端口号

如果要关闭yapi服务, 可以使用

1
npx pm2 stop all