Sakura Cactus
← 返回文章

Sakura-Cactus 部署教程:Cloudflare Workers + D1 + R2

Sakura-Cactus部署教程

图片说明

本文记录 Sakura-Cactus 项目部署到 Cloudflare Workers 的完整流程。

项目地址:

https://github.com/mx-love/Sakura-Cactus

本项目主要用到:

Cloudflare Workers:运行博客程序
Cloudflare D1:保存文章、设置、友链等数据
Cloudflare R2:保存后台上传的图片
GitHub:存放代码,并连接 Cloudflare 自动部署

部署时最容易混淆的是变量位置:

D1 / R2 相关变量:创建部署时填写,也就是 Build variables
后台用户名 / 密码:部署完成后填写,也就是 Runtime Variables & Secrets

一、Fork 项目

打开项目仓库:

https://github.com/mx-love/Sakura-Cactus

点击右上角 Fork,把项目复制到自己的 GitHub 账号下。

后面 Cloudflare 连接 GitHub 仓库时,选择你自己 Fork 后的仓库。


二、创建 D1 数据库

进入 Cloudflare 控制台:

存储和数据库 → D1 SQL 数据库 → 创建数据库

数据库名称固定填写:

sakura_blog_prod

创建完成后,进入这个 D1 数据库详情页,复制 Database ID

后面创建 Worker 部署时需要填写:

SAKURA_D1_DATABASE_ID=你的 D1 Database ID

三、创建 R2 Bucket

Sakura-Cactus 使用 R2 保存后台上传的图片。

进入 Cloudflare 控制台:

存储和数据库 → R2 对象存储 → 创建 Bucket

Bucket 名称固定填写:

sakura-blog-media-prod

后面创建 Worker 部署时需要填写:

SAKURA_R2_BUCKET_NAME=sakura-blog-media-prod

R2 Bucket 保持默认私有即可,不需要开启 Public Development URL,也不需要单独给 R2 绑定自定义域名。


四、连接 GitHub 仓库创建 Worker

进入 Cloudflare 控制台:

Workers 和 Pages → 创建应用 → 连接 Git 仓库

选择你自己 Fork 后的 Sakura-Cactus 仓库。

项目名称可以填写:

sakura-cactus

这个名称主要影响 Worker 名称和 workers.dev 域名,按自己的习惯填写即可。都是要自定义域名的


五、填写构建命令和部署命令

Set up your application 页面填写构建配置。 图片说明

Build command

pnpm install --frozen-lockfile && node scripts/prepare-cloudflare-config.mjs && pnpm build

Deploy command

npx wrangler deploy

不要按普通 Astro 静态站的方式部署。Sakura-Cactus 是运行在 Cloudflare Workers 上的项目,需要通过 Wrangler 部署。


六、填写 Build variables

在创建 Worker 部署时,展开高级设置,添加 Build variables

图片说明

这里填写的是构建阶段变量,用来生成 D1 和 R2 的绑定配置。

只需要添加下面两个变量:

SAKURA_D1_DATABASE_ID=你的 D1 Database ID
SAKURA_R2_BUCKET_NAME=sakura-blog-media-prod

变量说明:

变量名 填写位置 类型 是否必填 示例值 说明
SAKURA_D1_DATABASE_ID Build variables 文本 你的 D1 Database ID 从 D1 数据库详情页复制
SAKURA_R2_BUCKET_NAME Build variables 文本 sakura-blog-media-prod 固定填写,和 R2 Bucket 名称一致

确认以下内容无误后点击部署

七、首次部署

点击部署后,Cloudflare 会自动执行:

拉取 GitHub 仓库代码
安装依赖
执行 prepare-cloudflare-config.mjs
生成 D1 / R2 bindings
构建项目
使用 wrangler deploy 部署 Worker

八、添加后台登录变量

首次部署完成后,进入刚创建好的 Worker:

Worker → 设置 → 变量和密钥

图片说明 这里填写的是 Runtime Variables & Secrets,也就是网站运行时读取的配置。

添加后台登录账号密码:

ADMIN_USERNAME=你自己设置的后台用户名
ADMIN_PASSWORD=你自己设置的后台密码

建议填写方式:

变量名 填写位置 类型建议 是否必填 示例值 说明
ADMIN_USERNAME Runtime Variables & Secrets 文本 admin 后台登录用户名,自己设置
ADMIN_PASSWORD Runtime Variables & Secrets 密钥 / Secret 你的强密码 后台登录密码,自己设置

九、绑定自定义域名并配置 SITE_URL

首次部署完成后,建议先给 Worker 绑定自己的正式域名。

进入 Cloudflare Worker:

Worker → 设置 → 域和路由 → 添加自定义域

填写并绑定自己的域名,例如:

blog.example.com

自定义域名生效后,再进入:

Worker → 设置 → 变量和密钥

添加一个普通文本变量:

SITE_URL=https://你的自定义域名

例如:

SITE_URL=https://blog.example.com

填写时注意:

  • 必须包含 https://
  • 填写实际绑定到当前 Worker 的正式域名;
  • 域名末尾不要添加 /
  • 每位部署者都需要将 SITE_URL 替换为自己的正式博客地址。

Note

如果不绑定自定义域名,只使用 Cloudflare Workers 自动生成的 workers.dev 地址,则无需额外配置 SITE_URL,项目直接以当前 Workers 域名作为正式地址。

配置完成后,需要重新部署一次 Worker。


十、可选站点配置

下面这些变量不是部署必须项,可以后面再配置。

如果需要,可以在同一个页面添加为普通文本变量:

SITE_NAME=你的博客名称
SITE_TAGLINE=你的博客标语
SITE_DESCRIPTION=你的博客描述
SITE_AVATAR_URL=https://example.com/avatar.png
PUBLIC_COMMENTS_SERVER_URL=https://your-waline.example.com

变量说明:

变量名 填写位置 类型建议 是否必填 说明
SITE_NAME Runtime Variables & Secrets 文本 站点名称
SITE_TAGLINE Runtime Variables & Secrets 文本 站点标语
SITE_DESCRIPTION Runtime Variables & Secrets 文本 站点描述
SITE_AVATAR_URL Runtime Variables & Secrets 文本 头像地址
PUBLIC_COMMENTS_SERVER_URL Runtime Variables & Secrets 文本 Waline 评论服务地址

十一、重新部署一次

添加 Runtime Variables & Secrets 后,建议重新部署一次。

可以在 Cloudflare Worker 的部署页面中手动触发重新部署。

这样可以确保后台账号密码和站点配置正常生效。


十二、访问网站和后台

部署完成后,访问 Cloudflare 分配的 Worker 域名,或者你绑定的自定义域名。

后台登录地址:

https://你的域名/admin/login

使用刚才设置的后台账号密码登录:

ADMIN_USERNAME=你自己设置的后台用户名
ADMIN_PASSWORD=你自己设置的后台密码

首次访问时,项目会初始化 D1 中需要的数据表和默认设置。

如果刚创建完 D1 时看到数据为 0,这是正常的,访问网站或后台后才会产生实际读写。


十三、变量总表

变量名 填写位置 类型建议 是否必填 示例值 用途
SAKURA_D1_DATABASE_ID Build variables 文本 你的 D1 Database ID 绑定 D1 数据库
SAKURA_R2_BUCKET_NAME Build variables 文本 sakura-blog-media-prod 绑定 R2 Bucket
ADMIN_USERNAME Runtime Variables & Secrets 文本 admin 后台登录用户名
ADMIN_PASSWORD Runtime Variables & Secrets 密钥 / Secret 你的强密码 后台登录密码
SITE_NAME Runtime Variables & Secrets 文本 可选 Sakura Cactus 站点名称
SITE_TAGLINE Runtime Variables & Secrets 文本 可选 温柔地写,安静地收录。 站点标语
SITE_DESCRIPTION Runtime Variables & Secrets 文本 可选 一些文章、笔记,以及慢慢整理的想法。 站点描述
SITE_AVATAR_URL Runtime Variables & Secrets 文本 可选 https://example.com/avatar.png 头像地址
PUBLIC_COMMENTS_SERVER_URL Runtime Variables & Secrets 文本 可选 https://your-waline.example.com Waline 评论服务地址

总结

Sakura-Cactus 推荐部署顺序:

Fork 项目
→ 创建 D1 数据库,名称固定为 sakura_blog_prod
→ 创建 R2 Bucket,名称固定为 sakura-blog-media-prod
→ Cloudflare 连接 GitHub 仓库
→ 填写构建命令和部署命令
→ 填写 Build variables
→ 首次部署
→ 添加 Runtime Variables & Secrets
→ 重新部署
→ 登录后台

记住一句话:

D1 / R2 填在 Build variables;
后台账号密码填在 Runtime Variables & Secrets。

按照这个顺序部署,基本可以避免 D1、R2 和后台登录变量混乱的问题。

图片说明

图片资源出自互联网收集整理,如果侵犯了您的合法权益,请联系我删除。