skip to content
Logo Warming Space

moepush的GitHub Actions 自动部署

/ 9 min read

moepush项目地址

视频版保姆级部署教程

moepush部署所需要的参数:

部署前需要在 GitHub 仓库设置中添加以下 Secrets:

CLOUDFLARE_API_TOKEN:Cloudflare API Token

CLOUDFLARE_ACCOUNT_ID:Cloudflare Account ID

D1_DATABASE_NAME:D1 数据库名称

AUTH_SECRET:加密 Session 的密钥

AUTH_GITHUB_ID:GitHub OAuth App ID

AUTH_GITHUB_SECRET:GitHub OAuth App Secret

PROJECT_NAME:项目名称 (可选,默认:moepush)

DISABLE_REGISTER:是否禁止注册,默认关闭,设置为 true 则禁止注册

部署流程概览

整个过程分为三大步:

  1. 准备工作:在 Cloudflare 和 GitHub 上创建和获取所有必要的凭证和资源。
  2. 配置 GitHub 仓库:将获取到的凭证添加为 GitHub Secrets。
  3. 触发自动部署:通过向仓库推送代码来启动 GitHub Actions,完成自动部署。

第一步:获取所有必需的 Secrets

这是整个部署过程中最关键的一步。我们将逐一获取 moepush 项目所需的每一个 Secret。

1. CLOUDFLARE_API_TOKEN:Cloudflare API

配置文件-api令牌-创建令牌-API 令牌模板-(选择)编辑 Cloudflare Workers

Token

这个 Token 授权 GitHub Actions 操作你的 Cloudflare 账户(例如部署 Worker 和 D1 数据库迁移)。

  1. 登录到你的 Cloudflare 仪表板
  2. 点击右上角的头像,选择 “My Profile” (我的个人资料)。
  3. 在左侧导航栏中,选择 “API Tokens” (API 令牌)。
  4. 点击 “Create Token” (创建令牌)。
  5. 找到 “Edit Cloudflare Workers” (编辑 Cloudflare Workers) 模板,点击 “Use template” (使用模板)。
  6. 权限 (Permissions) 部分保持默认即可,它已经包含了部署 Worker 和操作 D1 所需的权限。
    • Account Resources: 你的账户 (All accounts)
    • Zone Resources: 所有区域 (All zones)
  7. 继续以显示摘要 (Continue to summary)
  8. 点击 “Create Token” (创建令牌)。
  9. 立即复制生成的 Token! 这个 Token 只会显示一次,请务必妥善保管。这个值就是你的 CLOUDFLARE_API_TOKEN

2. CLOUDFLARE_ACCOUNT_ID:Cloudflare Account ID

这是你的 Cloudflare 账户的唯一标识符。

  1. 在 Cloudflare 仪表板的任何页面,查看右侧边栏。
  2. 或者,直接访问你的任一域名概览页,或者点击顶部导航栏的 “Workers & Pages”。
  3. 在右侧边栏,你会看到 “Account ID” (账户 ID)。点击旁边的复制按钮即可获取。

3. D1_DATABASE_NAME:D1 数据库名称

你需要先在 Cloudflare 上创建一个 D1 数据库。

  1. 在 Cloudflare 仪表板左侧导航栏,选择 “Workers & Pages”。
  2. 选择 “D1” 选项卡。
  3. 点击 “Create database” (创建数据库)。
  4. 为你的数据库命名,例如 moepush-db。这个名字就是你的 D1_DATABASE_NAME
  5. 选择一个地理位置,然后点击 “Create” (创建)。
  6. 记下你刚刚设置的数据库名称,例如 moepush-db

4. AUTH_SECRET:加密 Session 的密钥

这是一个用于加密用户会话(Session)的随机字符串,必须足够复杂以保证安全。

你可以使用命令行生成一个安全的随机字符串:

Terminal window
openssl rand -base64 32

执行后会得到一长串随机字符,例如 aBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890/+=。复制这个字符串作为 AUTH_SECRET 的值。

如果你没有 openssl 环境,也可以使用在线密码生成器生成一个 32 位以上的随机字符串。

5. AUTH_GITHUB_IDAUTH_GITHUB_SECRET:GitHub OAuth App

这组凭证用于实现通过 GitHub 账号登录 moepush 的功能。

  1. 登录你的 GitHub 账户。
  2. 点击右上角头像,选择 “Settings” (设置)。
  3. 在左侧导航栏最下方,选择 “Developer settings” (开发者设置)。
  4. 选择 “OAuth Apps”,然后点击 “New OAuth App” (新建 OAuth App)。
  5. 填写表单:
    • Application name (应用名称): 可以任意填写,例如 My MoePush Service
    • Homepage URL (主页 URL): 暂时先填写一个占位符,格式为 https://[你的项目名称].[你的Workers子域].workers.dev。例如:https://moepush.yourname.workers.dev。部署成功后你需要回来修改为真实的 URL。
    • Authorization callback URL (授权回调 URL): 这是最重要的配置。它的格式是 [你的主页URL]/api/auth/callback/github。例如:https://moepush.yourname.workers.dev/api/auth/callback/github
  6. 点击 “Register application” (注册应用)。
  7. 注册成功后,页面会显示 “Client ID”。这个值就是你的 AUTH_GITHUB_ID
  8. 在 “Client secrets” 部分,点击 “Generate a new client secret” (生成新的客户端密钥)。
  9. 立即复制生成的 Secret! 这个 Secret 也只会显示一次。这个值就是你的 AUTH_GITHUB_SECRET

6. 可选 Secrets

  • PROJECT_NAME: 项目名称。它将决定你的 Worker URL(https://[PROJECT_NAME].yourname.workers.dev)。如果不设置,将默认使用 moepush
  • DISABLE_REGISTER: 是否禁止新用户注册。如果设置为 true,则只有你在数据库中手动添加的用户才能登录。如果想开放注册,则无需设置此 Secret。

第二步:配置 GitHub 仓库并添加 Secrets

  1. Fork 仓库: 首先,访问 https://github.com/beilunyang/moepush 并点击右上角的 “Fork” 按钮,将该项目复制到你自己的 GitHub 账户下。之后的所有操作都在你 Fork 的仓库中进行。

  2. 添加 Secrets

    1. 进入你 Fork 后的 moepush 仓库页面。
    2. 点击仓库顶部的 “Settings” (设置) 选项卡。
    3. 在左侧导航栏中,选择 “Secrets and variables” -> “Actions”。
    4. 在 “Repository secrets”区域,点击 “New repository secret”。
    5. 逐一添加你在第一步中获取到的所有 Secrets。名称必须与要求完全一致,值就是你获取到的内容。
      • CLOUDFLARE_API_TOKEN
      • CLOUDFLARE_ACCOUNT_ID
      • D1_DATABASE_NAME
      • AUTH_SECRET
      • AUTH_GITHUB_ID
      • AUTH_GITHUB_SECRET
      • PROJECT_NAME (可选)
      • DISABLE_REGISTER (可选)

第三步:触发自动部署

moepush 仓库中已经包含了 .github/workflows/deploy.yml 文件,它配置了 GitHub Actions 的自动化流程。该流程会在你每次向 main 分支推送(push)代码时自动触发。

  1. 触发部署: 在你自己的仓库中,进行一次任意的修改并推送到 main 分支。一个最简单的办法是:

    • 在你的仓库主页,点击 README.md 文件。
    • 点击编辑按钮(铅笔图标)。
    • 在文件中添加一个空格或换行,然后滚动到底部,直接提交更改到 main 分支。
  2. 监控部署过程

    • 点击仓库顶部的 “Actions” 选项卡。
    • 你会看到一个正在运行的 workflow,名为 “Deploy to Cloudflare Workers”。
    • 点击进入,你可以查看部署的实时日志。整个过程通常需要 2-3 分钟。
  3. 部署成功

    • 当 workflow 的图标变成绿色对勾时,表示部署成功。
    • 在部署日志的末尾,通常会显示你部署成功的 Worker URL。它就是你在创建 GitHub OAuth App 时填写的 Homepage URL

第四步:最终验证和配置

  1. 获取真实 URL: 部署成功后,你将获得一个确切的 URL,例如 https://moepush.my-worker-subdomain.workers.dev
  2. 更新 GitHub OAuth App 回调 URL: 回到你之前创建的 GitHub OAuth App 设置页面,将 “Homepage URL” 和 “Authorization callback URL” 中的占位符更新为这个真实的、有效的 URL。这一步非常重要,否则 GitHub 登录会失败!
  3. 访问你的服务: 打开你的 Worker URL,你应该能看到 moepush 的登录页面。点击 “Sign in with GitHub”,如果一切配置正确,你就可以成功登录并开始使用了。

至此,你已经成功地使用 GitHub Actions 自动部署了 moepush 项目。