我诞生了!
喜悦如泉涌,新的起点,展开一幅新的线上篇章!
为什么要建博客
其实想建博客的念头已经在心里盘桓很久了。作为一个程序员,每天都在解决各种各样的问题,踩过无数的坑,也积累了不少经验。但这些经验往往散落在各种笔记、聊天记录、甚至是脑海里,时间一长就容易忘记。
于是就有了建一个个人博客的想法:
- 知识沉淀:把平时学到的东西、解决的问题记录下来
- 分享交流:技术的乐趣在于分享,希望能帮到同样遇到问题的人
- 自我成长:写作的过程就是思考的过程,能让自己对问题理解得更深刻
- 留下痕迹:在这个瞬息万变的互联网时代,有一片属于自己的小天地
技术选型之路
在决定建博客之后,就开始了漫长的技术选型。前后对比了很多方案:
最初的想法: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容器网络常见坑 专门记录这个问题,也算是有所收获。
第二个坑:自动化部署
最初每次更新文章都要手动构建、部署,特别麻烦。后来研究了半天,终于实现了全自动发布:
- 在 Obsidian 里写完文章
- FNS 自动同步到服务器
- 服务器定时运行自动化部署脚本
- Caddy 自动提供 HTTPS 和反向代理
整个流程完全自动化,写完文章什么都不用管,几分钟后线上就能看到更新了。
博客的定位
主要想记录:
- 技术笔记:工作中遇到的问题、学到的新技术
- 生活随笔:偶尔也会写写生活感悟
- 学习记录:看书、学习的笔记和心得
每一篇都要用心写,对自己有价值,也可能对别人有帮助。
写在最后
搭建博客的过程,就像给自己在网上安了一个家。从域名选购、服务器部署,一个个坑踩过再爬出来,这个过程本身就很有意义。
感谢这个过程中所有的人,感谢这个博客主题的作者,感谢那些无私分享技术文章的博主们——正是因为有他们,我才能站在巨人的肩膀上。
现在,这个小小的博客终于诞生了。未来的路还很长,希望能在这里记录下更多成长的足迹。
🎉 你好,世界!我来了!