前言

在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

粘贴代码:

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
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文件:

1
2
3
4
deploy:
type: git
repo: https://GitHub密钥@github.com/你的用户名/你的用户名.github.io.git # 保存静态网页文件的公开仓
branch: main // 你的源码分支,一般是 main 或 master

其中GitHub密钥和源码分支和用户名根据情况填写

在服务器生成密钥
打开宝塔 → 终端
或者 SSH 连接你的服务器,执行:

1
ssh-keygen -t ed25519 -C "github-actions" -f ~/id_ed25519

一路回车,不要输密码!
执行完,你的服务器 root 目录 就会生成两个文件:

id_ed25519 (私钥)
id_ed25519.pub (公钥)

查看公钥(复制它)
在服务器终端执行:

1
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
✅ 静态仓库配置完成!
五、第四步:查看私钥(复制它)
回到服务器终端执行:

1
cat ~/id_ed25519

输出一大段英文,从开头到结尾全部复制。

把私钥加到hexo源码仓库
进入你的 Hexo 源码仓库
步骤:

点 Settings
左边 Secrets and variables → Actions
点 New repository secret
Name 填写:

1
DEPLOY_KEY

Secret 粘贴你刚才复制的私钥
点 Add secret

✅ 密钥配置完成!

后续免输入账号密钥

在宝塔 → 网站目录 → 终端 里执行:

1
git config --global credential.helper store

就这一行!
然后你再执行一次:

1
2
cd 你存放hexo的目录
git pull origin main

这次输入一次账号密钥后,以后提交和拉取GitHub代码永远不用再输

在宝塔新建计划任务

1
2
3
4
5
6
类型:Shell 脚本
周期:1 分钟
脚本:
cd hexo目录/public
git fetch --all
git reset --hard origin/main

在qexo新建文章后发布,查看GitHub的hexo仓库中的actions有没有跑通
大功告成,在hexo的世界畅游吧!


本站使用 Stellar 1.33.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。