内网部署YApi
官网地址:https://hellosean1025.github.io/yapi/devops/index.html
环境要求
- nodejs(7.6+)
- mongodb(2.6+),安装看这篇文章:https://www.cnblogs.com/sanduzxcvbnm/p/15868006.html
安装,命令行部署
mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录(clone 整个仓库大概 140+ M,可以通过 `git clone --depth=1 https://github.com/YMFE/yapi.git vendors` 命令减少,大概 10+ M)
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置,主要是修改连接mongodb的库名,访问用户名和密码
cd vendors
npm install --production --registry https://registry.npm.taobao.org
npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
# 提示
# 初始化管理员账号成功,账号名:"admin@admin.com",密码:"ymfe.org"
node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候,后面使用pm2进行服务管理,这一步如果运行的话需要kill掉
在执行这一步(npm install --production --registry https://registry.npm.taobao.org)时报错如下:
npm ERR! code ETARGET
npm ERR! notarget No matching version found for dify@1.0.5.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget
npm ERR! notarget It was specified as a dependency of 'vendors'
npm ERR! notarget
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-02-07T07_44_03_504Z-debug.log
解决办法:
rm -rf node_modules
npm cache clean --force
rm package-lock.json
服务管理
推荐使用 pm2 管理 node 服务器启动,停止
npm install pm2 -g //安装pm2
cd {项目目录} # cd yapi
pm2 start "vendors/server/app.js" --name yapi //pm2管理yapi服务
pm2 info yapi //查看服务信息
pm2 stop yapi //停止服务
pm2 restart yapi //重启服务
设置开机自启动
pm2 startup
pm2 save
运行pm2 startup 在/etc/systemd/system/目录下生成pm2-root的启动脚本,且自动将pm2-root设为服务。
# pm2 startup
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target
[Service]
Type=forking
User=root
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/lib64/qt-3.3/bin:/usr/local/node_14.0.0/bin:/usr/local/apache-maven-3.6.3/bin:/usr/local/jdk1.8.0_231/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/etc/alternatives/java_sdk_11/bin:/server/rabbitmq/bin:/server/rabbitmq/rabbitmq_server-3.7.8/sbin:/root/bin:/usr/local/mysql/bin:/usr/local/mysql/lib:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/root/.pm2
PIDFile=/root/.pm2/pm2.pid
Restart=on-failure
ExecStart=/usr/local/node_14.0.0/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/usr/local/node_14.0.0/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/usr/local/node_14.0.0/lib/node_modules/pm2/bin/pm2 kill
[Install]
WantedBy=multi-user.target
Target path
/etc/systemd/system/pm2-root.service
Command list
[ 'systemctl enable pm2-root' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-root.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-root...
Created symlink from /etc/systemd/system/multi-user.target.wants/pm2-root.service to /etc/systemd/system/pm2-root.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save
[PM2] Remove init script via:
$ pm2 unstartup systemd
运行pm2 save 会将当前pm2所运行的应用保存在/root/.pm2/dump.pm2下,当开机重启时,运行pm2-root服务脚本,并且到/root/.pm2/dump.pm2下读取应用并启动。
# pm2 save
[PM2] Saving current process list...
>>>> In-memory PM2 is out-of-date, do:
>>>> $ pm2 update
In memory PM2 version: 5.1.2
Local PM2 version: 5.2.0
[PM2] Successfully saved in /root/.pm2/dump.pm2
升级
cd {项目目录} # cd yapi
yapi ls //查看版本号列表
yapi update //更新到最新版本
yapi update -v {Version} //更新到指定版本
测试
访问后新建一个项目,使用测试swagger.json: https://petstore.swagger.io/v2/swagger.json
安装其他插件 ==> 不建议安装
安装其他插件后,原来页面上少了swagger同步的信息

其他插件


内网部署YApi的更多相关文章
- Redis-3.2.1集群内网部署
摘要: Redis-3.2.1集群内网部署 http://rubygems.org国内连不上时的一种Redis集群部署解决方案.不足之处,请广大网友指正,谢谢! 一. 关于redis cluster ...
- centos7谷歌chrome内网部署演示
上传需要的包,注释网关创建内网环境 [root@localhost ~]# ls anaconda-ks.cfg chrome mcw4 mcw4.tar.gz mcwchromerpm.tar.gz ...
- yapi内网部署 centos
1.部署方案 官方说明: https://hellosean1025.github.io/yapi/devops/index.html 2.需要注意的点 (1)在centos等服务启上最好使用“命令行 ...
- 内网部署Docker版本Gitlab
Gitlab部署: 1. 还原备份文件后记得拷贝gitlab-secrets.json,不然会遇到500错误 2. 下载Docker以及依赖项rpm包 3. 在外网机器下载镜像 a. 拉取——Dock ...
- DLINK 企业路由器内网部署web开启端口转发后还需要开启是否支持端口回流功能
跑后台使用的服务器,配置一般都很低,带宽只有2Mb 一些大型文件比如app的更新包使用这种服务器不可行 但是公司的网络是100Mb对等静态ip专线 所以能利用起来,每年将会省下8万块 说干就干,这个步 ...
- 外网访问内网工具ngrok tunnel 使用总结
需求分析 在软件开发测试过程中,我们会经常遇到需要网站部署测试.给客户演示.APP开发的调试这样的需求.通常的做法是申请一个域名和空间,将网站放到外网上给客户演示. 这种方法确实可行不过会有两点不好, ...
- EasyNVR内网摄像机接入网关+EasyNVS云端管理平台,组件起一套轻量级类似于企业级萤石云的解决方案
背景分析 对于EasyNVR我们应该都了解,主要应用于互联安防直播,对于EasyNVR,我们可以清楚的发现,EasyNVR的工作机制是EasyNVR拉取摄像机的RTSP/Onvif视频流,然后客户端可 ...
- 内网穿透神器(ngrok)服务端部署【分享一台自己的ngrok服务器】【多平台】
Ngrok为何物 “ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道.ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放.”这是百度百科上给Ng ...
- kubernetes 内网节点部署笔记(一)
在Centos7上部署kubernetes时,碰到很多坑,特别在摸拟在内网部署时,有来自GFW的障碍,有来自Firewalld的阻塞,反正是各种不服,终于慢慢理顺了思路,自己记录一下,防止遗忘. 环境 ...
随机推荐
- manjaro 安装后的基本配置
第一步:设置官方镜像源 sudo pacman-mirrors -i -c China -m rank # 输入以上命令后会有弹出框,选择一个国内镜像(推荐 https://mirrors.ustc. ...
- 类似Tower的而故事还没结束
我对于SaaS一种有一种英雄主义的情怀在里面,无论是早期的推事本,还是后面我去调研的麦客CRM,国内的SaaS都在努力生长,在后疫情时代剩下的都是平台级的钉钉.飞书,或者垂直领域的王炸app了. 我早 ...
- 攻防世界MISC—进阶区21-30
21.easycap 得到一个pcap文件,协议分级统计,发现都是TCP协议 直接追踪tcp流,得到FLAG 22.reverseMe 得到一张镜面翻转的flag,放入PS中,图像-图像旋转-水平翻转 ...
- 经典面试题:==和equals的区别
1.== 既可以比较基本类型也可以比较引用类型.对于基本类型就是比较值,对于引用类型就是比较内存地址 2.equals的话,它是属于java.lang.Object类里面的方法,如果该方法没有被重写过 ...
- IP核的使用(Vivado中的调用,product guide的查询阅读 ,引脚的设置(位宽,个数,算法等),coe文件的初始化 )
IP核:Intellectual Property core ,即知识产权核.每个IP核可以实现特定功能,我们在设计一个东西时可以直接调用某个IP核来辅助实现功能. 存在形式:HDL语言形式,网表形式 ...
- python shutil相关操作
python shutil模块常用操作 高级的 文件.文件夹.压缩包 处理模块 1.将文件内容拷贝至另一个文件中 shutil.copyfileobj(src, dist, length=16*102 ...
- 调和级数为什么是 O(logn) 的
目录 调和级数 正片 调和级数 调和级数(Harmonic series)定义为 \[H(n)=\sum_{i=1}^n\dfrac 1i \] \(H\) 发散,证明看百度 . 正片 首先我们把 \ ...
- 还在用Alpine作为你Docker的Python开发基础镜像?其实Ubuntu更好一点
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_173 一般情况下,当你想为你的Python开发环境选择一个基础镜像时,大多数人都会选择Alpine,为什么?因为它太小了,仅仅只有 ...
- 有事务冲突时节点怎么加入MGR集群
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 问题场景描述 2. 如何修复 2.1 找出事务差异点 2.2 决定如何处理 3. 小结 文章推荐: 关于 Gr ...
- 一文详解 implementation api embed
最近使用 Android Studio 从事项目开发时,发现对 implementation.api.embed 的用法了解的不是很清楚,这里准备一篇文章对其使用场景或者说是使用方式进行一个总结. d ...