Papa Labs

上线 runbook:部署到 Cloudflare Pages 并绑定 papalabs.dev

内容整理得差不多之后,照这篇操作就能上线。流程和 Fitness Tracker 一样是 Cloudflare Pages,只是这次是纯静态站,更简单。

Cloudflare Pages 产品页

静态站放 Pages:免费额度对个人 blog 绰绰有余

方式一:Git 集成(推荐)

推荐这条路,以后 git push 就自动发布:

  1. 把 blog repo 推到 GitHub(private 也可以);
  2. Cloudflare Dashboard → Workers & Pages → Create → Pages → Connect to Git,选中 repo;
  3. 构建配置:
配置项
Build commandnpm run build
Build output directorydist
环境变量NODE_VERSION = 22

NODE_VERSION 一定要设 —— Pages 默认的 Node 版本偏旧,Astro 5 需要较新的版本。

Build command 用 npm run build 而不是 astro build,因为搜索索引(Pagefind)是挂在这个 script 里生成的,直接跑 astro 会得到一个没有搜索功能的站。

方式二:wrangler 直接上传

不想连 GitHub 的话,本地构建完直接推:

npm run build
npx wrangler pages deploy dist --project-name papalabs-blog

适合临时预览或者还没准备好公开 repo 的阶段。

绑定域名

  1. Pages 项目 → Custom domains → 添加 papalabs.dev
  2. 域名本来就在 Cloudflare 上的话,DNS 记录自动配好,几分钟内 HTTPS 证书就绪;
  3. 建议同时把 www.papalabs.dev 加上(自动 301 到主域名)。

上线前 checklist

  • astro.config.mjs 里的 site 是正式域名(影响 RSS 和 sitemap 里的绝对链接);
  • 所有还没写完的文章都标了 draft: true
  • 本地 npm run build && npm run preview 过一遍,搜索、mindmap、暗色模式都点一点;
  • 上线后 Google Search Console 提交 https://papalabs.dev/sitemap-index.xml

静态站的好处在这一刻兑现:没有数据库要迁、没有 secret 要配、没有 server 要看护。build 出来的文件夹放哪里都能跑。

← 全部文章