官方给出的部署教程比较简短,只有两行命令:
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server
如果是新的Linux机器,跟着操作应该没什么问题,但是我在测试机和wsl上实操发现了一堆依赖问题,又是要更新node又是要装mongodb,所以不建议用yapi-cli来部署,能用docker尽量用docker.
官方推荐的一个非官方docker部署方案: https://www.jianshu.com/p/a97d2efb23c5
我部署完后发现这里还是有些小坑,所以顺带补充一些说明.
运行 MongoDB
# 创建存储卷
docker volume create mongo-data
# 启动 MongoDB
docker run -d \
--name mongo-yapi \
-v mongo-data:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=anoyi \
-e MONGO_INITDB_ROOT_PASSWORD=anoyi.com \
mongo
# 进入mongodb
docker exec -it mongo-yapi /bin/bash
mongo
#校验管理员账号,成功会返回1
use admin
db.auth("anoyi","anoyi.com")
部署都尽可能用root账号,避免出现权限问题,如果命令中指定了目录,要确认对应的目录是否存在,否则也可能出问题.比如,这里要先创建好/data/db这个目录,否则校验mongodb账号的时候会失败.
anoyi和anoyi.com就是mongodb的管理员账密,自己看着改
获取YAPI镜像
docker pull registry.cn-hangzhou.aliyuncs.com/anoyi/yapi
自定义配置文件
vi /yapi/config.json
# 输入以下内容
{
"port": "3000",
"adminAccount": "admin@anoyi.com",
"timeout":120000,
"db": {
"servername": "mongo",
"DATABASE": "yapi",
"port": 27017,
"user": "anoyi",
"pass": "anoyi.com",
"authSource": "admin"
}
}
adminAccount即yapi的管理员账号,密码预设的是ymfe.org
在官方的教程中有一段说只有超级管理员有权限创建分组,这里的超级管理员就是指的管理员,超级管理员可能是yapi历史的一个角色,但是现在没有了,文档没更新.官方的文档有很多落后的地方,比如其实任意新建的账号都能新建分组的.
user和pass是mongodb的管理员账密.
初始化 YAPI 数据库索引及管理员账号
在/yapi的路径下输入
docker run -it --rm \
--link mongo-yapi:mongo \
--entrypoint npm \
--workdir /yapi/vendors \
-v $PWD/config.json:/yapi/config.json \
registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \
run install-server
启动 Yapi 服务
在/yapi的路径下输入
docker run -d \
--name yapi \
--link mongo-yapi:mongo \
--workdir /yapi/vendors \
-p 3000:3000 \
-v $PWD/config.json:/yapi/config.json \
registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \
server/app.js
使用YAPI
- 访问: http://localhost:3000
- 登录账号:
admin@anoyi.com
- 密码:
ymfe.org
测接口的话要在chrome商店安装YApi-X插件