Qexo在线全自动部署hexo教程
今天我们来聊点酷的——如何让你的 Hexo 博客“自动化”部署!
相当于给静态博客添加了后台,非常nice!任何设备无需环境发博文!
如果你是 Hexo 老用户,肯定没少经历过手动发布博客的“折磨”:写完文章,本地 hexo generate
,再 hexo deploy
,等等等… 小毛病可能不断,效率嘛,嗯,还有很大的提升空间!
利用强大的 Qexo (免费跑在 Vercel 上面啦!) + GitHub Actions,彻底解放你的双手。
🤖 告别手动档,拥抱自动化:Qexo + Git + GitHub Actions 三驾马车!
你的 Hexo 博客既然已经在 GitHub Pages 上面运行得好好的,那我们就是给它升级一个自动化后台,而不是另起炉灶哦!
这个自动化的核心思想,其实就藏在这“三驾马车”里:
Qexo (在 Vercel): 它作为你的博客内容管理系统(CMS),负责接收你编辑、撰写的内容,并神奇地将其转换为 Hexo 的
.md
源文件,然后自动同步推送到你的 Git 仓库。Vercel部署教程:点击直达
个人推荐Vercel+[aiven免费数据库
你的 GitHub 博客仓库: 它是 Hexo 源文件的“家”,也是所有变动的监测站。当 Qexo 推送新内容进来时,GitHub 会立即“察觉”。
GitHub Actions: 这是真正的幕后英雄!它会“订阅”你的 Git 仓库变化。一旦有新的推送到特定的分支,它就会自动启动一个预设的流程:拉取最新源码 → 安装 Hexo 依赖 → 构建静态文件 → 将构建好的文件推送到 GitHub Pages 的部署分支。
搞懂这层关系,下面的操作就非常清晰了!
📚 开始之前,你需要准备点什么?
一个运行良好、已经部署到 GitHub Pages 的 Hexo 博客。
最明显的特征就是有index.html,一般是
**你的用户名.github.io**
作为仓库名有各种配置文件如_config.yaml和_config.butterfly.yaml
这两个仓库一定要分清!
你已经在 Vercel 上搭建好的 Qexo 实例(假设你已经能正常访问 Qexo 后台了)。
一个 GitHub 账号,以及你的 Hexo 博客仓库的访问权限。
第一步:让 Qexo 连接你的 Hexo 博客仓库 (让它能“读写”你的博客源文件)
既然 Qexo 是我们的“笔”,那它得能把写好的字同步到我们的博客源码仓库里去吧!
登录你的 Qexo 后台: 进入你通过 Vercel 部署的 Qexo 实例后台管理界面。
配置 Git 连接:
- 在 Qexo 后台,找到类似 “站点设置”、”Git配置”、”储存配置” 或者 “同步” 这样的选项(具体名称可能因 Qexo 版本略有差异)。
- 选择你的 Git 服务商(通常是 GitHub)。
- 非常重要:授权 Qexo 访问你的 GitHub 账号,或者提供一个 GitHub Personal Access Token (PAT)。 请确保你提供的 PAT 具有对你博客源码仓库的 读写权限 (
repo
作用域),这是 Qexo 能自动提交内容的必要条件。 - 输入你的博客源码仓库地址。 比如
你的GitHub用户名/你的仓库名
。 - 指定 Hexo 源文件所在的路径和分支。
- 源文件路径: 大多数 Hexo 项目,其源文件 (
_posts
,source
,_config.yml
等) 都位于仓库的根目录,所以这里填/
即可。如果你把 Hexo 放在子目录,那就填写相应的子目录路径。 - 源文件分支: 这是指你的 Hexo 源码 存放的分支,通常是
main
或master
分支(取决于你的仓库默认主分支设置)。记住,这和你 GitHub Pages 最终发布的分支(如gh-pages
)是两码事哦!
- 源文件路径: 大多数 Hexo 项目,其源文件 (
测试连接: 配置完成后,在 Qexo 后台尝试新建或修改一篇测试文章,然后点击保存。去你的 GitHub 博客仓库里看看,是不是有新的 Markdown 文件生成了?或者你的文章内容是不是被更新了?如果一切顺利,恭喜你,Qexo 已经能帮你管理博客源码了!
第二步:设置 GitHub Actions (部署自动化的核心魔法!)
现在,Qexo 能把修改提交到你的 Git 仓库了。那接下来,当有新的提交时,谁来完成 Hexo 的生成和部署呢?没错,就是 GitHub Actions!
- 打开你的 Hexo 博客源码仓库。
- 获取以下参数
参数名 | 值 | 是否必须 |
---|---|---|
GITHUBUSERNAME |
你的github用户名 | 是 |
GITHUBTOKEN |
https://github.com/settings/tokens,在此获取,创建的Token名称随意,但必须勾选repo项和workflows项 | 是 |
GITHUBEMAIL |
你的github邮箱 | 是 |
将这三个键值对填写在你的博客源码仓库的:setting
->Secrets and variables
->Actions
-> Repository secrets
中
- 创建或编辑
.github/workflows/deploy.yml
文件:
- 在你的博客源码仓库页面,点击 “Actions” 标签页。
- 如果没有
.github/workflows
文件夹,GitHub 会引导你创建一个。你可以点击 “New workflow” 或者 “set up a workflow yourself”。 - 创建一个名为
deploy.yml
的文件,路径是.github/workflows/deploy.yml
。
粘贴并修改以下 GitHub Actions 配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56# 脚本1,
# 当有改动推送到master分支时,启动Action
name: 自动部署
on:
push:
branches:
- master #2020年10月后github新建仓库默认分支改为main,注意更改
release:
types:
- published
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: 检查分支
uses: actions/checkout@v2
with:
ref: master #2020年10月后github新建仓库默认分支改为main,注意更改
- name: 安装 Node
uses: actions/setup-node@v1
with:
node-version: "20.17.0" #action使用的node版本,建议大版本和本地保持一致。可以在本地用node -v查询版本号。
- name: 安装 Hexo
run: |
export TZ='Asia/Shanghai'
npm install hexo-cli -g
- name: 缓存 Hexo
uses: actions/cache@v3
id: cache
with:
path: node_modules
key: ${{runner.OS}}-${{hashFiles('**/package-lock.json')}}
- name: 安装依赖
if: steps.cache.outputs.cache-hit != 'true'
run: |
npm install --save
- name: 生成静态文件
run: |
hexo clean
hexo generate
hexo algolia #这里可以添加其他的插件命令
- name: 部署 #此处master:master 指从本地的master分支提交到远程仓库的master分支,若远程仓库没有对应分支则新建一个。如有其他需要,可以根据自己的需求更改。
run: |
cd ./public
git init
git config --global user.name '${{ secrets.GITHUBUSERNAME }}'
git config --global user.email '${{ secrets.GITHUBEMAIL }}'
git add .
git commit -m "博客更新${{ github.event.head_commit.message }} $(date +"%Z %Y-%m-%d %A %H:%M:%S") Updated By Github Actions"
git push --force --quiet "https://${{ secrets.GITHUBUSERNAME }}:${{ secrets.GITHUBTOKEN }}@github.com/${{ secrets.GITHUBUSERNAME }}/${{ secrets.GITHUBUSERNAME }}.github.io.git" master:pages保存你的
deploy.yml
文件。 GitHub 会提示你提交这个新的 workflow 文件。提交之后,Actions 的配置就生效了!
第三步:测试自动化部署 (见证魔法!)
最激动人心的时刻到了!现在我们来验证一下,看自动化部署是否真的生效了!
- 登录你的 Qexo 后台。
- 做点什么修改: 随便改一篇文章的标题、内容,或者直接新建一篇文章。
- 点击保存/发布。 Qexo 会把你的更改推送到你的 Git 仓库的源文件分支。
- 前往你的 GitHub博客源码仓库:
- 点击 “Actions” 标签页。
- 你会看到一个新的工作流(名字就是你
deploy.yml
文件里name:
设置的那个)正在运行中。通常会显示一个黄色小点或沙漏图标。 - 点击进入这个工作流,你可以实时查看每个步骤的执行日志,看看有没有报错,或者进行到哪一步了。
- 等待成功: 如果一切配置正确,整个流程大概几分钟(取决于你博客文章数量和服务器资源)就会运行完毕,显示绿色对勾。
- 访问你的 GitHub Pages 博客地址: 刷新你的博客,看看刚刚修改或新建的文章是不是已经妥妥地出现在博客上了!
🎉🎉 如果你的文章神奇般地更新了,恭喜你!你已经成功搭建了一套 Qexo + GitHub Actions 的 Hexo 自动化部署体系!从此以后,你只需在 Qexo 后台写作和管理,剩下的部署工作都交给 GitHub Actions 去完成吧!
🔍 遇到问题?这里有几个小贴士:
分支傻傻分不清楚?
- Hexo 源文件分支 (
main
或master
): Qexo 推送的地方,也是 GitHub Actions 第一次checkout
的地方。这个分支只存放你的 Markdown 文件、主题、_config.yml
等源代码。 - GitHub Pages 部署分支 (
gh-pages
或main
): 这是hexo generate
后,生成 HTML、CSS、JS 等静态文件后要推送过去的分支。- 如果你的仓库是
<username>.github.io
这种形式,通常你的静态文件会直接推送到main
(或master
) 分支。 - 如果是其他普通的仓库名,GitHub Pages 会默认从
gh-pages
分支读取。
- 如果你的仓库是
- 请务必在
deploy.yml
中参数中正确设置!
- Hexo 源文件分支 (
GitHub Token 权限?
GITHUB_TOKEN
是 GitHub Actions 运行时自动生成的、具有当前仓库读写权限的令牌,大多数情况下,你无需单独创建或配置 PAT 给 Actions。只要你的 Qexo PAT 权限设置正确就行。
Node.js 版本?
- 确保
node-version
(actions/setup-node@v4
那一步) 设置为你 Hexo 版本兼容的 Node.js 版本。如果不确定,尝试18
或20
这样的最新LTS版本。
- 确保
现在,你可以拍拍大腿,告别那个总在命令行敲 hexo d
的自己了!享受 Qexo 带来的丝滑编辑体验,感受 GitHub Actions 带来的部署自由吧!