LunaTV 保姆级部署教程:用 Docker 从零搭建影视聚合播放器

发布时间:2026/9/16 11:27:53
LunaTV 保姆级部署教程:用 Docker 从零搭建影视聚合播放器
LunaTV 保姆级部署教程用 Docker 从零搭建影视聚合播放器【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议禁止任何商业化行为任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV追一部剧要跳好几个网站、找到的资源第二天就失效、手机上看到一半换到电视又从头开始——如果你被这些情况折腾过正缺的就是一个能自己部署的影视聚合播放器。LunaTV 是一个基于 Next.js 的开源项目把多个资源站的结果聚合到同一个搜索框里支持在线播放、收藏同步和观看进度跨设备恢复整体只靠 Docker 就能跑起来。下面这份实操流程会带着你把服务启动、后台配源、完整看片走一遍全程不需要碰代码。开工前的体检环境、内存和存储选型先花一分钟确认两件事机器上装好了 Docker 和 Docker Compose执行docker -v和docker compose version能正常输出版本号即可内存建议 1GB 起步Linux 环境下表现最稳。存储后端怎么选先给结论LunaTV 的收藏和播放进度都存在一个键值数据库里有三种可选。推荐直接上 Kvrocks它和 Redis 协议兼容可以理解为 Redis 的换芯版自带完善的数据持久化重启、升级后进度不会丢。选项优点短板Kvrocks推荐持久化开箱即用镜像直接拉数据最稳多起一个容器Redis熟悉的人多生态成熟持久化要自己开忘了配升级重启就可能丢数据Upstash不用自己维护存储依赖云服务账号数据不在自己手里三者差异只体现在 compose 里两个环境变量上。本文按 Kvrocks 方案走。一份 compose 把服务跑起来新建一个目录放入docker-compose.yml关键行都做了注释services: moontv-core: # LunaTV 主服务 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: volumes: kvrocks-data:在配置目录执行docker compose up -dCompose 会先拉取两个镜像再按依赖顺序逐个把容器拉起来首次拉取镜像可能要一两分钟耐心等它跑完。执行docker compose ps看到两个服务都处于 Up 状态浏览器打开http://localhost:3000应该能看到登录页到这里底座就算搭好了。豆瓣数据加载不出来加两行代理变量影片海报、评分这类豆瓣数据默认由服务器直连获取如果加载慢或失败给主服务的environment里补上这两行再docker compose up -d重建一次即可- NEXT_PUBLIC_DOUBAN_PROXY_TYPEcmliussss-cdn-tencent - NEXT_PUBLIC_DOUBAN_IMAGE_PROXY_TYPEcmliussss-cdn-tencent登录管理后台给空壳装上内容很多教程会在这里省略掉最要紧的一步LunaTV 部署完是个空壳不内置任何播放源得自己进后台把源接进来。用刚才设置好的账号密码登录管理后台进入配置文件设置粘贴一段符合苹果 CMS V10 API 格式的配置就能生效。核心是api_site字段每个源站给一个api该站的 vod JSON 接口地址和一个name前端展示名{ cache_time: 7200, api_site: { example: { api: http://你的源站/api.php/provide/vod, name: 示例源 } } }cache_time是接口缓存时长秒源站接口慢时调大一点能明显减轻压力配置支持多站点并存随时增删替换多设备想保持同一套源把整份配置做 base58 编码后挂成 http 服务链接填进后台的订阅栏即可改一处全部生效。保存后刷新前端站点就不再是空的了。走一遍完整看片动线首页、筛选、换源播放打开首页第一个模块就是继续观看卡片上直接标着播放进度和集数点开就能从断点接着看下方的热门电影则是豆瓣维度的热门推荐不用主动找就有内容可看。点进电影分类页顶部是两组筛选器分类对应热门、最新、豆瓣高分、冷门佳片这类榜单地区覆盖华语、欧美、韩日。两个维度叠着用找片基本两三下就能锁到目标。选一部点进播放页左侧是播放器右侧栏在选集和换源两个标签间切换。同一部剧挂着多个来源每个来源都标注了带宽、分辨率和集数——哪个卡切哪个不用退出页面。站点整体是响应式布局手机上浏览器长按添加到主屏就能当 PWA 用移动端想更顺手还可以配合 Selene 客户端播放记录和网页端完全同步。上线前验收6 项检查清单逐条过一遍全勾上再算部署完成浏览器打开http://localhost:3000登录页正常加载用自设的 USERNAME / PASSWORD 能登入管理后台后台保存的播放源在搜索中有结果返回播放起播、选集切换、换源都正常看几分钟后回到首页继续观看出现该条目证明存储写入了执行docker compose restart后收藏和进度原样保留常见问题排查问题、原因与处理问题可能原因处理方式3000 端口起不来别的程序占着端口把端口映射改成3001:3000之类重新 up页面能开海报和评分缺失豆瓣直连被限流补上两行豆瓣代理变量并重建容器源配好了搜索却是空的接口地址写错或源站本身挂了先验证接口可达性确认是苹果 CMS V10 的 JSON 接口重启后进度没了用了 Redis 但没开持久化换 Kvrocks 方案或给 Redis 挂数据卷主服务反复重启、连不上存储连接串里主机名写错容器网络内要用服务名redis://moontv-kvrocks:6666到这里属于你自己的影视中心已经能看、能搜、能续播了。下一步想折腾的话方向不少用 watchtower 做镜像自动更新、在配置里写custom_category定制自己的分类入口或者接上 Android TV 端让客厅也用上同一套片库。【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议禁止任何商业化行为任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考