一、前言

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

功能特性

🔍 多源聚合搜索:内置数十个免费资源站点,一次搜索立刻返回全源结果。

📄 丰富详情页:支持剧集列表、演员、年份、简介等完整信息展示。

▶️ 流畅在线播放:集成 HLS.js & ArtPlayer。

❤️ 收藏 + 继续观看:支持 Redis/D1/Upstash 存储,多端同步进度。

📱 PWA:离线缓存、安装到桌面/主屏,移动端原生体验。

🌗 响应式布局:桌面侧边栏 + 移动底部导航,自适应各种屏幕尺寸。

🚀 极简部署:一条 Docker 命令即可将完整服务跑起来,或免费部署到 Vercel 和 Cloudflare。

👿 智能去广告:自动跳过视频中的切片广告(实验性)

官方地址:GitHub - Stardm0/MoonTV: 🎬 MoonTV 是一个开箱即用的、跨平台的影视聚合播放器。本项目现基于2.0.1开始自行维护更新(提醒: cloudflare部署有封pages的风险) · GitHub

二、部署

2.1部署更新(compose.yml)

services:
    lunatv:
        image: ghcr.io/moontechlab/lunatv:latest #使用镜像的话自行修改
        container_name: lunatv
        depends_on:
            kvrocks-init:
                condition: service_completed_successfully
        ports:
            - 8300:3000 #映射端口,自行修改
        environment:
            - USERNAME=admin
            - PASSWORD=adminadmin #管理员密码,自行修改
            - NEXT_PUBLIC_STORAGE_TYPE=kvrocks
            - KVROCKS_URL=redis://kvrocks:6666
        restart: unless-stopped

    kvrocks:
        image: docker.io/apache/kvrocks:latest #使用镜像的话自行修改
        container_name: kvrocks
        volumes:
            - /share/CACHEDEV1_DATA/Container/lunatv/kvrocks_data:/kvrocks_data #映射路径自行修改,这里写了个威联通用的
        user: '0'
        command:
            - '--dir'
            - /kvrocks_data
        healthcheck:
            test: ["CMD", "redis-cli", "-p", "6666", "ping"]
            interval: 5s
            timeout: 3s
            retries: 5
            start_period: 10s
        restart: unless-stopped

    kvrocks-init:
        image: docker.io/python:3-alpine #使用镜像的话自行修改
        container_name: kvrocks-init
        environment:
            - SOURCE=jin18 #jin18 = 精简版(没成人内容,默认),jingjian = 精简版+成人,full = 完整版
        depends_on:
            kvrocks:
                condition: service_healthy
        command:
            - sh
            - -c
            - |
              pip install redis base58 requests
              python3 <<'EOF'
              import json
              import os
              import base58
              import requests
              import redis
              from datetime import datetime, timezone
              target_key='admin:configinited'
              r = redis.Redis(host='kvrocks', port=6666, decode_responses=True)
              if r.exists(target_key): exit(0)
              print('init!')
              target_url = f'https://pz.v88.qzz.io/?format=2&source={os.getenv("SOURCE", "jin18")}'
              response = requests.get(target_url, timeout=10)
              response.raise_for_status()
              api_data = json.loads(base58.b58decode(response.text.strip()).decode('utf-8'))
              ori_data = {'SiteConfig':{'SiteName':'MoonTV','Announcement':'本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。','SearchDownstreamMaxPage':5,'SiteInterfaceCacheTime':7200,'DoubanProxyType':'cmliussss-cdn-tencent','DoubanProxy':'','DoubanImageProxyType':'cmliussss-cdn-tencent','DoubanImageProxy':'','DisableYellowFilter':False,'FluidSearch':True,'EnableWebLive':False},'UserConfig':{'Users':[{'username':'admin','role':'owner','banned':False}]},'CustomCategories':[],'LiveConfig':[]}
              ori_data['ConfigFile'] = json.dumps(api_data,ensure_ascii=False)
              ori_data['ConfigSubscribtion'] = {'URL':target_url,'AutoUpdate':True,'LastCheck':datetime.now(timezone.utc).isoformat(timespec='milliseconds').replace('+00:00', 'Z')}
              ori_data['SourceConfig'] = [{'key':k,'name':site['name'],'api':site['api'],'detail':site['detail'],'from':'config','disabled':False} for k, site in api_data['api_site'].items()]
              r.set('admin:config', json.dumps(ori_data,ensure_ascii=False))
              r.set(target_key,'true')
              EOF

打开dpanel管理平台

浏览器访问:ip:8300

注:

1.这一版默认添加直播源无需单独配置

2.视频播放不了时点击管理员设置》视频源配置》有效性测试(有效的才可以正常播放)

3.该项目由萌新大大提供,感谢萌新大大

2.2 使用电视播放MoonTV(这里使用模拟器进行演示)

下载app安装包:Tags · zimplexing/OrionTV · GitHub

注:

Debian-DIY-萌新(真)
这个项目还有几个配套的:
1:安卓端:https://github.com/MoonTechLab/Selene
2:安卓TV端:
https://github.com/orion-lib/OrionTV
这个虽然是官方版,但是有BUG,我自己用的是另一个人的分支版:
https://github.com/yaniswang/OrionTV

如有遗漏还请评论区补充