2026/10/6 22:24:34

自建影视聚合播放器:LunaTV Docker 部署与播放源配置完整实战指南

自建影视聚合播放器:LunaTV Docker 部署与播放源配置完整实战指南 自建影视聚合播放器LunaTV Docker 部署与播放源配置完整实战指南【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议禁止任何商业化行为任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTVLunaTV 是一个基于 Next.js 14 构建的开源影视聚合播放器支持多资源站聚合搜索、在线播放、收藏与播放记录跨端同步。本文带你在一台装有 Docker 的服务器上完成部署并讲清楚启动之后最关键的播放源配置10 分钟内你就能拥有一个可以正常看片、能记住进度的个人影视站。部署后你得到什么LunaTV 的七项主要能力先花一分钟了解装好之后的使用体验这样后面配置时就知道每个环节的意义。LunaTV 首页会展示继续观看和热门内容推荐配合分类导航快速定位片源搜索结果来自你配置的全部资源站一次输入即可跨站聚合。详情页提供剧集列表、演员、年份、简介等完整信息播放端由 ArtPlayer 与 HLS.js 驱动支持流媒体在浏览器里直接播放。收藏、播放记录存在服务端存储里换设备登录也能接着上次的位置看。其余能力包括PWA 离线缓存与安装到桌面/主屏桌面侧边栏加移动底部导航的响应式布局实验性的切片广告自动跳过以及一个常被忽略的直播模块可以配置直播源和 EPG 节目单。v100.0.0 以上的版本还能配合移动端客户端 Selene 使用数据完全同步在 Android TV 上也可以把它当作 OrionTV 的后端播放记录同样与网页端互通。部署前准备只需要 Docker 和一个空闲端口LunaTV 官方仅支持 Docker 及基于 Docker 的平台部署没有裸机 Node.js 的玩法这省去了装依赖、编译源码的环节。机器上需要安装 Docker 和 Docker Compose并且能访问镜像仓库拉取镜像。资源方面1GB 左右的内存和 10GB 磁盘就足够个人使用了。唯一必须让出来的是本机3000 端口——服务默认监听容器内的 3000 端口compose 文件会把它映射到宿主机。如果你的 3000 已被占用改一下映射的左边部分比如8080:3000之后用 8080 访问即可容器内端口不用动。三步完成部署写一份 compose 文件就够整个部署就是写文件 → 启动 → 打开浏览器三步。下面这份docker-compose.yml采用官方推荐的 Kvrocks 存储方案两个服务、一个网络、一个数据卷照抄后按需改两处密码即可services: moontv-core: image: ghcr.io/moontechlab/lunatv:latest container_name: moontv-core restart: on-failure ports: - 3000:3000 environment: - USERNAMEadmin - PASSWORD请改成一个强密码 - NEXT_PUBLIC_STORAGE_TYPEkvrocks - KVROCKS_URLredis://moontv-kvrocks:6666 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:几个字段的填写逻辑moontv-core是应用本体USERNAME/PASSWORD是登录管理后台用的站长账号必填密码务必换成强密码且不要公开分享实例地址NEXT_PUBLIC_STORAGE_TYPE指定收藏与播放记录存放的存储后端本例选了kvrocksKVROCKS_URL指向同网络里的 Kvrocks 容器主机名直接用服务名moontv-kvrocks端口 6666 是 Kvrocks 的默认端口。Kvrocks 是 Redis 协议的兼容存储apache/kvrocks是官方镜像把数据目录/var/lib/kvrocks挂到命名卷kvrocks-data后容器删了数据也不会丢。在文件所在目录执行docker-compose up -d等待镜像拉取和容器启动浏览器打开http://localhost:3000远程机器则换成对应 IP就能看到登录页。管理后台配置播放源为什么装完的站点没有片源这一点必须提前说明部署完成后 LunaTV 是一个空壳没有内置播放源和直播源需要站长自己收集并填进后台这也是全文最容易卡住的一步。登录后台后进入配置文件设置对应源码见 src/app/admin/page.tsxLunaTV 接受标准苹果 CMS V10 格式的接口把配置以 JSON 形式粘贴保存即可。这份配置由三部分组成cache_time控制接口缓存秒数填大一点可以减轻资源站压力api_site是资源站列表每站需要一个唯一标识 key、该站api.php/provide/vod的 JSON 接口地址、界面展示用的 name个别站点 API 拿不到剧集详情时还要补detail指向其网页详情根地址custom_category用于在导航栏加自定义分类用typemovie 或 tv加query搜索关键词作为标识支持华语美剧豆瓣高分这类词也可以直接写哈利波特实现类似豆瓣搜索的效果。如果你的配置想复用到其他实例或客户端还有一个订阅机制把完整配置文件做 base58 编码后提供一个 HTTP 地址就成为一个订阅链接可在后台或 Helios 客户端中直接拉取。存储后端怎么选Kvrocks、Redis 还是 Upstash收藏和播放记录存在哪里由NEXT_PUBLIC_STORAGE_TYPE决定三种选项各有取舍。Kvrocks 是默认推荐项性能好、配合命名卷可以可靠持久化上文 compose 文件就是按它写的。Redis 兼容性好但官方明确提示有丢数据风险——如果用redis方案必须像 README 示例那样开启持久化并挂载/data卷否则升级或重启后记录会清空。Upstash 则是托管在云端的 Redis适合无服务器或不想自己维护数据库的场景需要额外注册账号把UPSTASH_URL和UPSTASH_TOKEN两个环境变量填进 core 服务即可compose 里也就只剩一个容器。无论选哪种都建议养成备份习惯Kvrocks 方案备份kvrocks-data卷里的内容即可Redis 方案备份持久化目录。这是全系统里唯一会产生用户数据的地方。可选调优豆瓣代理与站点展示基础跑通后几个环境变量值得按需调整它们都写在 core 服务的environment里。豆瓣海报和详情数据默认由服务器直连豆瓣direct如果你的网络到豆瓣不稳推荐改为社区 CDN 方案NEXT_PUBLIC_DOUBAN_PROXY_TYPEcmliussss-cdn-tencent与NEXT_PUBLIC_DOUBAN_IMAGE_PROXY_TYPEcmliussss-cdn-tencent让浏览器直接向带 CDN 加速的镜像请求数据国内访问速度明显更稳。站点展示方面NEXT_PUBLIC_SITE_NAME改站名ANNOUNCEMENT改首页公告默认是一段合规免责声明建议保留SITE_BASE填你的访问 URL。行为类选项还有NEXT_PUBLIC_SEARCH_MAX_PAGE搜索可翻页数默认 5和NEXT_PUBLIC_FLUID_SEARCH搜索流式输出默认开启。改完环境变量后重新docker-compose up -d让容器重建生效。五项验证清单与日常更新方式部署是否真正可用按顺序检查五件事能用http://localhost:3000打开登录页用 compose 里的账号密码成功登录管理后台保存配置后首页能加载出分类与推荐内容搜索任意一部电影能返回聚合结果并点开详情页最终能流畅播放且刷新后继续观看位置保留。五步全过这套影视聚合播放器就算正式上线了。日常维护只需要一条命令docker-compose pull docker-compose up -d拉取新版镜像并重建容器存储卷里的数据不受影响。最后再叮嘱两句安全上的事实例只供个人使用不要公开传播访问链接避免他人滥用账号密码保持强随机若日后要长期运行也可以固定一个版本标签代替latest防止自动拉到不稳定的新版本。照这套流程走下来从空服务器到能看片只需要一份 compose 文件和一段播放源配置剩下的交给它自己同步记录就好。【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议禁止任何商业化行为任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考