接口管理平台 YApi 的 Docker 镜像。
演示地址: https://docker-yapi.herokuapp.com/
管理员账号:
[email protected]
管理员密码:
adm1n
仅供测试,服务每次部署都会重置,请不要将重要数据放在上面。
Docker和
Docker Compose。
首先,克隆本项目:
git clone https://github.com/fjc0k/docker-YApi.git无法访问 github 的可使用国内镜像:
git clone https://gitee.com/fjc0k/docker-YApi.git
接下来,修改
docker-compose.yml中
yapi-web下的环境变量
YAPI_ADMIN_ACCOUNT为你的管理员邮箱,
YAPI_ADMIN_PASSWORD为你的管理员密码。
最后,执行
docker-compose up -d启动服务。
然后,通过
http://localhost:40001即可访问
YApi。
为了减少二次配置,
docker-YApi新增了
adminPassword选项以设置管理员密码。
config.json是 YApi 官方支持的配置文件,
config.js是
docker-YApi扩展支持的配置文件,其实就是将 JSON 数据写成了更简洁的 JavaScript 对象。
你可通过将外部的
config.json或
config.js配置文件映射进容器内部来使用它们:
./config.json:/yapi/config.json ./config.js:/yapi/config.js
通过环境变量配置的选项会覆盖通过
config.json或者
config.js配置的选项。
| 环境变量名称 | 类型 | 说明 | 示例 | |---------------------|---------|--------------------------------------------------------------------------------------------|---------------------------------| | YAPIADMINACCOUNT | string | 管理员账号(邮箱) | [email protected] | | YAPIADMINPASSWORD | string | 管理员密码 | adm1n | | YAPICLOSEREGISTER | boolean | 是否关闭注册,由于 docker-YApi 已内置相关插件,你可在关闭注册后在后台手动添加用户 | true | | YAPINPMREGISTRY | string | npm 源,目前仅在安装插件时使用,默认官方源,国内可以设为淘宝源加速 | https://registry.npm.taobao.org |
| 环境变量名称 | 类型 | 说明 | 示例 | |------------------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------| | YAPIDBSERVERNAME | string | MongoDB 服务地址 | yapi-mongo | | YAPIDBPORT | number | MongoDB 服务端口 | 27017 | | YAPIDBDATABASE | string | 使用的 MongoDB 数据库 | yapi | | YAPIDBUSER | string | 登录 MongoDB 服务的用户名 | root | | YAPIDBPASS | string | 登录 MongoDB 服务的用户密码 | r00t | | YAPIDBAUTHSOURCE | string | MongoDB 身份认证所用库 | admin | | YAPIDBCONNECTSTRING | string | 使用 MongoDB 集群时配置 | mongodb://127.0.0.100:8418,127.0.0.101:8418/yapidb?slaveOk=true | | YAPIDBOPTIONS | json | Mongoose 连接 MongoDB 服务时的额外选项,一般不用设置。请参考: Mongoose.prototype.connect() | {} |
| 环境变量名称 | 类型 | 说明 | 示例 | |---------------------|---------|------------------------------------------------------------------------------------------------------------|--------------------------------------| | YAPIMAILENABLE | boolean | 是否启用 | true | | YAPIMAILHOST | string | 邮件服务地址 | smtp.163.com | | YAPIMAILPORT | number | 邮件服务端口 | 465 | | YAPIMAILFROM | string | 发送人邮箱 | [email protected] | | YAPIMAILAUTHUSER | string | 登录邮件服务的用户名 | [email protected] | | YAPIMAILAUTHPASS | string | 登录邮件服务的用户密码 | f00bar | | YAPIMAILOPTIONS | json | 传递给 Nodemailer 的额外选项,一般不用设置。请参考:Nodemailer > SMTP transport | {"tls":{"rejectUnauthorized":false}} |
点击查看 YApi 仓库下 LDAP 相关的 issues 👉
| 环境变量名称 | 类型 | 说明 | 示例 |
|---------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|
| YAPILDAPLOGINENABLE | boolean | 是否启用 | true |
| YAPILDAPLOGINSERVER | string | LDAP 服务地址 | ldap://ldap.foo.bar |
| YAPILDAPLOGINBASEDN | string | 登录 LDAP 服务的用户名 | cn=admin,dc=foo,dc=bar |
| YAPILDAPLOGINBINDPASSWORD | string | 登录 LDAP 服务的用户密码 | f00bar |
| YAPILDAPLOGINSEARCHDN | string | 查询用户数据的路径 | ou=users,dc=foo,dc=bar |
| YAPILDAPLOGINSEARCHSTANDARD | string | 支持两种值:
1、前端登录账号对应的查询字段,如:
uid等;
%s会被前端登录账号替换,如:
&(objectClass=user)(cn=%s)| - | | YAPILDAPLOGINEMAILPOSTFIX | string | 登录邮箱后缀 | @163.com | | YAPILDAPLOGINEMAILKEY | string | LDAP 数据库存储用户邮箱的字段 | mail | | YAPILDAPLOGINUSERNAMEKEY | string | LDAP 数据库存储用户名的字段 | name |
| 环境变量名称 | 类型 | 说明 | 示例 |
|--------------|------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------|
| YAPI_PLUGINS | json | 要使用的插件列表。点击查看开源 YApi 插件列表 →
配置项数据格式:
{
"name": "插件名称,必须去除前缀 yapi-plugin-",
"options": "插件配置,没有配置则不必设置"
}
注意:
安装插件会运行 YApi 自带的打包命令,其内存消耗较大,因此,在安装插件时,物理机可用内存最好大于等于
4GB,否则,易出现内存溢出错误,导致插件安装失败。 | [{"name":"gitlab","options":{}}] |
为 YApi 安装插件是一件异常缓慢且易因服务器配置不够而出错的事情,因此 docker-YApi 内置了以下插件,希望能减少点不必要的麻烦:
如果你有其他希望内置的插件,欢迎提交 issue。
若你修改了配置,务必重启应用才能生效:
docker-compose restart yapi-web
若
YApi有更新,本项目应会尽快跟进,之后,你可使用以下命令升级:
docker-compose pull yapi-web \ && docker-compose down \ && docker-compose up -d
升级不会对原有数据造成任何影响!
如果出现意外情况,你可通过以下命令查看运行日志:
docker-compose logs yapi-web
直接打包整个目录去新的服务器即可。
本项目额外提供了一个开箱即用的 play 版本(内置了数据库),你可通过它对 YApi 作一个大概的了解:
# 纯粹的 docker run --rm -p 40001:3000 jayfong/yapi:play带插件的
docker run --rm -p 40001:3000 -e YAPI_PLUGINS='[{"name":"interface-oauth2-token"}]' jayfong/yapi:play
你可在本地或 https://labs.play-with-docker.com/ 上运行上面的命令,然后打开
http://localhost:40001体验 YApi。
默认的管理员账号:
[email protected],管理员密码:adm1n。
YApi 二次开发版,进行了很多功能上的增强,原生支持 Docker 安装。
为 YApi-X 开发的浏览器跨域与文件上传插件,同时支持 YApi 官方版。
根据 YApi 的接口定义生成 TypeScript 的接口类型及其请求函数代码,同时支持生成 React Hooks 代码。
Jay Fong © MIT