
如果你使用 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 是一个开箱即用的、跨平台的影视聚合播放器。它基于 Next.js 14 + Tailwind CSS + TypeScript 构建,支持多资源搜索、在线播放、收藏同步、播放记录、本地/云端存储,让你可以随时随地畅享海量免费影视内容。
!Next.js !TailwindCSS !TypeScript !License !Docker Ready
| 分类 | 主要依赖 |
|---|---|
| 前端框架 | Next.js 14 · App Router |
| UI & 样式 | Tailwind CSS 3 |
| 语言 | TypeScript 4 |
| 播放器 | https://github.com/zhw2590582/ArtPlayer · https://github.com/video-dev/hls.js/ |
| 代码质量 | ESLint · Prettier · Jest |
| 部署 | Docker · Vercel · CloudFlare pages |
本项目支持 Vercel、Docker 和 Cloudflare 部署。
存储支持矩阵
| Docker | Vercel | Cloudflare | |
|---|---|---|---|
| localstorage | ✅ | ✅ | ✅ |
| 原生 redis | ✅ | ||
| Cloudflare D1 | ✅ | ||
| Upstash Redis | ☑️ | ✅ | ☑️ |
✅:经测试支持
☑️:理论上支持,未测试
除 localstorage 方式外,其他方式都支持多账户、记录同步和管理页面
普通部署(localstorage)
config.json,请直接修改 Fork 后仓库中该文件。main 分支将自动触发重新构建。部署完成后即可通过分配的域名访问,也可以绑定自定义域名。
Upstash Redis 支持
Cloudflare Pages 的环境变量尽量设置为密钥而非文本
普通部署(localstorage)
.vercel/output/staticnodejs_compatconfig.json,请直接修改 Fork 后仓库中该文件。main 分支将自动触发重新构建。D1 支持
1. 直接运行(最简单)
bash# 拉取预构建镜像 docker pull ghcr.io/senshinya/moontv:latest # 运行容器 # -d: 后台运行 -p: 映射端口 3000 -> 3000 docker run -d --name moontv -p 3000:3000 --env PASSWORD=your_password ghcr.io/senshinya/moontv:latest
访问 http://服务器 IP:3000 即可。(需自行到服务器控制台放通 3000 端口)
若你使用 docker compose 部署,以下是一些 compose 示例
yamlservices: moontv: image: ghcr.io/senshinya/moontv:latest container_name: moontv restart: unless-stopped ports: - '3000:3000' environment: - PASSWORD=your_password # 如需自定义配置,可挂载文件 # volumes: # - ./config.json:/app/config.json:ro
yamlservices: moontv-core: image: ghcr.io/senshinya/moontv:latest container_name: moontv restart: unless-stopped ports: - '3000:3000' environment: - USERNAME=admin - PASSWORD=admin_password - NEXT_PUBLIC_STORAGE_TYPE=redis - REDIS_URL=redis://moontv-redis:6379 - NEXT_PUBLIC_ENABLE_REGISTER=true networks: - moontv-network depends_on: - moontv-redis # 如需自定义配置,可挂载文件 # volumes: # - ./config.json:/app/config.json:ro moontv-redis: image: redis container_name: moontv-redis restart: unless-stopped networks: - moontv-network # 如需持久化 # volumes: # - ./data:/data networks: moontv-network: driver: bridge
建议在 fork 的仓库中启用本仓库自带的 GitHub Actions 自动同步功能(见 .github/workflows/sync.yml)。
如需手动同步主仓库更新,也可以使用 GitHub 官方的 https://docs.github.com/cn/github/collaborating-with-issues-and-pull-requests/syncing-a-fork 功能。
| 变量 | 说明 | 可选值 | 默认值 |
|---|---|---|---|
| USERNAME | redis 部署时的管理员账号 | 任意字符串 | (空) |
| PASSWORD | 默认部署时为唯一访问密码,redis 部署时为管理员密码 | 任意字符串 | (空) |
| SITE_NAME | 站点名称 | 任意字符串 | MoonTV |
| ANNOUNCEMENT | 站点公告 | 任意字符串 | 本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。 |
| NEXT_PUBLIC_STORAGE_TYPE | 播放记录/收藏的存储方式 | localstorage、redis、d1、upstash | localstorage |
| REDIS_URL | redis 连接 url,若 NEXT_PUBLIC_STORAGE_TYPE 为 redis 则必填 | 连接 url | 空 |
| UPSTASH_URL | upstash redis 连接 url | 连接 url | 空 |
| UPSTASH_TOKEN | upstash redis 连接 token | 连接 token | 空 |
| NEXT_PUBLIC_ENABLE_REGISTER | 是否开放注册,仅在非 localstorage 部署时生效 | true / false | false |
| NEXT_PUBLIC_SEARCH_MAX_PAGE | 搜索接口可拉取的最大页数 | 1-50 | 5 |
| NEXT_PUBLIC_IMAGE_PROXY | 默认的浏览器端图片代理 | url prefix | (空) |
| NEXT_PUBLIC_DOUBAN_PROXY | 默认的浏览器端豆瓣数据代理 | url prefix | (空) |
所有可自定义项集中在根目录的 config.json 中:
json{ "cache_time": 7200, "api_site": { "dyttzy": { "api": "http://caiji.dyttzyapi.com/api.php/provide/vod", "name": "电影天堂资源", "detail": "http://caiji.dyttzyapi.com" } // ...更多站点 } }
cache_time:接口缓存时间(秒)。api_site:你可以增删或替换任何资源站,字段说明:
key:唯一标识,保持小写字母/数字。api:资源站提供的 vod JSON API 根地址。name:在人机界面中展示的名称。detail:(可选)部分无法通过 API 获取剧集详情的站点,需要提供网页详情根 URL,用于爬取。MoonTV 支持标准的苹果 CMS V10 API 格式。
修改后 无需重新构建,服务会在启动时读取一次。
该特性目前仅支持通过非 localstorage 存储的部署方式使用
支持在运行时动态变更服务配置
设置环境变量 USERNAME 和 PASSWORD 即为站长用户,站长可设置用户为管理员
站长或管理员访问 /admin 即可进行管理员配置
目前该项目可以配合 https://github.com/zimplexing/OrionTV 在 Android TV 上使用,可以直接作为 OrionTV 后端
暂时收藏夹与播放记录和网页端隔离,后续会支持同步用户数据
为了您的安全和避免潜在的*风险,我们强烈建议**在部署时设置密码保护:
PASSWORD:为您的实例设置一个强密码MIT © 2025 MoonTV & Contributors
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






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