返回首页
2 分钟阅读

本站技术栈速记

  • 技术
  • Next.js
  • Tailwind

一句话技术栈

选择原因
框架Next.js 16 App RouterSSR/ISR、Route Handlers、React 19.2
样式Tailwind CSS v4用 CSS 变量做主题切换,零配置
动效motion v12 (前 framer-motion)whileInViewstaggeruseScroll
Markdownunified + remark + @shikijs/rehype服务端渲染,双主题代码高亮
鉴权jose + bcryptjsJWT in httpOnly cookie,单管理员
存储文件系统 .md不引入数据库,备份就是 tar
进程systemd不装 PM2
反代nginx + certbotHTTPS + 自动续签

为什么不用数据库

单用户博客,文章数量级很小,文件系统完全够用。引入数据库的成本:

  1. 多一个组件需要维护、备份、升级
  2. 多一次迁移(schema 变更)
  3. Markdown 是事实标准,文件就是最朴素的"备份"

等到需要全文搜索、统计、关联推荐时再加 —— 那时再加也不迟。


部署到 47.251.177.147



服务器是阿里云 2C / 1.6G 的 Ubuntu 24.04。

部署用一个 deploy.sh

cd /opt/blog
git pull --ff-only
npm ci --omit=dev
npm run build
systemctl restart blog

一次执行,从代码变更到线上生效。

Jannik - Touch the Rain (320CBR)