YAPI部署服务器(Docker)

【一】YAPI介绍

  • YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。
  • 可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。

【二】部署

【1】环境

  • node.js
  • mongodb
  • yapi

【2】更新软件包管理器

  • 使用以下命令更新服务器上的软件包管理器。

  • 对于 Ubuntu/Debian:

    sudo apt update
  • 对于 CentOS/RHEL:

    sudo yum update

  • 安装完成

【3】安装 Node.js

  • 通过以下是不同操作系统上的安装步骤。

  • 在 Ubuntu/Debian 上:

    sudo apt install nodejs
  • 在 CentOS/RHEL 上:

    sudo yum install nodejs
  • 注意:通过此方法安装的 Node.js 可能并不是最新版本。
  • 如果需要特定的 Node.js 版本,可以使用 Node 版本管理工具(如 nvm 或 n)进行安装。

  • 安装完成

  • 验证 Node.js 安装:

    • 运行以下命令,确认 Node.js 是否正确安装并查看版本号。
    node -v
  • 安装 npm:

    • npm 是 Node.js 的包管理工具,也会随 Node.js 一起安装。
    • 再次运行验证命令来确认 npm 安装是否成功。
    npm -v

【4】安装MongoDB(2.6+)

  • 在 CentOS 系统上安装 MongoDB 可以通过以下步骤完成:

    • 导入 MongoDB 的 GPG 公钥,用于验证下载的软件包的完整性。执行以下命令导入 GPG 公钥:

      sudo rpm --import https://www.mongodb.org/static/pgp/server-4.4.asc
    • 创建一个名为 /etc/yum.repos.d/mongodb-org.repo 的 MongoDB 仓库配置文件,并使用文本编辑器打开该文件:

      sudo vi /etc/yum.repos.d/mongodb-org.repo
    • 将以下内容复制到 mongodb-org.repo 文件中:

      [mongodb-org-4.4]
      name=MongoDB Repository
      baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
      gpgcheck=1
      enabled=1
      gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

      这将配置 MongoDB 4.4 版本的仓库。

    • 保存并关闭文件。

  • 使用 yum 安装 MongoDB:

    sudo yum install -y mongodb-org

    这将自动安装 MongoDB 和其相关组件。

  • 安装完成后,启动 MongoDB 服务:

    sudo systemctl start mongod
  • 验证 MongoDB 服务是否成功启动:

    sudo systemctl status mongod

    如果看到 "active (running)" 的标识,表示 MongoDB 服务已成功启动。

此外,你还可以使用以下命令设置 MongoDB 服务在系统启动时自动启动:

sudo systemctl enable mongod

【5】安装YApi

官方文档参考地址:YMFE/yapi: YApi 是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台 (github.com)

  • 下载 YApi:

    • 在服务器上选择一个合适的目录,比如 /opt 或者 /usr/local,用于存放 YApi。
    # cd /opt
    # ls
    containerd  rh
    # mkdir YApi
    # ls
    containerd  rh  YApi
    # cd YApi
    • 使用以下命令下载 YApi 的代码:
      npm install -g yapi-cli --registry https://registry.npm.taobao.org
      yapi server
  • 服务器开放 9090 端口

  • 填写必要的信息,点击开始部署,进行部署

  • 部署完成

初始化管理员账号成功,账号名:"admin@admin.com",密码:"ymfe.org"

部署成功,请切换到部署目录,输入: "node vendors/server/app.js" 指令启动服务器, 然后在浏览器打开 http://127.0.0.1:3000 访问

【三】docker部署Yapi

【1】Docker安装MongoDB数据库

(1)创建mongoDB容器数据卷目录

mkdir /data/mongo -p

(2)创建一个用于yapi的网络插件

docker network create yapi

(3)拉取MongoDB镜像

docker pull mongo:4.2.21

(4)启动MongoDB容器

docker run -d \
  --name mongodb \
  --restart always \
  --net=yapi \
  -p 2717:27017 \
  -v /data/mongo:/data/db \
  -e MONGO_INITDB_DATABASE=yapi \
  -e MONGO_INITDB_ROOT_USERNAME=yapipro \
  -e MONGO_INITDB_ROOT_PASSWORD=yapi2023 \
  mongo:4.2.21

(5)进入mongo容器

docker exec -it mongodb /bin/bash

(6)进入mongo客户端

mongo localhost:27017

(7)初始化数据库,依次执行下面的命令

  • 进入数据库
use admin;
  • 创建用户名和密码
db.auth("yapipro", "yapi2023");

(8)创建yapi数据库

use yapi;

(9)创建给yapi使用的账号和密码,授予可操作的权限

db.createUser({
  user: 'yapi',
  pwd: 'yapi123456',
  roles: [
 { role: "dbAdmin", db: "yapi" },
 { role: "readWrite", db: "yapi" }
  ]
});

(10)退出mongo客户端

exit

(11)退出mongo容器

exit

【2】Docker安装Yapi

(1)创建yapi的配置文件config.json

vim /data/yapi/config.json
  • 内容如下
{
   "port": "3000",
   "adminAccount": "yapiadmin@163.com",
   "timeout":120000,
   "db": {
     "servername": "mongo",
     "DATABASE": "yapi",
     "port": 27017,
     "user": "yapi",
     "pass": "yapi123456",
     "authSource": ""
   },
   "mail": {
     "enable": true,
     "host": "smtp.163.com",
     "port": 465,
     "from": "*",
     "auth": {
       "user": "yapiadmin@163.com",
       "pass": "yapiadminpassword"
     }
   }
 }

(2)安装Yapi

[1]拉取Yapi镜像
docker pull yapipro/yapi:1.9.5
[2]初始化数据库表
docker run -d --rm \
  --name yapi-init \
  --link mongodb:mongo \
  --net=yapi \
  -v /data/yapi/config.json:/yapi/config.json \
   yapipro/yapi:1.9.5 \
  server/install.js
[3]启动yapi容器
docker run -d \
   --name yapi \
   --link mongodb:mongo \
   --restart always \
   --net=yapi \
   -p 3000:3000 \
   -v /data/yapi/config.json:/yapi/config.json \
   yapipro/yapi:1.9.5 \
   server/app.js

【3】验证

地址:http://服务器IP:3000

  • 初始化管理员账号在上面的 config.json 配置中 adminAccount的值
    • 初始密码是 yapi.pro,可以登录后进入个人中心修改。

  • 修改个人信息

【补充】如何查看MongoDB的IP和端口

  • 前提是MongoDB服务已启动
sudo systemctl status mongod
  • 执行命令会有如下提示
[root@VM-8-11-opencloudos ~]# sudo systemctl status mongod
● mongod.service - MongoDB Database Server
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2023-08-01 13:29:06 CST; 14min ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 1913040 (mongod)
   Memory: 108.7M
   CGroup: /system.slice/mongod.service
           └─1913040 /usr/bin/mongod -f /etc/mongod.conf

Aug 01 13:29:06 VM-8-11-opencloudos systemd[1]: Started MongoDB Database Server.
Aug 01 13:29:07 VM-8-11-opencloudos mongod[1913040]: {"t":{"$date":"2023-08-01T05:29:07.061Z"},"s":"I",  "c":"CONTR>
  • 我们可以根据 Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)

    • 这个路径找到 mongod.service 服务
  • 进入到指定目录下,执行命令

    mongo
  • 进入到MongoDB服务里面

    • 执行语句,提示数据库信息
    db.runCommand({whatsmyuri: 1})
    { "you" : "127.0.0.1:48578", "ok" : 1 }