619 字
2 分钟
MoonTVPlus 影视聚合播放器 Docker 部署教程
MoonTVPlus 影视聚合播放器 Docker 部署教程
简介
MoonTVPlus 是基于 MoonTV v100 二次开发的增强版影视聚合播放器。相比原版,它新增了外部播放器跳转、视频超分(Anime4K)、弹幕系统、豆瓣评论抓取、观影室、服务器离线下载、私人影库等实用功能。
WARNING部署后的项目是一个空壳,不内置任何播放源与直播源,需要站长在管理后台自行配置资源站接口。且项目声明仅供个人学习使用,请勿公开分享实例或在中国大陆地区提供服务。
技术栈
| 分类 | 主要依赖 |
|---|---|
| 前端框架 | Next.js 14(App Router) |
| 样式 | Tailwind CSS 3 |
| 语言 | TypeScript 4 |
| 播放器 | ArtPlayer · HLS.js |
| 部署 | Docker · Vercel · Netlify · Cloudflare Workers · EdgeOne Pages |
Docker 部署
官方镜像为 ghcr.io/mtvpls/moontvplus:latest,默认端口 3000。存储后端支持 Kvrocks(推荐)、SQLite、Redis、Upstash 等,通过环境变量 NEXT_PUBLIC_STORAGE_TYPE 切换。
Kvrocks 存储(推荐)
services: moontv-core: image: ghcr.io/mtvpls/moontvplus: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/db networks: - moontv-networknetworks: moontv-network: driver: bridgevolumes: kvrocks-data:NOTE若自行指定
kvrocks-data宿主机目录,需将该目录权限调整为777,否则可能导致数据库创建失败。
SQLite 存储
services: moontv-core: image: ghcr.io/mtvpls/moontvplus:latest container_name: moontv-core restart: on-failure ports: - '3000:3000' environment: - USERNAME=admin - PASSWORD=admin_password - NEXT_PUBLIC_STORAGE_TYPE=d1 - SQLITE_DB_PATH=/app/.data/moontv.db volumes: - ./data:/app/.dataRedis 存储
services: moontv-core: image: ghcr.io/mtvpls/moontvplus: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:/datanetworks: moontv-network: driver: bridgeWARNINGRedis 存储有一定丢数据风险,请务必开启持久化(如上挂载
./data),否则升级/重启后数据可能丢失。
Upstash 存储
- 在 Upstash 注册并新建 Redis 实例。
- 复制其 HTTPS ENDPOINT 与 TOKEN。
- 使用如下
docker-compose.yml:
services: moontv-core: image: ghcr.io/mtvpls/moontvplus: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=上面的 TOKENLite 镜像说明
ghcr.io/mtvpls/moontvplus-lite:latest 体积更小,但不支持内置观影室服务,也不支持 SQLite(d1)自动初始化。其余用法与标准镜像一致。
环境变量要点
| 变量 | 说明 | 必填 |
|---|---|---|
USERNAME | 站长账号 | 是 |
PASSWORD | 站长密码 | 是 |
NEXT_PUBLIC_STORAGE_TYPE | 存储方式:redis/kvrocks/upstash/d1/turso/postgres | 是 |
KVROCKS_URL / REDIS_URL / UPSTASH_URL / TURSO_URL | 对应存储连接地址 | 视存储类型 |
NEXT_PUBLIC_SITE_NAME | 站点名称(默认 MoonTV) | 否 |
ANNOUNCEMENT | 站点公告 | 否 |
INIT_CONFIG | 初始配置(JSON,含 api_site/custom_category/lives) | 否 |
初始化播放源配置
启动后进入管理后台的「配置文件」设置,填写资源站。示例:
{ "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": "华语" } ]}api_site:苹果 CMS V10 标准的vodJSON API,可增删多个源。custom_category:自定义导航分类,type支持movie/tv,query为豆瓣搜索词。
自动更新
可借助 watchtower 或 dockge/komodo 等 compose UI 的自动更新功能保持镜像为最新版本。
祝你天天开心!
MoonTVPlus 影视聚合播放器 Docker 部署教程
https://blog.sywan.top/posts/moontvplus/ 部分信息可能已经过时









