Home

Awesome

docker-YApi

Docker 中运行 YApi


演示地址: https://dockeryapi-fjc0kb.b4a.run/

管理员账号:admin@docker.yapi

管理员密码:adm1n

仅供测试,服务每次部署都会重置,请不要将重要数据放在上面。

演示服务所需资源由 Back4App 免费提供。


<!-- TOC depthFrom:2 --> <!-- /TOC -->

要求

你得确保在你的设备上安装了不是太老版本的 DockerDocker Compose

安装

首先,克隆本项目:

git clone https://github.com/fjc0k/docker-YApi.git

# 无法访问 github 的可使用国内镜像:
git clone https://gitee.com/fjc0k/docker-YApi.git

接下来,修改 docker-compose.ymlyapi-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.jsdocker-YApi 扩展支持的配置文件,其实就是将 JSON 数据写成了更简洁的 JavaScript 对象。

你可通过将外部的 config.jsonconfig.js 配置文件映射进容器内部来使用它们:

./config.json:/yapi/config.json
./config.js:/yapi/config.js

通过环境变量配置(推荐)

通过环境变量配置的选项会覆盖通过 config.json 或者 config.js 配置的选项。

基础配置

环境变量名称类型说明示例
YAPI_ADMIN_ACCOUNTstring管理员账号(邮箱)admin@foo.bar
YAPI_ADMIN_PASSWORDstring管理员密码adm1n
YAPI_CLOSE_REGISTERboolean是否关闭注册,由于 docker-YApi 已内置相关插件,你可在关闭注册后在后台手动添加用户true
YAPI_NPM_REGISTRYstringnpm 源,目前仅在安装插件时使用,默认官方源,国内可以设为淘宝源加速https://registry.npm.taobao.org

数据库配置

环境变量名称类型说明示例
YAPI_DB_SERVERNAMEstringMongoDB 服务地址yapi-mongo
YAPI_DB_PORTnumberMongoDB 服务端口27017
YAPI_DB_DATABASEstring使用的 MongoDB 数据库yapi
YAPI_DB_USERstring登录 MongoDB 服务的用户名root
YAPI_DB_PASSstring登录 MongoDB 服务的用户密码r00t
YAPI_DB_AUTH_SOURCEstringMongoDB 身份认证所用库admin
YAPI_DB_CONNECT_STRINGstring使用 MongoDB 集群时配置mongodb://127.0.0.100:8418,127.0.0.101:8418/yapidb?slaveOk=true
YAPI_DB_OPTIONSjsonMongoose 连接 MongoDB 服务时的额外选项,一般不用设置。请参考: Mongoose.prototype.connect(){}

邮件配置

环境变量名称类型说明示例
YAPI_MAIL_ENABLEboolean是否启用true
YAPI_MAIL_HOSTstring邮件服务地址smtp.163.com
YAPI_MAIL_PORTnumber邮件服务端口465
YAPI_MAIL_FROMstring发送人邮箱foo@163.com
YAPI_MAIL_AUTH_USERstring登录邮件服务的用户名bar@163.com
YAPI_MAIL_AUTH_PASSstring登录邮件服务的用户密码f00bar
YAPI_MAIL_OPTIONSjson传递给 Nodemailer 的额外选项,一般不用设置。请参考:Nodemailer > SMTP transport{"tls":{"rejectUnauthorized":false}}

LDAP 登录配置

点击查看 YApi 仓库下 LDAP 相关的 issues 👉

环境变量名称类型说明示例
YAPI_LDAP_LOGIN_ENABLEboolean是否启用true
YAPI_LDAP_LOGIN_SERVERstringLDAP 服务地址ldap://ldap.foo.bar
YAPI_LDAP_LOGIN_BASE_DNstring登录 LDAP 服务的用户名cn=admin,dc=foo,dc=bar
YAPI_LDAP_LOGIN_BIND_PASSWORDstring登录 LDAP 服务的用户密码f00bar
YAPI_LDAP_LOGIN_SEARCH_DNstring查询用户数据的路径ou=users,dc=foo,dc=bar
YAPI_LDAP_LOGIN_SEARCH_STANDARDstring支持两种值:<br />1、前端登录账号对应的查询字段,如:mailuid 等;<br />2、自定义查询条件,其中 %s 会被前端登录账号替换,如:&(objectClass=user)(cn=%s)-
YAPI_LDAP_LOGIN_EMAIL_POSTFIXstring登录邮箱后缀@163.com
YAPI_LDAP_LOGIN_EMAIL_KEYstringLDAP 数据库存储用户邮箱的字段mail
YAPI_LDAP_LOGIN_USERNAME_KEYstringLDAP 数据库存储用户名的字段name

插件配置

环境变量名称类型说明示例
YAPI_PLUGINSjson要使用的插件列表。点击查看开源 YApi 插件列表 →<br /><br />配置项数据格式:<br />{<br /> "name": "插件名称,必须去除前缀 yapi-plugin-",<br /> "options": "插件配置,没有配置则不必设置"<br />}<br /><br />注意:<br />安装插件会运行 YApi 自带的打包命令,其内存消耗较大,因此,在安装插件时,物理机可用内存最好大于等于 4GB,否则,易出现内存溢出错误,导致插件安装失败。[{"name":"gitlab","options":{}}]

内置插件

为 YApi 安装插件是一件异常缓慢且易因服务器配置不够而出错的事情,因此 docker-YApi 内置了以下插件,希望能减少点不必要的麻烦:

如果你有其他希望内置的插件,欢迎提交 issue

如何重启

若你修改了配置,务必重启应用才能生效:

docker-compose restart yapi-web

如何升级

<img src="https://badgen.net/github/tag/YMFE/yapi?label=YApi%20%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC"> <img src="https://badgen.net/github/tag/fjc0k/docker-YApi?label=docker-YApi%20%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC">

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。

默认的管理员账号:admin@docker.yapi,管理员密码:adm1n

YApi 相关资源推荐

许可

Jay Fong © MIT