赛博空间的私人岛屿:博客架构与风格美学

赛博空间的私人岛屿:博客架构与风格美学

5 分钟阅读#Blog

Blog

赛博空间的私人岛屿:博客架构与风格美学

序言

“在信息洪流的喧嚣中,我们需要一块礁石来安放灵魂与代码。”

建立一个独立博客,不仅是沉淀技术与思考的自留地,更是你在广袤互联网上的一张专属数字名片。无论是记录底层架构的折腾日常,还是定格生活中的光影瞬间,博客都能以最纯粹的姿态,向世界宣告你的存在。

“博客就是上古遗弃的玩意,不亚于废土风格。”

但恰恰是这种废土风格,赋予了它一种极致的浪漫与自由。就像在这片荒芜的互联网大陆上不断迁徙,从 Halo 2 走到 Typecho,再重构到 WordPress,最后用 Astro 搭建起一座极致轻量级的数字庇护所。每一次主题的修改、容器的部署和数据库的迁移,都像是废土客在废墟中搜集旧时代的电子零件,亲手拼凑、打磨出属于自己的机甲。

这种带有颗粒感和孤独感的粗犷美学,莫名有一种姜文电影里的味道——在荒诞和喧嚣的互联网大环境下,带着一种不合时宜却又极其硬核的坚持,让代码和文字在自己的一亩三分地里自由地飞一会儿。

1 最初的想法

最初我想搭建一个博客,其实我只会用 Halo 2 这样的动态博客。

什么是动态博客?

动态博客其实就是有后端,后端负责让前端用户请求实时动起来,所以需要数据库,也就是要购买独立服务器搭建,比较吃性能。

后面我发现大家都在用 WordPressTypecho,我也尝试着去装,发现虽然不是那么吃硬件性能对于我的量级来说。但是更换主题,那些还是不舒服,最后还是选择在 Halo 2 这样的博客上玩耍。新手必定推荐 Halo 2,只要你硬件硬性够

直到我接触到 vitepress 这样的静态站点,安装好 node.js,最后按照 vitepress 官方文档构建就可以。可是这样的静态站点基本上是用编辑 .md 文档,这样的Markdown 编辑器也有很多。

什么是静态博客?

静态博客就是没有后端,不能实时交互添加功能,每一次添加功能,修改文档都需要重新构建一次。最主要的是不需要服务器,可以使用腾讯的Edge one 或者赛博大善人 CloudFlare 搭建。

2 欲望暴涨

再也不愿意只能写文档的博客,一直在寻找一款比较好的博客,需要满足以下几点。

  • 底层是以 md 文档维护,再也不用一次一次的复制粘贴,还要担心格式问题。
  • 架构轻量,不要太臃肿
  • 响应速度快
  • 部署简单
  • 网站整体风格、文章阅读界面唯美
  • 首页大屏壁纸随机轮播,有打字机功能,波浪水纹波流动效果
  • 首页侧边栏,个人简介、公告、分类、标签、日历、统计信息、音乐、每日一言
  • 评论系统,可以接入 twikoo
  • 站点统计
  • 相册、留言板、导航栏
  • 全文搜索功能
  • 部署文档、说明要完整详细
  • 博客数据迁移方便
  • 做一个只用写 md 文档就可以完善自己的博客

我探路了这么多博客,我最喜欢的动态博客就是 Halo 2。静态博客我用过 vitepreee,不过是天客大佬的版本;以及 Astro,不过是 Firefly 在 Fuwari 模板下二开,都是非常不错的静态博客,现在我在用的也是这俩静态博客。

3 最终选择

3.1 Halo 2 安装

Halo 2 是一款强大易用的开源建站工具,从个人博客、知识库,到企业官网、在线商城,Halo 2 都能助您轻松实现,一站式满足您的多样化建站需求。如果你的设备有 Docker 环境,可以使用以下 yaml 文件快速启动一个 Halo 2 的体验环境。

Halo - 强大易用的开源建站工具

YAML
name: halo2
services:
  halo2:
    # 镜像地址
    image: registry.fit2cloud.com/halo/halo-pro:2.24
    # 容器名
    container_name: halo2
    # 主机名
    hostname: halo2
    # 拓展
    depends_on:
      # 连接数据库
      halodb:
        condition: service_healthy
    # 健康检查
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s
    command:
      - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo2
      - --spring.r2dbc.username=halo2
      # PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=openpostgresql
      - --spring.sql.init.platform=postgresql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=域名
    # 环境变量:- 变量名=值
    environment:
      # JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数
      - JVM_OPTS=-Xmx256m -Xms256m
    # 目录映射:宿主机目录:容器内目录
    volumes:
      - /mnt/docker/apps/halo2/halo2:/root/.halo2
    # 网络模式:桥接模式
    networks:
      halo_network:
    # 端口
    ports:
      # 端口说明功能
      # webUI端口
      - 8090:8090
    # 重启策略,总是重启
    restart: always
    
  halodb:
    # 镜像地址
    image: postgres:15.4
    # 容器名
    container_name: halodb
    # 主机名
    hostname: halodb
    # 目录映射:宿主机目录:容器内目录
    volumes:
      - /mnt/docker/apps/halo2/halodb:/var/lib/postgresql/data
    healthcheck:
      test: [ "CMD", "pg_isready" ]
      interval: 10s
      timeout: 5s
      retries: 5
    # 环境变量:- 变量名=值
    environment:
      # 密码
      - POSTGRES_PASSWORD=openpostgresql
      # 用户名
      - POSTGRES_USER=halo2
      # 数据库
      - POSTGRES_DB=halo2
      - PGUSER=halo2
    # 网络模式:桥接模式
    networks:
      halo_network:
    # 重启策略,总是重启
    restart: always
    
networks:
  halo_network:

3.2 工具安装

如果你是 windows 电脑,你需要安装 VS code、Node.js

YAML
# VS code 官网
https://code.visualstudio.com/

# Node.js 官网
https://nodejs.org/zh-cn

3.3 vitepress 安装

这里我推荐使用天客大佬的主题,天客大佬-vitepress-theme-teek

cmd
# 拉取主题包
git clone https://github.com/Kele-Bingtang/vitepress-theme-teek-docs-template.git

# 如果没有安装 pnpm,先安装
npm install -g pnpm

# 安装项目依赖
pnpm install

# 安装依赖
pnpm add -D vitepress
pnpm vitepress init
pnpm install vitepress-theme-teek -D

# 预览
pnpm run docs:dev
# 构建,输出在 ./dist
pnpm run docs:build

3.4 Astro 安装

我这里推荐 Mizuki Next Theme 或者 Firefly 的主题,安装方法都差不多。

YAML
# 克隆主题
git clone https://github.com/Cuteleaf/Firefly.git
cd Firefly

# 如果没有安装 pnpm,先安装
npm install -g pnpm

# 安装项目依赖
pnpm install

# 启动
pnpm dev
  • 编辑 src/config/ 目录下的配置文件自定义博客设置
  • 博客将在 http://localhost:4321 可用

4 总结

博客没有绝对完美的架构,只有最适合当前阶段需求的选择。从动态的便捷到静态的轻快,从代码的严谨到生活的诗意,博客的形态完全取决于你想要向世界展示怎样的自己。选择好适合的框架只是第一步,持续的思考、折腾与输出,才是保持这座数字岛屿生机盎然的秘诀。

Created with ❤️ by 十三