内网部署
使用我们提供的 yapi-cli 工具,部署 YApi 平台是非常容易的。建议部署成 http 站点,因 chrome 浏览器安全限制,部署成 https 会导致测试功能在请求 http 站点时文件上传功能异常。
如果您是将服务器代理到 nginx 服务器,请配置 nginx 支持 websocket。
在location /添加
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
环境要求
- nodejs(7.6+)
- mongodb(2.6+)
- git
安装
环境准备
一、安装nodejs
CentOS 下源码安装 Node.js
- 下载源码,你需要在下载最新的Nodejs版本,本文以v0.10.24为例:cd /usr/local/src/wget http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz
- 解压源码
tar zxvf node-v0.10.24.tar.gz - 编译安装
cd node-v0.10.24./configure —prefix=/usr/local/node/0.10.24make
make install - 配置NODE_HOME,进入profile编辑环境变量
vim /etc/profile
设置nodejs环境变量,在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL一行的上面添加如下内容:#set for nodejs
export NODE_HOME=/usr/local/node/0.10.24export PATH=$NODE_HOME/bin:$PATH
source /etc/profile
验证是否安装配置成功
node -v #检验node
npm -v #检验npm
输出 v0.10.24 表示配置成功
npm模块安装路径:/usr/local/node/0.10.24/lib/node_modules/
二、安装mongodb
下载完安装包,并解压tgz(以下演示的是 64 位 Linux上的安装) 。
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz # 下载
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz # 解压
mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb # 将解压包拷贝到指定目录
MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH路径中:export PATH=/bin:$PATH
为你 MongoDB 的安装路径。如本文的 /usr/local/mongodb
三、安装git
连网可以使用 yum install git安装
非网络环境可以使用下载好tar包解压再安装
tar -zxf git-2.0.0.tar.gz #解压
cd git-2.0.0 #进入解压文件夹
make configure
./configure —prefix=/usr
make all doc info
make install install-doc install-html install-info
四、安装yapi
个人推荐使用Docker方式安装Yapi,可以减少因nodejs的各种问题.
方式一.可是化部署[官方推荐]
执行 yapi server 启动可视化部署程序,输入相应的配置和点击开始部署,就能完成整个网站的部署。部署完成之后,可按照提示信息,执行 node/{网站路径/server/app.js} 启动服务器。在浏览器打开指定url, 点击登录输入您刚才设置的管理员邮箱,默认密码(ymfe.org) 登录系统(默认密码可在个人中心修改)。
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server
方式二. 命令行部署
如果 github 压缩文件无法下载,或需要部署到一些特殊的服务器,可尝试此方法
mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置
cd vendors
npm install --production --registry https://registry.npm.taobao.orgnpm
run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候
方式三. docker安装yapi[个人推荐]
用docker安装可以不需要安装nodejs,但还需要mongodb,版本需求和上面的相同
- 查询mongodb
docker search mongo - 拉取mongodb
docker pull mongo - 创建 MongoDB 数据卷
docker volume create mongo_data_yapi - 查看数据卷宿主机位置
docker volume inspect mongo_data_yapi - 启动 MongoDB
docker run -d —name mongo-yapi -v mongo_data_yapi:/data/db mongo - 获取 Yapi 镜像,版本信息可在阿里云镜像仓库查看
地址: https://dev.aliyun.com/detail.html?spm=5176.1972343.2.26.I97LV8&repoId=139034
docker pull registry.cn-hangzhou.aliyuncs.com/anoy/yapi - 初始化 Yapi 数据库索引及管理员账号
docker run -it —rm —link mongo-yapi:mongo —entrypoint npm —workdir /api/vendors registry.cn-hangzhou.aliyuncs.com/anoy/yapi run install-server - 启动Yapi服务
docker run -d —name yapi —link mongo-yapi:mongo —workdir /api/vendors -p 3000:3000 registry.cn-hangzhou.aliyuncs.com/anoy/yapi server/app.js
安装后的目录结构如下:
|— config.json|-- init.lock
|-- log
-- vendors
|-- CHANGELOG.md
|-- LICENSE
|-- README.md
|-- client
|-- common
|-- config_example.json
|-- doc
|-- exts
|-- nodemon.json
|-- npm-debug.log
|-- package.json
|-- plugin.json
|-- server
|-- static
|-- test
|-- webpack.alias.js
|-- yapi-base-flow.jpg
|-- ydocfile.js
-- ykit.config.js
安装后,将会在数据库生成管理员账号,修改 config.json 管理员账号将会无效.
五、服务器管理
推荐使用 pm2 管理 node 服务器启动,停止,具体使用方法可参考下面的教程:
官网文档
PM2实用指南
六、升级
方式一. yapi-cli升级[推荐]
升级项目版本是非常容易的,并且不会影响已有的项目数据,只会同步 vendors 目录下的源码文件。
cd {项目目录}
yapi ls //查看版本号列表
yapi update //升级到最新版本
yapi update -v v1.1.0 //升级到指定版本
方式二. 命令行升级
cd yapi/venders
git pull origin master //或者下载 zip 包解压到 vendors 目录
npm install --production --registry https://registry.npm.taobao.org
node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候<
七、配置邮箱
打开项目目录 config.json 文件,新增 mail 配置, 替换默认的邮箱配置
{
"port": "*****",
"adminAccount": "********",
"db": {...},
"mail": {
"enable": true,
"host": "smtp.163.com", //邮箱服务器
"port": 465, //端口
"from": "***@163.com", //发送人邮箱
"auth": {
"user": "***@163.com", //邮箱服务器账号
"pass": "*****" //邮箱服务器密码 }
}}
如何申请STMP服务器账号和密码可以参考下面的教程:
如何开通电子邮箱的SMTP功能
八、配置LDAP登录
打开项目目录 config.json 文件,添加如下字段:
{
"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 配置成功
禁止注册
在 config.json 添加
closeRegister:true 配置项,就可以禁止用户注册 yapi 平台,修改完成后,请重启 yapi 服务器。
{
"port": "*****",
"closeRegister":true
}
版本通知
(v1.3.19+ 增加)在 config.json 添加
“versionNotify”: true 配置项,就可以开启版本通知功能,默认为
false,修改完成后,请重启 yapi 服务器。
{
"port": "******",
"adminAccount": "*****",
"versionNotify": true
}