几天时间,完成了梦想的个人博客网站。
目前已经完成了:
- 整体代码架构
- 适配 Web、移动端
- 夜间模式
- 支持文章评论
- 支持 HTTPS
- 支持网站监控
- 支持搜索
- CI/CD 自动化
说一下动机,为什么要费心费力开发一个博客网站。原因有很多,最主要的还是作为一个开发者,长久以来,都没有自己成体系、稳定的知识库,并且 CSDN、掘金本质还是内容分发平台,他们更关注平台下的博客生产、分发,另外 Notion、语雀功能笔记实在太臃肿了。
犹记得有一次用 Notion 记录笔记,结果第二天记录的内容片段居然丢失,那一刻我对 Notion 就失去了信任。作为一个程序员,还是更喜欢对底层的把控感。
得益于如今成熟的博客网站搭建技术方案,能在短时间部署一个网站。计算下来,真正投入的时间不超过 2 天,更多的时间是在等待域名备案。话说广东省的备案还要求承诺书,且必须手写签名和盖手印:
供应商层面上:
-
Docusaurus V3.0: Facebook 开源的博客网站,名字有点难拼写,它由 Docu 和 saurus 组合而成,前者是指“文档”,后者是指“蜥蜴”,寓意轻量快捷的文档生成框架。它如今的 V2 版本已经相当成熟,该有的响应式、主题模式、MDX、版本控制、多语言支持等等全都有,并且它通过 swizzle 的机制,能够让我们进一步自定义任意组件,目前已更新至 V3.0。
-
霞鹭字体:开源的中文字体,非常好看。
-
Giscus:开源的评论集成工具,利用 GitHub Discuss,不用自己维护一个数据库。当然缺点也是有,就是用户评论前需要登录 GitHub 并授权。
-
Posthog:开源的网站监控工具。它有 cloud 版本,有一百万事件的免费额度。当然也可以自己 host 一个。
-
Nginx:反向代理服务器。
-
Docker:除了部署网站,我还把 Nginx 运行在 Docker 上,而不是把 Nginx 安装在全局下。
-
Algolia:搜索服务
-
又拍云 + uPic:又拍云提供云存储功能,uPic 是一款免费的图片上传应用,两者结合完成图床功能。
-
UCloud:提供服务器、域名、SSL 证书。
-
Github Action:CI/CD 部署
打包
docker build \
--build-arg POSTHOG_API_KEY=your_value \
--build-arg GISCUS_REPO_ID=your_value \
--build-arg GISCUS_CATEGORY_ID=your_value \
-t ken:v1.0.0 .
压缩
docker save ken:latest -o ken
上传
scp ./ken ucloud:~
解压
docker load -i ken
运行
docker run -d -p 4000:3000 --name ken ken:v1.0.0
- 个人项目展示