7
0
0

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

2026-04-27
2026-09-06
hexo+qexo+GitHub Action,实现hexo可视化编辑+自动部署文章(服务器篇)
文章摘要
|

前言

在wordpress找了很久都没有找到心仪的主题,最终还是放弃了worpress,转头奔向hexo。但是hexo的编辑模式对于我来说又实在是太复杂了,网上一顿查找发现qexo+github actions这个方法不错,但是网上的教程虽然很多,但是还是有不少坑。博主用的是服务器搭建的hexo,所以教程只针对服务器。

准备

  1. 搭建hexo,运行目录设置为piblic,然后把代码传到GitHub
  2. 服务器密钥
  3. GitHub的token
  4. 一个子域名

部署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的世界畅游吧!

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

评论

欢迎来到我的博客!