解放双手!使用 GitHub Actions 自动部署 Hexo 到阿里云服务器
以前写博客的流程比较繁琐:写完文章 -> 本地运行 hexo g 生成网页 -> 手动上传到服务器(或者在服务器拉取)。
今天折腾了一下 GitHub Actions,实现了全自动化部署 (CI/CD)。配置完成后,只需在本地执行 git push,GitHub 的服务器就会自动帮我们完成环境搭建、静态页面生成、以及上传到阿里云服务器的全过程。
🛠️ 准备工作
- 本地环境:已安装 Hexo 博客源码。
- 代码仓库:博客源码已托管在 GitHub(建议设为私有仓库)。
- 云服务器:一台已配置好 Nginx 的阿里云服务器。
第一步:生成部署专用的 SSH 密钥
为了安全起见,不使用本地电脑原本的 SSH Key,而是生成一对专门用于“GitHub 机器人登录阿里云”的密钥。
在本地终端执行:
1 | |
此时会生成两个文件:
hexo_deploy_key:私钥(给 GitHub 用)hexo_deploy_key.pub:公钥(给阿里云用)
第二步:配置阿里云服务器
我们需要将刚才生成的公钥添加到服务器的白名单中,允许 GitHub 拿着私钥来登录。
- 登录阿里云服务器。
- 编辑授权文件:
1
nano ~/.ssh/authorized_keys - 打开本地的
hexo_deploy_key.pub文件,复制所有内容。 - 将其粘贴到服务器
authorized_keys文件中(另起一行)。 - 保存并退出。
第三步:配置 GitHub 仓库 Secrets
我们需要将私钥和服务器信息存放在 GitHub 仓库的 Secrets 中,供自动化脚本读取。
- 打开博客源码的 GitHub 仓库页面。
- 点击 Settings -> Secrets and variables -> Actions。
- 点击 New repository secret,依次添加以下三个变量(名称需完全一致):
| 变量名 (Name) | 值 (Secret) | 说明 |
|---|---|---|
| HEXO_DEPLOY_PRI | hexo_deploy_key 私钥文件的全部内容 |
包含开头和结尾的 ----- |
| HEXO_SERVER_IP | 你的服务器公网 IP | 例如 47.100.xx.xx |
| HEXO_SERVER_USER | 登录用户名 | 通常是 root |
第四步:编写自动化脚本 (Workflow)
在博客根目录下,创建文件路径:.github/workflows/deploy.yml。
复制以下内容填入文件中:
1 | |
注意:请务必检查 YAML 文件中的
TARGET字段,确保它指向你 Nginx 配置的实际网站根目录。
第五步:推送与测试
最后,配置 .gitignore 忽略 public/ 和 node_modules/ 文件夹,然后提交代码:
1 | |
推送成功后,点击 GitHub 仓库顶部的 Actions 标签,查看任务运行状态。当 Hexo Auto Deploy 变绿时,部署即完成!
总结
以后的写作流程:
hexo new "文章名"- 写作
git push
再也不用担心换电脑后的环境配置问题了!🚀
解放双手!使用 GitHub Actions 自动部署 Hexo 到阿里云服务器
https://sunfove.xyz/2025/12/27/通过Github自动化部署网站/