Table of contents
Open Table of contents
需求先行
我希望这个博客满足几个条件:
- 开源:项目透明、可自托管,后续迁移不被平台绑定。
- 轻量:不希望一开始就引入复杂数据库、后台服务和大量运维成本。
- 现代化:页面体验、SEO、暗色模式、移动端适配都要比较舒服。
- 内容友好:主要用 Markdown 写文章,适合技术笔记和经验总结。
- 部署简单:当前 VPS 已经有 Nginx,最好可以直接托管静态文件。
- 长期维护成本低:个人博客不应该变成一个需要频繁照看的系统。
这些条件基本把方向锁定在了“静态站点生成器”或者“轻量博客系统”上。
对比过的方案
Astro + AstroPaper
Astro 是面向内容网站的现代前端框架,AstroPaper 是一个专门为博客设计的 Astro 主题。
优点:
- 静态生成,访问速度快,服务器压力小。
- 支持 Markdown / MDX,适合技术写作。
- 主题简洁,内置 SEO、RSS、标签、归档、搜索、暗色模式等能力。
- 技术栈现代,后续如果想扩展个人主页、项目展示,也比较自然。
缺点:
- 构建时依赖 Node.js 生态。
- 没有传统后台,写作更偏向文件和 Git 工作流。
结论:非常符合“现代化 + 轻量”的目标。
Hugo
Hugo 是非常成熟的静态站点生成器,Go 编写,构建速度极快。
优点:
- 稳定、成熟、极快。
- 单二进制工具,部署和维护都很简单。
- 静态站点,安全面小。
缺点:
- 模板系统有一定学习成本。
- 现代前端扩展体验不如 Astro 灵活。
结论:如果追求极致稳定,Hugo 是非常强的选择。
Hexo
Hexo 是 Node.js 生态里的经典静态博客框架,在中文博客圈非常流行。
优点:
- 中文资料多,主题多,插件多。
- Markdown 写作体验成熟。
- 部署后同样是静态文件,资源占用低。
缺点:
- 主题生态质量不完全一致,有些主题维护状态需要仔细判断。
- 相比 Astro,整体技术栈和扩展体验没有那么现代。
结论:Hexo 可靠、成熟,特别适合中文博客圈;但这次我更想要一个更现代的内容网站基础。
Typecho
Typecho 是轻量 PHP 动态博客系统。
优点:
- 有后台,写文章方便。
- 比 WordPress 轻很多。
- 中文生态友好。
缺点:
- 需要 PHP 运行环境和数据库或 SQLite。
- 动态程序需要持续关注安全更新。
结论:如果强需求是“后台写作”,Typecho 很合适;但这次我更倾向静态博客。
Ghost 和 Halo
Ghost 和 Halo 都是功能更完整的内容管理系统。
优点:
- 后台体验更完整。
- 适合内容平台、知识库、会员订阅或更复杂的站点。
缺点:
- 相对更重。
- 运维复杂度高于静态博客。
- 对个人博客的初始需求来说有些“过度”。
结论:功能强,但不是这次最轻量的选择。
为什么最终选择 Astro + AstroPaper
核心原因有三个。
1. 轻量但不落后
Astro 构建后的产物是静态文件,可以直接由 Nginx 托管。访问链路非常简单:
浏览器 → Nginx → 静态 HTML/CSS/JS
这意味着博客上线后几乎没有运行时负担,也不需要数据库服务常驻。
2. 适合未来扩展
博客现在只是文章列表、标签、归档和搜索。未来如果要加入个人主页、项目展示、工具页面,Astro 的组件化能力会比传统博客框架更舒服。
3. AstroPaper 已经把博客基础能力做好了
AstroPaper 提供了一个不错的起点:
- 响应式布局
- 暗色模式
- RSS
- Sitemap
- 标签和归档
- 搜索
- SEO 元信息
- 动态 Open Graph 图片
这让我不需要从零写 UI,也不需要为基础博客功能投入太多时间。
部署思路
当前 VPS 已经安装了 Nginx,域名 blog.luoye.de 也解析到了服务器 IP。因此部署架构可以保持简单:
blog.luoye.de
↓
Nginx
↓
/var/www/blog.luoye.de
↓
AstroPaper 构建后的静态文件
后续写文章的流程也很直接:
- 在
src/content/posts/下新增 Markdown 文件。 - 执行构建命令生成静态站点。
- 同步到 Nginx 的站点目录。
- 访问博客确认效果。
这次选型的经验
这次最大的感受是:个人博客的技术选型不要只看“功能多不多”,更要看它是否匹配自己的真实使用方式。
如果只是写文章、沉淀技术经验,静态博客往往更合适:
- 更快
- 更安全
- 更容易备份
- 更容易迁移
- 更少运维负担
如果强依赖后台、多作者、会员、评论和订阅,那 Ghost、Halo、Typecho 这类系统才更值得考虑。
结论
这个博客最终选择 Astro + AstroPaper,是因为它在现代化、轻量、开源、部署简单和未来扩展之间取得了比较好的平衡。
第一阶段先把博客稳定跑起来,后续再逐步完善:
- 增加个人介绍页
- 调整主题细节
- 建立文章分类和标签规范
- 接入评论系统
- 自动化部署流程
从今天开始,这里会用来记录技术实践、部署经验、工具折腾和一些长期思考。