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

环境要求
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
克隆仓库(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

注册为 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

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

















暂无评论内容