本文档详细说明如何将项目部署到 Vercel。
- 访问 Supabase 并创建账号
- 创建新项目
- 在 SQL Editor 中执行以下 SQL 创建表:
CREATE TABLE posts (
id SERIAL PRIMARY KEY,
content TEXT NOT NULL,
image_path VARCHAR(500),
source VARCHAR(50) DEFAULT 'telegram',
is_filtered BOOLEAN DEFAULT FALSE,
filter_reason VARCHAR(200),
created_at TIMESTAMP DEFAULT NOW(),
feishu_notified BOOLEAN DEFAULT FALSE,
qq_notified BOOLEAN DEFAULT FALSE
);
-- 创建索引
CREATE INDEX idx_posts_created_at ON posts(created_at DESC);
CREATE INDEX idx_posts_is_filtered ON posts(is_filtered);- 获取项目的 URL 和 API Key
- 进入 Settings → API
- 复制
Project URL和anon publickey
- 访问 Vercel 并注册账号
- 建议使用 GitHub 账号登录,方便后续自动部署
# 如果还没有初始化 Git
git init
git add .
git commit -m "Initial commit"
# 创建 GitHub 仓库后,推送代码
git remote add origin https://github.com/your-username/your-repo.git
git branch -M main
git push -u origin main- 登录 Vercel Dashboard
- 点击 "Add New..." → "Project"
- 选择你的 GitHub 仓库
- Vercel 会自动检测到这是一个 Vite 项目
在 Vercel 项目设置中添加以下环境变量:
| 变量名 | 值 | 说明 |
|---|---|---|
SUPABASE_URL |
你的 Supabase URL | 从 Supabase Dashboard 获取 |
SUPABASE_KEY |
你的 Supabase Anon Key | 从 Supabase Dashboard 获取 |
TELEGRAM_WEBHOOK_SECRET |
自定义密钥 | 可选,用于 Telegram Webhook |
点击 "Deploy" 按钮,Vercel 会自动:
- 安装 Node.js 依赖
- 构建 Vue 前端
- 部署 Python Serverless Functions
- 分配域名
部署完成后,你会得到一个类似 https://your-project.vercel.app 的域名。
npm install -g vercelvercel login在项目根目录运行:
vercel按照提示完成部署:
- 选择或创建项目
- 确认项目设置
- 等待部署完成
# 添加 Supabase URL
vercel env add SUPABASE_URL
# 添加 Supabase Key
vercel env add SUPABASE_KEY
# 添加 Telegram Webhook Secret(可选)
vercel env add TELEGRAM_WEBHOOK_SECRET添加环境变量后,需要重新部署:
vercel --prod如果需要使用 Telegram Bot 功能:
部署完成后,你会得到一个 Vercel URL,例如:
https://your-project.vercel.app
使用以下命令设置 Webhook:
curl -X POST "https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-project.vercel.app/api/webhook",
"secret_token": "your-webhook-secret"
}'注意:
- 将
<YOUR_BOT_TOKEN>替换为你的 Telegram Bot Token - 将
your-project.vercel.app替换为你的实际域名 - 将
your-webhook-secret替换为你在环境变量中设置的密钥
curl "https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getWebhookInfo"访问你的 Vercel 域名,应该能看到:
- 页面正常加载
- 友情提示弹窗显示
- 帖子列表加载(如果数据库有数据)
访问 https://your-project.vercel.app/api/posts,应该返回 JSON 数据:
{
"success": true,
"count": 0,
"data": []
}配置完成后,每次推送代码到 GitHub 的 main 分支,Vercel 会自动:
- 检测到代码变更
- 重新构建项目
- 自动部署到生产环境
A: 检查环境变量是否正确配置:
- 进入 Vercel Dashboard → 你的项目 → Settings → Environment Variables
- 确认
SUPABASE_URL和SUPABASE_KEY已正确设置 - 重新部署项目
A: 检查以下几点:
- 确认 API 路由正确:
/api/posts - 检查浏览器控制台是否有 CORS 错误
- 确认 Serverless Functions 已正确部署
A: 检查以下几点:
- 确认
TELEGRAM_WEBHOOK_SECRET环境变量已设置 - 确认 Webhook URL 正确
- 使用
getWebhookInfo检查 Webhook 状态 - 查看 Vercel 的 Function Logs
A: 常见原因:
- Node.js 版本不兼容 - 在
package.json中指定版本 - 依赖安装失败 - 检查
package.json中的依赖 - 构建命令错误 - 确认
vercel.json配置正确
在 Vercel Dashboard 中启用 Analytics,监控:
- 页面加载时间
- API 响应时间
- 用户访问量
在 vercel.json 中添加缓存配置:
{
"headers": [
{
"source": "/api/posts",
"headers": [
{
"key": "Cache-Control",
"value": "s-maxage=60, stale-while-revalidate"
}
]
}
]
}如果使用图片,建议:
- 使用 Vercel Image Optimization
- 压缩图片大小
- 使用 WebP 格式
- 进入 Vercel Dashboard → 你的项目
- 点击 "Functions" 标签
- 选择具体的 Function 查看日志
- 进入 Vercel Dashboard → 你的项目
- 点击 "Deployments" 标签
- 选择具体的部署查看构建日志
Vercel 免费套餐包括:
- ✅ 100 GB 带宽/月
- ✅ 100 GB-小时 Serverless Function 执行时间
- ✅ 无限部署
- ✅ 自动 HTTPS
- ✅ 全球 CDN
对于个人项目,免费套餐完全够用。
如有问题,可以:
- 查看 Vercel 文档
- 查看 Supabase 文档
- 在项目 GitHub 仓库提 Issue