Need help with docker-YApi?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

fjc0k
391 Stars 102 Forks MIT License 82 Commits 13 Opened issues

Description

接口管理平台 YApi 的 Docker 镜像。

Services available

!
?

Need anything else?

Contributors list

No Data

docker-YApi

Docker 中运行 YApi


演示地址: 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 或者 config.js 配置(不推荐)

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}} |

LDAP 登录配置

点击查看 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、前端登录账号对应的查询字段,如:

mail
uid
等;
2、自定义查询条件,其中
%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 版说明

本项目额外提供了一个开箱即用的 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 相关资源推荐

YApi 二次开发版,进行了很多功能上的增强,原生支持 Docker 安装。

为 YApi-X 开发的浏览器跨域与文件上传插件,同时支持 YApi 官方版。

根据 YApi 的接口定义生成 TypeScript 的接口类型及其请求函数代码,同时支持生成 React Hooks 代码。

许可

Jay Fong © MIT

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.