基于 EdgeOne + Supabase 的单一路径部署方案
用户 → EdgeOne Edge Functions → Supabase PostgreSQL
- 访问 https://supabase.com/signup
- 创建新项目
warden-worker - 选择区域:Northeast Asia (Tokyo) 或 Southeast Asia (Singapore)
- 等待项目初始化完成(2-5 分钟)
- 进入项目 → 左侧菜单 SQL Editor → New Query
- 复制
supabase/migrations/001_init.sql全部内容 - 粘贴并点击 Run
- 确认看到
Success. No rows returned
进入 Settings → API,复制以下 3 个密钥:
SUPABASE_URL = https://your-project-id.supabase.co
SUPABASE_ANON_KEY = eyJhbGci...
SUPABASE_SERVICE_ROLE_KEY = eyJhbGci...
# 生成两个不同的密钥
openssl rand -base64 64 # JWT_SECRET
openssl rand -base64 64 # JWT_REFRESH_SECRET- 访问 https://console.cloud.tencent.com
- 注册账号并完成实名认证
- 搜索 "EdgeOne" → 点击 "立即开通" → 选择免费版
- 左侧菜单 Pages → 创建项目
- 选择 导入 Git 仓库 → 绑定 GitHub
- 选择仓库:
your-username/warden-worker - 选择分支:
main - Framework:Auto-detect
- 点击 创建项目
进入项目 → 环境变量 → 依次添加:
| 变量名 | 值 | 说明 |
|---|---|---|
SUPABASE_URL |
https://your-project-id.supabase.co |
Supabase 地址 |
SUPABASE_ANON_KEY |
eyJhbGci... |
客户端密钥 |
SUPABASE_SERVICE_ROLE_KEY |
eyJhbGci... |
服务端密钥(密文) |
JWT_SECRET |
64字符随机字符串 |
JWT 签名密钥(密文) |
JWT_REFRESH_SECRET |
另一个64字符随机字符串 |
JWT 刷新密钥(密文) |
ALLOWED_EMAILS |
user@example.com,*@company.com |
允许注册的邮箱 |
CORS_ALLOWED_ORIGINS |
https://warden.yourdomain.com |
CORS 允许的域名 |
APP_ENV |
production |
运行环境 |
LOG_LEVEL |
info |
日志级别 |
进入 路由配置 → 添加:
路由模式: /identity/* → 处理函数: identity-handler
路由模式: /api/* → 处理函数: api-handler
进入 设置 → 访问密钥 → 创建密钥:
- 名称:
GitHub Actions Deploy - 权限:Deploy
- 过期时间:1 年
打开仓库 → Settings → Secrets and variables → Actions → New repository secret
添加以下 Secrets:
| Secret 名称 | 值 | 说明 |
|---|---|---|
EDGEONE_API_TOKEN |
e1at_xxxxxx |
EdgeOne API Token |
EDGEONE_PROJECT_ID |
your-project-id |
从部署 URL 提取 |
EDGEONE_DEPLOY_URL |
https://your-project.pages.edgeone.com |
部署 URL |
确认 .github/workflows/edgeone-deploy.yml 文件存在且配置正确。
推送代码到 main 分支即可自动触发:
git add .
git commit -m "部署到 EdgeOne"
git push origin main- 打开仓库 → Actions 标签
- 找到 Deploy to EdgeOne workflow
- 点击 Run workflow → 选择
main分支 → Run workflow
部署完成后:
- 访问部署 URL:
https://your-project.pages.edgeone.com - 访问
https://your-project.pages.edgeone.com/api/config测试 API - 在 EdgeOne 控制台查看部署日志
- EdgeOne 控制台 → 项目 → 域名 → 添加域名
- 输入域名:
warden.yourdomain.com - 复制 DNS 配置:
类型: CNAME 主机记录: warden 记录值: your-project.pages.edgeone.com
在你的域名 DNS 提供商添加上述 CNAME 记录。
- 访问
https://warden.yourdomain.com - 查看浏览器地址栏确认 HTTPS 生效
- Supabase 项目创建完成
- 数据库迁移已执行
- API 密钥已获取并保存
- JWT 密钥已生成
- EdgeOne 账号已开通
- Pages 项目已创建
- GitHub 仓库已绑定
- 所有环境变量已配置
- 路由规则已设置
- API Token 已创建
- GitHub Secrets 已添加
- 首次部署成功
- API 测试通过
- 域名已配置(可选)
- 检查 GitHub Actions 日志
- 确认所有 Secret 配置正确
- 验证 API Token 未过期
检查 JWT_SECRET 配置是否正确,确保与 EdgeOne 环境变量一致。
检查 ALLOWED_EMAILS 配置,确保邮箱在白名单中。
- EdgeOne 控制台:查看 QPS、响应时间、错误率
- Supabase Dashboard:查看数据库性能、慢查询