借助 GitHub Actions 自动化部署 Hugo 网站到自有服务器
从手动部署到自动化的工作流演进 在网站开发的初期阶段,为了深入理解整个发布流程,我一直在本地环境中使用 Hugo 手动生成静态网站。这个过程包括:运行 hugo 命令生成静态文件,手动打包 public 目录,然后通过 SCP 或 FTP 上传到服务器,最后在服务器上解压并配置。虽然这种方法让我对网站部署的每个环节都有了清晰的认识,但随着内容的增多,这种重复性工作变得越来越耗时。 虽然现在有 Vercel、Netlify 等优秀的静态网站托管平台,但由于我已经拥有一台国内的轻量级云服务器(主要用于 frp 内网穿透服务),我决定充分利用现有资源,直接在这台服务器上托管我的 Hugo 网站。 自动化部署方案设计 最终实现的解决方案是:通过 GitHub 私有仓库存储 Hugo 源码,利用 GitHub Actions 实现自动化构建和部署,使用 rsync 将生成的静态文件同步到自己的服务器。 这种方案的优势在于: 自动化:代码推送后自动完成整个构建和部署流程 版本控制:所有变更都有完整的历史记录 安全性:私有仓库保护源代码,SSH 密钥保证传输安全 成本效益:充分利用现有服务器资源 服务器端配置 环境准备 我使用 1Panel 面板管理服务器,网站目录为: /opt/1panel/apps/openresty/openresty/www/sites/xiaoten.com/index安装 rsync 由于同步方案使用 rsync,需要在服务器上安装: # CentOS/RHEL 系统 sudo yum install -y rsync # Ubuntu/Debian 系统 sudo apt-get update && sudo apt-get install -y rsync安全配置:SSH 密钥认证 为了实现安全的自动化部署,需要配置 GitHub Actions 对服务器的访问权限。
以上内容来自博客订阅源,版权归原作者。关注作者后可以在 关注列表 第一时间查看作者文章。
登录后,加入这场讨论。
登录参与