{"id":16019643,"url":"https://github.com/fjc0k/yapi-x","last_synced_at":"2025-04-06T17:11:20.866Z","repository":{"id":44111072,"uuid":"243503497","full_name":"fjc0k/YApi-X","owner":"fjc0k","description":"YApi 改。","archived":false,"fork":false,"pushed_at":"2022-02-12T09:18:01.000Z","size":17197,"stargazers_count":300,"open_issues_count":19,"forks_count":43,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-30T16:11:52.323Z","etag":null,"topics":["docker","yapi","yapi-x"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fjc0k.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-27T11:30:24.000Z","updated_at":"2025-03-28T08:00:11.000Z","dependencies_parsed_at":"2022-07-29T02:09:00.443Z","dependency_job_id":null,"html_url":"https://github.com/fjc0k/YApi-X","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjc0k%2FYApi-X","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjc0k%2FYApi-X/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjc0k%2FYApi-X/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjc0k%2FYApi-X/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fjc0k","download_url":"https://codeload.github.com/fjc0k/YApi-X/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247517912,"owners_count":20951718,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","yapi","yapi-x"],"created_at":"2024-10-08T17:05:00.924Z","updated_at":"2025-04-06T17:11:20.844Z","avatar_url":"https://github.com/fjc0k.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YApi-X\n\n`YApi-X` 基于 [`YApi v1.8.8`](https://github.com/YMFE/yapi/tree/v1.8.8) 开发，相较原版，有以下改动：\n\n- 接口路径支持更多字符，可以将 `@`、`#`、`;` 等字符用于接口路径定义；\n- 支持复制分类；\n- 新增 `adminPassword` 配置项以设置管理员密码；\n- 项目图标支持自传图片；\n- 接口运行支持上传文件（[需安装插件 →](https://github.com/fjc0k/YApi-X/tree/master/chrome-extension#readme)）；\n- 请求参数设置下的 Headers 支持批量添加；\n- 支持 webdav 扩展的 HTTP 请求方法 PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK（[了解更多 →](http://www.webdav.org/specs/rfc2518.html)）；\n- 支持为路径参数、查询参数设置类型。\n\n---\n\n\u003c!-- TOC depthFrom:2 --\u003e\n\n- [如何安装](#如何安装)\n  - [YApi-X 镜像](#yapi-x-镜像)\n  - [通过 Docker Compose 安装](#通过-docker-compose-安装)\n    - [运行](#运行)\n    - [重启](#重启)\n    - [升级](#升级)\n    - [迁移](#迁移)\n    - [日志](#日志)\n- [如何配置](#如何配置)\n  - [基础配置](#基础配置)\n  - [数据库配置](#数据库配置)\n  - [邮件配置](#邮件配置)\n  - [LDAP 登录配置](#ldap-登录配置)\n  - [插件配置](#插件配置)\n\n\u003c!-- /TOC --\u003e\n\n## 如何安装\n\n为了节省各自的时间，推荐你使用 **Docker** 安装，同时本文档也不会介绍其他安装方式。\n\n### YApi-X 镜像\n\n- Docker Hub:\n  [https://hub.docker.com/r/jayfong/yapi-x/tags](https://hub.docker.com/r/jayfong/yapi-x/tags)\n\n### 通过 Docker Compose 安装\n\n以下是一个示例：\n\n```yml\nversion: '3'\n\nservices:\n  yapi-web:\n    image: jayfong/yapi-x:latest\n    container_name: yapi-web\n    ports:\n      - 40001:3000\n    environment:\n      - YAPI_ADMIN_ACCOUNT=admin@docker.yapi\n      - YAPI_ADMIN_PASSWORD=adm1n\n      - YAPI_CLOSE_REGISTER=true\n      - YAPI_DB_SERVERNAME=yapi-mongo\n      - YAPI_DB_PORT=27017\n      - YAPI_DB_DATABASE=yapi\n      - YAPI_MAIL_ENABLE=false\n      - YAPI_LDAP_LOGIN_ENABLE=false\n      - YAPI_PLUGINS=[]\n    depends_on:\n      - yapi-mongo\n    links:\n      - yapi-mongo\n    restart: unless-stopped\n  yapi-mongo:\n    image: mongo:latest\n    container_name: yapi-mongo\n    volumes:\n      - ./data/db:/data/db\n    expose:\n      - 27017\n    restart: unless-stopped\n```\n\n#### 运行\n\n将上面的示例复制粘贴下来命名为 `docker-compose.yml`，使用以下命令运行：\n\n```bash\ndocker-compose up -d\n```\n\n然后，通过 `http://localhost:40001` 即可访问 `YApi-X`。\n\n#### 重启\n\n若你修改了配置，务必重启应用才能生效：\n\n```bash\ndocker-compose restart yapi-web\n```\n\n#### 升级\n\n`YApi-X` 一旦有更新，你可通过以下命令升级：\n\n```bash\ndocker-compose pull yapi-web \\\n  \u0026\u0026 docker-compose down \\\n  \u0026\u0026 docker-compose up -d\n```\n\n\u003e 升级不会对原有数据造成任何影响！\n\n#### 迁移\n\n直接打包整个目录去新的服务器即可。\n\n#### 日志\n\n如果出现意外情况，你可通过以下命令查看运行日志：\n\n```bash\ndocker-compose logs yapi-web\n```\n\n## 如何配置\n\n你可通过环境变量进行配置。\n\n### 基础配置\n\n| 环境变量名称        | 类型    | 说明               | 示例          |\n| ------------------- | ------- | ------------------ | ------------- |\n| YAPI_ADMIN_ACCOUNT  | string  | 管理员账号（邮箱） | admin@foo.bar |\n| YAPI_ADMIN_PASSWORD | string  | 管理员密码         | adm1n         |\n| YAPI_CLOSE_REGISTER | boolean | 是否关闭注册       | true          |\n\n### 数据库配置\n\n| 环境变量名称           | 类型   | 说明                                                                                                                                                                  | 示例                                                            |\n| ---------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |\n| YAPI_DB_SERVERNAME     | string | MongoDB 服务地址                                                                                                                                                      | yapi-mongo                                                      |\n| YAPI_DB_PORT           | number | MongoDB 服务端口                                                                                                                                                      | 27017                                                           |\n| YAPI_DB_DATABASE       | string | 使用的 MongoDB 数据库                                                                                                                                                 | yapi                                                            |\n| YAPI_DB_USER           | string | 登录 MongoDB 服务的用户名                                                                                                                                             | root                                                            |\n| YAPI_DB_PASS           | string | 登录 MongoDB 服务的用户密码                                                                                                                                           | r00t                                                            |\n| YAPI_DB_AUTH_SOURCE    | string | MongoDB 身份认证所用库                                                                                                                                                | admin                                                           |\n| YAPI_DB_CONNECT_STRING | string | 使用 MongoDB 集群时配置                                                                                                                                               | mongodb://127.0.0.100:8418,127.0.0.101:8418/yapidb?slaveOk=true |\n| YAPI_DB_OPTIONS        | json   | Mongoose 连接 MongoDB 服务时的额外选项，一般不用设置。请参考: [Mongoose.prototype.connect()](https://mongoosejs.com/docs/api/mongoose.html#mongoose_Mongoose-connect) | {}                                                              |\n\n### 邮件配置\n\n| 环境变量名称        | 类型    | 说明                                                                                                            | 示例                                 |\n| ------------------- | ------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------ |\n| YAPI_MAIL_ENABLE    | boolean | 是否启用                                                                                                        | true                                 |\n| YAPI_MAIL_HOST      | string  | 邮件服务地址                                                                                                    | smtp.163.com                         |\n| YAPI_MAIL_PORT      | number  | 邮件服务端口                                                                                                    | 465                                  |\n| YAPI_MAIL_FROM      | string  | 发送人邮箱                                                                                                      | foo@163.com                          |\n| YAPI_MAIL_AUTH_USER | string  | 登录邮件服务的用户名                                                                                            | bar@163.com                          |\n| YAPI_MAIL_AUTH_PASS | string  | 登录邮件服务的用户密码                                                                                          | f00bar                               |\n| YAPI_MAIL_OPTIONS   | json    | 传递给 Nodemailer 的额外选项，一般不用设置。请参考：[Nodemailer \u003e SMTP transport](https://nodemailer.com/smtp/) | {\"tls\":{\"rejectUnauthorized\":false}} |\n\n### LDAP 登录配置\n\n| 环境变量名称                    | 类型    | 说明                                                                                                                                                             | 示例                   |\n| ------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- |\n| YAPI_LDAP_LOGIN_ENABLE          | boolean | 是否启用                                                                                                                                                         | true                   |\n| YAPI_LDAP_LOGIN_SERVER          | string  | LDAP 服务地址                                                                                                                                                    | ldap://ldap.foo.bar    |\n| YAPI_LDAP_LOGIN_BASE_DN         | string  | 登录 LDAP 服务的用户名                                                                                                                                           | cn=admin,dc=foo,dc=bar |\n| YAPI_LDAP_LOGIN_BIND_PASSWORD   | string  | 登录 LDAP 服务的用户密码                                                                                                                                         | f00bar                 |\n| YAPI_LDAP_LOGIN_SEARCH_DN       | string  | 查询用户数据的路径                                                                                                                                               | ou=users,dc=foo,dc=bar |\n| YAPI_LDAP_LOGIN_SEARCH_STANDARD | string  | 支持两种值：\u003cbr /\u003e1、前端登录账号对应的查询字段，如：`mail`、`uid` 等；\u003cbr /\u003e2、自定义查询条件，其中 `%s` 会被前端登录账号替换，如：`\u0026(objectClass=user)(cn=%s)` | -                      |\n| YAPI_LDAP_LOGIN_EMAIL_POSTFIX   | string  | 登录邮箱后缀                                                                                                                                                     | @163.com               |\n| YAPI_LDAP_LOGIN_EMAIL_KEY       | string  | LDAP 数据库存储用户邮箱的字段                                                                                                                                    | mail                   |\n| YAPI_LDAP_LOGIN_USERNAME_KEY    | string  | LDAP 数据库存储用户名的字段                                                                                                                                      | name                   |\n\n### 插件配置\n\n| 环境变量名称 | 类型 | 说明                                                                                                                                                                                                                                                                                                                                                                                                              | 示例                                                 |\n| ------------ | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |\n| YAPI_PLUGINS | json | 要使用的插件列表。[点击查看开源 YApi 插件列表 →](https://www.npmjs.com/search?q=yapi-plugin-)\u003cbr /\u003e**配置项数据格式：**\u003cbr /\u003e{\u003cbr /\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"name\": \"插件名称\",\u003cbr /\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"options\": \"插件配置\"\u003cbr /\u003e}\u003cbr /\u003e**注意：**\u003cbr /\u003e安装插件会运行 YApi 自带的打包命令，其内存消耗较大，因此，在安装插件时，物理机可用内存最好大于 `1GB`，否则，易出现内存溢出错误，导致插件安装失败。 | [{\"name\":\"add-user\"},{\"name\":\"gitlab\",\"options\":{}}] |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffjc0k%2Fyapi-x","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffjc0k%2Fyapi-x","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffjc0k%2Fyapi-x/lists"}