Hugo 自动化部署进阶

目录

在 Homelab 环境下使用 Hugo (0.153.0+) 配合 PaperMod 主题创作时,频繁的 Git 推送和 Cloudflare Pages 堆积如山的部署记录总是让人头疼。本文分享一个实战脚本,让你通过一个 hugo-deploy 命令,完成从代码提交到后台清理的全过程。

1. 核心流程图

本项目实现了从本地源码到云端生产环境的自动化闭环管理:

  1. 本地端:一键完成 addcommitpush
  2. GitHub:作为源码仓库并触发 Cloudflare 的 Webhook。
  3. Cloudflare:自动拉取并构建部署,同时接收脚本的 API 指令清理冗余历史。

2. 环境要求

  • 系统: Debian 13 (理论兼容所有主流 Linux)
  • 依赖: git, curl, jq (执行 sudo apt install jq 安装)
  • Hugo 版本: 0.153.0+
  • 部署平台: Cloudflare Pages

3. 准备工作:获取 API 密钥

密钥名称 获取位置 建议权限
GitHub Token Settings > Developer settings Fine-grained: Contents (Read & Write)
CF Account ID Pages 项目控制台 URL 中 32 位十六进制字符串
CF API Token My Profile > API Tokens 自定义:Cloudflare Pages 编辑

注意:创建 Cloudflare Token 时,必须包含 Cloudflare Pages Edit 权限,否则脚本无法执行后续的删除(DELETE)操作。

4. 自动化脚本下载与安装

为了保持系统整洁,我们建议将自动化脚本放置在 /usr/local/bin/ 目录下。

  1. 下载脚本: 下载并解压 hugo-deploy.zip
1
2
sudo apt update && sudo apt install -y zip
unzip hugo-deploy.zip
  1. 移动并重命名:
1
sudo mv hugo-deploy.sh /usr/local/bin/hugo-deploy
  1. 配置参数: 使用 vi 或 nano 修改脚本内的 GIT_TOKEN、CF_API_TOKEN 等关键个人配置。

  2. 赋予执行权限:

1
sudo chmod +x /usr/local/bin/hugo-deploy

5. 安全与生效设置

修正换行符: 如果你在 Windows 下编辑过脚本,请执行以下命令:

1
sudo sed -i 's/\r$//' /usr/local/bin/hugo-deploy

从此,只需输入 hugo-deploy,即可享受极简主义的发布流程!

目录