LunaTV 二开版部署教程:结合盘搜 + Selene + TVBox 实现多端影视观看
最近在 GitHub 上刷到一个 LunaTV 的二开版本,在原有基础上进行了增强。
我实际部署测试了一下,发现它可以很好地 结合盘搜(PanSou)、Selene 客户端以及 TVBox,实现在:
- 📱 手机
- 💻 平板 / 电脑
- 📺 电视盒子
等多种设备上进行统一观看,整体体验相当完整。
本文记录 完整部署与使用过程,方便后续复现。
一、视频教程演示(推荐先看)
本文对应的视频教程中,包含完整的部署过程与实际操作演示:
👉 视频教程播放地址:
如果你更习惯看视频,可以直接观看;如果想按步骤部署,继续往下看即可。
二、项目简介
这套方案主要由以下几部分组成:
LunaTV(二开版)
作为核心服务,提供资源聚合、管理后台和统一接口
盘搜(PanSou)
提供多个搜索源,负责资源搜索
Selene 客户端
用于手机、平板、电脑端观看
TVBox
用于电视或电视盒子端使用
部署完成后,LunaTV 的首页风格类似 Netflix,支持分类和预览,整体完成度不错。
三、部署环境说明
本文使用的环境如下:
系统: 飞牛(fnOS)
部署方式:Docker Compose
适用场景:NAS / 服务器 / Docker 环境
相关配置文件和项目地址会在文章后面统一列出。
四、创建项目目录
在系统中先为两个项目分别创建目录:
text:
lunaTV
pansou后续 Docker Compose 项目分别使用对应目录。
五、使用 Docker Compose 部署 LunaTV
1️⃣ 新建 Compose 项目
打开 Docker
选择 Compose
新增项目
路径选择
lunaTV目录
创建 compose 文件并粘贴 LunaTV 的配置内容
services:
moontv-core:
image: ghcr.io/szemeng76/lunatv:5.9.1
container_name: moontv-core
restart: on-failure
ports:
- '3000:3000'
environment:
- USERNAME=admin
- PASSWORD=000000
- NEXT_PUBLIC_STORAGE_TYPE=kvrocks
- KVROCKS_URL=redis://moontv-kvrocks:6666
# 可选:站点配置
- SITE_BASE=https://your-domain.com
- NEXT_PUBLIC_SITE_NAME=LunaTV Enhanced
networks:
- moontv-network
depends_on:
- moontv-kvrocks
moontv-kvrocks:
image: apache/kvrocks
container_name: moontv-kvrocks
restart: unless-stopped
volumes:
- kvrocks-data:/var/lib/kvrocks
networks:
- moontv-network
networks:
moontv-network:
driver: bridge
volumes:
kvrocks-data:2️⃣ 端口说明(重要)
LunaTV 默认使用 3000 端口:
text:
3000:3000⚠️ 如果你的系统中 3000 端口已被占用,可以改成例如:
text:
3001:3000
只要保证前面的端口未被占用即可。
3️⃣ 设置管理员账号
在 compose 文件中设置管理员:
管理员用户名
管理员密码
保存后点击 确定并构建项目。
六、部署盘搜(PanSou)
LunaTV 构建完成后,继续部署盘搜。
1️⃣ 新建 Compose 项目
新增项目
名称
pansou
路径选择
pansou目录
创建 compose 文件并粘贴配置内容
version: '3.3'
services:
pansou:
image: ghcr.io/fish2018/pansou-web:latest
container_name: pansou-app
labels:
- "autoheal=true" # 允许 autoheal 管理
ports:
- "805:80" # Web 访问端口(NAS 本地 / 局域网)
environment:
# ===== 基础配置(NAS 适配)=====
- DOMAIN=192.168.1.10 # 改为 NAS 局域网 IP
- PANSOU_PORT=8888
- PANSOU_HOST=0.0.0.0 # NAS / Docker 必须监听所有网卡
# ===== 数据目录 =====
- CACHE_PATH=/app/data/cache
- LOG_PATH=/app/data/logs
# ===== 插件配置 =====
- ENABLED_PLUGINS=labi,zhizhen,shandian,duoduo,muou,wanou,hunhepan,jikepan,panwiki,pansearch,panta,qupansou,hdr4k,pan666,susu,thepiratebay,xuexizhinan,panyq,ouge,huban,cyg,erxiao,miaoso,fox4k,pianku,clmao,wuji,cldi,xiaozhang,libvio,leijing,xb6v,xys,ddys,hdmoli,clxiong,jutoushe,sdso,xiaoji,xdyh,haisou,bixin,djgou,nyaa,xinjuc,aikanzy,qupanshe,xdpan,discourse,yunsou,ahhhhfs,nsgame,quark4k,quarksoo,sousou,ash,feikuai,kkmao,alupan,ypfxw,mikuclub,daishudj,dyyj,meitizy,jsnoteclub,mizixing,lou1,yiove,zxzj,qingying,kkv
# ===== Telegram 频道 =====
- CHANNELS=tgsearchers4,Aliyun_4K_Movies,bdbdndn11,yunpanx,bsbdbfjfjff,yp123pan,sbsbsnsqq,yunpanxunlei,tianyifc,BaiduCloudDisk,txtyzy,peccxinpd,gotopan,PanjClub,kkxlzy,baicaoZY,MCPH01,MCPH02,MCPH03,bdwpzhpd,ysxb48,jdjdn1111,yggpan,MCPH086,zaihuayun,Q66Share,ucwpzy,shareAliyun,alyp_1,dianyingshare,Quark_Movies,XiangxiuNBB,ydypzyfx,ucquark,xx123pan,yingshifenxiang123,zyfb123,tyypzhpd,tianyirigeng,cloudtianyi,hdhhd21,Lsp115,oneonefivewpfx,qixingzhenren,taoxgzy,Channel_Shares_115,tyysypzypd,vip115hot,wp123zy,yunpan139,yunpan189,yunpanuc,yydf_hzl,leoziyuan,Q_dongman,yoyokuakeduanju,TG654TG,WFYSFX02,QukanMovie,yeqingjie_GJG666,movielover8888_film3,Baidu_netdisk,D_wusun,FLMdongtianfudi,KaiPanshare,QQZYDAPP,rjyxfx,PikPak_Share_Channel,btzhi,newproductsourcing,cctv1211,duan_ju,QuarkFree,yunpanNB,kkdj001,xxzlzn,pxyunpanxunlei,jxwpzy,kuakedongman,liangxingzhinan,xiangnikanj,solidsexydoll,guoman4K,zdqxm,kduanju,cilidianying,CBduanju,SharePanFilms,dzsgx,BooksRealm,Oscar_4Kmovies,douerpan,baidu_yppan,Q_jilupian,Netdisk_Movies,yunpanquark,ammmziyuan,ciliziyuanku,cili8888,jzmm_123pan,Q_dianying,domgmingapk,dianying4k,q_dianshiju,tgbokee,ucshare,godupan,gokuapan
# ===== Docker 健康检查 =====
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost/"]
interval: 30s
timeout: 10s
retries: 3
volumes:
- ./pansou-data:/app/data
restart: unless-stopped
# ===== autoheal 服务 =====
autoheal:
image: willfarrell/autoheal:latest
container_name: pansou-autoheal
restart: always
environment:
- AUTOHEAL_CONTAINER_LABEL=autoheal
- AUTOHEAL_INTERVAL=60 # NAS 上不宜过于频繁
- AUTOHEAL_START_PERIOD=120 # 给容器充分启动时间
volumes:
- /var/run/docker.sock:/var/run/docker.sock2️⃣ 修改 IP 地址
⚠️ 这里需要注意 IP 配置
请将配置中的 IP 修改为:
NAS / 服务器的内网 IP
或公网 IP(根据你的使用场景)
确认无误后,保存并构建项目。
七、测试盘搜搜索功能
部署完成后访问盘搜页面,可以看到:
可用搜索源数量较多
搜索速度快
搜索结果会按资源类型进行分类
随便搜索一部电影或剧集即可验证是否正常工作。
八、LunaTV 后台配置
1️⃣ 登录 LunaTV
访问:
text:
http://IP:端口输入之前设置的管理员账号和密码。
2️⃣ 进入管理面板
点击右上角进入管理面板
先进入 配置文件 页面
下方各项配置可根据个人需求进行调整
配置完成后返回首页即可。
3️⃣ 首页效果说明
新的首页风格类似 Netflix:
支持分类展示
支持资源预览
操作逻辑清晰
九、使用 Selene 客户端观看
1️⃣ 下载 Selene
Selene 支持:
Android(手机 / 平板)
Windows
macOS
进入项目的 Releases 页面,根据自己的设备选择对应版本下载。
本文以 Windows 版本为例进行说明。
2️⃣ 客户端配置
打开 Selene 后填写:
LunaTV 地址(IP + 端口)
用户名
密码
登录成功后即可看到:
电影
剧集
分类结构与网页版基本一致
十、TVBox 中的配置方法
1️⃣ 打开 TVBox 设置
点击右上角 ⚙️ 设置
找到「配置地址」
2️⃣ 填入 LunaTV 提供的地址
粘贴配置地址
确定并返回
等待拉取配置
⚠️ 第一次加载时间可能稍长,属于正常情况。
配置完成后即可正常浏览和播放资源。
由于版权原因,这里不做具体播放演示。
十一、相关资源与下载地址
以下是本文涉及到的相关资源,方便统一查找:
📱 Selene 客户端下载:
https://github.com/MoonTechLab/Selene
源地址:
https://moontv.gyx.workers.dev/?url=https://raw.githubusercontent.com/666zmy/MoonTV/refs/heads/main/config.json&pretty=true
十二、总结
整体体验下来,这套方案:
部署流程清晰
多端支持完整
搜索速度快
UI 和可用性都不错
如果你本身就在使用 NAS + Docker,这套方案非常值得部署体验。
部署过程中如果遇到问题,欢迎在评论区交流,或加入群组一起讨论。
感谢你的阅读,我们下期再见。
评论区