From 0782e7f94f038d54518f98a9209dba79cd6da4be Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 30 Aug 2025 16:00:31 +0000 Subject: [PATCH] feat: update packages and add comprehensive Docker deployment guide - Update VERSION.txt to trigger fresh Docker build - Add detailed DOCKER_DEPLOYMENT.md with complete deployment guide - Include troubleshooting, security recommendations, and performance tips - Ensure users can successfully pull from ghcr.io/katelya77/katelyatv:latest - Support both single container and Docker Compose deployments --- DOCKER_DEPLOYMENT.md | 251 +++++++++++++++++++++++++++++++++++++++++++ VERSION.txt | 2 +- 2 files changed, 252 insertions(+), 1 deletion(-) create mode 100644 DOCKER_DEPLOYMENT.md diff --git a/DOCKER_DEPLOYMENT.md b/DOCKER_DEPLOYMENT.md new file mode 100644 index 0000000..020b92d --- /dev/null +++ b/DOCKER_DEPLOYMENT.md @@ -0,0 +1,251 @@ +# KatelyaTV Docker 部署指南 + +> 本文档提供 KatelyaTV 的完整 Docker 部署指南,确保用户能够成功拉取和部署镜像。 + +## 📦 镜像信息 + +- **镜像地址**: `ghcr.io/katelya77/katelyatv:latest` +- **支持架构**: linux/amd64, linux/arm64 +- **基础镜像**: node:20-alpine +- **暴露端口**: 3000 + +## 🚀 快速部署 + +### 1. 单容器部署(推荐新手) + +```bash +# 拉取最新镜像 +docker pull ghcr.io/katelya77/katelyatv:latest + +# 启动容器 +docker run -d \ + --name katelyatv \ + -p 3000:3000 \ + --env PASSWORD=your_secure_password \ + --restart unless-stopped \ + ghcr.io/katelya77/katelyatv:latest + +# 查看运行状态 +docker ps | grep katelyatv + +# 查看日志 +docker logs katelyatv +``` + +### 2. Docker Compose 部署(推荐生产环境) + +创建 `docker-compose.yml` 文件: + +```yaml +version: '3.8' + +services: + katelyatv: + image: ghcr.io/katelya77/katelyatv:latest + container_name: katelyatv + restart: unless-stopped + ports: + - "3000:3000" + environment: + - PASSWORD=your_secure_password + - SITE_NAME=KatelyaTV + volumes: + # 可选:挂载自定义配置 + # - ./config.json:/app/config.json:ro + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000"] + interval: 30s + timeout: 10s + retries: 3 +``` + +启动服务: + +```bash +# 启动服务 +docker-compose up -d + +# 查看状态 +docker-compose ps + +# 查看日志 +docker-compose logs -f +``` + +## 🗄️ 数据持久化部署(Redis) + +对于需要多用户支持和数据同步的场景: + +```yaml +version: '3.8' + +services: + katelyatv: + image: ghcr.io/katelya77/katelyatv:latest + container_name: katelyatv + restart: unless-stopped + ports: + - "3000:3000" + environment: + - USERNAME=admin + - PASSWORD=admin_password + - NEXT_PUBLIC_STORAGE_TYPE=redis + - REDIS_URL=redis://redis:6379 + - NEXT_PUBLIC_ENABLE_REGISTER=true + depends_on: + - redis + networks: + - katelyatv-network + + redis: + image: redis:7-alpine + container_name: katelyatv-redis + restart: unless-stopped + volumes: + - redis_data:/data + networks: + - katelyatv-network + command: redis-server --appendonly yes + +volumes: + redis_data: + +networks: + katelyatv-network: + driver: bridge +``` + +## 🔧 环境变量配置 + +| 变量名 | 描述 | 默认值 | 示例 | +|--------|------|--------|------| +| `PASSWORD` | 访问密码 | - | `my_secure_password` | +| `USERNAME` | 管理员用户名(Redis模式) | - | `admin` | +| `SITE_NAME` | 站点名称 | `KatelyaTV` | `我的影视站` | +| `NEXT_PUBLIC_STORAGE_TYPE` | 存储类型 | `localstorage` | `redis`, `d1`, `upstash` | +| `REDIS_URL` | Redis连接地址 | - | `redis://redis:6379` | +| `NEXT_PUBLIC_ENABLE_REGISTER` | 开放注册 | `false` | `true` | +| `NEXT_PUBLIC_SEARCH_MAX_PAGE` | 搜索最大页数 | `5` | `10` | + +## 🔍 故障排查 + +### 常见问题 + +1. **容器启动失败** + ```bash + # 查看详细错误信息 + docker logs katelyatv + + # 检查端口占用 + netstat -tulpn | grep :3000 + ``` + +2. **镜像拉取失败** + ```bash + # 确认镜像地址正确 + docker pull ghcr.io/katelya77/katelyatv:latest + + # 如果是私有仓库,需要先登录 + docker login ghcr.io + ``` + +3. **数据丢失问题** + - localStorage 模式:数据存储在浏览器,清除缓存会丢失 + - 建议使用 Redis 模式进行数据持久化 + +### 健康检查 + +```bash +# 检查容器状态 +docker ps + +# 检查容器健康状态 +docker inspect katelyatv | grep -A 5 "Health" + +# 测试应用响应 +curl -I http://localhost:3000 +``` + +## 🔄 更新升级 + +### 更新到最新版本 + +```bash +# 停止旧容器 +docker stop katelyatv +docker rm katelyatv + +# 拉取最新镜像 +docker pull ghcr.io/katelya77/katelyatv:latest + +# 启动新容器(使用相同配置) +docker run -d \ + --name katelyatv \ + -p 3000:3000 \ + --env PASSWORD=your_secure_password \ + --restart unless-stopped \ + ghcr.io/katelya77/katelyatv:latest +``` + +### Docker Compose 更新 + +```bash +# 拉取最新镜像 +docker-compose pull + +# 重新创建容器 +docker-compose up -d --force-recreate +``` + +## 🔐 安全建议 + +1. **设置强密码**: 使用复杂密码保护访问 +2. **限制访问**: 配置防火墙或反向代理限制访问来源 +3. **定期更新**: 保持镜像版本最新 +4. **数据备份**: 定期备份 Redis 数据(如果使用) +5. **监控日志**: 关注异常访问和错误日志 + +## 📊 性能优化 + +### 资源限制 + +```yaml +services: + katelyatv: + image: ghcr.io/katelya77/katelyatv:latest + deploy: + resources: + limits: + memory: 512M + cpus: '0.5' + reservations: + memory: 256M + cpus: '0.25' +``` + +### 反向代理(Nginx) + +```nginx +server { + listen 80; + server_name your-domain.com; + + location / { + proxy_pass http://localhost:3000; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} +``` + +## 🆘 获取帮助 + +- 📖 [项目文档](README.md) +- 🐛 [问题反馈](https://github.com/katelya77/KatelyaTV/issues) +- 💬 [讨论区](https://github.com/katelya77/KatelyaTV/discussions) + +--- + +**注意**: 本项目仅供学习和个人使用,请遵守当地法律法规。 \ No newline at end of file diff --git a/VERSION.txt b/VERSION.txt index c3eaf9c..651a3f9 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -20250928125318 \ No newline at end of file +20250830155949 \ No newline at end of file