diff --git a/README.md b/README.md index 9430057..ffb61ee 100644 --- a/README.md +++ b/README.md @@ -129,67 +129,16 @@ pnpm generate-test-data ``` ## 部署 -### 视频版部署教程 -https://www.bilibili.com/video/BV19wrXY2ESM/ - -### 部署前准备 - -在开始部署之前,需要在 Cloudflare 控制台完成以下准备工作: - -1. **创建 D1 数据库** - - 登录 [Cloudflare 控制台](https://dash.cloudflare.com/) - - 选择 “存储与数据库” -> “D1 SQL 数据库” - - 创建一个数据库(例如:moemail) - - 记录下数据库名称和数据库 ID,后续配置需要用到 - -2. **创建 KV 命名空间** - - 登录 [Cloudflare 控制台](https://dash.cloudflare.com/) - - 选择 “存储与数据库” -> “KV” - - 创建一个 KV 命名空间(例如:moemail) - - 记录下命名空间 ID,后续配置需要用到 - -3. **创建 Pages 项目** - - 登录 [Cloudflare 控制台](https://dash.cloudflare.com/) - - 选择 “Workers 和 Pages” - - 点击 “创建” 并选择 “Pages” 标签 - - 选择 “使用直接上传创建” - - 点击 “上传资产” - - 输入项目名称 - - 注意:项目名称必须为 moemail,否则无法正常部署 - - 输入项目名称后,点击 “创建项目” 即可,不需要上传任何文件以及点击“部署站点”,之后我们会通过 本地运行Wrangler 或者通过 Github Actions 自动部署 -4. **为 Pages 项目添加 AUTH 认证相关的 SECRETS** - - 在 Overview 中选择刚刚创建的 Pages 项目 - - 在 Settings 中选择变量和机密 - - 添加 AUTH_GITHUB_ID, AUTH_GITHUB_SECRET, AUTH_SECRET - ### 本地 Wrangler 部署 - -1. 设置 wrangler: +1. 创建 .env 文件 ```bash -cp wrangler.example.toml wrangler.toml -cp wrangler.email.example.toml wrangler.email.toml -cp wrangler.cleanup.example.toml wrangler.cleanup.toml +cp .env.example .env ``` -设置 Cloudflare D1 数据库名以及数据库 ID +2. 在 .env 文件中设置[环境变量](#环境变量) -2. 创建云端 D1 数据库表结构 +3. 运行部署脚本 ```bash -pnpm db:migrate-remote -``` - -2. 部署主应用到 Cloudflare Pages: -```bash -pnpm deploy:pages -``` - -3. 部署邮件 worker: -```bash -pnpm deploy:email -``` - -4. 部署清理 worker: -```bash -pnpm deploy:cleanup +pnpm dlx tsx ./scripts/deploy/index.ts ``` ### Github Actions 部署 @@ -197,10 +146,7 @@ pnpm deploy:cleanup 本项目可使用 GitHub Actions 实现自动化部署。支持以下触发方式: 1. **自动触发**:推送新的 tag 时自动触发部署流程 -2. **手动触发**:在 GitHub Actions 页面手动触发,可选择以下部署选项: - - Run database migrations:执行数据库迁移 - - Deploy email Worker:重新部署邮件 Worker - - Deploy cleanup Worker:重新部署清理 Worker +2. **手动触发**:在 GitHub Actions 页面手动触发 #### 部署步骤 @@ -208,8 +154,8 @@ pnpm deploy:cleanup - `CLOUDFLARE_API_TOKEN`: Cloudflare API 令牌 - `CLOUDFLARE_ACCOUNT_ID`: Cloudflare 账户 ID - `DATABASE_NAME`: D1 数据库名称 - - `DATABASE_ID`: D1 数据库 ID - - `KV_NAMESPACE_ID`: Cloudflare KV namespace ID,用于存储网站配置 + - `KV_NAMESPACE_NAME`: Cloudflare KV namespace 名称,用于存储网站配置 + - `CUSTOM_DOMAIN`: 网站自定义域名,用于访问 MoeMail (可选, 如果不填, 则会使用 Cloudflare Pages 默认域名) 2. 选择触发方式: @@ -226,23 +172,12 @@ pnpm deploy:cleanup - 进入仓库的 Actions 页面 - 选择 "Deploy" workflow - 点击 "Run workflow" - - 选择需要执行的部署选项 - - 点击 "Run workflow" 开始部署 -3. GitHub Actions 会自动执行以下任务: - - 构建并部署主应用到 Cloudflare Pages - - 根据选项或文件变更执行数据库迁移 - - 根据选项或文件变更部署 Email Worker - - 根据选项或文件变更部署 Cleanup Worker - -4. 部署进度可以在仓库的 Actions 标签页查看 +3. 部署进度可以在仓库的 Actions 标签页查看 #### 注意事项 - 确保所有 Secrets 都已正确设置 - 使用 tag 触发时,tag 必须以 `v` 开头(例如:v1.0.0) -- 使用 tag 触发时,只有文件发生变更的部分会被部署 -- 手动触发时,可以选择性地执行特定的部署任务 -- 每次部署都会重新部署主应用 [![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/beilunyang/moemail) @@ -274,7 +209,7 @@ pnpm deploy:cleanup ### 注意事项 - 确保域名的 DNS 托管在 Cloudflare - Email Worker 必须已经部署成功 -- 如果Catch-All 状态不可用,请在点击`路由规则`旁边的`目标地址`进去绑定一个邮箱 +- 如果 Catch-All 状态不可用(一直 loading),请点击`路由规则`旁边的`目标地址`, 进去绑定一个邮箱 ## 权限系统 @@ -504,10 +439,25 @@ const data = await res.json(); 本项目采用 [MIT](LICENSE) 许可证 -## 交流群 - -
-如二维码失效,请添加我的个人微信(hansenones),并备注 "MoeMail" 加入微信交流群 +## 交流 + + + + + + + + + +
+ + + +
+ 关注公众号,了解更多项目进展以及AI, 区块链,独立开发资讯 + + 添加微信,备注 "MoeMail" 拉你进微信交流群 +
## 支持