重启「樽前小筑」

在互联网上写东西已经有二十多年了,开始是在论坛,然后QQ空间到网易博客,最后就是大学里自己注册域名买服务器,用 WordPress 自建独立博客。
但那也是在十几年前了,自2013年毕业以后,这个博客就基本停止更新,也疏于维护了。现在人到中年,重新有了记录一些东西的冲动,恰好也有了一点时间和精力——那就把这个博客重新运行起来吧。
考察了目前的常见的博客程序,从 WordPress 换到了 Halo. 按照中文博客圈的惯例——也是为了后续搭建的方便——在此记录一下搭建的一些细节。
这次搭建选择把博客程序放在二级域名 blog.yefoenix.ws 下,主页 yefoenix.ws 则运行面板程序 Glance. 程序安装在一台运行在家庭局域网 Win10 服务器。由于遇到了莫名的Windows 下 Docker 服务不稳定的问题,我选择使用 Jar 包直接运行。

配置文件

配置文件 application.yaml 放在 Halo.jar 所在的文件夹内。
主要配置项:

  • 设置服务端口
server:
  port: 8090
  • 配置数据库,使用本地 PostgreSQL:
spring:
  r2dbc:
    url: r2dbc:pool:postgresql://localhost:5432/halo
    username: postgres
    password: xxxxxxxx
  sql:
    init:
      mode: always
      platform: postgresql
  • 启用页面缓存,配置工作目录和外部访问地址:
halo:
  caches:
    page:
      disabled: true
  work-dir: X:\xxx\Halo
  external-url: https://blog.yefoenix.ws

参考:使用 JAR 文件部署 | Halo 文档

作为后台服务自动运行

使用 NSSM 将 Halo 转化为服务,以保持后台自动运行。

  • 管理员权限下运行 nssm install halo,进行配置:
  1. Path: Java 程序路径;
  2. Startup Directory:halo.jar所在文件夹路径;
  3. arguments -jar "halo.jar的完整路径",注意 Jar文件路径需要引号框起来
  • 然后 nssm start halo 就可以运行起来了。

参考: How To Run A JAR As A Windows Service With NSSM

公网访问

使用 Cloudflare Tunnel 的 Public Hostnames 一键绑定域名实现公网访问,优点懂的都懂,感谢伟大的 Cloudflare.

当然也有缺点,连接不太稳定,经常 Error 1033 无法访问。

插件

已安装插件:

注意

* Cloudflare R2 对象存储配置时,region 项应填入全小写的"auto", 否则报错。

主题

目前博客使用的主题是 AirCloud,简洁优雅,十分符合我当下的审美。
主要进行了两处修改:

  • .\templates\_partial\head.html 增加一行 Meta,将文章封面设置为 OpenGraph 的 Image. **
<meta property="og:image" th:content="${post.spec.cover}">
  • .\templates\_partial\nav.html 「主页」链接改为顶级域名 https://yefoenix.ws, 原主页改为「最近」
<li>
    <a href="https://yefoenix.ws">
        <i class="iconfont icon-shouye1"></i>
        <span>主页</span>
    </a>
</li>
<li>
    <a href="/">
        <i class="iconfont icon-guidang1"></i>
        <span>最近</span>
    </a>
</li>

说明

* * Halo 的官方设置项中提供了向 Head 标签内注入代码的功能,可惜目前尚不支持Thymeleaf ,只能直接在插件内修改了。

以上是一个简单的 Halo 博客搭建笔记,为了以后需要重新搭建时方便查考。后续会有两篇文章,分别记录主页yefoenix.ws所运行的 Glance 的搭建,以及博客写作和图片处理用的工具与服务。