轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥7起我的订单
文档
工具
提交工单页面收录
ghcr.io/moontechlab/lunatv

ghcr.io/moontechlab/lunatv:latest

ghcr.iolinux/amd64latest大小: 71.52 MB更新于 2026年6月21日
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

MoonTV

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


✨ 功能特性

  • 🔍 多源聚合搜索:一次搜索立刻返回全源结果。
  • 📄 丰富详情页:支持剧集列表、演员、年份、简介等完整信息展示。
  • ▶️ 流畅在线播放:集成 HLS.js & ArtPlayer。
  • ❤️ 收藏 + 继续观看:支持 Kvrocks/Redis/Upstash 存储,多端同步进度。
  • 📱 PWA:离线缓存、安装到桌面/主屏,移动端原生体验。
  • 🌗 响应式布局:桌面侧边栏 + 移动底部导航,自适应各种屏幕尺寸。
  • 👿 智能去广告:自动跳过视频中的切片广告(实验性)。

注意:部署后项目为空壳项目,无内置播放源和直播源,需要自行收集

点击查看项目截图

请不要在 B站、小红书、微信公众号、***、今日头条或其他中国大陆社交平台发布视频或文章宣传本项目,不授权任何“科技周刊/月刊”类项目或站点收录本项目。

🗺 目录

  • 技术栈
  • 部署
  • 一键部署
  • Docker 部署
  • 配置文件
  • 订阅
  • 自动更新
  • 环境变量
  • 客户端
  • AndroidTV 使用
  • Roadmap
  • 安全与隐私提醒
  • License
  • 致谢

技术栈

分类主要依赖
前端框架https://nextjs.org/ · App Router
UI & 样式https://tailwindcss.com/
语言TypeScript 4
播放器https://github.com/zhw2590582/ArtPlayer · https://github.com/video-dev/hls.js/
代码质量ESLint · Prettier · Jest
部署Docker

部署

本项目仅支持 Docker 或其他基于 Docker 的平台 部署。

zeabur 一键部署

点击下方按钮即可一键部署,自动配置 LunaTV + Kvrocks 数据库:

优势:

  • ✅ 无需配置,一键启动(自动部署完整环境)
  • ✅ 自动 HTTPS 和全球 CDN 加速
  • ✅ 持久化存储,数据永不丢失
  • ✅ 免费额度足够个人使用

[!IMPORTANT] 部署完成后,需要在 Zeabur 中为 LunaTV 服务设置访问域名(Domain)才能在浏览器中访问。详见下方 设置访问域名 步骤。

Kvrocks 存储(推荐)

services:
  moontv-core:
    image: ghcr.io/moontechlab/lunatv:latest
    container_name: moontv-core
    restart: on-failure
    ports:
      - '3000:3000'
    environment:
      - USERNAME=admin
      - PASSWORD=admin_password
      - NEXT_PUBLIC_STORAGE_TYPE=kvrocks
      - KVROCKS_URL=redis://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:

Redis 存储(有一定的丢数据风险)

services:
  moontv-core:
    image: ghcr.io/moontechlab/lunatv:latest
    container_name: moontv-core
    restart: on-failure
    ports:
      - '3000:3000'
    environment:
      - USERNAME=admin
      - PASSWORD=admin_password
      - NEXT_PUBLIC_STORAGE_TYPE=redis
      - REDIS_URL=redis://moontv-redis:6379
    networks:
      - moontv-network
    depends_on:
      - moontv-redis
  moontv-redis:
    image: redis:alpine
    container_name: moontv-redis
    restart: unless-stopped
    networks:
      - moontv-network
    # 请开启持久化,否则升级/重启后数据丢失
    volumes:
      - ./data:/data
networks:
  moontv-network:
    driver: bridge

Upstash 存储

  1. 在 upstash 注册账号并新建一个 Redis 实例,名称任意。
  2. 复制新数据库的 HTTPS ENDPOINT 和 TOKEN
  3. 使用如下 docker compose
services:
  moontv-core:
    image: ghcr.io/moontechlab/lunatv:latest
    container_name: moontv-core
    restart: on-failure
    ports:
      - '3000:3000'
    environment:
      - USERNAME=admin
      - PASSWORD=admin_password
      - NEXT_PUBLIC_STORAGE_TYPE=upstash
      - UPSTASH_URL=上面 https 开头的 HTTPS ENDPOINT
      - UPSTASH_TOKEN=上面的 TOKEN

☁️ Zeabur 部署(推荐)

感谢 @SzeMeng76

Zeabur 是一站式云端部署平台,使用预构建的 Docker 镜像可以快速部署,无需等待构建。

部署步骤:

  1. 添加 KVRocks 服务(先添加数据库)
    • 点击 "Add Service"

"Docker Images"

  • 输入镜像名称:apache/kvrocks
  • 配置端口:6666 (TCP)
  • 记住服务名称(通常是 apachekvrocks)
  • 配置持久化卷(重要):
    • 在服务设置中找到 "Volumes" 部分
    • 点击 "Add Volume" 添加新卷
    • Volume ID: kvrocks-data(可自定义,仅支持字母、数字、连字符)
    • Path: /var/lib/kvrocks/db
    • 保存配置

[!NOTE] 持久化卷路径必须设置为 /var/lib/kvrocks/db(KVRocks 数据目录),这样配置文件保留在容器内,数据库文件持久化,重启后数据不会丢失!

  1. 添加 LunaTV 服务
    • 点击 "Add Service"

"Docker Images"

  • 输入镜像名称:ghcr.io/moontechlab/lunatv:latest
  • 配置端口:3000 (HTTP)
  1. 配置环境变量

在 LunaTV 服务的环境变量中添加:

# 必填:管理员账号
USERNAME=admin
PASSWORD=your_secure_password

# 必填:存储配置
NEXT_PUBLIC_STORAGE_TYPE=kvrocks
KVROCKS_URL=redis://apachekvrocks:6666

# 可选:站点配置
SITE_BASE=https://your-domain.zeabur.app
NEXT_PUBLIC_SITE_NAME=LunaTV Enhanced
ANNOUNCEMENT=欢迎使用 LunaTV Enhanced Edition

# 可选:豆瓣代理配置(推荐)
NEXT_PUBLIC_DOUBAN_PROXY_TYPE=cmliussss-cdn-tencent
NEXT_PUBLIC_DOUBAN_IMAGE_PROXY_TYPE=cmliussss-cdn-tencent

注意:

  • 使用服务名称作为主机名:redis://apachekvrocks:6666
  • 如果服务名称不同,请替换为实际名称
  • 两个服务必须在同一个 Project 中
  1. 部署完成
    • Zeabur 会自动拉取镜像并启动服务
    • 等待服务就绪后,需要手动设置访问域名(见下一步)

5. 设置访问域名(必须)

  • 在 LunaTV 服务页面,点击 "Networking" 或 "网络" 标签
  • 点击 "Generate Domain" 生成 Zeabur 提供的免费域名(如 xxx.zeabur.app)
  • 或者绑定自定义域名:
    • 点击 "Add Domain" 添加你的域名
    • 按照提示配置 DNS CNAME 记录指向 Zeabur 提供的目标地址
  • 设置完域名后即可通过域名访问 LunaTV
  1. 绑定自定义域名(可选)
    • 在服务设置中点击 "Domains"
    • 添加你的自定义域名
    • 配置 DNS CNAME 记录指向 Zeabur 提供的域名

🔄 更新 Docker 镜像

当 Docker 镜像有新版本发布时,Zeabur 不会自动更新。需要手动触发更新。

更新步骤:

  1. 进入服务页面

    • 点击需要更新的服务(LunaTV 或 KVRocks)
  2. 重启服务

    • 点击 "服务状态" 页面,再点击 "重启当前版本" 按钮
    • Zeabur 会自动拉取最新的 latest 镜像并重新部署

[!NOTE] 提示:

  • 使用 latest 标签时,Restart 会自动拉取最新镜像
  • 生产环境推荐使用固定版本标签(如 v5.5.6)避免意外更新

配置文件

完成部署后为空壳应用,无播放源,需要站长在管理后台的配置文件设置中填写配置文件(后续会支持订阅)

配置文件示例如下:

{
  "cache_time": 7200,
  "api_site": {
    "dyttzy": {
      "api": "http://xxx.com/api.php/provide/vod",
      "name": "示例资源",
      "detail": "http://xxx.com"
    }
    // ...更多站点
  },
  "custom_category": [
    {
      "name": "华语",
      "type": "movie",
      "query": "华语"
    }
  ]
}
  • cache_time:接口缓存时间(秒)。
  • api_site:你可以增删或替换任何资源站,字段说明:
    • key:唯一标识,保持小写字母/数字。
    • api:资源站提供的 vod JSON API 根地址。
    • name:在人机界面中展示的名称。
    • detail:(可选)部分无法通过 API 获取剧集详情的站点,需要提供网页详情根 URL,用于爬取。
  • custom_category:自定义分类配置,用于在导航中添加个性化的影视分类。以 type + query 作为唯一标识。支持以下字段:
    • name:分类显示名称(可选,如不提供则使用 query 作为显示名)
    • type:分类类型,支持 movie(电影)或 tv(电视剧)
    • query:搜索关键词,用于在豆瓣 API 中搜索相关内容

custom_category 支持的自定义分类已知如下:

  • movie:热门、最新、经典、豆瓣高分、冷门佳片、华语、欧美、韩国、日本、动作、喜剧、爱情、科幻、悬疑、恐怖、治愈
  • tv:热门、美剧、英剧、韩剧、日剧、国产剧、港剧、日本动画、综艺、纪录片

也可输入如 "哈利波特" 效果等同于豆瓣搜索

MoonTV 支持标准的苹果 CMS V10 API 格式。

订阅

将完整的配置文件 base58 编码后提供 http 服务即为订阅链接,可在 MoonTV 后台/Helios 中使用。

自动更新

可借助 https://github.com/containrrr/watchtower 自动更新镜像容器

dockge/komodo 等 docker compose UI 也有自动更新功能

环境变量

变量说明可选值默认值
USERNAME站长账号任意字符串无默认,必填字段
PASSWORD站长密码任意字符串无默认,必填字段
SITE_BASE站点 url形如 [***]空
NEXT_PUBLIC_SITE_NAME站点名称任意字符串MoonTV
ANNOUNCEMENT站点公告任意字符串本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。
NEXT_PUBLIC_STORAGE_TYPE播放记录/收藏的存储方式redis、kvrocks、upstash无默认,必填字段
KVROCKS_URLkvrocks 连接 url连接 url空
REDIS_URLredis 连接 url连接 url空
UPSTASH_URLupstash redis 连接 url连接 url空
UPSTASH_TOKENupstash redis 连接 token连接 token空
NEXT_PUBLIC_SEARCH_MAX_PAGE搜索接口可拉取的最大页数1-505
NEXT_PUBLIC_DOUBAN_PROXY_TYPE豆瓣数据源请求方式见下方direct
NEXT_PUBLIC_DOUBAN_PROXY自定义豆瓣数据代理 URLurl prefix(空)
NEXT_PUBLIC_DOUBAN_IMAGE_PROXY_TYPE豆瓣图片代理类型见下方direct
NEXT_PUBLIC_DOUBAN_IMAGE_PROXY自定义豆瓣图片代理 URLurl prefix(空)
NEXT_PUBLIC_DISABLE_YELLOW_FILTER关闭色情内容过滤true/falsefalse
NEXT_PUBLIC_FLUID_SEARCH是否开启搜索接口流式输出true/ falsetrue

NEXT_PUBLIC_DOUBAN_PROXY_TYPE 选项解释:

  • direct: 由服务器直接请求豆瓣源站
  • cors-proxy-zwei: 浏览器向 cors proxy 请求豆瓣数据,该 cors proxy 由 https://github.com/bestzwei 搭建
  • cmliussss-cdn-tencent: 浏览器向豆瓣 CDN 请求数据,该 CDN 由 https://github.com/cmliu 搭建,并由腾讯云 cdn 提供加速
  • cmliussss-cdn-ali: 浏览器向豆瓣 CDN 请求数据,该 CDN 由 https://github.com/cmliu 搭建,并由阿里云 cdn 提供加速
  • custom: 用户自定义 proxy,由 NEXT_PUBLIC_DOUBAN_PROXY 定义

NEXT_PUBLIC_DOUBAN_IMAGE_PROXY_TYPE 选项解释:

  • direct:由浏览器直接请求豆瓣分配的默认图片域名
  • server:由服务器代理请求豆瓣分配的默认图片域名 = img3:由浏览器请求豆瓣官方的精品 cdn(阿里云)
  • cmliussss-cdn-tencent:由浏览器请求豆瓣 CDN,该 CDN 由 https://github.com/cmliu 搭建,并由腾讯云 cdn 提供加速
  • cmliussss-cdn-ali:由浏览器请求豆瓣 CDN,该 CDN 由 https://github.com/cmliu 搭建,并由阿里云 cdn 提供加速
  • custom: 用户自定义 proxy,由 NEXT_PUBLIC_DOUBAN_IMAGE_PROXY 定义

客户端

v100.0.0 以上版本可配合 https://github.com/MoonTechLab/Selene 使用,移动端体验更加友好,数据完全同步

AndroidTV 使用

目前该项目可以配合 https://github.com/zimplexing/***TV 在 Android TV 上使用,可以直接作为 ***TV 后端

已实现播放记录和网页端同步

安全与隐私提醒

请设置密码保护并关闭公网注册

为了您的安全和避免潜在的*风险,我们要求在部署时强烈建议关闭公网注册**:

部署要求

  1. 设置环境变量 PASSWORD:为您的实例设置一个强密码
  2. 仅供个人使用:请勿将您的实例链接公开分享或传播
  3. 遵守当地***:请确保您的使用行为符合当地***

重要声明

  • 本项目仅供学习和个人使用
  • 请勿将部署的实例用于商业用途或公开服务
  • 如因公开分享导致的任何***问题,用户需自行承担责任
  • 项目开发者不对用户的使用行为承担任何***责任
  • 本项目不在中国大陆地区提供服务。如有该项目在向中国大陆地区提供服务,属个人行为。在该地区使用所产生的***风险及责任,属于用户个人行为,与本项目无关,须自行承担全部责任。特此声明

License

MIT © 2025 MoonTV & Contributors

致谢

  • https://github.com/theodorusclarence/ts-nextjs-tailwind-starter — 项目最初基于该脚手架。
  • https://github.com/LibreSpark/LibreTV — 由此启发,站在巨人的肩膀上。
  • https://github.com/zhw2590582/ArtPlayer — 提供强大的网页视频播放器。
  • https://github.com/video-dev/hls.js — 实现 HLS 流媒体在浏览器中的播放支持。
  • https://github.com/bestzwei — 提供获取豆瓣数据的 cors proxy
  • https://github.com/cmliu — 提供豆瓣 CDN 服务
  • 感谢所有提供免费影视接口的站点。

Star History

轩辕镜像配置手册

按平台快速找到配置文档

一键安装

一键安装 Docker

Linux Docker 一键安装

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Apple Container

macOS 原生容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

Unraid

Unraid NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

版本功能对比

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 专业版 · 企业版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
ghcr.io/moontechlab/lunatv
教程轩辕镜像功能与使用教程
定价查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥7/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
用户协议·隐私政策·增值电信业务经营许可证:浙B2-20261007·©2024-2026 源码跳动©2024-2026 杭州源码跳动科技有限公司·商务合作:点击复制邮箱