概述
YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
docker安装,参考官方文档:https://hub.docker.com/r/yapipro/yapi
数据库准备 MongoDB
Docker 容器之间网络互通需要使用网桥,创建一个网桥yapi
docker network create yapi
YAPI 的数据库是 MongoDB,创建持久化目录
mkdir -p /data/mongo/data
拉取最新镜像
docker pull mongo:latest
启动 MongoDB,其中 -e 指定 MONGO_INITDB_ROOT_USERNAME 为 MongoDB 的 ROOT 用户名,MONGO_INITDB_ROOT_PASSWORD 为 MongoDB 的 ROOT 用户密码
docker run -d \
--name mongodb \
--restart always \
--net=yapi \
-p 27017:27017 \
-v /data/mongo/data:/data/db \
-e MONGO_INITDB_DATABASE=yapi \
-e MONGO_INITDB_ROOT_USERNAME=yapipro \
-e MONGO_INITDB_ROOT_PASSWORD=yapipro1024 \
mongo
进入 MongoDB 容器
docker exec -it mongodb /bin/bash
进入 mongo cli
mongosh localhost:27017
如果出现以下提示,表示进入成功
Current Mongosh Log ID: 66c1bf49c2a529ef68149f47
Connecting to: mongodb://localhost:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.2.10
Using MongoDB: 7.0.12
Using Mongosh: 2.2.10
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
test>
进入 MongoDB 的 mongo cli 后,执行以下语句进行初始化库表
use admin;
db.auth("yapipro", "yapipro1024");
# 创建 yapi 数据库
use yapi;
# 创建给 yapi 使用的账号和密码,限制权限
db.createUser({
user: 'yapi',
pwd: 'yapi123456',
roles: [
{ role: "dbAdmin", db: "yapi" },
{ role: "readWrite", db: "yapi" }
]
});
# 退出 Mongo Cli
exit
# 退出容器
exit
启动 YAPI
创建配置文件
mkdir -p /data/yapi/conf
vi /data/yapi/conf/config.json
{
"port": "3000",
"adminAccount": "hexiaohei1024@gmail.com",
"timeout":120000,
"db": {
"servername": "mongo",
"DATABASE": "yapi",
"port": 27017,
"user": "yapi",
"pass": "yapi123456",
"authSource": ""
},
"mail": {
"enable": true,
"host": "smtp.gmail.com",
"port": 465,
"from": "*",
"auth": {
"user": "hexiaohei1024@gmail.com",
"pass": "xxx"
}
}
}
拉取最新镜像
docker pull yapipro/yapi:latest
初始化数据库表
docker run -d --rm \
--name yapi-init \
--link mongodb:mongo \
--net=yapi \
-v /data/yapi/conf/config.json:/yapi/config.json \
yapipro/yapi \
server/install.js
启动yapi
docker run -d \
--name yapi \
--link mongodb:mongo \
--restart always \
--net=yapi \
-p 3000:3000 \
-v /data/yapi/conf/config.json:/yapi/config.json \
yapipro/yapi \
server/app.js
查看yapi日志
docker logs -f yapi
出现以下信息,表示启动成功
log: -------------------------------------swaggerSyncUtils constructor-----------------------------------------------
log: 服务已启动,请打开下面链接访问:
http://127.0.0.1:3000/
log: mongodb load success...
(node:1) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
访问
点击登录
初始化管理员账号在上面的 config.json 配置中
用户名:hexiaohei1024@gmail.com
初始密码:yapi.pro
可以登录后进入个人中心修改
登录成功,效果如下: