个人博客搭建(二)- 在Cloudflare上部署hexo博客

在Cloudflare上部署hexo博客

背景

之前写过一篇博客,在 Clawcloud 上部署博客,由于 Clawcloud 的免费额度只有5刀,用完之后,所有的容器都会被暂停,直到下个月有额度了才会恢复。对于白嫖党的我来说,这不能接受,而且部署在 clawcloud 上,稳定性完全不能跟 cloudflare 相比,clawcloud还是比较适合部署一些不那么重要的东西,比如前面我讲到的监控平台 - Clawcloud部署Uptime Kuma。所以趁着博客内容还不算太多,赶紧搬迁到cloudflare上。

技术选型

  1. 博客内容编写使用 Hexo
  2. 静态资源托管使用 Cloudflare Pages – 免费计划就可以使用,当然每个月有500次的免费构建次数,搭建好之后,一个月写500篇博客几乎不可能,哪怕是我的博客加了每日自动发布AI日报,也是够用的。
  3. 博客主题使用 安知鱼
  4. 图床使用Cloudflare的R2对象存储 Cloudflare R2对象存储 – 免费10G空间,并且不收取流量费用!对于一个博客来说,可以说零成本。

搭建流程

创建github仓库

首先需要准备一个github仓库,用于存放hexo博客的代码。每当仓库有更新,cloudflare便会触发构建,并部署到Cloudflare Pages,自动更新博客。

Tips:创建仓库也就不详述了,程序员应该都会。

安装hexo

在hexo官网上能看到hexo的安装命令,

npm install hexo-cli -g

可以看出,hexo依赖node环境,所以需要安装node环境。

Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本)

Git 也是必须的,你需要提交代码到GitHub仓库。

初始化hexo

执行命令,初始化hexo项目,注意:testBlog目录不需要自己创建,否则会报错目录已存在。

1
hexo init testBlog

可以看到日志输出:

1
2
3
4
hexo init testBlog
INFO Cloning hexo-starter https://github.com/hexojs/hexo-starter.git
INFO Install dependencies
INFO Start blogging with Hexo!

Tips:如果报错安装依赖失败,或node版本低,请切换node版本重新init。

可以看到项目目录结构如下:

创建成功后,进入项目目录,执行命令:

1
2
hexo g
hexo s

看到如下日志输出:

此时,博客已经可以本地访问,打开浏览器访问:http://localhost:4000/
界面如下:

安装安知鱼主题

  1. 根据安知鱼文档安装主题

    1
    npm i hexo-theme-anzhiyu
  2. 修改主题配置文件
    打开 Hexo 根目录下的 _config.yml, 找到以下配置项,把主题改为anzhiyu

    1
    2
    3
    4
    # Extensions
    ## Plugins: https://hexo.io/plugins/
    ## Themes: https://hexo.io/themes/
    theme: anzhiyu
  3. 尝试生成静态文件

    1
    hexo g

    发现报错:
    Error: Cannot find module ‘hexo-util’

  4. 安装 hexo-util

    1
    npm install hexo-util

    同时,查找安知鱼文档,发现主题依赖hexo-renderer-pughexo-renderer-stylus两个库。
    进行安装:

    1
    npm install hexo-renderer-pug hexo-renderer-stylus --save
  5. 再次尝试生成静态文件
    成功生成静态文件,日志如下:

  6. 启动博客

    1
    hexo s

访问:http://localhost:4000/

至此,hexo博客搭建完成,同时安知鱼主题也安装好了。

安知鱼主题配置

参阅安知鱼文档:https://docs.anheyu.com/initall.html

建议在 _config.xml 同级目录下,新增安知鱼的配置文件 _config.anzhiyu.yml。
_config.anzhiyu.yml 文件可以从themes/anzhiyu/config.yml 复制过来,然后进行修改。
这样子,替换或者升级主题,配置不会被覆盖掉。

将本地文件与github仓库关联

可以将本地文件直接关联,也可以先拉仓库下来,将文件都拷贝过去。提交到仓库。
以上两种方式都可以,总之将文件都提交到仓库即可。

重要操作

添加文章

1
hexo new "文章标题"

执行以上代码,便会在source/_posts/目录下生成一个文章标题.md文件,我们的博客内容,都在里面编写即可。
写好后,执行hexo g代码,便生成静态文件,hexo s启动博客就可以查看效果了。
本地调试,修改好之后,提交到github仓库即可。

其他

其他诸如 创建分类,标签等参阅hexo官方文档即可。

Cloudflare部署

注册 Cloudflare 账号

创建 pages

  1. 在Cloudflare左侧菜单栏选择 Workers和Pages创建 pages
  2. 选择从现有git仓库创建
  3. 选择自己的github账号,选择博客仓库

    如果没有该仓库,点击下面的提示链接,去授权即可。
  4. 点击 开始设置
  5. 如下进行配置
  6. 配置完成后,点击 保存并部署
    看到如下日志,表示部署成功。

可点击链接跳转博客查看效果,同时可以添加自定义的域名。

自动构建部署

此时,每当修改了博客内容,只要提交到github仓库,就会自动触发部署。

查看构建日志

进入 worker和pages页面 ,选择博客pages

可以看到每次部署的详细信息,用于排查问题。