YApi私有部署

警告
本文最后更新于 2023-09-20,文中内容可能已过时。

摘要

内网部署

  • nodejs(7.6+)
  • mongodb(2.6+)

nodejs安装

1
2
3
4
5
6
7
8
9
wget https://nodejs.org/download/release/v14.9.0/node-v14.9.0-linux-x64.tar.gz
tar zxf node-v14.9.0-linux-x64.tar.gz
mv node-v14.9.0-linux-x64 /usr/local/nodejs

#添加环境变量
vi /etc/profile

export NODE_HOME=/usr/local/nodejs
export PATH=${PATH}:${NODE_HOME}/bin

执行 yapi server 启动可视化部署程序,输入相应的配置和点击开始部署,就能完成整个网站的部署。部署完成之后,可按照提示信息,执行 node/{网站路径/server/app.js} 启动服务器。在浏览器打开指定url, 点击登录输入您刚才设置的管理员邮箱,默认密码(ymfe.org) 登录系统(默认密码可在个人中心修改)。

1
2
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
## 安装
npm install pm2 -g

## 添加管理程序
## 使用start和delete命令将进程添加到进程列表。
pm2 start /data/yapi/vendors/server/app.js
pm2 ls

## 启动和停止项目
pm2 stop app
pm2 start app
pm2 restart app

## 日志访问
pm2 logs app
pm2 show app

升级项目版本是非常容易的,并且不会影响已有的项目数据,只会同步 vendors 目录下的源码文件。

1
2
3
4
cd  {项目目录}
yapi ls //查看版本号列表
yapi update //升级到最新版本
yapi update -v v1.1.0 //升级到指定版本

打开项目目录 config.json 文件,新增 mail 配置, 替换默认的邮箱配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
{
  "port": "*****",
  "adminAccount": "********",
  "db": {...},
  "mail": {
    "enable": true,
    "host": "smtp.163.com",    //邮箱服务器
    "port": 465,               //端口
    "from": "***@163.com",     //发送人邮箱
    "auth": {
        "user": "***@163.com", //邮箱服务器账号
        "pass": "*****"        //邮箱服务器密码
    }
  }
}

如何申请STMP服务器账号和密码可以参考下面的教程:如何开通电子邮箱的SMTP功能

打开项目目录 config.json 文件,添加如下字段:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{
  "port": "*****",
  "adminAccount": "********",
  "db": {...},
  "mail": {...},
  "ldapLogin": {
      "enable": true,
      "server": "ldap://l-ldapt1.com",
      "baseDn": "CN=Admin,CN=Users,DC=test,DC=com",
      "bindPassword": "password123",
      "searchDn": "OU=UserContainer,DC=test,DC=com",
      "searchStandard": "mail",    // 自定义格式: "searchStandard": "&(objectClass=user)(cn=%s)"
      "emailPostfix": "@163.com",
      "emailKey": "mail",
      "usernameKey": "name"
   }
}

这里面的配置项含义如下:

  • enable 表示是否配置 LDAP 登录,true(支持 LDAP登录 )/false(不支持LDAP登录);
  • server LDAP 服务器地址,前面需要加上 ldap:// 前缀,也可以是 ldaps:// 表示是通过 SSL 连接;
  • baseDn LDAP 服务器的登录用户名,必须是从根结点到用户节点的全路径(非必须);
  • bindPassword 登录该 LDAP 服务器的密码(非必须);
  • searchDn 查询用户数据的路径,类似数据库中的一张表的地址,注意这里也必须是全路径;
  • searchStandard 查询条件,这里是 mail 表示查询用户信息是通过邮箱信息来查询的。注意,该字段信息与LDAP数据库存储数据的字段相对应,如果如果存储用户邮箱信息的字段是 email, 这里就需要修改成 email.(1.3.18+支持)自定义filter表达式,基本形式为:&(objectClass=user)(cn=%s), 其中%s会被username替换
  • emailPostfix 登陆邮箱后缀(非必须)
  • emailKey: ldap数据库存放邮箱信息的字段(v1.3.21 新增 非必须)
  • usernameKey: ldap数据库存放用户名信息的字段(v1.3.21 新增 非必须)

重启服务器后,可以在登录页看到如下画面,说明 ladp 配置成功

img

在 config.json 添加 closeRegister:true 配置项,就可以禁止用户注册 yapi 平台,修改完成后,请重启 yapi 服务器。

1
2
3
4
{
  "port": "*****",
  "closeRegister":true
}

(v1.3.19+ 增加)在 config.json 添加 "versionNotify": true 配置项,就可以开启版本通知功能,默认为 false,修改完成后,请重启 yapi 服务器。

1
2
3
4
5
{
  "port": "******",
  "adminAccount": "*****",
  "versionNotify": true
}

请升级到 yapi >= 1.4.0以上版本,然后在 config.json db项,配置 connectString:

1
2
3
4
5
6
7
8
{
  "port": "***",
  "db": {
    "connectString": "mongodb://127.0.0.100:8418,127.0.0.101:8418,127.0.0.102:8418/yapidb?slaveOk=true",
    "user": "******",
    "pass": "******"
  },
}

详细配置参考: wiki