KatelyaTV/DOCKER_DEPLOYMENT.md

5.3 KiB
Raw Blame History

KatelyaTV Docker 部署指南

本文档提供 KatelyaTV 的完整 Docker 部署指南,确保用户能够成功拉取和部署镜像。

📦 镜像信息

  • 镜像地址: ghcr.io/katelya77/katelyatv:latest
  • 支持架构: linux/amd64, linux/arm64
  • 基础镜像: node:20-alpine
  • 暴露端口: 3000

🚀 快速部署

1. 单容器部署(推荐新手)

# 拉取最新镜像
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 文件:

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

启动服务:

# 启动服务
docker-compose up -d

# 查看状态
docker-compose ps

# 查看日志
docker-compose logs -f

🗄️ 数据持久化部署Redis

对于需要多用户支持和数据同步的场景:

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. 容器启动失败

    # 查看详细错误信息
    docker logs katelyatv
    
    # 检查端口占用
    netstat -tulpn | grep :3000
    
  2. 镜像拉取失败

    # 确认镜像地址正确
    docker pull ghcr.io/katelya77/katelyatv:latest
    
    # 如果是私有仓库,需要先登录
    docker login ghcr.io
    
  3. 数据丢失问题

    • localStorage 模式:数据存储在浏览器,清除缓存会丢失
    • 建议使用 Redis 模式进行数据持久化

健康检查

# 检查容器状态
docker ps

# 检查容器健康状态
docker inspect katelyatv | grep -A 5 "Health"

# 测试应用响应
curl -I http://localhost:3000

🔄 更新升级

更新到最新版本

# 停止旧容器
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 更新

# 拉取最新镜像
docker-compose pull

# 重新创建容器
docker-compose up -d --force-recreate

🔐 安全建议

  1. 设置强密码: 使用复杂密码保护访问
  2. 限制访问: 配置防火墙或反向代理限制访问来源
  3. 定期更新: 保持镜像版本最新
  4. 数据备份: 定期备份 Redis 数据(如果使用)
  5. 监控日志: 关注异常访问和错误日志

📊 性能优化

资源限制

services:
  katelyatv:
    image: ghcr.io/katelya77/katelyatv:latest
    deploy:
      resources:
        limits:
          memory: 512M
          cpus: '0.5'
        reservations:
          memory: 256M
          cpus: '0.25'

反向代理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;
    }
}

🆘 获取帮助


注意: 本项目仅供学习和个人使用,请遵守当地法律法规。