mirror of
https://github.com/beilunyang/moemail.git
synced 2026-05-24 09:40:00 +08:00
docs: Update deployment instructions in README
This commit is contained in:
108
README.md
108
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 触发时,只有文件发生变更的部分会被部署
|
||||
- 手动触发时,可以选择性地执行特定的部署任务
|
||||
- 每次部署都会重新部署主应用
|
||||
|
||||
[](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) 许可证
|
||||
|
||||
## 交流群
|
||||
<img src="https://pic.otaku.ren/20250221/AQAD8b8xG9vVwFV-.jpg" style="width: 400px;"/>
|
||||
<br />
|
||||
如二维码失效,请添加我的个人微信(hansenones),并备注 "MoeMail" 加入微信交流群
|
||||
## 交流
|
||||
<table>
|
||||
<tr>
|
||||
<td style="max-width: 360px">
|
||||
<img src="https://pic.otaku.ren/20250309/AQADAcQxGxQjaVZ-.jpg" width="300" />
|
||||
</td>
|
||||
<td style="max-width: 360px">
|
||||
<img src="https://pic.otaku.ren/20250309/AQADCMQxGxQjaVZ-.jpg" width="300" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
关注公众号,了解更多项目进展以及AI, 区块链,独立开发资讯
|
||||
</td>
|
||||
<td>
|
||||
添加微信,备注 "MoeMail" 拉你进微信交流群
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## 支持
|
||||
|
||||
|
||||
Reference in New Issue
Block a user