文章目录
- 一、添加站点
- 二、webhooks自动部署
- 三、设置反向代理,通过域名访问
更多内容可参考我的博客
具体创建egg项目这里就不做过多叙述…请查看官网文档,本篇建立与已有egg仓库,宝塔的基础上。
一、添加站点
进入宝塔面板,点击添加站点
例如:我的egg项目目录就是www/wwwroot/egg,域名是api.xmeta.love
二、webhooks自动部署
-
宝塔面板的软件商店搜索安装宝塔webhook
-
打开设置,点击添加,输入名称,先随便输入脚本,点击提交
-
点击查看密钥,记录下密钥
-
打开项目仓库,例如我的是gitee,进入仓库页面,点击管理 => 部署公钥管理 => 添加公钥,添加完成后,后面别的仓库都可以共用这个公钥,无需再次创建,直接添加该公钥即可。
查看公钥命令:
cat ~/.ssh/id_rsa.pub
如果电脑上没有公钥,请创建公钥,具体参考git常用命令篇
-
仓库页面,点击管理 => WebHooks => 添加webhook,输入刚才查看密钥里的post地址
⚠️注意:params后的参数就是下面脚本里的$1,请按需修改成自己的。
- 编辑脚本
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
thenecho "param参数错误"echo "End"exit
fi
#git项目路径
gitPath="/www/wwwroot/$1"
#git 网址
gitHttp="git@gitee.com:huoyou/$1.git"echo "Web站点路径:$gitPath"#判断项目路径是否存在
if [ -d "$gitPath" ]; thencd $gitPath#判断是否存在git目录if [ ! -d ".git" ]; thenecho "在该目录下克隆 git"git clone $gitHttp gittempmv gittemp/.git .rm -rf gittempfi#拉取最新的项目文件git reset --hard origin/masterecho "开始拉取代码"sudo git pullecho "拉取完成"#按需开启npm 部署命令sudo npm install --productionecho "开始重启"sudo npm run stopsudo npm run tscsudo npm run startecho "重启完成"#设置目录权限chown -R www:www $gitPathecho "End"exit
elseecho "该项目路径不存在"echo "End"exit
fi
做完这些,就可以实现提交代码,webhook自动部署egg了。
三、设置反向代理,通过域名访问
egg部署完之后,只能通过你的服务器IP访问,例如:http://114.112.112.50:7001, 但我们肯定不想调用这样的接口吧,这样太low了。。。
所以,我们需要设置反向代理,实现通过域名调用接口。
进入宝塔面板,点击egg站点的 设置=>反向代理=>添加反向代理
来,瞅瞅效果,输入api.xmeta.love