内网部署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,输入用户名admin@admin.com,密码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 <id|name>` 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
### YApi在Windows环境中的部署 对于希望在 Windows 上安装并运行 YApi 的用户来说,可以采用 Docker 或者直接通过 Node.js 环境来完成这一过程。 #### 使用Docker容器化方式部署YApi 由于官方推荐的方式是在 Linux 发行版上执行命令,但在 Windows 中也可以借助 Docker 实现相同效果。首先确保已经安装好 Docker Desktop 并启动服务。接着按照如下操作: 1. 创建络以便后续容器间通信: ```bash docker network create yapi-net ``` 2. 启动 MongoDB 数据库实例作为后端存储支持: ```bash docker run -d --name mongo --network yapi-net mongo:latest ``` 3. 初始化 YApi 所需数据库结构: ```bash docker run -d --rm \ --name yapi-init \ --network yapi-net \ -e MONGO_URL=mongodb://mongo:27017/yapi \ yapipro/yapi \ server/install_db.js ``` 4. 运行 YApi 应用程序本身: ```bash docker run -d --name yapi-app \ --network yapi-net \ -p 9090:9090 \ -e MONGO_URL=mongodb://mongo:27017/yapi \ -v /path/to/your/config.json:/data/config.json \ yapipro/yapi ``` 此时应该可以在浏览器访问 `http://localhost:9090` 来查看新搭建好的 YApi 页面[^2]。 #### 基于Node.js的手动部署方法 如果不想依赖 Docker,则可以直接基于 Node.js 和 npm 工具链来进行设置: 1. 下载并安装最新版本的 Node.js LTS 版本; 2. 安装全局 CLI 工具用于简化配置流程: ```powershell npm install -g yapi-cli --registry=https://registry.npm.taobao.org ``` 3. 利用此CLI创建项目文件夹并将当前目录设为工作区: ```powershell mkdir my-yapi && cd $_ ``` 4. 开始初始化整个应用框架及其所需资源: ```powershell yapi server init . ``` 5. 修改生成后的配置文件(通常位于根路径下的 config.yaml),特别是关于数据库连接的部分; 6. 最终启动应用程序监听特定端口等待请求到来: ```powershell node ./start.js ``` 现在应当能够正常浏览到由本地机器托管的服务页面了[^1]。 请注意,在实际生产环境中还需要考虑更多因素比如安全性加固、性能优化等方面的内容。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值