Forest
我诞生了!

我诞生了!

喜悦如泉涌,新的起点,展开一幅新的线上篇章!

为什么要建博客

其实想建博客的念头已经在心里盘桓很久了。作为一个程序员,每天都在解决各种各样的问题,踩过无数的坑,也积累了不少经验。但这些经验往往散落在各种笔记、聊天记录、甚至是脑海里,时间一长就容易忘记。

于是就有了建一个个人博客的想法:

  • 知识沉淀:把平时学到的东西、解决的问题记录下来
  • 分享交流:技术的乐趣在于分享,希望能帮到同样遇到问题的人
  • 自我成长:写作的过程就是思考的过程,能让自己对问题理解得更深刻
  • 留下痕迹:在这个瞬息万变的互联网时代,有一片属于自己的小天地

技术选型之路

在决定建博客之后,就开始了漫长的技术选型。前后对比了很多方案:

最初的想法:WordPress

最开始想到的就是 WordPress,毕竟是最流行的博客系统,插件丰富,主题也多。但试用了一下就放弃了:

  • 太笨重了,只是想写个博客而已,不需要这么多功能
  • PHP 不是我的技术栈,想定制起来比较麻烦
  • 数据库依赖,部署起来也相对复杂

然后是:静态站点生成器

后来了解到静态博客的概念,不需要数据库,所有内容都是 Markdown 文件,生成静态 HTML 部署。这很对我的胃口!

对比了几个主流方案:

  • Hexo:生态丰富,主题多,但基于 Node.js,构建速度一般
  • Hugo:Go 语言写的,构建速度极快,但主题风格不太喜欢
  • VuePress / VitePress:适合文档站,但做博客还是差点意思

最终选择:Astro

最后遇到了 Astro,一眼就相中了!

选择 Astro 的原因:

  • 内容优先:天生就是为内容网站设计的,博客、文档站这些场景特别适合
  • 群岛架构:可以混合使用 React、Vue、Svelte 等框架,灵活性极高
  • 性能优秀:默认零 JS,按需加载,网站速度飞快
  • MDX 支持:可以在 Markdown 中使用组件,写文章更自由
  • 活跃的社区:生态发展很快,插件和主题越来越丰富

技术栈最终确定:

  • 框架:Astro
  • 样式:Tailwind CSS
  • 部署:Docker + Caddy 反向代理

搭建过程的心路历程

说起来容易,做起来还是踩了不少坑的。

第一个坑:Docker 网络

最开始部署的时候,Caddy 反向代理和 Astro 容器的网络配置花了不少时间。一开始两个容器不在同一个网络里,互相访问不了,查了好多资料才搞明白 Docker 网络的那些事儿。

后来写了一篇 Docker容器网络常见坑 专门记录这个问题,也算是有所收获。

第二个坑:自动化部署

最初每次更新文章都要手动构建、部署,特别麻烦。后来研究了半天,终于实现了全自动发布:

  1. 在 Obsidian 里写完文章
  2. FNS 自动同步到服务器
  3. 服务器定时运行自动化部署脚本
  4. Caddy 自动提供 HTTPS 和反向代理

整个流程完全自动化,写完文章什么都不用管,几分钟后线上就能看到更新了。

博客的定位

主要想记录:

  • 技术笔记:工作中遇到的问题、学到的新技术
  • 生活随笔:偶尔也会写写生活感悟
  • 学习记录:看书、学习的笔记和心得

每一篇都要用心写,对自己有价值,也可能对别人有帮助。

写在最后

搭建博客的过程,就像给自己在网上安了一个家。从域名选购、服务器部署,一个个坑踩过再爬出来,这个过程本身就很有意义。

感谢这个过程中所有的人,感谢这个博客主题的作者,感谢那些无私分享技术文章的博主们——正是因为有他们,我才能站在巨人的肩膀上。

现在,这个小小的博客终于诞生了。未来的路还很长,希望能在这里记录下更多成长的足迹。

🎉 你好,世界!我来了!