为什么不只用静态站点

静态博客足够快,但一旦需要「在线写作」「多人协作」「文件管理」,就得补上后端。与其拼接一堆服务,不如让整个站点跑在一个进程里。

这套组合

  • Next.js:页面渲染、服务端动作、上传接口统一在一个项目里
  • SQLite:单文件数据库,备份就是复制一个文件
  • Tailwind CSS:设计系统直接写在样式里,没有额外的运行时
# 本地启动
npm install
npm run dev

关于部署

生产环境用 Docker 跑一个容器,数据目录挂载到宿主机。升级时替换镜像,数据不受影响。

services:
  blog:
    image: inkstone-blog:latest
    volumes:
      - ./data:/app/data

备份策略

数据库和上传文件都在 data/ 目录下,定时打包备份即可:

tar -czf backup-$(date +%F).tar.gz data/

简单,可控,没有隐藏的账单。