mirror of
https://github.com/RhenCloud/Cloud-Index.git
synced 2025-12-06 15:26:10 +08:00
7.7 KiB
7.7 KiB
title, createTime, permalink
| title | createTime | permalink |
|---|---|---|
| Vercel 部署 | 2025/11/09 00:26:55 | /guide/deployment/vercel |
Vercel 部署
在 Vercel 上快速部署 Cloud Index 的完整指南。
优势
- ✅ 零配置部署
- ✅ 自动 HTTPS
- ✅ 全球 CDN 加速
- ✅ 自动扩展
- ✅ 免费额度充足
- ✅ 与 GitHub 无缝集成
前置要求
- GitHub 账户
- Vercel 账户(注册免费账户)
- 存储后端配置(R2、S3 或 GitHub)
部署步骤
第 1 步:Fork 项目
访问 Cloud Index GitHub 仓库,点击 "Fork" 按钮。
第 2 步:连接到 Vercel
- 登录 Vercel 控制台
- 点击 "Add New..." → "Project"
- 点击 "Import Git Repository"
- 连接 GitHub 账户
- 选择你 Fork 的仓库
第 3 步:配置项目
在 Import 页面:
- Project Name - 输入项目名称(如
cloud-index) - Framework - 选择 "Python" 或保持默认
- Root Directory - 保持默认(根目录)
第 4 步:配置环境变量
点击 "Environment Variables",添加以下变量:
基础配置:
STORAGE_TYPE = r2
R2 存储配置:
R2_ENDPOINT_URL = https://your-account-id.r2.cloudflarestorage.com
R2_BUCKET_NAME = your-bucket-name
ACCESS_KEY_ID = your_access_key
SECRET_ACCESS_KEY = your_secret_key
R2_PUBLIC_URL = https://pub-your-bucket.r2.dev
或 S3 存储配置:
STORAGE_TYPE = s3
S3_BUCKET_NAME = your-bucket-name
S3_REGION = us-east-1
ACCESS_KEY_ID = your_access_key
SECRET_ACCESS_KEY = your_secret_key
或 GitHub 存储配置:
STORAGE_TYPE = github
GITHUB_REPO_OWNER = your-username
GITHUB_REPO_NAME = your-repo-name
GITHUB_ACCESS_TOKEN = your_github_token
GITHUB_RAW_PROXY_URL = https://raw.ghproxy.com
应用配置:
FLASK_ENV = production
THUMB_TTL_SECONDS = 604800
第 5 步:部署
- 检查配置无误
- 点击 "Deploy" 按钮
- 等待部署完成
部署完成后,Vercel 会提供一个 URL(如 https://cloud-index.vercel.app)
配置自定义域名
1. 添加域名
- 进入项目设置 → "Domains"
- 输入你的域名(如
cloud.example.com) - 点击 "Add"
2. 配置 DNS
Vercel 会提供 DNS 记录,按照说明在你的域名提供商处配置:
- CNAME 记录指向 Vercel
- 或使用 A 记录指向 Vercel IP
3. 验证和启用
DNS 生效后(通常需要几分钟到几小时),Vercel 会自动验证并启用 HTTPS。
自动部署
当你推送代码到 GitHub 时,Vercel 会自动部署新版本。
触发部署
提交代码到 main 分支:
git add .
git commit -m "Update configuration"
git push origin main
Vercel 会自动开始部署。你可以在 Vercel Dashboard 中查看部署进度。
更新配置
方式一:通过 Vercel Dashboard
- 进入项目设置
- 选择 "Environment Variables"
- 编辑相应变量
- 需要重新部署时,点击 Redeploy
方式二:通过代码
在项目根目录创建 vercel.json 文件(已包含):
{
"version": 2,
"builds": [
{
"src": "app.py",
"use": "@vercel/python"
},
{
"src": "/static/**",
"use": "@vercel/static"
}
],
"routes": [
{
"src": "/(.*)",
"dest": "app.py"
}
]
}
编辑后推送到 GitHub,Vercel 会自动重新部署。
日志查看
查看部署日志
- 进入项目
- 点击 "Deployments" 选项卡
- 选择相应的部署
- 查看 "Logs" 中的详细信息
查看实时日志
- 进入项目
- 点击 "Functions" 选项卡
- 选择
app.py - 查看实时日志
使用 Vercel CLI
# 安装 CLI
npm i -g vercel
# 登录
vercel login
# 查看日志
vercel logs <project-url>
# 实时日志
vercel logs <project-url> --follow
性能优化
1. 启用 Edge Caching
在 vercel.json 中配置缓存头:
"routes": [
{
"src": "/static/(.*)",
"headers": {
"cache-control": "public, max-age=86400, immutable"
},
"dest": "app.py"
},
{
"src": "/(.*)",
"dest": "app.py"
}
]
2. 优化缓存设置
增大缩略图缓存时间(在 Environment Variables):
THUMB_TTL_SECONDS = 2592000 # 30 天
3. 使用 Vercel Analytics
- 进入项目设置
- 选择 "Analytics"
- 启用 Vercel Analytics
可以实时监控应用性能和用户行为。
监控和告警
Vercel Monitoring
在项目设置中配置告警:
- 进入项目 → "Settings" → "Notifications"
- 设置部署失败时的通知
- 选择通知方式(Email、Slack 等)
错误追踪
Vercel 自动集成错误追踪。通过以下方式查看:
- 进入 "Functions" 选项卡
- 查看错误率和详细错误信息
限制和配额
计算
- 免费版: 100GB-Hours/月
- 每次冷启动 < 10 秒
- 单个函数最大执行时间 900 秒
存储
- 缓存: 512MB(临时)
- 函数空间: 50MB 代码
带宽
- 免费版: 100GB/月
费用估算
假设月均 1 万次请求,每次执行 500ms:
- 计算: 5,000 秒 / 1,000 = 5GB-Hours(远低于 100GB 免费额度)
- 预计费用: 免费 ✅
故障排除
部署失败
检查:
vercel.json配置是否正确requirements.txt是否包含所有依赖- Python 版本是否兼容(推荐 3.9+)
环境变量未生效
- 确保在 Environment Variables 中正确配置
- 重新部署应用(Redeploy)
- 清理浏览器缓存
冷启动慢
- Vercel 自动缓存函数以加速启动
- 增加使用频率会自动改善冷启动时间
- 无需手动优化
存储无法连接
检查:
- 环境变量是否正确
- 凭证是否有效
- 防火墙/安全组是否允许访问
缓存空间不足
清理或减少缓存:
- 减小缩略图生成质量
- 减少缓存过期时间
- 定期手动清理
成本优化建议
- 使用 Cloudflare R2 而不是 S3(成本更低)
- 启用缓存 减少存储访问次数
- 监控使用量 避免超限
- 使用付费计划 如果超过免费额度($20/月 Pro 计划)
与本地开发保持同步
拉取最新变化
git pull origin main
测试本地更改
python app.py
# 访问 http://localhost:5000
推送到 Vercel
git add .
git commit -m "Bug fix or feature"
git push origin main
Vercel 会自动检测并部署。
回滚部署
如果新部署出现问题:
- 进入项目 → "Deployments"
- 选择之前的稳定版本
- 点击 "Redeploy to Production"
应用会立即回滚到之前的版本。
获取帮助
- 📖 Vercel 文档
- 🐛 提交 Issue
- 💬 讨论区
- 📧 Email: i@rhen.cloud
总结
| 功能 | 本地 | Docker | Vercel |
|---|---|---|---|
| 部署难度 | 简单 | 中等 | 简单 |
| 成本 | 自有服务器 | 中等 | 小 |
| 性能 | 取决于服务器 | 好 | 优秀 |
| 扩展性 | 有限 | 中等 | 自动 |
| 推荐用途 | 开发测试 | 生产环境 | 中小型应用 |
Vercel 最适合需要快速部署、无需运维的应用!🚀