• Stars
    star
    950
  • Rank 48,110 (Top 1.0 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

docker-YApi

Docker 中运行 YApi


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

管理员账号:[email protected]

管理员密码:adm1n

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

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


要求

你得确保在你的设备上安装了不是太老版本的 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_ACCOUNT string 管理员账号(邮箱) [email protected]
YAPI_ADMIN_PASSWORD string 管理员密码 adm1n
YAPI_CLOSE_REGISTER boolean 是否关闭注册,由于 docker-YApi 已内置相关插件,你可在关闭注册后在后台手动添加用户 true
YAPI_NPM_REGISTRY string npm 源,目前仅在安装插件时使用,默认官方源,国内可以设为淘宝源加速 https://registry.npm.taobao.org

数据库配置

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

邮件配置

环境变量名称 类型 说明 示例
YAPI_MAIL_ENABLE boolean 是否启用 true
YAPI_MAIL_HOST string 邮件服务地址 smtp.163.com
YAPI_MAIL_PORT number 邮件服务端口 465
YAPI_MAIL_FROM string 发送人邮箱 [email protected]
YAPI_MAIL_AUTH_USER string 登录邮件服务的用户名 [email protected]
YAPI_MAIL_AUTH_PASS string 登录邮件服务的用户密码 f00bar
YAPI_MAIL_OPTIONS json 传递给 Nodemailer 的额外选项,一般不用设置。请参考:Nodemailer > SMTP transport {"tls":{"rejectUnauthorized":false}}

LDAP 登录配置

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

环境变量名称 类型 说明 示例
YAPI_LDAP_LOGIN_ENABLE boolean 是否启用 true
YAPI_LDAP_LOGIN_SERVER string LDAP 服务地址 ldap://ldap.foo.bar
YAPI_LDAP_LOGIN_BASE_DN string 登录 LDAP 服务的用户名 cn=admin,dc=foo,dc=bar
YAPI_LDAP_LOGIN_BIND_PASSWORD string 登录 LDAP 服务的用户密码 f00bar
YAPI_LDAP_LOGIN_SEARCH_DN string 查询用户数据的路径 ou=users,dc=foo,dc=bar
YAPI_LDAP_LOGIN_SEARCH_STANDARD string 支持两种值:
1、前端登录账号对应的查询字段,如:mailuid 等;
2、自定义查询条件,其中 %s 会被前端登录账号替换,如:&(objectClass=user)(cn=%s)
-
YAPI_LDAP_LOGIN_EMAIL_POSTFIX string 登录邮箱后缀 @163.com
YAPI_LDAP_LOGIN_EMAIL_KEY string LDAP 数据库存储用户邮箱的字段 mail
YAPI_LDAP_LOGIN_USERNAME_KEY 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-X

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

  • YApi-X 浏览器插件

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

  • YApi to TypeScript

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

许可

Jay Fong © MIT

More Repositories

1

yapi-to-typescript

根据 YApi 或 Swagger 的接口定义生成 TypeScript 或 JavaScript 的接口类型及其请求函数代码。
TypeScript
378
star
2

YApi-X

YApi 改。
JavaScript
282
star
3

vtils

一个面向业务的 JavaScript/TypeScript 实用程序库。支持在浏览器、Node.js、小程序、Taro、Deno 下使用。
TypeScript
220
star
4

tbify

使用淘宝镜像运行命令: tbify [nvm|npm|npx|yarn|pnpm|...]
TypeScript
199
star
5

taro-axios

在 Taro 中使用 axios。
TypeScript
127
star
6

mounted

基于 Taro 的小程序组件库。
TypeScript
70
star
7

ant-design-icons

⚠️ 已停止维护,请使用:https://github.com/ant-design/ant-design-icons
JavaScript
56
star
8

vue-messenger

A series of useful enhancements to Vue component props.
JavaScript
49
star
9

Iconfonter

iconfont.cn 浏览器插件,支持生成内联 CSS、雪碧图 CSS、React 图标组件等。
TypeScript
46
star
10

vue-css-modules

Seamless mapping of class names to CSS Modules inside of Vue components.
JavaScript
38
star
11

vue-iconfont

更优雅地使用 Iconfont.cn,同时支持 font-class 引入和 symbol 引入。
JavaScript
28
star
12

is-chinese-phone-number

中国电话号码验证函数。支持验证手机号码、座机号码。
TypeScript
15
star
13

vscode-generate-index

A VSCode extension for generating file indexes.
TypeScript
15
star
14

haoma

使用 EditorConfig + ESLint + Prettier,助你写出漂亮的前端代码。
JavaScript
12
star
15

docker-caddy-dnspod

WEB 服务器 Caddy 的 Docker 镜像,内置 dnspod 插件。
Shell
5
star
16

cors-anywhere-cli

CLI for cors-anywhere.
JavaScript
4
star
17

vscode-uPic

Upload files via uPic.
TypeScript
4
star
18

notify-dingtalk

钉钉群 Markdown 消息通知。
TypeScript
4
star
19

docker-caddy

Web 服务器 Caddy 2 的 Docker 镜像。
Dockerfile
4
star
20

svg-to-symbol-loader

A webpack loader JUST to transform SVG files to symobl strings, then you can freely handle them.
JavaScript
3
star
21

weixiao.js

腾讯微校应用开放平台 API
JavaScript
3
star
22

atom-index-generator

Generate an "index.js" file which exports all the files and directories present on a directory.
JavaScript
3
star
23

umi-plugin-router-plus

一款 Umi 3 插件,为你带来类型友好的页面参数的定义、传递与获取。
TypeScript
3
star
24

vue-better-sync

[Deprecated] Simply sync values. Moved to https://github.com/fjc0k/vue-messenger
JavaScript
3
star
25

docker-npc

内网穿透代理服务器 nps 的客户端镜像。
Dockerfile
3
star
26

rollup-plugin-svg-to-symbol

A rollup plugin JUST to transform SVG files to symobl strings, then you can freely handle them.
JavaScript
3
star
27

circle-market-item2image

圈子集市推图制作
JavaScript
2
star
28

vue-component-register

Allow components to register their subComponents.
JavaScript
2
star
29

npm-plus

Enhance NPM with some useful features.
TypeScript
2
star
30

better-qiniu-cli

更好的 Node.js 七牛云命令行工具。
TypeScript
2
star
31

fir-ui

一款 Ant Design Mobile 风格的 Vue 移动端组件库。
Vue
2
star
32

stylelint-config-io

StyleLint Config.
JavaScript
1
star
33

atom-json-to-html

An atom plugin, mainly for writing json or javascript object on table of markdown.
JavaScript
1
star
34

sentry-wechat-miniprogram

@sentry/browser 的微信小程序版本。
JavaScript
1
star
35

lodash-uni

Export lodash for CommonJS, lodash-es for ESModule.
JavaScript
1
star
36

generate-index-webpack-plugin

Bring VSCode extension "Generate Index" to webpack.
TypeScript
1
star
37

antd-x-form

让 antd@4 的表单更易用。
TypeScript
1
star
38

docker-auto-sslcert

自动创建、续期 SSL 证书并发布通知。
Dockerfile
1
star
39

wedevtools-cli

微信开发者工具的命令行调用。
TypeScript
1
star
40

qiniu-cache-refresh

基于配置的七牛缓存刷新命令行工具。
JavaScript
1
star
41

babel-plugin-smart-css-modules

Automatic recognition of CSS Modules.
TypeScript
1
star
42

vue-merge-data

Intelligently merge data for Vue render functions.
JavaScript
1
star