Linux下快速搭建YApi接口管理平台

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
日志服务 SLS,月写入数据量 50GB 1个月
简介: 目录一、序言二、安装Node1、安装nvm2、使用兼容的Node版本二、安装MongoDB1、下载MongoDB2、配置MongoDB三、安装YApi四、安装PM2管理Node服务五、登录YApi后台

目录

一、序言



为了团队成员更好地合作,准备搭建一个接口管理平台,之前一直用的是YApi,这次自己准备手把手部署一个Yapi实例。YApi是一个前端项目,因为一直做后台开发,所以在部署时踩了一些小坑,特此记录一下。


二、安装Node



Yapi是一个Node项目,在这里遇到了第一个大坑就是版本问题,中间试过Node v16和v14版本,发现都不能用,最后发现安装Node v12版本是可以的。


在这里强烈建议使用nvm来安装Node,nvm是Node的一个版本管理器,可以自由切换Node版本,前端不像后端,不同项目有时适用的Node版本不同,版本不对,心态崩溃。



1、安装nvm

Linux上直接运行安装脚本即可,如下:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
或者
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash


具体地址请参考,nvm安装和更新说明

备注:安装可能有点小慢,耐心等待即可。


2、使用兼容的Node版本

(1) 列出所有可安装的Node版本

nvm ls-remote

(2) 安装适合yapi的Node版本,这里选择v12.22.12

nvm install v12.22.12

(3) 查看当前安装的Node版本

nvm list
->    v12.22.12
       v14.20.0
default -> v12.22.12
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v14.20.0) (default)
stable -> 14.20 (-> v14.20.0) (default)
lts/* -> lts/gallium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12
lts/fermium -> v14.20.0
lts/gallium -> v16.16.0 (-> N/A)
nvm use default
或者
nvm use v12.22.12
node -v


二、安装MongoDB


1、下载MongoDB

Yapi数据存储选择的是Mongo DB,所以在初始化Yapi前我们先得部署一个Mongo实例。

这里我安装的Mongo DB版本是4.4.15,直接运行以下命令即可:

wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-rhel70-v4.4-latest.tgz


然后再解压:

tar xzf mongodb-linux-x86_64-rhel70-v4.4-latest.tgz

2、配置MongoDB

(1) MongoDB解压目录下新建相关目录

mkdir conf data logs


备注:conf为配置文件目录,data为数据目录,logs为日志目录。

(2) conf目录下新增配置文件mongod.conf

touch mongod.conf

配置文件内容如下:

systemLog:
   destination: file
   path: "/mongodb-4.4.15/logs/mongodb.log" # 日志目录
   logAppend: true
net:
   bindIp: 127.0.0.1 # 绑定的ip
   port: 27017 # 服务端口
   unixDomainSocket:
      enabled: false # 如果开启,下面的pathPrefix配置得加上,不然会写在/tmp目录下
      pathPrefix: "/mongodb-4.4.15/conf" 
storage:
   dbPath: "/mongodb-4.4.15/data" # 数据目录

(3) 启动Mongo DB

进入到安装MongoDB的bin目录下,运行如下命令即可。

./mongod -f /mongodb-4.4.15/conf/mongod.conf &

(4) 连接测试

直接在bin目录下运行如下命令即可。

./mongo

59101dc718fc44c1aab77d12a8220fe8.png

三、安装YApi


# 安装yapi
npm install -g yapi-cli --registry https://registry.npm.taobao.org
# 启动服务
yapi server 

b13c575a05344685b83b2687a0ff2e9c.png点击开始部署后,会弹出一个界面,里面展示的是应用部署的日志信息,同时shell终端也会出现同样的日志信息。

部署成功后,会提示如何启动服务,执行如下命令即可:

node /yapi/vendors/server/app.js

备注:我的部署路径为/opt/appl/yapi,软链接为yapi -> /opt/appl/yapi,上面这种启动方式为前台启动,按Ctrl + C后服务会终止。关于如何在后台启动Node.js应用,请往后看。

四、安装PM2管理Node服务



PM2Node.js应用的后台进程管理器,内置负载均衡器,可以实现无停机加载,帮助我们更好的管理和维护后台应用。

除了管理Node.js应用,它还能管理其它任何可执行的脚本和二进制文件,如下:

$ pm2 start bashscript.sh
$ pm2 start python-app.py --watch
$ pm2 start binary-file -- --port 1520

(1) 启动yapi服务

pm2 start /yapi/vendors/server/app.js --name yapi --log /yapi/log/yapi.log
  • --name:指定应用名。
  • --log:指定日志文件。

备注:pm2管理的应用会在后台启动。

(2) 查看服务状态

pm2 status

ede63c789b4e4932a4e6404c00e9e266.png

(3) 终止服务

pm2 stop /yapi/vendors/server/app.js

五、登录YApi后台


备注:初始密码可以在个人中心修改。

b58fe75993524e1981a8cea858961852.png

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
1月前
|
监控 Oracle 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第8天】在 Linux 平台设置 Oracle 开机自启动有多种方法,本文以 CentOS 为例,介绍了两种常见方法:使用 `rc.local` 文件(较简单但不推荐用于生产环境)和使用 `systemd` 服务(推荐)。具体步骤包括编写启动脚本、赋予执行权限、配置 `rc.local` 或创建 `systemd` 服务单元文件,并设置开机自启动。通过 `systemd` 方式可以更好地与系统启动过程集成,更规范和可靠。
100 2
|
1月前
|
Oracle Ubuntu 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第7天】本文介绍了 Linux 系统中服务管理机制,并详细说明了如何在使用 systemd 和 System V 的系统上设置 Oracle 数据库的开机自启动。包括创建服务单元文件、编辑启动脚本、设置开机自启动和启动服务的具体步骤。最后建议重启系统验证设置是否成功。
|
2月前
|
NoSQL Ubuntu Linux
Linux平台安装MongoDB
10月更文挑战第11天
75 5
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
111 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
3月前
|
Linux 程序员 编译器
Linux内核驱动程序接口 【ChatGPT】
Linux内核驱动程序接口 【ChatGPT】
|
3月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
5月前
|
Linux
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
系统启动以后一直存在且常驻内存没有界面的进程就是服务。Linux系统中的所有服务都保存在下列目录中:/usr/lib/systemd/system,进入该目录就能看到所有的服务。
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
|
4月前
|
监控 Linux
在Linux中,如何查看网络接口的状态?
在Linux中,如何查看网络接口的状态?
|
4月前
|
安全 Linux 图形学
Linux平台Unity下RTMP|RTSP低延迟播放器技术实现
本文介绍了在国产操作系统及Linux平台上,利用Unity实现RTMP/RTSP直播播放的方法。通过设置原生播放模块的回调函数,可将解码后的YUV数据传递给Unity进行渲染,实现低延迟播放。此外,还提供了播放器启动、参数配置及停止的相关代码示例,并概述了如何在Unity中更新纹理以显示视频帧。随着国产操作系统的发展,此类跨平台直播解决方案的需求日益增长,为开发者提供了灵活高效的开发方式。
|
4月前
|
编解码 算法 Linux
Linux平台下RTSP|RTMP播放器如何跟python交互投递RGB数据供视觉算法分析
在对接Linux平台的RTSP播放模块时,需将播放数据同时提供给Python进行视觉算法分析。技术实现上,可在播放时通过回调函数获取视频帧数据,并以RGB32格式输出。利用`SetVideoFrameCallBackV2`接口设定缩放后的视频帧回调,以满足算法所需的分辨率。回调函数中,每收到一帧数据即保存为bitmap文件。Python端只需读取指定文件夹中的bitmap文件,即可进行视频数据的分析处理。此方案简单有效,但应注意控制输出的bitmap文件数量以避免内存占用过高。
下一篇
DataWorks