# 🚀 部署兼容性说明 ## 跳过片头片尾功能部署兼容性 我们的跳过片头片尾功能已经完全兼容各种部署方式,具体如下: ## 📋 功能概述 - ✅ **自动跳过片头片尾** - 智能检测并跳过重复内容 - ✅ **手动配置跳过段** - 用户可自定义跳过时间段 - ✅ **多剧集支持** - 每个剧集独立配置 - ✅ **多存储后端** - 支持 LocalStorage、Redis、D1、Upstash ## 🌐 部署方式兼容性 ### 1. Cloudflare Pages ✅ **Runtime**: Edge Runtime **配置要求**: 所有 API 路由必须使用 `export const runtime = 'edge';` ```typescript // ✅ 已正确配置 export const runtime = 'edge'; ``` **特性支持**: - ✅ 跳过配置 API (`/api/skip-configs`) - ✅ 所有存储后端(D1、Redis、Upstash) - ✅ 自动缓存优化 ### 2. Docker 部署 ✅ **Runtime**: Node.js Runtime (自动转换) **自动转换**: Dockerfile 会自动将 Edge Runtime 转换为 Node.js Runtime ```dockerfile # Dockerfile 中的自动转换逻辑 RUN find ./src -type f -name "route.ts" -print0 \ | xargs -0 sed -i "s/export const runtime = 'edge';/export const runtime = 'nodejs';/g" ``` **特性支持**: - ✅ 跳过配置 API - ✅ 所有存储后端 - ✅ 环境变量配置 - ✅ 健康检查 ### 3. Vercel 部署 ✅ **Runtime**: Edge Runtime / Node.js Runtime (自动检测) **配置**: 无需特殊配置,自动适配 **特性支持**: - ✅ 跳过配置 API - ✅ 所有存储后端 - ✅ Serverless 函数优化 ### 4. 其他部署方式 ✅ **Runtime**: Node.js Runtime **要求**: Node.js 18+ 环境 **支持的部署方式**: - ✅ 传统服务器部署 - ✅ PM2 进程管理 - ✅ Nginx 反向代理 - ✅ Kubernetes - ✅ Railway、Render 等云平台 ## 🗄️ 存储后端支持 ### LocalStorage (默认) ```bash # 无需额外配置,适用于单机部署 NEXT_PUBLIC_STORAGE_TYPE=localstorage ``` ### Redis ```bash # 高性能缓存存储 NEXT_PUBLIC_STORAGE_TYPE=redis REDIS_URL=redis://localhost:6379 ``` ### Cloudflare D1 ```bash # Cloudflare 原生数据库 NEXT_PUBLIC_STORAGE_TYPE=d1 ``` ### Upstash Redis ```bash # 无服务器 Redis NEXT_PUBLIC_STORAGE_TYPE=upstash UPSTASH_REDIS_REST_URL=https://xxx.upstash.io UPSTASH_REDIS_REST_TOKEN=xxx ``` ## 🔧 环境变量配置 ### 核心配置 ```bash # 存储类型 (必需) NEXT_PUBLIC_STORAGE_TYPE=localstorage|redis|d1|upstash # Docker 环境标识 (Docker 部署时自动设置) DOCKER_ENV=true ``` ### 存储特定配置 ```bash # Redis REDIS_URL=redis://localhost:6379 REDIS_PASSWORD=optional # Upstash UPSTASH_REDIS_REST_URL=https://xxx.upstash.io UPSTASH_REDIS_REST_TOKEN=xxx # D1 (Cloudflare 自动注入) # 无需手动配置 ``` ## 🚀 快速部署指南 ### Cloudflare Pages 1. 连接 GitHub 仓库 2. 设置构建命令: `npm run build` 3. 设置输出目录: `.next` 4. 配置环境变量 (可选) ### Docker ```bash # 构建镜像 docker build -t katelyatv . # 运行容器 docker run -p 3000:3000 \ -e NEXT_PUBLIC_STORAGE_TYPE=localstorage \ katelyatv ``` ### Vercel ```bash # 一键部署 npx vercel # 或使用 Vercel CLI vercel --prod ``` ## 🧪 兼容性测试 运行兼容性测试脚本: ```bash # 测试所有部署方式的兼容性 node scripts/test-docker-compatibility.js ``` ## ⚠️ 注意事项 1. **Edge Runtime 限制**: 在 Cloudflare Pages 上,所有 API 路由必须使用 Edge Runtime 2. **存储选择**: 根据部署环境选择合适的存储后端 3. **环境变量**: 确保在生产环境中正确配置存储相关环境变量 4. **缓存策略**: LocalStorage 仅适用于单机部署,集群部署请使用 Redis ## 📊 性能建议 ### 小型部署 (< 1000 用户) - **推荐**: LocalStorage - **优点**: 零配置,性能良好 - **缺点**: 仅支持单机 ### 中型部署 (1000-10000 用户) - **推荐**: Redis - **优点**: 高性能,支持集群 - **缺点**: 需要 Redis 服务器 ### 大型部署 (> 10000 用户) - **推荐**: Cloudflare D1 + Redis 缓存 - **优点**: 高可用,全球分布 - **缺点**: 依赖 Cloudflare ## 🆘 故障排除 ### 常见问题 1. **API 路由 404** - 检查 Edge Runtime 配置 - 确认部署环境支持 2. **跳过配置保存失败** - 检查存储后端配置 - 验证环境变量设置 3. **Docker 构建失败** - 确认 Node.js 版本 ≥ 18 - 检查 pnpm 安装 4. **Cloudflare Pages 部署失败** - 确认所有 API 路由有 Edge Runtime 配置 - 检查构建命令和输出目录 --- 🎉 **恭喜!** 您的跳过片头片尾功能已完全兼容所有主流部署方式!