microfeed: cloudflare优秀项目部署方案

microfeed: cloudflare优秀项目部署方案

Microfeed 是一个轻量级的 CMS,可以自托管在 Cloudflare 上,主要利用 Cloudflare 的多种服务,包括 Cloudflare Pages (用于前端部署)、Cloudflare R2 (用于媒体文件存储)、Cloudflare D1 (用于数据存储) 和 Cloudflare Zero Trust (用于后台管理面板的安全访问)。

以下是部署 Microfeed 到 Cloudflare 的详细步骤:

核心原理:

Microfeed 的部署是基于 GitOps 的理念,通过将代码托管在 GitHub/GitLab,并利用 Cloudflare Pages 的持续集成/持续部署 (CI/CD) 功能,实现自动化部署。

部署步骤:

  1. 准备工作
  • Cloudflare 账号: 确保你有一个 Cloudflare 账号。如果没有,请注册一个。

  • GitHub/GitLab 账号: Microfeed 的部署依赖于 Git 仓库,所以你需要一个 GitHub 或 GitLab 账号。

  • 域名(可选但推荐): 虽然你可以使用 Cloudflare Pages 提供的 .pages.dev 域名,但为了更好的品牌和体验,推荐准备一个自定义域名并将其 DNS 托管在 Cloudflare。

  1. Fork Microfeed 仓库
  1. 创建 Cloudflare Pages 项目
  • 登录你的 Cloudflare 仪表盘。

  • 导航到 Pages 服务。

  • 点击 "创建项目" (Create a project)。

  • 选择 "连接 Git" (Connect to Git)。

  • 授权 GitHub/GitLab: 如果你还没有连接,Cloudflare 会引导你授权访问你的 GitHub/GitLab 账号。

  • 选择你的 Fork 仓库: 在仓库列表中找到你刚刚 Fork 的 microfeed 仓库,然后点击 "开始设置" (Begin setup)。

  1. 配置构建和部署设置

在 Cloudflare Pages 的项目设置页面,通常不需要做太多修改,因为 Microfeed 已经针对 Cloudflare Pages 进行了优化。

  • 构建命令 (Build command): 通常会自动识别,例如 npm run build 或 yarn build。

  • 输出目录 (Output directory): 通常会自动识别,例如 dist 或 build。

  • Root 目录 (Root directory): 通常留空,表示仓库根目录。

确认这些设置无误后,点击 "部署站点" (Deploy site)。

Cloudflare Pages 会自动拉取你的 Fork 仓库代码,并执行构建和部署过程。第一次部署可能需要几分钟。

  1. 设置 Cloudflare R2 (媒体存储)

Microfeed 使用 R2 来存储图片、音频、视频等媒体文件。

  • 在 Cloudflare 仪表盘中,导航到 R2 服务。

  • 点击 "创建存储桶" (Create bucket)。

  • 给你的存储桶起一个名字(例如 microfeed-media)。

  • 重要: 创建后,你需要为这个 R2 存储桶配置 公共访问策略,使其可以被 Microfeed 访问并提供给用户。这通常涉及设置一个 公共访问策略 或 自定义域。

  1. 设置 Cloudflare D1 (数据存储)

Microfeed 使用 D1 来存储 CMS 的元数据(例如文章内容、分类等)。

  • 在 Cloudflare 仪表盘中,导航到 D1 服务。

  • 点击 "创建数据库" (Create database)。

  • 给你的数据库起一个名字(例如 microfeed-db)。

  1. 配置环境变量和 API Tokens

为了让你的 Microfeed 实例能够连接到 R2 和 D1,你需要配置环境变量。这些通常通过 Cloudflare Pages 的项目设置来完成。

  • 在你的 Cloudflare Pages 项目设置中,找到 "环境变量" (Environment variables) 或 "设置" (Settings) -> "环境变量"。

  • 你需要添加以下环境变量,它们通常包含你的 R2 存储桶的访问凭证和 D1 的数据库 ID。这些凭证应该在你的 Cloudflare 仪表盘中生成。

    • CF_ACCOUNT_ID: 你的 Cloudflare 账号 ID。

    • R2_ACCESS_KEY_ID: R2 S3 兼容 API 的 Access Key ID。

    • R2_SECRET_ACCESS_KEY: R2 S3 兼容 API 的 Secret Access Key。

    • D1_DATABASE_ID: 你的 D1 数据库的 ID。

    如何获取这些值:

    • CF_ACCOUNT_ID:在 Cloudflare 仪表盘的任何页面右侧边栏可以找到。

    • R2_ACCESS_KEY_ID 和 R2_SECRET_ACCESS_KEY:在 R2 存储桶设置中,选择 "管理 API 凭证" (Manage API credentials) 来生成。请确保这些凭证具有足够的权限(例如读写你的 R2 存储桶)。

    • D1_DATABASE_ID:在 D1 数据库页面,点击你的数据库名称,可以在 URL 或概览页面找到其 ID。

  • GitHub Actions Secrets (可选,但推荐用于生产): 为了更安全地管理这些敏感信息,你可以将这些变量作为 GitHub/GitLab 仓库的 Secrets 添加。这样,在 CI/CD 过程中,Cloudflare Pages 会自动读取这些 Secret 作为环境变量。

  1. 配置 Cloudflare Zero Trust (管理面板访问安全)

Microfeed 通常会有一个管理面板,用于创建和管理内容。为了保护这个面板,可以使用 Cloudflare Zero Trust。

  • 在 Cloudflare 仪表盘中,导航到 Zero Trust (Access)。

  • 创建一个新的 Application。

  • 选择 Self-hosted。

  • 配置规则,只允许特定的电子邮件地址、IP 地址或身份提供商 (如 GitHub、Google) 访问你的 Microfeed 管理面板的 URL。这通常涉及到配置应用程序的 URL (你的 Microfeed 域名/Pages 域名加上管理面板路径,例如 /admin)。

  1. 绑定自定义域名 (可选)
  • 在你的 Cloudflare Pages 项目设置中,导航到 "自定义域" (Custom domains)。

  • 点击 "设置自定义域" (Set up a custom domain)。

  • 输入你的域名,并按照指示创建相应的 DNS 记录 (通常是一个 CNAME 记录)。

  1. 初始设置和内容管理
  • 一旦部署成功并配置了所有环境变量,访问你的 Microfeed 站点 URL。

  • 首次访问管理面板(通常是 /admin 路径),你可能需要进行一些初始设置,例如创建第一个管理员账户。

  • 然后你就可以开始在 Microfeed 中创建和发布内容了!

重要提示:

  • 文档优先: 最准确和最新的部署说明总是在 Microfeed 的官方 GitHub 仓库的 README 或专门的部署文档中。请务必参考它们。

  • 免费额度: Cloudflare Pages、R2 和 D1 都有慷慨的免费额度,对于个人项目和小型网站来说通常足够了。

  • 故障排除: 如果遇到问题,请检查 Cloudflare Pages 的部署日志,它们会提供详细的构建和部署信息,帮助你定位问题。

通过这些步骤,你就可以成功地将 Microfeed 部署到 Cloudflare 上,并享受其轻量级和高效的自托管 CMS 体验。