使用宝塔配置webhook实现代码同步gitee仓库
本文章用于使用宝塔部署项目,并通过宝塔的webhook软件实现代码同步gitee仓库,只要向gitee推送代码,服务器上的代码会同步更新
·
一、服务器环境要求
注:我的服务器使用的操作系统是OpenCloudOS Server 9
安装宝塔面板(推荐7.7.0及以上版本)

服务器上安装git
sudo dnf install git -y
查看git安装版本
git --version
使用git克隆项目 (这里我选择进入宝塔默认用户www下)
cd /www/wwwroot/default
git clone https://gitee.com/"你的仓库"
生成ssh密钥
ssh-keygen -t rsa
切换目录
cd ~/.ssh
查看密钥
cat id_rsa.pub
复制密钥进入gitee 登录gitee => 选择自己的仓库 =>选择管理

选择部署公钥管理 => 添加公钥

将从服务器生成密钥添加进去 ,标题随便起

二、宝塔面板配置
登录宝塔面板(需要在服务器放行宝塔端口) => 软件商店 => 安装宝塔webhook

进入webhook并添加hook

这里添加的是自定义脚本
#!/bin/bash
echo ""
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#这是你的仓库代码拉取的分支
branch="master"
#这里的地址需要修改为服务器克隆代码的文件位置
gitPath="/www/wwwroot/default/`你的仓库`"
#这里的是你的gitee的仓库克隆地址
gitHttp="https://gitee.com/mr-shao-master/zhihuiwulian_vue.git"
if [ -d "$gitPath" ]; then
cd $gitPath
if [ ! -d ".git" ]; then
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git
sudo rm -rf gittemp
fi
sudo git reset --hard origin/$branch
sudo git pull $gitHttp 2>&1
#这里我使用的是宝塔默认用户www
sudo chown -R www:www $gitPath
echo "End"
exit
else
mkdir $gitPath
cd $gitPath
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git
sudo rm -rf gittemp
sudo git pull $gitHttp 2>&1
sudo chown -R www:www $gitPath
echo "End"
exit
fi
添加完成之后点击查看密钥

注:如果你在服务器上部署完宝塔忘记保存账号密码
1.宝塔网站进不去时解决办法
若是debian/ubuntu用户,请使用有root权限的账户去执行这条命令
#testpasswd为重置密码
cd /www/server/panel && btpython tools.py panel testpasswd
如果提示多次登录失败,暂时禁止登录 请输入以下命令 清除登录限制
rm -f /www/server/panel/data/*.login
三、gitee仓库配置
进入gitee仓库中,添加webhooks

这里添加完成之后测试可能会不通过,需要给服务器上克隆的仓库文件夹赋予安全文件夹权限
git config --global --add safe.directory /www/wwwroot/default/"你的仓库"
注:这里建议给git进行全局配置,包括你的账号密码之类的,不然后面测试webhook的时候会出现身份认证不通过
配置完成之后查看你的配置
#查看你的配置
git config --list
#全局配置
git config --global "你的配置"
#如果配置出现错误,可以取消设置
git config --global --unset "想要取消的配置"
#保存git账号密码配置(配置后拉取代码时无需输入账号密码,第一次使用时需要输入)
git config --global credential.helper store
回到宝塔webhook,测试运行

测试之后查看日志

更多推荐
所有评论(0)