4.6 KiB
4.6 KiB
海古纪网站 - 项目迁移指南
本文档说明如何将整个项目完整迁移到新的负责人账号下。
一、GitHub
1.1 复制仓库
方法一:Fork(推荐)
新负责人用自己的 GitHub 账号打开原仓库:
https://github.com/potaser/haiguji-website
点击右上角 Fork → 选择自己的账号即可。
方法二:导入新仓库
- 登录自己的 GitHub,点右上角 + → Import repository
- 填入原仓库 URL:
https://github.com/potaser/haiguji-website - 设置新仓库名称(如
haiguji-website),点 Begin import
1.2 启用 GitHub Pages
- 进入新仓库 → Settings → Pages
- Branch 选
master→ 文件夹选/ (root)→ Save - 等待 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 注册账号
- 打开 https://resend.com
- 点击 Sign Up,建议用 Sign in with GitHub(省事)
- 注册完成后进入后台
2.2 获取 API Key
- 左侧菜单 → API Keys
- 点击 Create API Key
- 给 key 起个名字(如
haiguji-contact),点 Create - 复制生成的 API Key(格式如
re_xxxxxxxxxxxx)
⚠ 这个 Key 只在创建时显示一次,请立刻复制保存。
三、Render(表单后端)
3.1 注册账号
- 打开 https://render.com
- 点击 Sign Up → GitHub(用新负责人的 GitHub 登录)
- 授权 Render 访问新仓库
3.2 部署 Web Service
- 点击 New + → Web Service
- Connect repository → 选择刚才 fork/导入的新仓库
- 填写以下参数:
| 字段 | 值 |
|---|---|
| Name | haiguji-website |
| Branch | master |
| Runtime | Node |
| Build Command | npm install |
| Start Command | node api-server.js |
| Plan | Free |
- 点 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环境变量