宝塔面板使用WebHook配合gogs搭建钩子 Git push上传自动推送到服务器

本文档介绍了如何通过宝塔面板和Gogs创建Git仓库,并设置Webhook实现自动部署。首先在宝塔软件商店安装Webhook,接着配置Webhook脚本,包括设置git项目路径、URL和处理参数。脚本会检查项目路径是否存在,克隆或更新Git仓库,并调整目录权限。之后,在Gogs中配置Webhook,将宝塔生成的秘钥添加到推送地址。测试Webhook并观察日志,确认部署成功。
摘要由CSDN通过智能技术生成

首先gogs创建个git仓库

第一步宝塔软件商店安装webhook
在这里插入图片描述
第二步 点击webhook设置添加脚本

在这里插入图片描述
脚本内容

#!/bin/bash
  
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "china" ];
then 
          echo "param参数错误"
          echo "End"
          exit
fi
#git项目路径
gitPath="/www/wwwroot/china"
#git 网址
gitHttp="http://name:pwd@url"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                sudo git clone $gitHttp gittemp
                sudo mv gittemp/.git .
                sudo rm -rf gittemp
        fi
        echo "拉取最新的项目文件"
        #sudo git reset --hard origin/master
        sudo git pull        
        echo "设置目录权限"
        sudo chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
                echo "新建项目目录"
        mkdir $gitPath
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                sudo git clone $gitHttp gittemp
                sudo mv gittemp/.git .
                sudo rm -rf gittemp
        fi
        echo "拉取最新的项目文件"
        #sudo git reset --hard origin/master
        sudo git pull
        echo "设置目录权限"
        sudo chown -R www:www $gitPath
        echo "End"
        exit
fi

脚本要修改的地方(看下图)

1-> 文件夹名称
2-> 文件夹名称
3->你的Git地址(其中name是你的gogs账号 pwd是你的gogs密码 注意账号或者密码不要带有@不然跟后面那个@冲突)

3 点击webhook设置查看gogs 需要配置的秘钥

复制红框中的内容

4 复制红框中的内容到gogs

5 到gogs你创建的git仓库点击仓库设置
在这里插入图片描述
6 点击管理web钩子 然后添加gogs

在这里插入图片描述

7 将在webhook复制的秘钥粘贴到推送地址(注意红框中的aaa代表你的脚本中的文件夹名称 我的为china的话 我就会把aaa改成china)
在这里插入图片描述
8 这是添加成功样式
在这里插入图片描述

9回到宝塔点击测试 然后查看日志
在这里插入图片描述
10 如果是整个项目拉取的话 可能需要等一下文件夹才会拉取下来

在这里插入图片描述
但是日志出现这个的话 基本就说明你的钩子已经搭建好了

完成

可以使用Node.js的Express框架来搭建Web服务器,并使用Webhook实现自动化部署。具体步骤如下: 1. 使用Express框架,创建一个Web服务器: ```javascript const express = require('express'); const app = express(); app.listen(3000, () => { console.log('Server started on port 3000'); }); ``` 2. 创建一个路由,用于接收Webhook请求: ```javascript app.post('/webhook', (req, res) => { console.log('Webhook received'); // 执行自动化部署的代码 res.send('Webhook received'); }); ``` 3. 在GitHub或其他代码托管平台上,配置Webhook,将请求发送到服务器的`/webhook`路由。 4. 在Webhook请求中,包含有关代码更新的信息。您可以使用shell脚本来执行自动化部署的任务。例如: ```javascript app.post('/webhook', (req, res) => { console.log('Webhook received'); const { spawn } = require('child_process'); const deploy = spawn('sh', ['./deploy.sh']); deploy.stdout.on('data', data => { console.log(data.toString()); }); deploy.on('close', code => { console.log(`Child process exited with code ${code}`); }); res.send('Webhook received'); }); ``` 5. 在部署脚本`deploy.sh`中,可以执行您需要的部署任务。例如,您可以使用`git pull`命令来获取最新的代码更新: ```bash #!/bin/bash cd /path/to/project git pull origin master npm install pm2 restart app ``` 6. 使用PM2或其他进程管理工具,启动您的Node.js应用程序。例如: ```bash pm2 start app.js ``` 这样,您就可以使用Webhook自动触发部署任务,并自动化部署您的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你猜我会不会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值