添加迁移指南 MIGRATION.md
This commit is contained in:
+155
@@ -0,0 +1,155 @@
|
|||||||
|
# 海古纪网站 - 项目迁移指南
|
||||||
|
|
||||||
|
> 本文档说明如何将整个项目完整迁移到新的负责人账号下。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、GitHub
|
||||||
|
|
||||||
|
### 1.1 复制仓库
|
||||||
|
|
||||||
|
**方法一:Fork(推荐)**
|
||||||
|
|
||||||
|
新负责人用自己的 GitHub 账号打开原仓库:
|
||||||
|
```
|
||||||
|
https://github.com/potaser/haiguji-website
|
||||||
|
```
|
||||||
|
点击右上角 **Fork** → 选择自己的账号即可。
|
||||||
|
|
||||||
|
**方法二:导入新仓库**
|
||||||
|
|
||||||
|
1. 登录自己的 GitHub,点右上角 **+** → **Import repository**
|
||||||
|
2. 填入原仓库 URL:`https://github.com/potaser/haiguji-website`
|
||||||
|
3. 设置新仓库名称(如 `haiguji-website`),点 **Begin import**
|
||||||
|
|
||||||
|
### 1.2 启用 GitHub Pages
|
||||||
|
|
||||||
|
1. 进入新仓库 → **Settings** → **Pages**
|
||||||
|
2. **Branch** 选 `master` → 文件夹选 `/ (root)` → **Save**
|
||||||
|
3. 等待 1-2 分钟,出现绿色提示:
|
||||||
|
```
|
||||||
|
Your site is live at https://新用户名.github.io/haiguji-website/
|
||||||
|
```
|
||||||
|
**这个网址就是新网站地址。**
|
||||||
|
|
||||||
|
### 1.3 修改 CORS 配置
|
||||||
|
|
||||||
|
仓库中的 `api-server.js` 默认 CORS 限制为原域名,新负责人需要将 `api-server.js` 中的 `CORS_ORIGIN` 改为自己的 GitHub Pages 域名:
|
||||||
|
```
|
||||||
|
CORS_ORIGIN = 'https://新用户名.github.io'
|
||||||
|
```
|
||||||
|
或者在 Render 环境变量中设置 `CORS_ORIGIN`。
|
||||||
|
|
||||||
|
> ⚠ 如果不改,浏览器会因跨域限制导致表单提交失败。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、Resend(邮件发送)
|
||||||
|
|
||||||
|
### 2.1 注册账号
|
||||||
|
|
||||||
|
1. 打开 https://resend.com
|
||||||
|
2. 点击 **Sign Up**,建议用 **Sign in with GitHub**(省事)
|
||||||
|
3. 注册完成后进入后台
|
||||||
|
|
||||||
|
### 2.2 获取 API Key
|
||||||
|
|
||||||
|
1. 左侧菜单 → **API Keys**
|
||||||
|
2. 点击 **Create API Key**
|
||||||
|
3. 给 key 起个名字(如 `haiguji-contact`),点 **Create**
|
||||||
|
4. **复制生成的 API Key**(格式如 `re_xxxxxxxxxxxx`)
|
||||||
|
|
||||||
|
> ⚠ 这个 Key 只在创建时显示一次,请立刻复制保存。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、Render(表单后端)
|
||||||
|
|
||||||
|
### 3.1 注册账号
|
||||||
|
|
||||||
|
1. 打开 https://render.com
|
||||||
|
2. 点击 **Sign Up** → **GitHub**(用新负责人的 GitHub 登录)
|
||||||
|
3. 授权 Render 访问新仓库
|
||||||
|
|
||||||
|
### 3.2 部署 Web Service
|
||||||
|
|
||||||
|
1. 点击 **New +** → **Web Service**
|
||||||
|
2. **Connect repository** → 选择刚才 fork/导入的新仓库
|
||||||
|
3. 填写以下参数:
|
||||||
|
|
||||||
|
| 字段 | 值 |
|
||||||
|
|---|---|
|
||||||
|
| Name | `haiguji-website` |
|
||||||
|
| Branch | `master` |
|
||||||
|
| Runtime | `Node` |
|
||||||
|
| Build Command | `npm install` |
|
||||||
|
| Start Command | `node api-server.js` |
|
||||||
|
| Plan | **Free** |
|
||||||
|
|
||||||
|
4. 点 **Create Web Service**,等待部署完成
|
||||||
|
|
||||||
|
### 3.3 配置环境变量
|
||||||
|
|
||||||
|
部署完成后,进入 **Dashboard** → 点击 Web Service → **Environment** 选项卡,添加以下变量:
|
||||||
|
|
||||||
|
| 变量 | 值 | 说明 |
|
||||||
|
|---|---|---|
|
||||||
|
| `RESEND_KEY` | `re_xxxxxxxxxxxx` | Resend API Key |
|
||||||
|
| `MAIL_TO` | `新负责人邮箱@xxx.com` | 接收表单的邮箱 |
|
||||||
|
| `CORS_ORIGIN` | `https://新用户名.github.io` | 允许提交表单的网站域名 |
|
||||||
|
| `SUMMARY_INTERVAL` | `15` | 汇总间隔(分钟),默认15 |
|
||||||
|
|
||||||
|
添加完成后,点右侧 **Manual Deploy → Deploy latest commit** 使环境变量生效。
|
||||||
|
|
||||||
|
### 3.4 验证部署
|
||||||
|
|
||||||
|
部署完成后,查看 **Logs** 应能看到:
|
||||||
|
```
|
||||||
|
API server running on port 10000
|
||||||
|
✅ 有表单提交后 15 分钟发送汇总邮件至 新负责人邮箱@xxx.com
|
||||||
|
```
|
||||||
|
|
||||||
|
**访问网站** `https://新用户名.github.io/haiguji-website/`,提交一次联系表单测试。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、整体架构
|
||||||
|
|
||||||
|
```
|
||||||
|
用户访问 ──→ GitHub Pages(展示网页)
|
||||||
|
│
|
||||||
|
提交联系表单
|
||||||
|
↓
|
||||||
|
Render(处理表单、存数据)
|
||||||
|
│
|
||||||
|
每15分钟汇总
|
||||||
|
↓
|
||||||
|
Resend API(发送邮件)
|
||||||
|
│
|
||||||
|
↓
|
||||||
|
新负责人邮箱收信
|
||||||
|
```
|
||||||
|
|
||||||
|
| 服务 | 用途 | 费用 |
|
||||||
|
|---|---|---|
|
||||||
|
| GitHub Pages | 托管网页文件 | 免费 |
|
||||||
|
| Render | 处理表单提交、定时汇总 | 免费(有冷启动延迟) |
|
||||||
|
| Resend | 发送邮件通知 | 免费 100封/天 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、常见问题
|
||||||
|
|
||||||
|
**Q:Render 免费版会休眠,第一次访问很慢?**
|
||||||
|
A:是的。自由实例 15 分钟无请求会休眠,首次请求需要等待 30-60 秒唤醒。表单提交不受影响,提交后会继续处理。
|
||||||
|
|
||||||
|
**Q:换邮箱需要改代码吗?**
|
||||||
|
A:不需要。直接在 Render Environment 中修改 `MAIL_TO` 和 `RESEND_KEY` 后重新部署即可。
|
||||||
|
|
||||||
|
**Q:怎么查看已提交的表单数据?**
|
||||||
|
A:Render 工作目录下有 `data/contact-messages.json` 文件,可通过 Render 的 **Shell** 终端查看。
|
||||||
|
|
||||||
|
**Q:部署失败怎么办?**
|
||||||
|
A:检查 Render 的 **Logs** 看具体报错信息。常见原因:
|
||||||
|
- `npm install` 超时 → 重新部署一次
|
||||||
|
- 端口冲突 → 无需处理,Render 自动分配 `PORT` 环境变量
|
||||||
Reference in New Issue
Block a user