官网安装教程 : https://hellosean1025.github.io/yapi/devops/index.html
# 清除yum命令缓存
sudo yum clean all
# yum卸载低版本nodejs
yum remove nodejs npm -y
# # 获取资源,安装高版本nodejs
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
sudo yum install -y nodejs
# 验证版本
[root@iz2ze9d7x8qiddthmdvrv6z local]# node -v
v12.13.1
[root@iz2ze9d7x8qiddthmdvrv6z local]# npm -v
6.12.1
# 验证版本
git --version
# 安装
yum install -y git
# 配置MongoDB的yum源,vi /etc/yum.repos.d/mongodb-org-4.0.repo,添加内容:
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7Server/mongodb-org/4.0/x86_64/
gpgcheck=0
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
# 安装MongoDB
yum install -y mongodb-org
# 安装完毕后,看看都装到哪里去了
rpm -ql mongodb-org-server
# 如有必要,修改配置文件,vi /etc/mongod.conf
# 官方教程有提到selinux对mongodb会产生负面影响,故选择禁用。vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled,wq保存。
# 启动mongodb
systemctl enable mongod
systemctl start mongod
systemctl status mongod
[root@iz2ze9d7x8qiddthmdvrv6z yum.repos.d]# npm install -g yapi-cli --registry https://registry.npm.taobao.org
/usr/bin/yapi -> /usr/lib/node_modules/yapi-cli/bin/yapi-cli
/usr/bin/yapi-cli -> /usr/lib/node_modules/yapi-cli/bin/yapi-cli
+ [email protected]
added 266 packages from 125 contributors in 14.992s
安装过程大约两分钟,安装成功后,前台页面和后台服务器都会有提示!
[root@iz2ze9d7x8qiddthmdvrv6z yum.repos.d]# yapi server
在浏览器打开 http://0.0.0.0:9090 访问。非本地服务器,请将 0.0.0.0 替换成指定的域名或ip
当前安装版本: 1.8.5
连接数据库成功!
开始下载平台文件压缩包...
http://registry.npm.taobao.org/yapi-vendor/download/yapi-vendor-1.8.5.tgz
部署文件完成,正在安装依赖库...
npm WARN deprecated [email protected]: In 6.x, the babel package has been deprecated in favor of babel-cli. Check https://opencollective.com/babel to support the Babel maintainers
......
......
> [email protected] postinstall /usr/local/yapi/vendors/node_modules/core-js
> node postinstall || echo "ignore"
......
......
added 338 packages from 330 contributors in 50.65s
依赖库安装完成,正在初始化数据库mongodb...
> [email protected] install-server /usr/local/yapi/vendors
> node server/install.js
log: mongodb load success...
初始化管理员账号成功,账号名:"[email protected]",密码:"ymfe.org"
部署成功,请切换到部署目录,输入: "node vendors/server/app.js" 指令启动服务器, 然后在浏览器打开 http://127.0.0.1:3000 访问
# 修改config.json ,vim /root/my-yapi/config.json
{
"port": "80",
"adminAccount": "[email protected]",
"db": {
"servername": "127.0.0.1",
"DATABASE": "yapi",
"port": "27017"
},
"mail": {
"enable": true,
"host": "smtp.163.com",
"port": 465,
"from": "可用于发送邮件的163邮箱",
"auth": {
"user": "163邮箱",
"pass": "163邮箱对应的密码或授权码"
}
},
"ldapLogin": {
"enable": true,
"server": "ldap://你的LDAP服务器IP:389",
"baseDn": "CN=Admin,CN=Users,DC=test,DC=com",
"bindPassword": "123456",
"searchDn": "OU=UserContainer,DC=test,DC=com",
"searchStandard": "mail"
},
"closeRegister":true
}
1. LDAP配置项(ldapLogin)
enable 表示是否配置 LDAP 登录,true(支持 LDAP登录 )/false(不支持LDAP登录);
server LDAP 服务器地址,前面需要加上 ldap:// 前缀,也可以是 ldaps:// 表示是通过 SSL 连接;
baseDn LDAP 服务器的登录用户名,必须是从根结点到用户节点的全路径;
bindPassword 登录该 LDAP 服务器的密码;
searchDn 查询用户数据的路径,类似数据库中的一张表的地址,注意这里也必须是全路径;
searchStandard 查询条件,这里是 mail 表示查询用户信息是通过邮箱信息来查询的。注意,该字段信息与LDAP数据库存储数据的字段相对应,如果如果存储用户邮箱信息的字段是 email, 这里就需要修改成 email.
2. 注册配置项(closeRegister)
值为true,表示禁止用户注册
值为false(缺损),表示允许注册
[root@iz2ze9d7x8qiddthmdvrv6z yapi]# node vendors/server/app.js
log: -------------------------------------swaggerSyncUtils constructor-----------------------------------------------
log: 服务已启动,请打开下面链接访问:
http://127.0.0.1:3000/
log: mongodb load success...
# 安装pm2
npm install -g pm2 --registry=https://registry.npm.taobao.org
提示
[root@iz2ze9d7x8qiddthmdvrv6z yapi]# npm install -g pm2 --registry=https://registry.npm.taobao.org
/usr/bin/pm2 -> /usr/lib/node_modules/pm2/bin/pm2
/usr/bin/pm2-dev -> /usr/lib/node_modules/pm2/bin/pm2-dev
/usr/bin/pm2-docker -> /usr/lib/node_modules/pm2/bin/pm2-docker
/usr/bin/pm2-runtime -> /usr/lib/node_modules/pm2/bin/pm2-runtime
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/pm2/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
+ [email protected]
added 206 packages from 202 contributors in 12.917s
# 后台启动,关闭
我的yapi是安装在/usr/local/yapi/
启动执行: pm2 start /usr/local/yapi/vendors/server/app.js
关闭执行: pm2 stop /usr/local/yapi/vendors/server/app.js
[root@iz2ze9d7x8qiddthmdvrv6z yapi]# pm2 start /usr/local/yapi/vendors/server/app.js
-------------
__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
_\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
_\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
_\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
_\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
_\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
_\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
_\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
_\///______________\///______________\///__\///////////////__
Runtime Edition
PM2 is a Production Process Manager for Node.js applications
with a built-in Load Balancer.
Start and Daemonize any application:
$ pm2 start app.js
Load Balance 4 instances of api.js:
$ pm2 start api.js -i 4
Monitor in production:
$ pm2 monitor
Make pm2 auto-boot at server restart:
$ pm2 startup
To go further checkout:
http://pm2.io/
-------------
[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /usr/local/yapi/vendors/server/app.js in fork_mode (1 instance)
[PM2] Done.
┌─────┬──────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼──────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ app │ default │ 1.8.5 │ fork │ 19180 │ 0s │ 0 │ online │ 0% │ 11.0mb │ root │ disabled │
└─────┴──────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
ps aux | grep yapi
YApi的升级非常容易,且不会影响用户的数据,只会更新vendors目录
cd /usr/local/yapi/ && yapi ls
# 更新到最新版本
yapi update
# yapi也支持升级到指定的版本
yapi update -v {Version}