# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: lunatv-enhanced
spec:
    description: LunaTV Enhanced Edition - 全功能影视聚合播放平台，支持 Netflix 风格 HeroBanner、YouTube、网盘搜索、AI 推荐、短剧、IPTV 直播等 60+ 重大功能
    coverImage: https://raw.githubusercontent.com/SzeMeng76/LunaTV/main/public/logo.png
    icon: https://raw.githubusercontent.com/SzeMeng76/LunaTV/main/public/logo.png
    variables:
        - key: USERNAME
          type: STRING
          name: 管理员账号
          description: 管理员登录用户名，建议填写 admin
        - key: PASSWORD
          type: STRING
          name: 管理员密码
          description: 管理员登录密码，请设置强密码
    tags:
        - Entertainment
        - Video Streaming
        - Media Server
        - AI
        - IPTV
    readme: "# LunaTV Enhanced Edition\n\n\U0001F3AC **LunaTV Enhanced Edition** 是基于 MoonTV 深度二次开发的全功能影视聚合播放平台，持续开发至今，新增 **60+ 重大功能模块** 和 **400+ 细节优化**。\n\n## ✨ 核心亮点\n\n### \U0001F3A8 界面体验优化\n- **Netflix 风格 HeroBanner**：首页带预告片自动播放和背景图的 Netflix 风格横幅，支持 backdrop 占位符，豆瓣预告片 URL 过期自动刷新（localStorage 持久化 + 403 错误自动重试）\n- **Material UI Tabs CategoryBar**：直播和播放页面全新工业风分类选择器\n- **Netflix 风格徽章系统**：统一所有徽章（剧集徽章、通知徽章、来源指示器）为 Netflix 风格设计\n- **Glassmorphism 设计**：控制按钮采用玻璃态效果\n- **Modern Navigation UI**：桌面端横向顶部导航栏，移动端 Liquid Glass 底部导航\n\n### \U0001F916 AI 功能全面增强\n- **Streaming 传输**：流式响应，实时显示 AI 回答\n- **Orchestrator 编排器**：智能调度多个 AI 任务\n- **视频上下文支持**：整合豆瓣和 TMDB 数据，自动 TMDB 搜索\n- **Tavily 搜索模式**：无需 AI API 即可使用搜索功能，灵活 API 验证\n- **GPT-5/o 系列支持**：动态提示词，85-90% 输入延迟优化\n\n### \U0001F4C5 发布日历与即将上映\n- **2026 年发布数据爬虫**：自动抓取即将上映的影视内容\n- **豆瓣 24 小时缓存优化**：优化缓存策略，提升访问速度\n- **收藏即将上映**：支持收藏即将上映的内容，上映后自动变为可播放\n\n## \U0001F3AF 完整功能列表\n\n### 内容生态扩展\n- ✅ YouTube 集成（搜索、播放、直播，无 Cookie 域名支持）\n- ✅ 网盘搜索（PanSou 集成，高级筛选和缓存管理）\n- ✅ ACG 种子搜索（动漫资源获取渠道）\n- ✅ 短剧完整功能（搜索、播放、详情展示，专用移动端 API 代理，备用 API 自动跳集）\n- ✅ IPTV 直播（m3u/m3u8 订阅、EPG 节目单多源支持、直播源聚合、台标代理、频道搜索）\n- ✅ Bangumi 动漫集成（智能检测、API 集成、缓存机制）\n\n### 播放器功能强化\n- ✅ Liquid-glass 毛玻璃控制栏（12px 模糊背景，响应式按钮自适应）\n- ✅ 多人观影房功能（外部服务器集成的实时同步观影、房间管理、播放同步、源切换确认）\n- ✅ M3U8 下载功能（客户端 M3U8 视频下载、批量剧集下载）\n- ✅ 播放器缓冲优化（三种缓冲模式：省流、均衡、高质）\n- ✅ Netflix 风格智能速度测试（实时网络速度测试，智能提前停止机制，自动推荐最优缓冲模式）\n- ✅ Anime4K 超分辨率（WebGPU 加速的实时视频超分辨率）\n- ✅ 自定义广告过滤（支持自定义广告过滤规则代码）\n- ✅ Chromecast 投屏（智能浏览器检测）\n- ✅ iPad/iOS 优化（HLS.js 官方源码优化，智能设备检测）\n- ✅ 跳过片头片尾（实时标记按钮、可拖拽悬浮窗配置、剩余时间模式）\n- ✅ 直播 DVR 检测（播放器加载后自动检测 DVR/时移支持）\n- ✅ 选集分组滚动翻页（播放页选集支持滚动翻页，大量集数流畅浏览）\n\n### 智能系统\n- ✅ AI 智能助手（全局 AI 推荐按钮、视频推荐、YouTube 视频、视频链接解析）\n- ✅ TMDB 演员搜索（完整演员搜索、筛选、缓存）\n- ✅ 交互式演员作品查看器（播放页内联演员作品显示，2 小时缓存，TMDB 后备源）\n- ✅ 发布日历与即将上映（即将上映内容预览和追踪）\n- ✅ 豆瓣详情增强（完整评分、演职人员、首播日期、时长、制作信息、海报代理防止 403 错误）\n- ✅ 豆瓣评论集成（播放页显示豆瓣用户评论）\n- ✅ 名人头像与推荐（播放页显示名人头像、相似影片推荐）\n\n### 安全与存储\n- ✅ 多 Provider OIDC 支持（Google、Microsoft、GitHub、Facebook、WeChat、Apple、LinuxDo）\n- ✅ V2 用户存储系统（SHA256 加密、改进的用户管理和 OIDC 集成）\n- ✅ 成人内容管理（多级过滤系统、细粒度控制）\n- ✅ 用户等级系统和播放统计（等级徽章、统计仪表板）\n- ✅ TVBox 安全 API（Token 认证、多播放器支持）\n\n### 其他功能\n- ✅ 弹幕系统（腾讯、爱奇艺、优酷、B 站完整弹幕支持）\n- ✅ 虚拟滚动（react-window 2.2.0，流畅加载海量内容）\n- ✅ 响应式网格（2-8 列自适应，自动计算最优布局）\n- ✅ 移动端优化（减少 header 高度、更紧凑的布局设计）\n- ✅ 完结剧集集数显示（搜索和分类页面显示完结剧集的总集数）\n- ✅ 用户菜单功能（更新提醒、继续观看、收藏快速访问、TVBox 设置集成）\n- ✅ 登录界面现代化（动态随机壁纸、渐变卡片、响应式设计）\n- ✅ 返回顶部按钮（发布日历等长页面快速返回）\n\n## \U0001F4CB 部署后须知\n\n1. **访问管理后台**：\n   - 访问地址：`https://你的域名/admin`\n   - 使用你设置的管理员账号和密码登录\n\n2. **配置影视源**：\n   - 登录后台后，点击「源管理」\n   - 添加播放源和直播源\n   - ⚠️ **项目为空壳**：无内置播放源，需自行配置\n\n3. **设置域名**：\n   - 在 Zeabur 控制台为 `lunatv` 服务绑定域名\n   - 建议使用 HTTPS 域名\n\n4. **可选配置**：\n   - AI 推荐：在后台配置 OpenAI API Key\n   - OIDC 登录：在后台配置 OAuth Provider\n   - IPTV：添加 m3u 订阅源\n\n## \U0001F527 环境变量说明\n\n**必填项**（部署时设置）：\n- **USERNAME**: 管理员账号（建议填写：admin）\n- **PASSWORD**: 管理员密码（请设置强密码）\n\n**自动配置**（无需填写）：\n- `NEXT_PUBLIC_STORAGE_TYPE=kvrocks`\n- `KVROCKS_URL=redis://kvrocks:6666`\n\n## \U0001F4DA 更多信息\n\n- \U0001F4D6 [完整文档](https://github.com/SzeMeng76/LunaTV)\n- \U0001F4F1 [移动端 APP - Selene](https://github.com/MoonTechLab/Selene)\n- \U0001F4FA [TV 端 - OrionTV](https://github.com/zimplexing/OrionTV)\n- \U0001F4DD [完整更新日志](https://github.com/SzeMeng76/LunaTV/blob/main/CHANGELOG)\n\n## \U0001F4C4 许可协议\n\n本项目采用 CC BY-NC-SA 4.0 协议，禁止商业用途。\n\n---\n\n\U0001F389 **立即部署，开启你的影视聚合平台之旅！**\n"
    services:
        - name: kvrocks
          icon: https://avatars.githubusercontent.com/u/47359?s=48&v=4
          template: PREBUILT_V2
          spec:
            id: kvrocks
            source:
                image: apache/kvrocks:latest
            ports:
                - id: kvrocks
                  port: 6666
                  type: TCP
            volumes:
                - id: kvrocks-data
                  dir: /var/lib/kvrocks/db
            instructions:
                - title: KVRocks 数据库
                  content: Redis 兼容的持久化存储，用于存储用户数据、播放记录、收藏等
                - title: 内部连接地址
                  content: redis://kvrocks:6666
                - title: 数据持久化
                  content: 数据存储在 /var/lib/kvrocks/db，自动持久化
        - name: lunatv
          icon: https://raw.githubusercontent.com/SzeMeng76/LunaTV/main/public/logo.png
          template: PREBUILT_V2
          spec:
            id: lunatv
            source:
                image: ghcr.io/szemeng76/lunatv:latest
            ports:
                - id: web
                  port: 3000
                  type: HTTP
            volumes: []
            instructions:
                - title: "\U0001F389 部署成功！"
                  content: LunaTV Enhanced Edition 已成功部署
                - title: "\U0001F4CD 下一步操作"
                  content: |
                    1. 为此服务绑定域名（在 Zeabur 控制台操作）
                    2. 访问 https://你的域名/admin 进入管理后台
                    3. 使用你设置的管理员账号登录
                    4. 在后台添加播放源和直播源
                - title: 管理员账号
                  content: ${USERNAME}
                - title: 管理员密码
                  content: ${PASSWORD}
                - title: "\U0001F4DA 使用文档"
                  content: https://github.com/SzeMeng76/LunaTV
                - title: ⚠️ 重要提示
                  content: 项目为空壳，无内置播放源，需在后台自行配置播放源和直播源
            env:
                KVROCKS_URL:
                    default: redis://kvrocks:6666
                    expose: false
                NEXT_PUBLIC_STORAGE_TYPE:
                    default: kvrocks
                    expose: false
                PASSWORD:
                    default: ${PASSWORD}
                    expose: false
                USERNAME:
                    default: ${USERNAME}
                    expose: false
                VIDEO_CACHE_DIR:
                    default: /app/video-cache
                    expose: false
            configs: []
