宝塔webhooks与码云实现自动部署

1. 宝塔面板配置Webhook

  1. 登录宝塔面板,进入「软件商店」→ 搜索「Webhook」并安装。
  2. 添加Webhook
    • 名称:自定义(如 Gitee自动部署
    • 脚本:编写部署脚本,示例如下:
      #!/bin/bash# 项目路径(需替换为你的实际路径)
      PROJECT_PATH="/www/wwwroot/your_project"
      # Gitee仓库地址(推荐SSH格式,如 git@gitee.com:username/repo.git)
      GIT_REPO="git@gitee.com:username/repo.git"
      # 分支名(如 master 或 main)
      BRANCH="master"# 验证请求(可选,需在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_key=xxx)。

2. Gitee仓库配置Webhook

  1. 进入Gitee仓库 → 「管理」→ 「WebHooks」→ 「添加WebHook」。
  2. 填写配置:
    • URL:粘贴宝塔生成的Webhook URL。
    • 密钥(可选):若需签名验证,填写密钥并在宝塔脚本中验证。
    • 触发事件:选择「Push」事件。
  3. 保存设置。

3. 配置SSH密钥(避免每次输入密码)

  1. 生成密钥对(如未生成过):
    ssh-keygen -t rsa -C "your_email@example.com"
    # 默认路径为 ~/.ssh/id_rsa
    # 打开终端(Linux/macOS)或 Git Bash(Windows)
    
  • 参数说明
    • -t rsa: 使用 RSA 算法。
    • -C "your_email": 备注(建议填写邮箱)。
  • 交互提示
    • 按回车使用默认密钥路径(~/.ssh/id_rsa)。
    • 输入密钥密码(可选,直接回车跳过)
  1. 添加公钥到Gitee
    • 复制 cat ~/.ssh/id_rsa.pub 输出的内容(从 ssh-rsa 到邮箱结尾)。
    • 点击设置在这里插入图片描述
    • 然后点击ssh公钥,命名并填入公钥的内容在这里插入图片描述
  2. 测试 SSH 连接
  • 验证是否配置成功

    ssh -T git@gitee.com
    
  • 成功响应

    Hello YourUsername! You've successfully authenticated, but GITEE.COM does not provide shell access.
    
  1. 配置 Git 仓库使用 SSH 地址
  • 如果之前使用的是 HTTPS 地址,需修改为 SSH 协议:

    # 进入项目目录
    cd /path/to/your/project# 查看当前远程仓库地址
    git remote -v# 修改为 SSH 地址(格式:git@gitee.com:username/repo.git)
    git remote set-url origin git@gitee.com:username/repo.git
    

4. 测试与排查

  1. 手动触发测试
    • 在宝塔的Webhook页面点击「测试」,查看日志是否执行成功。
    • 在Gitee仓库推送代码,观察宝塔日志(路径:/www/wwwlogs/webhook.log)。
  2. 常见问题
    • 权限不足:确保项目目录用户权限与脚本执行用户一致(如 chown -R www:www /www/wwwroot)。
    • Git拉取失败:检查SSH密钥是否生效(ssh -T git@gitee.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完成部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26992.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot之集成Elasticsearch

目录 二、Elasticsearch 是什么?三、Elasticsearch 安装四、Springboot 集成 Elasticsearch 的方式五、创建项目集成 Elasticsearch 2.创建 Spring Initializr 项目 es (3).新建实体类 User(4).新建 dao 接口类 UserR…

FFmpeg入门:最简单的音频播放器

FFmpeg入门:最简单的音频播放器 欢迎大家来到FFmpeg入门的第二章,今天只做一个最简单的FFmpeg音频播放器;同样,话不多说,先上流程图 流程图 以上流程和视频播放器的解码过程基本上是一致的; 不同点在于 S…

Hive-08之数据仓库之建模、分析

一、目标 掌握数据仓库基本概念熟悉数据仓库的模型建立 二、知识要点 1. 数据仓库基本介绍 英文名称为Data Warehouse,可简写为DW或DWH。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)…

【前端基础】3、HTML的常用元素(h、p、img、a、iframe、div、span)、不常用元素(strong、i、code、br)

HTML结构 一个HTML包含以下部分&#xff1a; 文档类型声明html元素 head元素body元素 例&#xff08;CSDN&#xff09;&#xff1a; 一、文档类型声明 HTML最一方的文档称为&#xff1a;文档类型声明&#xff0c;用于声明文档类型。即&#xff1a;<!DOCTYPE html>…

车载以太网-基于linux的ICMP协议

对于车载以太网-ICMP的技术要求: /** ICMP报文格式解析* -----------------* ICMP协议用于网络诊断和错误报告,常见应用包括Ping测试。* ICMP报文结构包括:IP头部、ICMP头部和ICMP数据部分。* 下面详细介绍每个部分的结构、字段的作用以及如何解析它们。* * ICMP头部结构:*…

Let‘s Encrypt 获取免费SSL证书

1、Lets Encrypt Lets Encrypt 官网点击这里 &#xff1a; 她推荐使用 Certbot 客户端请求证书&#xff0c;直接访问 Certbot 站点开干 &#xff1a; Certbot 2、Certbot 站点首页上直接选择操作系统和服务器软件&#xff0c;页面直接给出操作步骤 非常简单&#xff0c;…

tin这个单词怎么记

英语单词 tin&#xff0c;一般用作名词&#xff0c;意为“罐头&#xff1b;锡”&#xff1a; tin n.锡&#xff1b;罐头&#xff1b;罐&#xff1b;罐头盒&#xff1b;(盛涂料、胶水等的)马口铁罐&#xff0c;白铁桶&#xff1b;罐装物&#xff1b;金属食品盒&#xff1b;烘焙…

(十 三)趣学设计模式 之 模版方法模式!

目录 一、 啥是模板方法模式&#xff1f;二、 为什么要用模板方法模式&#xff1f;三、 模板方法模式的实现方式四、 模板方法模式的优缺点五、 模板方法模式的应用场景六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&a…

GitLab Pages 托管静态网站

文章目录 新建项目配置博客添加 .gitlab-ci.yml其他配置 曾经用 Github Pages 来托管博客内容&#xff0c;但是有一些不足&#xff1a; 在不科学上网的情况下&#xff0c;是没法访问的&#xff0c;或者访问速度非常慢代码仓库必须是公开的&#xff0c;如果设置为私有&#xff0…

redis --- 相关基础知识整理

目录 一、基本1、数据结构2、有序集合的编码1. 压缩列表&#xff08;Ziplist&#xff09;2. 跳跃列表&#xff08;SkipList&#xff09;3. 动态转换机制 二、应用场景三、持久化1、 RDB 持久化2、 AOF 持久化3、 混合持久化&#xff08;RDB AOF&#xff09;4、 RDB和AOF的对比…

想学大模型,但分不清longchain,huggingface,ollama各种工具之间区别?

总结就一句话&#xff0c;按需选择。 1. Hugging Face&#xff1a;AI 模型的“GitHub” Hugging Face 是 开源模型的集散地&#xff0c;相当于大模型界的 GitHub。这里有数万个预训练模型&#xff08;比如 Llama、Mistral&#xff09;&#xff0c;覆盖文本生成、翻译、代码补全…

开源PDF解析工具olmOCR

olmOCR 是由 Allen Institute for Artificial Intelligence (AI2) 的 AllenNLP 团队开发的一款开源工具&#xff0c;旨在将PDF文件和其他文档高效地转换为纯文本&#xff0c;同时保留自然的阅读顺序。它支持表格、公式、手写内容等。 olmOCR 经过学术论文、技术文档和其他文档…

基于Spring Boot和Vue的餐饮管理系统设计与实现

大家好&#xff0c;今天要和大家聊的是一款基于Spring Boot和Vue的餐饮管理系统的设计与实现。项目源码以及部署相关事宜请联系我&#xff0c;文末附上联系方式。 项目简介 基于Spring Boot和Vue的餐饮管理系统设计与实现的主要使用者分为管理员、员工和用户。没有授权的用户无…

HTTP/2 服务器端推送:FastAPI实现与前端集成指南

HTTP/2 服务器端推送&#xff1a;FastAPI实现与前端集成指南 注意&#xff1a;本文末尾附有完整示例代码&#xff0c;文中仅展示核心关键代码。完整代码可在GitHub仓库获取。 本文将会讲解HTTP2协议和相关配置实践。但是不要混淆&#xff0c;SSE的实现完全基于HTTP/1.1的持久连…

二、QT和驱动模块实现智能家居-----4、编译Qt程序并运行

一、编译QT程序 第1步 修改界面&#xff1a; 双击左侧的 Forms 里的 mainwindow.ui 文件&#xff0c;打开 Design 视图。 然后如下图所示&#xff0c;从左侧Display Widgets 栏目下&#xff0c;拖动 Label 和 PushPutton到中间的区域。 第2步 添加测试代码&#xff1a; 第3步…

HTTP四次挥手是什么?

四次挥手&#xff0c;这是TCP协议用来关闭连接的过程。四次挥手是确保两个主机之间能够安全、可靠地关闭连接的重要机制。我会用简单易懂的方式来讲解&#xff0c;帮助你理解它的原理和过程。 1. 什么是四次挥手&#xff1f; 定义 四次挥手是TCP协议用来关闭连接的过程。它通…

java+jvm笔记

JUC synchornized原理&#xff08;java锁机制&#xff09;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 升级顺序&#xff1a; 无锁偏向锁&#xff0c;只有一个线程来访问轻量级锁&#xff0c;有两个线程交替访问重锁&#xff0c;两个及以上线…

idea + Docker + 阿里镜像服务打包部署

一、下载docker desktop软件 官网下载docker desktop&#xff0c;需要结合wsl使用 启动成功的画面(如果不是这个画面例如一直处理start或者是stop需要重新启动&#xff0c;不行就重启电脑) 打包成功的镜像在这里&#xff0c;如果频繁打包会导致磁盘空间被占满&#xff0c;需…

探索Spring Cloud Config:构建高可用的配置中心

目录 认识Spring Cloud ConfigConfig Server读取配置文件步骤1&#xff1a; &#xff08;1&#xff09;创建config-server项目&#xff08;2&#xff09;在config-server中开启Config Server功能&#xff08;3&#xff09;在config-server配置文件进行相关配置&#xff08;4&a…

CSDN博客导出设置介绍

在CSDN编辑博客时&#xff0c;如果想导出保存到本地&#xff0c;可以选择导出为Markdown或者HTML格式。其中导出为HTML时有这几种选项&#xff1a;jekyll site&#xff0c;plain html&#xff0c;plain text&#xff0c;styled html&#xff0c;styled html with toc。分别是什…