Files
soul/开发文档/8、部署/基于 GitHub Webhook 与宝塔面板的自动化部署流程文档.md
v0 f3195d9331 refactor: overhaul homepage and app structure
Simplify homepage, show chapter counts, display directory, trim bottom nav, in-page match feature, move marketing content, and enhance "My" page.

#VERCEL_SKIP

Co-authored-by: undefined <undefined+undefined@users.noreply.github.com>
2026-01-14 05:10:32 +00:00

7.4 KiB
Raw Permalink Blame History

I. 概述 本流程文档旨在指导您如何通过 GitHub 的 Webhook 功能,实现代码提交后自动同步到宝塔面板服务器,从而完成网站内容的自动化部署。这将极大地提高您的开发效率,减少手动部署带来的重复劳动和潜在错误。 II. 前提条件 在开始配置之前,请确保您已具备以下条件:

  1. GitHub 账号:并已拥有一个托管项目代码的仓库。
  2. 宝塔面板服务器:一台已安装宝塔面板的 Linux 服务器,并确保已安装 Nginx/Apache、PHP 和 Git 环境。
  3. 项目代码:您的网站或应用代码已完整地托管在 GitHub 仓库中。
  4. Composer (如果项目是 PHP)PHP 项目需要确保服务器上安装了 Composer用于管理项目依赖。 III. 流程概览 以下是自动化部署的整个流程图: ```mermaid graph TD A[提交代码到GitHub] --> B{GitHub Webhook}; B --> C[发送Payload到宝塔面板]; C --> D[宝塔面板接收通知]; D --> E[触发部署脚本]; E --> F[执行 git pull]; F --> G[执行 composer install (可选)]; G --> H[清理网站缓存 (可选)]; H --> I[网站内容自动更新]; ``` 流程说明: 当您将代码提交Push到 GitHub 仓库后GitHub 会通过预设的 Webhook 向您的宝塔面板服务器发送一个通知Payload。宝塔面板接收到这个通知后会触发一个预设的部署脚本该脚本通常会执行 git pull 拉取最新代码,并可能运行 composer install 安装依赖,以及清理网站缓存等操作。最终,您的网站内容将自动更新到最新版本。 IV. 具体配置步骤 A. GitHub 仓库配置
  5. 选择或创建项目仓库: 登录您的 GitHub 账号,选择或创建一个您需要自动部署的项目仓库。
  6. 配置 Webhook 这是实现自动触发部署的关键。
    • 进入您的 GitHub 仓库页面,点击顶部的 Settings设置
    • 在左侧导航栏中,点击 Webhooks。
    • 点击 Add webhook添加 Webhook
    • 填写以下信息:
      • Payload URL这个 URL 需要从宝塔面板中获取。请暂时留空,我们将在后面的宝塔面板配置步骤中获取并填回。
      • Content type选择 application/json
      • Secret (可选,但强烈推荐):设置一个随机且复杂的字符串作为密钥。这个密钥用于验证请求是否真的来自 GitHub增强安全性。例如your_github_webhook_secret_123。请务必牢记这个密钥,稍后宝塔面板中会用到。
      • Which events would you like to trigger this webhook?:选择 Just the push event.仅推送事件。这意味着只有当您向仓库推送代码时Webhook 才会触发。
      • Active确保此选项被勾选。
    • 点击 Add webhook 完成添加。 B. 宝塔面板服务器配置
  7. 登录宝塔面板: 使用您的账号密码登录到宝塔面板。
  8. 确保服务器环境: 确认您的服务器已安装 Nginx (或 Apache)、PHP (版本需与项目兼容,例如 PHP 7.4) 和 Git。如果 Git 未安装,您可以通过宝塔面板的"软件商店"进行安装。
  9. 创建或选择网站: 在宝塔面板中,进入 网站 菜单,创建或选择您要部署代码的网站。确保网站的根目录(运行目录)与您的项目部署路径一致。
  10. 设置 Git 部署: 宝塔面板提供了便捷的 Git 部署功能。 * 在网站列表中,找到对应的网站,点击右侧的 设置。 * 在网站设置窗口中,找到 Git 选项卡,点击进入。 * 启用 Git 部署:打开 Git 部署功能。 * 选择平台:选择 Github。 * 项目地址:填写您的 GitHub 仓库的 HTTPS 地址。例如:https://github.com/your-username/your-repo-name.git。 * 分支:填写您希望自动部署的分支名称,通常是 mainmaster。 * Token填写您在 GitHub Webhook 配置中设置的 Secret 密钥。 * 项目部署目录:宝塔会自动填写网站的根目录,请确保它是您项目代码实际要部署的路径。 * 部署类型:选择 拉取。 * 部署完成后执行的命令 (最重要):这是自动化部署的核心。当代码拉取完成后,宝塔会执行这些命令。您可以根据您的项目类型填写相应的命令。
    • PHP 项目示例命令(请根据您的项目实际情况调整): ```bash

      进入项目部署目录 (宝塔会自动切换到此目录但为了保险可以再cd一次)

      cd /www/wwwroot/your_website_directory/

      拉取最新代码

      git pull

      安装/更新 Composer 依赖 (如果您的项目使用Composer)

      composer install --no-dev --optimize-autoloader

      清理框架缓存 (如果使用框架如Laravel, Symfony等)

      例如 Laravel:

      php artisan cache:clear

      php artisan view:clear

      php artisan config:clear

      php artisan migrate --force # 数据库迁移,请谨慎使用!

      刷新权限 (有时需要)

      chown -R www:www .

      chmod -R 755 .

      chmod -R 777 storage bootstrap/cache # 给予某些目录写入权限

      ``` 请根据您的项目实际情况,选择并修改适合的命令。 * Webhook URL在您配置完上述信息并保存后宝塔面板会为您生成一个 WebHook地址。复制这个 URL。
  11. 返回 GitHub 配置 Webhook * 回到 GitHub 仓库的 Webhook 设置页面。 * 编辑您之前创建的 Webhook。 * 将刚刚从宝塔面板复制的 WebHook地址 粘贴到 Payload URL 字段中。 * 点击 Update webhook 保存。 V. 常见问题与排查
  • Webhook 接收失败:
    • 检查 GitHub Webhook 设置中的 Payload URL 是否正确,是否与宝塔面板生成的 URL 一致。
    • 检查 Secret 密钥是否在 GitHub 和宝塔面板中设置一致。
    • 检查服务器防火墙或安全组,确保 GitHub 的请求可以到达宝塔面板的 8888 端口(或其他自定义的宝塔面板端口)。
    • 查看 GitHub Webhook 的 Recent Deliveries检查是否有红色感叹号并查看具体错误信息。
  • 部署命令执行失败:
    • 查看宝塔面板中网站的 日志,或在 计划任务 中查看 Git 部署的日志,可以找到具体的错误信息。
    • 确认部署命令中的 PHP 版本、Composer 路径等是否正确。
    • 检查项目依赖是否已正确安装,或 composer install 命令是否正确。
    • 检查文件和目录的权限,确保 www 用户Nginx/Apache 运行用户)对项目目录有读写权限。
  • 代码未更新:
    • 检查 git pull 命令是否执行成功。
    • 如果使用了缓存,确保缓存清理命令正确执行。 VI. 注意事项
  • 安全性:Secret 密钥非常重要,请妥善保管,不要泄露。
  • 分支管理:建议只对生产环境或主分支(如 mainproduction)进行自动部署,开发分支可以手动部署或使用单独的测试环境。
  • 环境区分:生产环境和开发环境应严格区分,避免将开发中的不稳定代码直接部署到生产环境。
  • 备份:在进行任何部署操作之前,务必定期备份您的网站代码和数据库。