在 宝塔面板 中配置 Webhook 实现与 Gitee 代码推送的自动同步,并使用 公钥验证 来确保安全性。以下是详细的操作步骤:


1. 准备工作

  • 宝塔面板:确保已安装并配置好宝塔面板,再安装webhook。

  • Gitee 仓库:确保你的代码已托管在 Gitee 上。

  • 服务器环境:确保服务器已安装 Git(一般已自动安装) 和 Web 服务(如 Nginx 或 Apache)。


2. 生成 SSH 公钥

如果服务器上还没有 SSH 公钥,可以通过以下步骤生成:

  1. 登录服务器,打开终端。

  2. 生成 SSH 密钥对

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    • 按提示输入保存路径(默认路径为 ~/.ssh/id_rsa)。

    • 设置密码(可选,建议留空)。

  3. 查看公钥

    cat ~/.ssh/id_rsa.pub

    复制公钥内容。


3. 将公钥添加到 Gitee 仓库

  1. 登录 Gitee,进入你的代码仓库。

  2. 进入仓库设置

    • 点击「管理」->「部署公钥管理」。

  3. 添加部署公钥

    • 在「添加部署公钥」页面,填写以下信息:

      • 标题:自定义一个名称,如 XX公司专用(公钥粘贴时会自动获取生成信息,可用于验证公钥是否正确)

      • 公钥:粘贴从服务器复制的公钥内容。

    • 点击「添加」完成配置。


4. 在宝塔面板中配置 Webhook

  1. 进入站点设置

    • 在宝塔面板中,点击「网站」-> 选择你的站点 ->「设置」。

    • 找到「Webhook」选项,点击「添加 Webhook」。

  2. 填写 Webhook 信息

    • 名称:自定义一个名称,如 XX公司XX项目

    • 脚本:填写以下脚本内容(根据你的实际情况修改):

      #输出当前时间
      date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
      
      # 切换到网站根目录
      cd /www/wwwroot/yourdomain.com
      
      # 拉取最新代码
      git reset --hard
      git pull origin master
      
      echo "已执行"

       

    • 备注网站根目录需要提前从仓库git clone代码,必须使用ssh方式,无需账号密码(clone成功说明公钥配置成功)

  3. 保存 Webhook

    • 点击「提交」保存 Webhook 配置。

    • 保存后,宝塔会生成一个 Webhook URL,复制该 URL。


5. 在 Gitee 中配置 Webhook

  1. 登录 Gitee,进入你的代码仓库。

  2. 进入仓库设置

    • 点击「管理」->「WebHooks」。

  3. 添加 Webhook

    • URL:粘贴从宝塔面板复制的 Webhook URL(如 https://47.1.1.1:80808/hook?access_key=xxxxxxxxxxxxxxxxx&param=gitee)。

    • 触发事件:选择「Push 事件」(默认)。

    • Secret(可选):如果需要加密验证,可以设置一个密钥,并在宝塔 Webhook 脚本中添加验证逻辑。

    • 点击「添加」完成配置。


6. 测试 Webhook

  1. 在 Gitee 中推送代码

    • 修改代码并推送到 Gitee 仓库。

  2. 查看 Webhook 日志

    • 在宝塔面板中,进入「Webhook」页面,查看日志是否显示代码拉取成功。

  3. 检查网站目录

    • 确认网站根目录中的代码已更新。

 

posted on 2025-02-27 10:04  缈影  阅读(370)  评论(0)    收藏  举报