邢台移动网站设计,做泥水上哪个网站找事做,嘉兴建站软件,电子商务网站开发主要实现功能1. 宝塔面板配置Webhook
登录宝塔面板#xff0c;进入「软件商店」→ 搜索「Webhook」并安装。添加Webhook#xff1a; 名称#xff1a;自定义#xff08;如 Gitee自动部署#xff09;脚本#xff1a;编写部署脚本#xff0c;示例如下#xff1a;#!/bin/bash# 项目路径…1. 宝塔面板配置Webhook
登录宝塔面板进入「软件商店」→ 搜索「Webhook」并安装。添加Webhook 名称自定义如 Gitee自动部署脚本编写部署脚本示例如下#!/bin/bash# 项目路径需替换为你的实际路径
PROJECT_PATH/www/wwwroot/your_project
# Gitee仓库地址推荐SSH格式如 gitgitee.com:username/repo.git
GIT_REPOgitgitee.com:username/repo.git
# 分支名如 master 或 main
BRANCHmaster# 验证请求可选需在Gitee的Webhook中配置密钥
# 宝塔Webhook默认暂不支持自动验证建议通过脚本验证签名此处略需自行实现# 进入项目目录
cd $PROJECT_PATH || exit 1# 强制重置代码避免冲突
git reset --hard HEAD
git clean -fd# 拉取最新代码
git pull $GIT_REPO $BRANCH# 安装依赖如npm、pip等
# npm install
# pip install -r requirements.txt# 重启服务如Nginx、PHP等
# systemctl restart nginxecho 自动部署完成保存后复制生成的Webhook URL形如 http://服务器IP:端口/hook?access_keyxxx。 2. Gitee仓库配置Webhook
进入Gitee仓库 → 「管理」→ 「WebHooks」→ 「添加WebHook」。填写配置 URL粘贴宝塔生成的Webhook URL。密钥可选若需签名验证填写密钥并在宝塔脚本中验证。触发事件选择「Push」事件。 保存设置。 3. 配置SSH密钥避免每次输入密码
生成密钥对如未生成过ssh-keygen -t rsa -C your_emailexample.com
# 默认路径为 ~/.ssh/id_rsa
# 打开终端Linux/macOS或 Git BashWindows参数说明 -t rsa: 使用 RSA 算法。-C your_email: 备注建议填写邮箱。 交互提示 按回车使用默认密钥路径~/.ssh/id_rsa。输入密钥密码可选直接回车跳过
添加公钥到Gitee 复制 cat ~/.ssh/id_rsa.pub 输出的内容(从 ssh-rsa 到邮箱结尾)。点击设置然后点击ssh公钥命名并填入公钥的内容 测试 SSH 连接 验证是否配置成功 ssh -T gitgitee.com成功响应 Hello YourUsername! Youve successfully authenticated, but GITEE.COM does not provide shell access.配置 Git 仓库使用 SSH 地址 如果之前使用的是 HTTPS 地址需修改为 SSH 协议 # 进入项目目录
cd /path/to/your/project# 查看当前远程仓库地址
git remote -v# 修改为 SSH 地址格式gitgitee.com:username/repo.git
git remote set-url origin gitgitee.com:username/repo.git4. 测试与排查
手动触发测试 在宝塔的Webhook页面点击「测试」查看日志是否执行成功。在Gitee仓库推送代码观察宝塔日志路径/www/wwwlogs/webhook.log。 常见问题 权限不足确保项目目录用户权限与脚本执行用户一致如 chown -R www:www /www/wwwroot。Git拉取失败检查SSH密钥是否生效ssh -T gitgitee.com。脚本路径错误使用绝对路径或先 cd 到目录再操作。依赖缺失确保服务器已安装Git、Node.js等必要工具。 补充增加安全性可选
在脚本中添加签名验证需Gitee配置密钥
# 获取请求头中的签名
SIGNATURE$HTTP_X_GITEE_TOKEN
# 计算本地签名需安装jq
# JSON$(cat /dev/stdin)
# CALC_SIGN$(echo -n $JSON | openssl sha256 -hmac 你的密钥 | awk {print $2})
# 对比 $SIGNATURE 与 $CALC_SIGN 是否一致通过以上步骤即可实现Gitee代码推送后自动触发宝塔Webhook完成部署。