Files
Cloud-Index/docs/guide/vercel.md
2025-11-09 14:21:55 +08:00

383 lines
7.7 KiB
Markdown
Raw Blame History

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