环境准备
- nodejs(7.6+)
- mongodb(2.6+)
- git
nodejs 与 git
1
| sudo apt install nodejs npm git
|
mongodb
安装 MongoDB
- 导入公钥
Ubuntu 软件包管理器 apt(高级软件包工具)需要软件分销商的 GPG 密钥来确保软件包的一致性和真实性。 运行此命令将 MongoDB 密钥导入到您的服务器。
1
| sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
|
- 创建源列表文件
使用以下命令在 /etc/apt/sources.list.d/
中创建一个 MongoDB 列表文件:
1
| echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
|
- 安装 MongoDB
1 2
| sudo apt-get update sudo apt-get install -y mongodb-org
|
MongoDB apt 安装程序自动为 Systemd 创建了一个 mongod.service 文件,因此不需要再手动创建它。
启动 MongoDB 并将其添加为在启动时启动的服务:
1 2
| systemctl start mongod systemctl enable mongod
|
配置 MongoDB 用户名和密码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| mongo
# 进入 MongoDB shell 后,切换到数据库管理员 use admin # 创建 root 用户 db.createUser({user:"admin", pwd:"admin123", roles:[{role:"root", db:"admin"}]})
# 切换到数据库 yapi use yapi # 创建 yapi 管理员用户 db.createUser({user:"yapiAdmin", pwd:"yapi123", roles:[{role:"dbOwner", db:"yapi"}]})
# 退出 exit
# 重新启动MongoDB并连接创建的用户 sudo service mongod restart
|
MongoDB 数据迁移
备份
1
| mongodump -h dbhost -d dbname -o dbdirectory
|
-h
: mongodb 所在服务器地址,例如 127.0.0.1
,也可以指定端口 127.0.0.1:27017
-d
: 需要备份的数据库名称,例如:yapi
-o
: 备份的数据存放的位置,例如:/home/bak
-u
: 用户名称,使用权限验证的 mongodb 服务,需要指明导出账号
-p
:用户密码,使用权限验证的 mongodb 服务,需要指明导出账号密码
恢复
1
| mongorestore -h dbhost -d dbname --drop <path>
|
-h
: mongodb 所在服务器地址
-d
: 需要恢复备份的数据库名称,例如:yapi
,可以跟原来备份的数据库名称不一样
--drop
: 加上这个参数的时候,会在恢复数据之前删除当前数据
<path>
: 备份数据所在位置,例如:/home/bak/yapi
--dir
: 指定备份的目录,你不能同时指定 <path>
和 --dir
选项
yapi
方式一. 可视化部署
执行 yapi server 启动可视化部署程序,输入相应的配置和点击开始部署,就能完成整个网站的部署。部署完成之后,可按照提示信息,执行 node/{网站路径/server/app.js} 启动服务器。在浏览器打开指定 url, 点击登录输入您刚才设置的管理员邮箱,默认密码(ymfe.org) 登录系统(默认密码可在个人中心修改)。
1 2
| npm install -g yapi-cli --registry https://registry.npm.taobao.org yapi server
|
经测试,ubuntu 18.04 中 9090 端口被占用,目前需在源码中修改端口:
1 2 3 4 5 6 7 8
|
...
app.listen(argv.port || 9090) ...
|
方式二. 命令行部署
1 2 3 4 5 6 7 8 9 10
| mkdir yapi cd yapi git clone --depth=1 https://github.com/YMFE/yapi.git vendors cp vendors/config_example.json ./config.json // 复制完成后请修改相关配置 cd vendors npm install --production --registry https://registry.npm.taobao.org
# 在此之前请先修改配置 config.json npm run install-server // 安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置 node server/app.js // 启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候
|
请在启动前进行配置
pm2 进程守护
1 2 3 4
| npm install pm2@latest -g
# 注意目录 app.js 的目录,pm2 start `real_path`/app.js pm2 start ./server/app.js
|
pm2 常用命令
- 开机自启动:
pm2 startup
,然后按提示操作
- 取消开机自启动:
pm2 unstartup
,然后按提示操作
- 保存当前应用:
pm2 save
- 清理已保存的应用:
pm2 cleardump
参考资料
https://yapi.ymfe.org/devops/index.html
https://www.linuxidc.com/Linux/2018-05/152253.htm
https://pm2.io/doc/en/runtime/guide/startup-hook/