一、前言

大家好,我是攻城狮阿程。原本是想写一篇文章专门介绍一下 MoonTV(LunaTV)的,结果项目作者加入了授权码导致项目未通过开源审查被归档了。

于是转而安利一个新的在线追剧项目给大家,今天介绍的是一款自「MoonTV」演进而来,为其二创/继承版本,持续维护与改进功能与体验的个人跨平台影视聚合播放器-KatelyaTV。

码字不易,喜欢我的教程欢迎各位多提建议多评论,畅所欲言,涉及破解、打倒美帝走近科学和资源分享的教程容易被和谐,也欢迎各位关注我的公众号和博客,以防走丢。

公众号:攻城狮阿程

知乎:攻城狮阿程

小红书:南星北月

个人博客:strider1230.cn

淘宝:阿程数码

抖音:南星北月

B站:-南星北月-

1.1 软件介绍

KatelyaTV 是一个开箱即用的、跨平台的影视聚合播放器。它基于 Next.js 14 + Tailwind CSS + TypeScript 构建,支持多资源搜索、在线播放、收藏同步、播放记录、本地/云端存储,让你可以随时随地畅享海量免费影视内容。

1.2 软件特点

KatelyaTV 主要有以下 10 个特色:

  • 🔍 多源聚合搜索:一次搜索立刻返回全源结果,支持电影、电视剧、综艺等多种类型。

  • 📄 丰富详情页:支持剧集列表、演员、年份、简介等完整信息展示,集成豆瓣评分和热门推荐。

  • ▶️ 流畅在线播放:集成 HLS.js & ArtPlayer,支持多种视频格式,自动跳过广告切片。

  • 📺 观看历史记录:智能记录播放进度,支持断点续播,多设备同步观看状态。

  • ❤️ 收藏 + 继续观看:支持 Redis/D1/Upstash 存储,多端同步进度,个性化推荐。

  • 📱 PWA 支持:离线缓存、安装到桌面/主屏,移动端原生体验,支持推送通知。

  • 🌗 响应式布局:桌面侧边栏 + 移动底部导航,自适应各种屏幕尺寸,支持深色模式。

  • 👥 多用户系统:支持用户注册、登录、权限管理,数据隔离和同步。

  • 🚀 极简部署:一条 Docker 命令即可将完整服务跑起来,或免费部署到 VercelCloudflare

  • 🎨 现代化UI:基于 Tailwind CSS 构建,支持主题切换,流畅的动画效果。

1.3 适用人群

  • 个人影视爱好者:用户可以通过 KatelyaTV 搜索和观看各类影视内容,享受个性化的观看体验。

  • 开发与测试:开发者可以利用该项目的框架进行二次开发和功能扩展。

  • 小型团队的媒体管理:适合需要管理和分享影视资源的小团队。

1.4 部署容器前你可能需要一块固态硬盘

我教程内展示的容器都是配置在固态硬盘上的,建议想多搭容器及虚拟机的朋友在执行教程前先准备一块固态硬盘,容器、虚拟机安装在固态硬盘的好处如下:

  • 不会干扰机械硬盘的休眠,使得机械硬盘始终扮演数据保存的角色

  • 部署在固态硬盘内的容器、虚拟机调用以及响应的速度都比机械硬盘好

  • 容器若发生泄露,不会污染、破坏你的机械硬盘内的数据

1.5 M.2接口 SSD 固态硬盘的适配

以极空间为例,Z4系列的M.2接口支持高速存储只读缓存等功能,如果是要在固态硬盘内部署虚拟机、容器服务等,需要选择高速存储功能;

  • 仅支持M.2接口 NVMe 2280 的SSD固态硬盘,其中2280指的是长度;

  • 官方说由于PCIe4.0自身的兼容性问题,极空间暂时不支持PCIe4.0的SSD,但是实验下来是支持PCIe4.0的固态的,只是安装上去以后该固态硬盘的温度会比PCIe3.0的固态硬盘高10℃左右,因此买的时候要还是建议选择PCIe3.0的SSD,但由于PCIe3.0的固态硬盘几乎均已停产,所以还是老老实实去买PCIe4.0的固态硬盘吧

  • 设置只读缓存时,Z4系列8G-16G内存的产品建议选购256G容量;16G及以上内存的产品建议选购512G容量;(PS:极空间Z4Pro 是支持单根 DDR5 64G 4800MHz的笔记本电脑内存哦)

  • 设置高速存储时,SSD不得小于32GB,最大支持4T;

  • 建议选购大品牌的SSD,这里推荐:致钛TiPlus7000 1TB/2TB,京东和淘宝上都有货源

* 请选择耐用 SSD。由于 SSD 的寿命受限于有限的写入次数,请确保使用耐用性更高的 SSD,以防止潜在风险。

1.6 应用截图

二、部署 KatelyaTV 容器

官方推荐使用 Redis 版本,可以支持多用户、跨设备数据同步、完整的用户权限管理,因此我以极空间 NAS 为例部署。

2.1 config.json 获取

容器若想成功运行是需要有内置源的,但现在作者已经取消,需要自己去下载。

config文件写法参考如下:

{
  "cache_time": 7200,
  "api_site": {
    "example_test": {
      "api": "https://example.com/api.php/provide/vod",
      "name": "测试视频源",
      "detail": "https://example.com"
    },
    "demo_site1": {
      "api": "https://your-api-domain.com/api.php/provide/vod", 
      "name": "示例视频源1",
      "detail": "https://your-domain.com"
    }
  }
}

2.2 Docker-Compose 方式部署

1️⃣ 打开极空间 Docker 程序界面,就可以看到左侧边栏出现了 Compose 选项卡。

2️⃣ 在 Docker-Compose 界面点击新增项目按钮。

3️⃣ 在项目名称处填写容器应用名,将下方我配好的 Compose 代码复制黏贴进下图对应位置,勾选创建项目后立即启动,最后点击创建按钮完成配置,耐心等待容器镜像拉取即可。

截图内参数如下:

services:
  katelyatv:
    image: ghcr.io/katelya77/katelyatv:latest
    container_name: katelyatv
    restart: unless-stopped
    ports:
    # 下方端口号可以随意定义,不一定非要用示例端口
      - '3000:3000'
    # 可选:挂载自定义配置和持久化数据
    volumes:
      - /tmp/zfsv3/nvmeXX/你的极空间账号/data/Docker/KatelyaTV/config.json:/app/config.json:ro
      - /tmp/zfsv3/nvmeXX/你的极空间账号/data/Docker/KatelyaTV:/app/logs
    environment:
      # 基础配置
      - SITE_NAME=KatelyaTV 影视站
      - ANNOUNCEMENT=支持多用户注册,请合理使用!
      
      # 管理员账号(重要!)
      - USERNAME=admin
      - PASSWORD=admin123456
      
      # Redis 存储配置
      - NEXT_PUBLIC_STORAGE_TYPE=redis
      - REDIS_URL=redis://katelyatv-redis:6379
      
      # 用户功能
      - NEXT_PUBLIC_ENABLE_REGISTER=true
      
      # 可选:搜索配置
      - NEXT_PUBLIC_SEARCH_MAX_PAGE=8
    depends_on:
      katelyatv-redis:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

  katelyatv-redis:
    image: redis:7-alpine
    container_name: katelyatv-redis
    restart: unless-stopped
    # 可选:端口映射(用于外部访问 Redis)
    # ports:
    #   - '6379:6379'
    volumes:
      # Redis 数据持久化
      - /tmp/zfsv3/nvme12/17317560454/data/Docker/KatelyaTV/data:/data
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 3s
      retries: 3
      start_period: 10s
    command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru

三、 程序测试

3.1 测试登录程序

使用浏览器打开你极空间的“IP : KatelyaTV 端口号:3000(容器端口默认为3000),能够看到下图所示界面说明 KatelyaTV 已经部署成功,首次访问需要使用我们在环境变量中设置的账号和密码进行登录。

3.2 测试通过极空间自带的远程登录功能进行访问

1️⃣ 先点击极空间的“远程访问”图标,在弹出的对话框中点击新建按钮;

2️⃣ 在弹出的”新建“对话框中,备注栏填写:KatelyaTV,地址栏填写:"你极空间容器的IP地址:3000",点击保存按钮。

四、KatelyaTV 的使用

软件本身使用和其他在线看剧容器一样,这里说一下几个值得注意的点:

1️⃣ 支持多用户。

2️⃣ 使用很简单,除了直接点击下方海报进行观看,还可以搜索。

3️⃣ 支持设置站点代理、成人内容过滤以及修改站点标题和管理用户哦。

一些常见问题解答:

Q1:我的固态硬盘容量小,可以把这个容器的录制内容存放路径改到机械硬盘上吗?

A:可以,只要你能忍受机械硬盘不休眠后产生的噪音。

Q2:这个容器支持保存账号的收看记录并跨平台记录吗?

A:支持,你的观看记录在所有设备之间都是互通的。

Q3:这个容器可以通过极空间远程访问功能深度使用吗?

A:可以,该容器能较好的支持极空间的远程访问功能。

五、结语

KatelyaTV 在致敬原作的前提下,修复了播放问题、优化体验并扩展了功能。 容器运行时CPU占用很低,十分便利,但个人建议为了战未来,NAS处理器至少得是N100这个级别往上,内存至少16G以上,因为你还会搭其他的容器,所以如果是长期用的话,我个人比较推荐用极空间Z4Pro性能版及更高配置的设备部署。近期极空间新品已经发布,因此我计划618之前,给大家带来一篇新旧款的参数对比,以及是否需要辞旧迎新的建议。

如果你看完教程觉得部署很困难,也可以扫描下方二维码进入我的淘宝小店——阿程数码,直接购买对应的极空间 Docker 服务,我会远程帮你有偿部署。