moepush的GitHub Actions 自动部署
/ 9 min read
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 则禁止注册
部署流程概览
整个过程分为三大步:
- 准备工作:在 Cloudflare 和 GitHub 上创建和获取所有必要的凭证和资源。
- 配置 GitHub 仓库:将获取到的凭证添加为 GitHub Secrets。
- 触发自动部署:通过向仓库推送代码来启动 GitHub Actions,完成自动部署。
第一步:获取所有必需的 Secrets
这是整个部署过程中最关键的一步。我们将逐一获取 moepush
项目所需的每一个 Secret。
1. CLOUDFLARE_API_TOKEN
:Cloudflare API
配置文件-api令牌-创建令牌-API 令牌模板-(选择)编辑 Cloudflare Workers
Token
这个 Token 授权 GitHub Actions 操作你的 Cloudflare 账户(例如部署 Worker 和 D1 数据库迁移)。
- 登录到你的 Cloudflare 仪表板。
- 点击右上角的头像,选择 “My Profile” (我的个人资料)。
- 在左侧导航栏中,选择 “API Tokens” (API 令牌)。
- 点击 “Create Token” (创建令牌)。
- 找到 “Edit Cloudflare Workers” (编辑 Cloudflare Workers) 模板,点击 “Use template” (使用模板)。
- 权限 (Permissions) 部分保持默认即可,它已经包含了部署 Worker 和操作 D1 所需的权限。
- Account Resources: 你的账户 (All accounts)
- Zone Resources: 所有区域 (All zones)
- 继续以显示摘要 (Continue to summary)。
- 点击 “Create Token” (创建令牌)。
- 立即复制生成的 Token! 这个 Token 只会显示一次,请务必妥善保管。这个值就是你的
CLOUDFLARE_API_TOKEN
。
2. CLOUDFLARE_ACCOUNT_ID
:Cloudflare Account ID
这是你的 Cloudflare 账户的唯一标识符。
- 在 Cloudflare 仪表板的任何页面,查看右侧边栏。
- 或者,直接访问你的任一域名概览页,或者点击顶部导航栏的 “Workers & Pages”。
- 在右侧边栏,你会看到 “Account ID” (账户 ID)。点击旁边的复制按钮即可获取。
3. D1_DATABASE_NAME
:D1 数据库名称
你需要先在 Cloudflare 上创建一个 D1 数据库。
- 在 Cloudflare 仪表板左侧导航栏,选择 “Workers & Pages”。
- 选择 “D1” 选项卡。
- 点击 “Create database” (创建数据库)。
- 为你的数据库命名,例如
moepush-db
。这个名字就是你的D1_DATABASE_NAME
。 - 选择一个地理位置,然后点击 “Create” (创建)。
- 记下你刚刚设置的数据库名称,例如
moepush-db
。
4. AUTH_SECRET
:加密 Session 的密钥
这是一个用于加密用户会话(Session)的随机字符串,必须足够复杂以保证安全。
你可以使用命令行生成一个安全的随机字符串:
openssl rand -base64 32
执行后会得到一长串随机字符,例如 aBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890/+=
。复制这个字符串作为 AUTH_SECRET
的值。
如果你没有 openssl
环境,也可以使用在线密码生成器生成一个 32 位以上的随机字符串。
5. AUTH_GITHUB_ID
和 AUTH_GITHUB_SECRET
:GitHub OAuth App
这组凭证用于实现通过 GitHub 账号登录 moepush
的功能。
- 登录你的 GitHub 账户。
- 点击右上角头像,选择 “Settings” (设置)。
- 在左侧导航栏最下方,选择 “Developer settings” (开发者设置)。
- 选择 “OAuth Apps”,然后点击 “New OAuth App” (新建 OAuth App)。
- 填写表单:
- 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
。
- Application name (应用名称): 可以任意填写,例如
- 点击 “Register application” (注册应用)。
- 注册成功后,页面会显示 “Client ID”。这个值就是你的
AUTH_GITHUB_ID
。 - 在 “Client secrets” 部分,点击 “Generate a new client secret” (生成新的客户端密钥)。
- 立即复制生成的 Secret! 这个 Secret 也只会显示一次。这个值就是你的
AUTH_GITHUB_SECRET
。
6. 可选 Secrets
PROJECT_NAME
: 项目名称。它将决定你的 Worker URL(https://[PROJECT_NAME].yourname.workers.dev
)。如果不设置,将默认使用moepush
。DISABLE_REGISTER
: 是否禁止新用户注册。如果设置为true
,则只有你在数据库中手动添加的用户才能登录。如果想开放注册,则无需设置此 Secret。
第二步:配置 GitHub 仓库并添加 Secrets
-
Fork 仓库: 首先,访问
https://github.com/beilunyang/moepush
并点击右上角的 “Fork” 按钮,将该项目复制到你自己的 GitHub 账户下。之后的所有操作都在你 Fork 的仓库中进行。 -
添加 Secrets:
- 进入你 Fork 后的
moepush
仓库页面。 - 点击仓库顶部的 “Settings” (设置) 选项卡。
- 在左侧导航栏中,选择 “Secrets and variables” -> “Actions”。
- 在 “Repository secrets”区域,点击 “New repository secret”。
- 逐一添加你在第一步中获取到的所有 Secrets。名称必须与要求完全一致,值就是你获取到的内容。
CLOUDFLARE_API_TOKEN
CLOUDFLARE_ACCOUNT_ID
D1_DATABASE_NAME
AUTH_SECRET
AUTH_GITHUB_ID
AUTH_GITHUB_SECRET
PROJECT_NAME
(可选)DISABLE_REGISTER
(可选)
- 进入你 Fork 后的
第三步:触发自动部署
moepush
仓库中已经包含了 .github/workflows/deploy.yml
文件,它配置了 GitHub Actions 的自动化流程。该流程会在你每次向 main
分支推送(push)代码时自动触发。
-
触发部署: 在你自己的仓库中,进行一次任意的修改并推送到
main
分支。一个最简单的办法是:- 在你的仓库主页,点击
README.md
文件。 - 点击编辑按钮(铅笔图标)。
- 在文件中添加一个空格或换行,然后滚动到底部,直接提交更改到
main
分支。
- 在你的仓库主页,点击
-
监控部署过程:
- 点击仓库顶部的 “Actions” 选项卡。
- 你会看到一个正在运行的 workflow,名为 “Deploy to Cloudflare Workers”。
- 点击进入,你可以查看部署的实时日志。整个过程通常需要 2-3 分钟。
-
部署成功:
- 当 workflow 的图标变成绿色对勾时,表示部署成功。
- 在部署日志的末尾,通常会显示你部署成功的 Worker URL。它就是你在创建 GitHub OAuth App 时填写的
Homepage URL
。
第四步:最终验证和配置
- 获取真实 URL:
部署成功后,你将获得一个确切的 URL,例如
https://moepush.my-worker-subdomain.workers.dev
。 - 更新 GitHub OAuth App 回调 URL: 回到你之前创建的 GitHub OAuth App 设置页面,将 “Homepage URL” 和 “Authorization callback URL” 中的占位符更新为这个真实的、有效的 URL。这一步非常重要,否则 GitHub 登录会失败!
- 访问你的服务:
打开你的 Worker URL,你应该能看到
moepush
的登录页面。点击 “Sign in with GitHub”,如果一切配置正确,你就可以成功登录并开始使用了。
至此,你已经成功地使用 GitHub Actions 自动部署了 moepush
项目。