☰
LunaTV 影视聚合播放器 Docker 部署指南:3 步 5 分钟跑起私有影视站
2026/10/6 2:11:23 网站建设 项目流程

LunaTV 影视聚合播放器 Docker 部署指南:3 步 5 分钟跑起私有影视站

【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议,禁止任何商业化行为,任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV

找一部剧要翻好几个站,本地收藏动不动就失效,换台电脑观看记录全丢。LunaTV 是基于 Next.js 14 的开源影视聚合播放器,把多源搜索、在线播放、跨端收藏与观看记录同步收进一个服务里。这篇带你用 Docker 跑通完整部署:一份 compose 文件、一条启动命令,外加页面空白时的排障路线。

开工前花 30 秒自检的 3 件事

自检项怎么查达标线
Docker 与 Compose 可用终端敲docker compose version能打印出版本号
机器资源够看内存与磁盘剩余至少 1GB 内存、10GB 空闲磁盘
端口没被占lsof -i:3000没有任何输出

三项全过再往下走,否则部署到一半会在同一堵墙前卡住。

3 步跑起 LunaTV:一份 compose 文件加一条启动命令

第 1 步:写下 compose 文件。新建docker-compose.yml,两个容器:应用本体加 Kvrocks 存储,镜像构建过程可看 Docker 构建定义:

services: moontv-core: image: ghcr.io/moontechlab/lunatv:latest container_name: moontv-core ports: - '3000:3000' environment: - USERNAME=admin - PASSWORD=你的强密码 - NEXT_PUBLIC_STORAGE_TYPE=kvrocks - KVROCKS_URL=redis://moontv-kvrocks:6666 # ...其余字段保持默认... depends_on: [moontv-kvrocks] moontv-kvrocks: image: apache/kvrocks container_name: moontv-kvrocks volumes: - kvrocks-data:/var/lib/kvrocks volumes: kvrocks-data:

四个关键参数的填法:

参数填什么为什么
3000:3000左侧随意,右侧固定 3000容器服务固定监听 3000,只改宿主机这一侧
USERNAME/PASSWORD自定义账号加强密码管理面板唯一入口,靠环境变量注入
NEXT_PUBLIC_STORAGE_TYPEkvrocks决定用哪个存储驱动
KVROCKS_URLredis://moontv-kvrocks:6666同一 compose 网络内用服务名当主机名,不能写 localhost

第 2 步:一条命令启动。在文件所在目录执行docker compose up -d。首次要拉两个镜像,等一两分钟;执行完用docker compose ps看,两个容器都显示running就算过关。

第 3 步:浏览器验证。打开http://localhost:3000,出现登录页说明主线流程走完了。

首跑检查清单:部署完立刻核对这 5 件

  • ✅ 用刚设置的账号进入管理面板,能看到播放源配置入口
  • ✅ 搜索框先别急着试:未填播放源时返回空是空壳特性,不算故障
  • ✅ 随便播完一部片退出,回首页能在"继续观看"里看到它
  • ✅docker compose restart之后再刷页面,收藏和记录仍在(证明卷挂对了)
  • ✅docker compose logs moontv-core | tail -20里没有反复刷的错误

配置深水区:必配、推荐配、可选配各做什么

必配(不配跑不通):

  • USERNAME/PASSWORD:漏了就没有管理面板入口,也没有事后找回流程。
  • 存储地址(KVROCKS_URL,或 Redis 的REDIS_URL、Upstash 的两项):漏了容器照起,但收藏和观看记录全写不进去。
  • 播放源:在管理面板填入苹果 CMS V10 格式的 API 地址,参考 管理后台源码。不填,整站就是个空壳。

推荐配(不配能跑但体验打折):

  • 豆瓣数据代理:NEXT_PUBLIC_DOUBAN_PROXY_TYPE与NEXT_PUBLIC_DOUBAN_IMAGE_PROXY_TYPE设为cmliussss-cdn-tencent。不配走内置默认,站外网络下海报和详情页偶尔加载失败。
  • 数据卷kvrocks-data:/var/lib/kvrocks:上面文件里这一行不能删,漏挂等于每次重启清空全部数据。

可选配(按需):

  • NEXT_PUBLIC_SITE_NAME改站点名;端口映射左侧可改 3001 等任意空闲端口。
  • 存储选型:Kvrocks 稳定,Redis 有丢数据风险,Upstash 适合只上云不挂本地卷的场景。

新手最容易踩的 5 个坑与解法

  1. 端口 3000 被占:lsof -i:3000看是谁占着,把映射左侧改成3001:3000,用新端口访问,右侧保持 3000。
  2. 容器起来了页面却空白:先docker logs -f moontv-core看日志,最常见是存储容器没起来,或KVROCKS_URL里的服务名和实际对不上。
  3. 重启后数据全没:卷没挂或路径写错,Kvrocks 的数据目录是/var/lib/kvrocks,挂错目录等于没挂。
  4. 密码忘了:账号由环境变量注入,改USERNAME/PASSWORD后docker compose up -d重建容器即可。
  5. 想换存储后端:先在管理面板导出数据,再改STORAGE_TYPE和对应地址,新旧数据不清理会互相干扰。

扩展:移动端、备份与更新

  • 移动端:PWA 可直接装到手机桌面,桌面端和移动端共用同一套数据。
  • 备份:定期备份kvrocks-data卷,管理面板另有一键导出。
  • 更新:docker compose pull && docker compose up -d切到新版,数据卷不动。

下一步就一件事:打开管理面板把播放源地址填进去,就能试播了。跑通之后记得把数据卷备份一次,心里才踏实。

【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议,禁止任何商业化行为,任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询