hexo+qexo+GitHub Action,实现hexo可视化编辑+自动部署文章(服务器篇)

前言
在wordpress找了很久都没有找到心仪的主题,最终还是放弃了worpress,转头奔向hexo。但是hexo的编辑模式对于我来说又实在是太复杂了,网上一顿查找发现qexo+github actions这个方法不错,但是网上的教程虽然很多,但是还是有不少坑。博主用的是服务器搭建的hexo,所以教程只针对服务器。
准备
- 搭建hexo,运行目录设置为piblic,然后把代码传到GitHub
- 服务器密钥
- GitHub的token
- 一个子域名
部署qexo
点击 Vercel一键部署,使用GitHub账号登录
选择账号,输入仓库名称,点击创建
第一次创建肯定会失败的,直接无视,点击:go to project
点击左侧的storage,进入页面之后点击Create Database创建数据库

我选择的是第一个,后面的跟着引导一步步配置即可,这里不过多赘述

配置好之后就要配置域名,否则只能翻q访问

重新部署项目

等待部署完成后,访问刚才添加的域名即可访问qexo的初始化页面
- 填 用户名 / 密码
- API 密钥留空(自动生成)

GitHub 配置(用来拉 / 推你的 Hexo 仓库):
- GitHub 地址:
https://github.com/你的用户名/你的博客仓库.git - 分支:
main(或master) - GitHub Token:生成一个 classic token,点击直达:GitHub Token
- 勾选 repo、workflow 权限,永不过期。


Vercel 配置:
- Vercel Token:在 Vercel 账号设置生成,直达
- 项目 ID:在 项目 Settings → General 里复制



配置GitHub
新建一个GitHub公共仓库用于存放编译后的资源,命名规则:你的用户名.github.io

在存放hexo的仓库创建新文件:/.github/workflows/deploy.yml
粘贴代码:
name: Hexo Build & Deploy
on:
push:
branches: [ main ] // 你的源码分支,一般是 main 或 master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: 安装依赖 + hexo-cli
run: |
npm install
npm install hexo-cli -g
- name: 构建 Hexo
run: hexo clean && hexo generate
- name: 部署到静态仓库
uses: peaceiris/actions-gh-pages@v4
with:
deploy_key: ${{ secrets.DEPLOY_KEY }}
external_repository: 你的用户名/你的用户名.github.io
publish_branch: main // 你的源码分支,一般是 main 或 master
publish_dir: ./public
force_orphan: true
其中源码分支和用户名根据情况填写
修改hexo源码根目录下的_config.yml文件:
deploy:
type: git
repo: https://GitHub密钥@github.com/你的用户名/你的用户名.github.io.git # 保存静态网页文件的公开仓
branch: main // 你的源码分支,一般是 main 或 master
其中GitHub密钥和源码分支和用户名根据情况填写
在服务器生成密钥
打开宝塔 → 终端
或者 SSH 连接你的服务器,执行:
ssh-keygen -t ed25519 -C "github-actions" -f ~/id_ed25519
一路回车,不要输密码!
执行完,你的服务器 root 目录 就会生成两个文件:
id_ed25519 (私钥)
id_ed25519.pub (公钥)
查看公钥(复制它)
在服务器终端执行:
cat ~/id_ed25519.pub
会输出一段以 ssh-ed25519 开头的字符串,全部复制。
把公钥加到静态仓库(允许写入)
打开静态仓库:https://github.com/你的用户名/你的用户名.github.io
步骤:
点 Settings
左边找到 Deploy keys
点 Add deploy key
Title 填:actions
Key 粘贴你刚才复制的公钥
✅ 一定要勾:Allow write access
点 Add key
✅ 静态仓库配置完成!
五、第四步:查看私钥(复制它)
回到服务器终端执行:
cat ~/id_ed25519
输出一大段英文,从开头到结尾全部复制。
把私钥加到hexo源码仓库
进入你的 Hexo 源码仓库
步骤:
点 Settings
左边 Secrets and variables → Actions
点 New repository secret
Name 填写:
DEPLOY_KEY
Secret 粘贴你刚才复制的私钥
点 Add secret
✅ 密钥配置完成!
后续免输入账号密钥
在宝塔 → 网站目录 → 终端 里执行:
git config --global credential.helper store
就这一行!
然后你再执行一次:
cd 你存放hexo的目录
git pull origin main
这次输入一次账号密钥后,以后提交和拉取GitHub代码永远不用再输
在宝塔新建计划任务
类型:Shell 脚本
周期:1 分钟
脚本:
cd hexo目录/public
git fetch --all
git reset --hard origin/main
在qexo新建文章后发布,查看GitHub的hexo仓库中的actions有没有跑通
大功告成,在hexo的世界畅游吧!

