YApi 接口管理平台部署实录:MongoDB 与源码安装

YApi 是开源、可本地部署的接口管理平台,打通前后端与 QA,接口管理、接口文档、自动化测试都覆盖。项目地址:https://github.com/YMFE/yapi 。功能上主要是:扁平化的团队权限管理、基于 websocket 的多人协作接口编辑、类 postman 的测试工具、Mock Server、接口自动化测试、swagger/postman/har 数据导入、插件机制。这里记录 CentOS 上 MongoDB + 源码手工部署的流程。

YApi_install01

环境要求

nodejs(7.6+)、mongodb(2.6+)、git。平台默认监听 3000 端口。

安装 MongoDB

从清华镜像拉取 mongodb-org 5.0.5 系列的 RPM 包本地安装:

wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7/RPMS/mongodb-org-5.0.5-1.el7.x86_64.rpm --no-check-certificate
wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7/RPMS/mongodb-org-mongos-5.0.5-1.el7.x86_64.rpm --no-check-certificate
wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7/RPMS/mongodb-org-server-5.0.5-1.el7.x86_64.rpm --no-check-certificate
wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7/RPMS/mongodb-org-shell-5.0.5-1.el7.x86_64.rpm --no-check-certificate
wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7/RPMS/mongodb-org-tools-5.0.5-1.el7.x86_64.rpm --no-check-certificate
wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7/RPMS/mongodb-org-database-tools-extra-5.0.5-1.el7.x86_64.rpm --no-check-certificate
wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7/RPMS/mongodb-mongosh-1.1.7.el7.x86_64.rpm --no-check-certificate
wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7/RPMS/mongodb-database-tools-100.5.1.x86_64.rpm --no-check-certificate
wget https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7/RPMS/mongodb-org-database-5.0.5-1.el7.x86_64.rpm --no-check-certificate

yum install mongodb-*

按需修改 mongod 配置:

[root@localhost ~]# vim /etc/mongod.conf

启动、设置开机自启,并确认 27017 端口上的 mongod 进程:

[root@localhost ~]# systemctl start mongod.service
[root@localhost ~]# systemctl enable mongod.service
[root@localhost ~]# lsof -i:27017|awk '{print $1}'|grep -w mongod|wc -l

进 mongo shell 建 yapi 库和用户(use 一个不存在的库即创建):

# 创建数据库
> use yapi	#进入yapi数据库,没有则创建
switched to db admin

# 创建DB用户
> use yapi	#进入该数据库下,创建数据库用户
> db.createUser( {user: "root",pwd: "123456",roles: [ { role: "dbAdmin", db: "yapi" } ]})
YApi_install02

部署 YApi

克隆仓库(GitHub 直连不畅时用加速镜像地址),复制示例配置为 config.json:

mkdir yapi 
cd yapi 

//git clone https://github.com/YMFE/yapi.git vendors

#github加速地址
git clone https://hub.fastgit.org/YMFE/yapi.git vendors
cp vendors/config_example.json ./config.json // ⚠️ 复制完成后把内容修改为 config.json

编辑 config.json:端口 3000、管理员账号、数据库连接(servername/DATABASE/port/user/pass),以及 SMTP 邮件配置:

#修改config.json
vim ./config.json
{
  "port": "3000",
  "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": "*****"
    }
  }
}

进入 vendors 安装依赖并初始化。注意一定要删除 package-lock.json,否则依赖安装极易失败;用 npm 镜像源加速:

cd vendors 
rm -f package-lock.json // ⚠️一定要删除 package-lock.json 
npm install --production --registry https://registry.npm.taobao.org 
npm run install-server
YApi_install03

注册为 systemd 服务

手工 nohup 启动不好管理,写一个 unit 文件,配好启动、重载、停止三段:

]# vim /etc/systemd/system/yapi.service

[Unit]
Description=yapi
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/bin/bash -c 'nohup node /usr/local/yapi/vendors/server/app.js >/dev/null 2>&1 &'
ExecReload=/bin/bash -c 'kill -9 $(ps -ef|grep app.js|grep -v grep|awk '{print $2}');/usr/local/yapi/vendors/server/app.js >/dev/null 2>&1 &'
ExecStop=/bin/bash -c 'kill -9 $(ps -ef|grep app.js|grep -v grep|awk '{print $2}')'
PrivateTmp=true

[Install]
WantedBy=multi-user.target


systemctl daemon-reload
systemctl start yapi
systemctl enable yapi

ps -ef|grep yapi
YApi_install04

访问与注意事项

浏览器访问 3000 端口。初始化成功后管理员账号为 “admin@admin.com”,初始密码 “ymfe.org”,登录后第一时间改密。config.json 里的示例数据库密码是 123456,生产环境务必换掉;邮件服务暂时不用的话把 mail.enable 置 false,免得启动报错。加速镜像地址可用性会变,失效时换源重新 clone。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容