追剧天堂!MoonTV Docker 部署!

追剧天堂!MoonTV Docker 部署!

本项目是一个影视聚合型播放站点,可以聚合全网影视资源,实现在一个页面内搜索和观看。本次教程将演示如何在 NAS 上通过 Docker 进行部署。

项目来源: GitHub 上的开源项目: https://github.com/senshinya/MoonTV
支持平台:
NAS (通过 Docker)
Vercel
Cloudflare

部署:
1.直接运行:docker run -d –name moontv -p 3000:3000 ghcr.io/senshinya/moontv:latest
访问 http://服务器 IP:3000 即可

默认端口为 3000,部署前需确认3000 端口未被其他服务占用。
如果端口被占用,需要修改映射端口,例如将 3000:3000 修改为 3001:3000。

2.使用 docker compose 部署

部署步骤:https://www.youtube.com/watch?v=riHqCnc221M

  1. 创建文件夹

在系统的文件管理器中,创建一个新的文件夹用于存放项目文件,名称可自定义。

  1. 准备 config.json 文件

访问项目的 GitHub 页面,找到 config.json 文件并下载
将下载好的 config.json 文件上传到创建的文件夹内

{
“cache_time”: 7200,
“api_site”: {
“dyttzy”: {
“api”: “http://caiji.dyttzyapi.com/api.php/provide/vod“,
“name”: “电影天堂资源”,
“detail”: “http://caiji.dyttzyapi.com
},
“heimuer”: {
“api”: “https://json.heimuer.xyz/api.php/provide/vod“,
“name”: “黑木耳”,
“detail”: “https://heimuer.tv
},
“ruyi”: {
“api”: “https://cj.rycjapi.com/api.php/provide/vod“,
“name”: “如意资源”
},
“bfzy”: {
“api”: “https://bfzyapi.com/api.php/provide/vod“,
“name”: “暴风资源”
},
“tyyszy”: {
“api”: “https://tyyszy.com/api.php/provide/vod“,
“name”: “天涯资源”
},
“ffzy”: {
“api”: “http://ffzy5.tv/api.php/provide/vod“,
“name”: “非凡影视”,
“detail”: “http://ffzy5.tv
},
“zy360”: {
“api”: “https://360zy.com/api.php/provide/vod“,
“name”: “360资源”
},
“iqiyi”: {
“api”: “https://www.iqiyizyapi.com/api.php/provide/vod“,
“name”: “iqiyi资源”
},
“wolong”: {
“api”: “https://wolongzyw.com/api.php/provide/vod“,
“name”: “卧龙资源”
},
“jisu”: {
“api”: “https://jszyapi.com/api.php/provide/vod“,
“name”: “极速资源”,
“detail”: “https://jszyapi.com
},
“dbzy”: {
“api”: “https://dbzy.tv/api.php/provide/vod“,
“name”: “豆瓣资源”
},
“mozhua”: {
“api”: “https://mozhuazy.com/api.php/provide/vod“,
“name”: “魔爪资源”
},
“mdzy”: {
“api”: “https://www.mdzyapi.com/api.php/provide/vod“,
“name”: “魔都资源”
},
“zuid”: {
“api”: “https://api.zuidapi.com/api.php/provide/vod“,
“name”: “最大资源”
},
“yinghua”: {
“api”: “https://m3u8.apiyhzy.com/api.php/provide/vod“,
“name”: “樱花资源”
},
“wujin”: {
“api”: “https://api.wujinapi.me/api.php/provide/vod“,
“name”: “无尽资源”
},
“wwzy”: {
“api”: “https://wwzy.tv/api.php/provide/vod“,
“name”: “旺旺短剧”
},
“ikun”: {
“api”: “https://ikunzyapi.com/api.php/provide/vod“,
“name”: “iKun资源”
}
},
“custom_category”: [
{
“name”: “纪录片”,
“type”: “movie”,
“query”: “纪录片”
},
{
“name”: “OVA”,
“type”: “movie”,
“query”: “OVA”
},
{
“name”: “动漫电影”,
“type”: “movie”,
“query”: “动漫电影”
}
]
}

TV源

{
“cache_time”: 9200,
“api_site”: {
“api_1”: {
“name”: “TV-1080资源”,
“api”: “https://api.1080zyku.com/inc/api_mac10.php“,
“detail”: “https://api.1080zyku.com
},
“api_2”: {
“name”: “AV-155资源”,
“api”: “https://155api.com/api.php/provide/vod“,
“detail”: “https://155api.com
},
“api_3”: {
“name”: “TV-360资源”,
“api”: “https://360zy.com/api.php/provide/vod“,
“detail”: “https://360zy.com
},
“api_4”: {
“name”: “TV-CK资源”,
“api”: “https://ckzy.me/api.php/provide/vod“,
“detail”: “https://ckzy.me
},
“api_5”: {
“name”: “TV-U酷资源”,
“api”: “https://api.ukuapi.com/api.php/provide/vod“,
“detail”: “https://api.ukuapi.com
},
“api_6”: {
“name”: “TV-U酷资源”,
“api”: “https://api.ukuapi88.com/api.php/provide/vod“,
“detail”: “https://api.ukuapi88.com
},
“api_7”: {
“name”: “TV-ikun资源”,
“api”: “https://ikunzyapi.com/api.php/provide/vod“,
“detail”: “https://ikunzyapi.com
},
“api_8”: {
“name”: “TV-wujinapi无尽”,
“api”: “https://api.wujinapi.cc/api.php/provide/vod“,
“detail”: “”
},
“api_9”: {
“name”: “TV-丫丫点播”,
“api”: “https://cj.yayazy.net/api.php/provide/vod“,
“detail”: “https://cj.yayazy.net
},
“api_10”: {
“name”: “TV-光速资源”,
“api”: “https://api.guangsuapi.com/api.php/provide/vod“,
“detail”: “https://api.guangsuapi.com
},
“api_11”: {
“name”: “TV-卧龙点播”,
“api”: “https://collect.wolongzyw.com/api.php/provide/vod“,
“detail”: “https://collect.wolongzyw.com
},
“api_12”: {
“name”: “TV-卧龙资源”,
“api”: “https://collect.wolongzy.cc/api.php/provide/vod“,
“detail”: “”
},
“api_13”: {
“name”: “TV-卧龙资源”,
“api”: “https://wolongzyw.com/api.php/provide/vod“,
“detail”: “https://wolongzyw.com
},
“api_14”: {
“name”: “TV-天涯资源”,
“api”: “https://tyyszy.com/api.php/provide/vod“,
“detail”: “https://tyyszy.com
},
“api_15”: {
“name”: “TV-如意资源”,
“api”: “https://cj.rycjapi.com/api.php/provide/vod“,
“detail”: “”
},
“api_16”: {
“name”: “TV-小猫咪资源”,
“api”: “https://zy.xmm.hk/api.php/provide/vod“,
“detail”: “https://zy.xmm.hk
},
“api_17”: {
“name”: “TV-新浪点播”,
“api”: “https://api.xinlangapi.com/xinlangapi.php/provide/vod“,
“detail”: “https://api.xinlangapi.com
},
“api_18”: {
“name”: “TV-无尽资源”,
“api”: “https://api.wujinapi.com/api.php/provide/vod“,
“detail”: “”
},
“api_19”: {
“name”: “TV-无尽资源”,
“api”: “https://api.wujinapi.me/api.php/provide/vod“,
“detail”: “”
},
“api_20”: {
“name”: “TV-无尽资源”,
“api”: “https://api.wujinapi.net/api.php/provide/vod“,
“detail”: “”
},
“api_21”: {
“name”: “TV-旺旺短剧”,
“api”: “https://wwzy.tv/api.php/provide/vod“,
“detail”: “https://wwzy.tv
},
“api_22”: {
“name”: “TV-旺旺资源”,
“api”: “https://api.wwzy.tv/api.php/provide/vod“,
“detail”: “https://api.wwzy.tv
},
“api_23”: {
“name”: “TV-暴风资源”,
“api”: “https://bfzyapi.com/api.php/provide/vod“,
“detail”: “”
},
“api_24”: {
“name”: “TV-最大点播”,
“api”: “http://zuidazy.me/api.php/provide/vod“,
“detail”: “http://zuidazy.me
},
“api_25”: {
“name”: “TV-最大资源”,
“api”: “https://api.zuidapi.com/api.php/provide/vod“,
“detail”: “https://api.zuidapi.com
},
“api_26”: {
“name”: “TV-樱花资源”,
“api”: “https://m3u8.apiyhzy.com/api.php/provide/vod“,
“detail”: “”
},
“api_27”: {
“name”: “TV-步步高资源”,
“api”: “https://api.yparse.com/api/json“,
“detail”: “”
},
“api_28”: {
“name”: “TV-牛牛点播”,
“api”: “https://api.niuniuzy.me/api.php/provide/vod“,
“detail”: “https://api.niuniuzy.me
},
“api_29”: {
“name”: “TV-电影天堂资源”,
“api”: “http://caiji.dyttzyapi.com/api.php/provide/vod“,
“detail”: “http://caiji.dyttzyapi.com
},
“api_30”: {
“name”: “AV-百万资源”,
“api”: “https://api.bwzyz.com/api.php/provide/vod“,
“detail”: “https://api.bwzyz.com
},
“api_31”: {
“name”: “TV-百度云资源”,
“api”: “https://api.apibdzy.com/api.php/provide/vod“,
“detail”: “https://api.apibdzy.com
},
“api_32”: {
“name”: “TV-神马云”,
“api”: “https://api.1080zyku.com/inc/apijson.php“,
“detail”: “https://api.1080zyku.com
},
“api_33”: {
“name”: “TV-索尼资源”,
“api”: “https://suoniapi.com/api.php/provide/vod“,
“detail”: “”
},
“api_34”: {
“name”: “TV-红牛资源”,
“api”: “https://www.hongniuzy2.com/api.php/provide/vod“,
“detail”: “https://www.hongniuzy2.com
},
“api_35”: {
“name”: “TV-茅台资源”,
“api”: “https://caiji.maotaizy.cc/api.php/provide/vod“,
“detail”: “https://caiji.maotaizy.cc
},
“api_36”: {
“name”: “TV-虎牙资源”,
“api”: “https://www.huyaapi.com/api.php/provide/vod“,
“detail”: “https://www.huyaapi.com
},
“api_37”: {
“name”: “TV-豆瓣资源”,
“api”: “https://caiji.dbzy.tv/api.php/provide/vod“,
“detail”: “https://caiji.dbzy.tv
},
“api_38”: {
“name”: “TV-豆瓣资源”,
“api”: “https://dbzy.tv/api.php/provide/vod“,
“detail”: “https://dbzy.tv
},
“api_39”: {
“name”: “TV-豪华资源”,
“api”: “https://hhzyapi.com/api.php/provide/vod“,
“detail”: “https://hhzyapi.com
},
“api_40”: {
“name”: “TV-速博资源”,
“api”: “https://subocaiji.com/api.php/provide/vod“,
“detail”: “”
},
“api_41”: {
“name”: “TV-量子资源”,
“api”: “https://cj.lziapi.com/api.php/provide/vod“,
“detail”: “”
},
“api_42”: {
“name”: “TV-金鹰点播”,
“api”: “https://jinyingzy.com/api.php/provide/vod“,
“detail”: “https://jinyingzy.com
},
“api_43”: {
“name”: “TV-金鹰资源”,
“api”: “https://jyzyapi.com/api.php/provide/vod“,
“detail”: “https://jyzyapi.com
},
“api_44”: {
“name”: “TV-閃電资源”,
“api”: “https://sdzyapi.com/api.php/provide/vod“,
“detail”: “https://sdzyapi.com
},
“api_45”: {
“name”: “TV-非凡资源”,
“api”: “https://cj.ffzyapi.com/api.php/provide/vod“,
“detail”: “https://cj.ffzyapi.com
},
“api_46”: {
“name”: “TV-飘零资源”,
“api”: “https://p2100.net/api.php/provide/vod“,
“detail”: “https://p2100.net
},
“api_47”: {
“name”: “TV-魔爪资源”,
“api”: “https://mozhuazy.com/api.php/provide/vod“,
“detail”: “https://mozhuazy.com
},
“api_48”: {
“name”: “TV-魔都动漫”,
“api”: “https://caiji.moduapi.cc/api.php/provide/vod“,
“detail”: “https://caiji.moduapi.cc
},
“api_49”: {
“name”: “TV-魔都资源”,
“api”: “https://www.mdzyapi.com/api.php/provide/vod“,
“detail”: “https://www.mdzyapi.com
},
“api_50”: {
“name”: “TV-黑木耳”,
“api”: “https://json.heimuer.xyz/api.php/provide/vod“,
“detail”: “https://json.heimuer.xyz
},
“api_51”: {
“name”: “TV-黑木耳点播”,
“api”: “https://json02.heimuer.xyz/api.php/provide/vod“,
“detail”: “https://json02.heimuer.xyz
},
“api_52”: {
“name”: “AV-91麻豆”,
“api”: “https://91md.me/api.php/provide/vod“,
“detail”: “https://91md.me
},
“api_53”: {
“name”: “AV-AIvin”,
“api”: “http://lbapiby.com/api.php/provide/vod“,
“detail”: “”
},
“api_54”: {
“name”: “AV-JKUN资源”,
“api”: “https://jkunzyapi.com/api.php/provide/vod“,
“detail”: “https://jkunzyapi.com
},
“api_55”: {
“name”: “AV-souav资源”,
“api”: “https://api.souavzy.vip/api.php/provide/vod“,
“detail”: “https://api.souavzy.vip
},
“api_56”: {
“name”: “AV-乐播资源”,
“api”: “https://lbapi9.com/api.php/provide/vod“,
“detail”: “”
},
“api_57”: {
“name”: “AV-奥斯卡资源”,
“api”: “https://aosikazy.com/api.php/provide/vod“,
“detail”: “https://aosikazy.com
},
“api_58”: {
“name”: “AV-奶香香”,
“api”: “https://Naixxzy.com/api.php/provide/vod“,
“detail”: “https://Naixxzy.com
},
“api_59”: {
“name”: “AV-森林资源”,
“api”: “https://slapibf.com/api.php/provide/vod“,
“detail”: “https://slapibf.com
},
“api_60”: {
“name”: “AV-淫水机资源”,
“api”: “https://www.xrbsp.com/api/json.php“,
“detail”: “https://www.xrbsp.com
},
“api_61”: {
“name”: “AV-玉兔资源”,
“api”: “https://apiyutu.com/api.php/provide/vod“,
“detail”: “https://apiyutu.com
},
“api_62”: {
“name”: “AV-番号资源”,
“api”: “http://fhapi9.com/api.php/provide/vod“,
“detail”: “”
},
“api_63”: {
“name”: “AV-白嫖资源”,
“api”: “https://www.kxgav.com/api/json.php“,
“detail”: “https://www.kxgav.com
},
“api_64”: {
“name”: “AV-精品资源”,
“api”: “https://www.jingpinx.com/api.php/provide/vod“,
“detail”: “https://www.jingpinx.com
},
“api_65”: {
“name”: “AV-美少女资源”,
“api”: “https://www.msnii.com/api/json.php“,
“detail”: “https://www.msnii.com
},
“api_66”: {
“name”: “AV-老色逼资源”,
“api”: “https://apilsbzy1.com/api.php/provide/vod“,
“detail”: “https://apilsbzy1.com
},
“api_67”: {
“name”: “AV-色南国”,
“api”: “https://api.sexnguon.com/api.php/provide/vod“,
“detail”: “https://api.sexnguon.com
},
“api_68”: {
“name”: “AV-色猫资源”,
“api”: “https://api.maozyapi.com/inc/apijson_vod.php“,
“detail”: “https://api.maozyapi.com
},
“api_69”: {
“name”: “AV-辣椒资源”,
“api”: “https://apilj.com/api.php/provide/vod“,
“detail”: “https://apilj.com
},
“api_70”: {
“name”: “AV-香奶儿资源”,
“api”: “https://www.gdlsp.com/api/json.php“,
“detail”: “https://www.gdlsp.com
},
“api_71”: {
“name”: “AV-鲨鱼资源”,
“api”: “https://shayuapi.com/api.php/provide/vod“,
“detail”: “https://shayuapi.com
},
“api_72”: {
“name”: “AV-黄AV资源”,
“api”: “https://www.pgxdy.com/api/json.php“,
“detail”: “https://www.pgxdy.com
},
“ffzynew”: {
“api”: “https://api.ffzyapi.com/api.php/provide/vod“,
“name”: “非凡影视new”,
“detail”: “http://ffzy5.tv
},
“jisu”: {
“api”: “https://jszyapi.com/api.php/provide/vod“,
“name”: “极速资源”,
“detail”: “https://jszyapi.com
},
“mozhua”: {
“api”: “https://mozhuazy.com/api.php/provide/vod“,
“name”: “魔爪资源”
},
“mdzy”: {
“api”: “https://www.mdzyapi.com/api.php/provide/vod“,
“name”: “魔都资源”
},
“kauiboziyuan”: {
“api”: “https://gayapi.com/api.php/provide/vod“,
“name”: “快播资源网站”
},
“xingbaziyuan”: {
“api”: “https://xingba111.com/api.php/provide/vod“,
“name”: “杏吧资源”
},
“liangziziyuan”: {
“api”: “https://cj.lziapi.com/api.php/provide/vod“,
“name”: “量子资源”
},
“senlinziyuan”: {
“api”: “https://slapibf.com/api.php/provide/vod“,
“name”: “森林资源”
},
“aiduanjucc”: {
“api”: “https://www.aiduanju.cc/“,
“name”: “爱短剧.cc”
},
“huaweiba”: {
“api”: “https://huawei8.live/api.php/provide/vod“,
“name”: “华为吧资源”
},
“taopian”: {
“api”: “https://taopianapi.com/cjapi/sda/vod“,
“name”: “淘片资源”
},
“hongniuziyuan”: {
“api”: “https://www.hongniuzy3.com/api.php/provide/vod“,
“name”: “红牛资源”
},
“suonisandian”: {
“api”: “https://xsd.sdzyapi.com/api.php/provide/vod“,
“name”: “索尼-闪电资源”
},
“yayaziyuan”: {
“api”: “https://cj.yayazy.net/api.php/provide/vod“,
“name”: “鸭鸭资源”
},
“jinyingziyuan”: {
“api”: “https://jyzyapi.com/provide/vod“,
“name”: “金鹰资源采集网”
},
“fengchao”: {
“api”: “https://api.fczy888.me/api.php/provide/vod“,
“name”: “蜂巢片库”
},
“jinmaziyuan2”: {
“api”: “https://api.jmzy.com/api.php/provide/vod“,
“name”: “金马资源网”
},
“dadiziy”: {
“api”: “https://dadiapi.com/api.php/provide/vod“,
“name”: “大地资源网络”
},
“huangseziy”: {
“api”: “https://hsckzy888.com/api.php/provide/vod“,
“name”: “黄色资源啊啊”
},
“xiaojiziy”: {
“api”: “https://api.xiaojizy.live/provide/vod“,
“name”: “小鸡资源”
},
“kauicheziyuan”: {
“api”: “https://caiji.kuaichezy.org/api.php/provide“,
“name”: “快车资源阿”
},
“xinlangaa”: {
“api”: “https://api.xinlangapi.com/xinlangapi.php/provide/vod“,
“name”: “新浪资源阿”
},
“lajiaoziyu”: {
“api”: “https://apilj.com/api.php/provide“,
“name”: “辣椒资源黄黄”
},
“youzhidianying”: {
“api”: “https://api.yzzy-api.com/inc/ldg_api_all.php/provide/vod“,
“name”: “优质资源库1080zyk6.com高清”
},
“iqiyi”: {
“api”: “https://www.iqiyizyapi.com/api.php/provide/vod“,
“name”: “iqiyi资源”
},
“xibaocaiji”: {
“api”: “https://www.xxibaozyw.com/api.php/provide/vod“,
“name”: “细胞采集黄色”
},
“qiqiqiqi”: {
“api”: “https://www.qiqidys.com/api.php/provide/vod/“,
“name”: “七七影视”
},
“yingshigongchang”: {
“api”: “https://cj.lziapi.com/api.php/provide/vod/“,
“name”: “影视工厂”
},
“fantuanyingshi”: {
“api”: “https://www.fantuan.tv/api.php/provide/vod/“,
“name”: “饭团影视”
}
}
}

  1. 设置文件权限

使用 SSH 工具连接
进入(cd)到存放 config.json 的文件夹。
执行以下命令赋予文件权限:
复制代码chmod 777 config.json

  1. 创建 Docker Compose 项目

进入 Docker 管理界面,选择新增项目,项目名称可自定义。
将项目路径指向第一步创建的文件夹。
选择“创建 Compose 文件”的方式。

  1. 配置并启动容器

将 docker-compose.yml 文件的内容复制并粘贴到配置框中:

services:
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

💖local storage 版本:

services:
moontv-core:
image: ghcr.io/lunatechlab/moontv:latest
container_name: moontv-core
restart: unless-stopped
ports:
- ‘3000:3000’
environment:
- PASSWORD=your_password
# 如需自定义配置,可挂载文件
volumes:
- ./config.json:/app/config.json:ro
networks:
moontv-network:
driver: bridge

修改配置:
端口:根据需要修改为未被占用的端口。
用户名/密码:根据需要修改。
自定义配置:如果你选择自定义接口,请取消 volumes 部分关于 config.json 的注释。
注意:取消注释后,必须确保代码对齐(缩进)正确,否则会出错。
点击确定保存配置。
在项目列表中,点击“构建”或“启动”来拉取镜像并运行容器。

访问站点
当容器成功运行后,通过浏览器访问 http://<你的NAS_IP>:<你设置的端口>。
输入你设置的用户名和密码即可登录。

LibreTV Compose 文件代码:

version: ‘3’
services:
libretv:
image: bestzwei/libretv:latest # 使用 libretv 的最新镜像
container_name: libretv # 容器名称为 libretv
ports:
- “8899:80” # 将主机的 8899 端口映射到容器的 80 端口
environment:
- PASSWORD=123456 # 设置访问密码(留空表示不启用密码保护)
restart: always # 容器异常退出后自动重启

自定义接口地址
视频数据采集站
非凡采集站:http://ffzy5.tv/

爱坤资源:https://www.ikunzy.com/ikun/help.html

暴风资源:https://bfzy.tv/help/?home

苹果cms官方:https://www.applecms.cc

赞片cms官网:https://www.zanpiancms.com/

量子资源网:http://lzizy.net/help/

新浪资源网:https://www.xinlangzy.com/help/

虎牙资源网:http://huyazy.net/help/

光速资源网:https://www.guangsuzy.com/help/

极速资源网:https://www.jisuzy.com/index.php/help/index.html

红牛资源网:https://hongniuzy.net/help/

如意资源网:https://www.ryzy3.tv/

魔爪资源网:https://mzzy.me/

华为吧资源:https://huawei8.live/

豆瓣资源站:https://dbzy.com/

茅台资源站:https://mtzy.me/

索尼资源:https://suonizy.net/

U酷资源站:https://ukuzy0.com/

快车资源站:https://kuaichezy.com/

金鹰资源站:https://jinyingzy.com/

淘片资源站:https://www.taopianzy.com/

卧龙资源站:https://wolongzyw.com/

牛牛资源站:https://niuniuzy.cc/

小绵羊资源站:https://vs.okcdn100.top/

虾米资源站:https://zy.hls.one/

麒麟资源站:https://www.qilinzyz.com/

蜂巢资源站:https://fczy908.com/

豪华资源站:https://haohuazy.com/

魔都资源站:https://moduzy.com/

火花资源站:https://cj.huohua.live/

速播资源站:https://www.suboziyuan.net/

黑木耳资源站:https://heimuer.tv/

https://youtu.be/ZXRri4QNJoM

🚨 项目背景与变动
由于一些不可抗力因素,MoonTV 项目在新的版本中选择了 闭源 策略,随之而来的变化是:
仅支持 Docker 或基于 Docker 的平台 进行部署:MoonTV 的转生版本 —— LunaTV!

🚀 教程准备:选择你的部署方式
数据库配置:Upstash 方案详解
新项目的配置文件不再从本地文件读取,而是仅支持 Redis 或 Upstash 进行数据存储
为了简化操作,这里我们以 Upstash 为例进行讲解。

打开 Upstash 官网:🔗 https://upstash.com/
注册与登录:

点击注册,填写邮箱和密码。
填写正确的邮箱验证码即可完成注册并登录。
创建 Redis 数据库:

登录后,点击 “新建一个数据库” (Create a new database)。
为数据库随意起一个名字(例如:lunatv-db)。
地区选择离你物理位置较近的节点,如 日本 🇯🇵 或 新加坡 🇸🇬。
点击 “下一步”(Next)。
选择 免费计划 (Free Plan),这已足够我们使用。
接着点击 “下一步”,然后点击 “创建”(Create)。
👉 你的 Redis 数据库就创建好了!这个页面请 暂时不要关闭,稍后我们要用到里面的连接信息。
🖥️ 本地部署:NAS 平台实践 (以飞牛NAS为例)
我们以 飞牛NAS 为例进行部署演示。其他类型的 NAS 产品也可以参照此流程进行部署。

登录飞牛NAS 后台。
创建本地目录:

首先,我们需要创建一个本地目录来存放 LunaTV 的 Docker Compose 文件。
建议在常用的 /docker 文件夹下创建一个名为 lunatv 的新文件夹。
配置 Docker-Compose:

打开 Docker 管理界面,找到 Docker-Compose 选项。
选择 新增项目。
项目名称填写:lunatv。
路径选择我们刚才创建的 lunatv 文件夹。
点击 “创建 Docker”。
复制并修改 Compose 代码:

将以下 Compose 代码复制到编辑框中:
services:
moontv-core:
image: ghcr.io/moontechlab/lunatv:latest
container_name: moontv-core
restart: unless-stopped
ports:
- ‘3000:3000’ # 默认端口,需要修改
environment:
- USERNAME=admin # 默认用户名,可修改
- PASSWORD=admin_password # 默认密码,强烈建议修改
- NEXT_PUBLIC_STORAGE_TYPE=upstash
- UPSTASH_URL={上面 https 开头的 HTTPS ENDPOINT} # 必填
- UPSTASH_TOKEN={上面的 TOKEN} # 必填
重要修改事项:

端口修改:Docker 容器中,3000 端口可能已被应用占用。我们需要修改默认端口,例如改为 4000。

ports:

  • ‘4000:3000’ # 将 ‘3000:3000’ 修改为 ‘你的本地端口:3000’
    登录密码:本地部署时,为了方便,你可以将 PASSWORD 修改得简单一些。

environment:

  • USERNAME=admin
  • PASSWORD=your_easy_password # 修改为你的密码
    🎯 重点来了!Upstash 连接信息:

回到之前打开的 Upstash 页面。
复制 Endpoint 下面的以 https 开头的 HTTPS ENDPOINT 值,将其填入 UPSTASH_URL 等号后面。
接着复制 TOKEN 值,将其填入 UPSTASH_TOKEN 等号后面。
启动项目:

勾选 “在创建项目后立即启动”。
点击 “确定” 即可启动容器。
✅ LunaTV 初体验与配置
稍等片刻,LunaTV 就应该已经在运行了!

查看日志:回到容器目录,查看一下日志信息,确认部署已完成。
访问 LunaTV:在链接选项中打开 LunaTV。
登录:在弹出的登录页面中填入你刚才修改的账号和密码。

你会发现,这个 LunaTV 项目正是 MoonTV 的“换皮”版本,作者只是对部分内容进行了修改 😉。
⚙️ 站点配置 (重要!)
由于新版不自带站点配置,我们需要手动进行配置。跟我一步一步来!

进入管理面板:在页面右上角的 “管理面板设置” 中修改配置文件。
配置订阅:

在 “配置订阅” 中填入我们准备好的订阅地址。
✨ 神奇妙妙代码:
https://gist.githubusercontent.com/senshinya/5a5cb900dfa888fd61d767530f00fc48/raw/gistfile1.txt
(此订阅地址在博客中会同步更新,请注意查阅最新信息)

填入地址后,选择 拉取配置。
打开 自动更新。
点击 保存。
🎉 恭喜!本地部署的 LunaTV 配置就完成了,是不是非常简单!
现在,你可以尝试随机播放一个片源,体验一下效果吧!

📱 移动端与电视端集成:OrionTV
如果你希望在 Android 手机或电视上观看 LunaTV,OrionTV 是一个绝佳的伴侣 ✨。

配置 OrionTV API 地址:

打开 OrionTV,点击右上角的 设置 ⚙️。
在 “API 地址” 一栏中填入你的 LunaTV 页面地址 (即你的 NAS 地址加端口号)。

例如:http://10.10.10.10:4000 (如果你的端口号和我的一致,只需修改前面的 IP 地址即可)。
保存设置后返回 APP 主界面。
登录:

在弹出的登录框中填入你设置的 LunaTV 账号和密码。
注意:如果未弹出登录框,你需要手动点击右上角的 “退出” 按钮,登录框便会自动弹出。

🌐 公益站点使用指南 (无本地部署条件必看)
如果没有本地部署的条件,需要在不同的网络环境下使用 LunaTV,那么,使用公益站点! 💖

打开公益站点:🔗 tv.910501.xyz
注册账号📺

🎉 如何搭建青龙面板,羊毛党必备工具指南
https://www.bilibili.com/video/BV1XW89zhEWH?t=157.7

青龙是一款支持多脚本、多平台的定时任务管理平台。它帮你自动化:

领取高额优惠券、积分(比如美团、饿了么)
自动签到(顺丰、海底捞、益禾堂等)
执行众多任务脚本,实现“薅羊毛”的高效操作
很大部分羊毛党热衷的脚本仓库都基于它,尤其是京东相关脚本,只需配置好登录信息,就可以自动帮你薅羊毛,奖励包括京豆、红包、超市卡、微信现金等等。

🎯 软硬件部署建议
关于部署,青龙面板非常灵活:

家用NAS(如群晖、飞牛、极速星辰等)
软路由(如小怪兽、OpenWRT、Padavan等)
Linux服务器
特别提醒:

建议用家庭宽带,这样IP会不定期变化,降低风控风险。
预先安装Docker:软路由和NAS都需要确保已装好Docker,否则会报错。
🐳 在软路由或NAS上部署青龙

  1. 安装 Docker
    对于无Docker的系统(尤其软路由),可以在“系统 → 软件包”安装luci-app-dockerman

  2. 使用命令部署青龙
    以版本 2.17.11 为例,粘贴以下命令(也放在视频说明):

docker run -dit
-v $PWD/ql/data:/ql/data
-p 5700:5700
-e QlBaseUrl=”/“
-e QlPort=”5700”
–name qinglong
–hostname qinglong
–restart unless-stopped
whyour/qinglong:2.17.11
成功后:
在浏览器输入:你的IP:5700,登录注册(默认注册码:230713),即可开始配置。

🧰 青龙面板的主要功能模块
定时任务:管理各种自动执行的脚本
订阅管理:一键订阅脚本仓库,自动更新
环境变量:配置API密钥、Token等关键参数
脚本管理:上传、编辑、删除脚本
依赖管理:处理第三方库(pip、node等)
日志监控:查看任务执行详细记录
差异对比:管理配置、脚本版本变更
系统设置:调整外观、权限、安全等
这些模块高效配合,保证你的自动任务平稳运行。

🖥️ NAS(飞牛)部署青龙
打开Docker仓库,搜索whyour/qinglong
选择合适的版本(例如:2.17.11)
设置存储路径(推荐 /root/ql 等)
启动容器,配置端口(比如默认5700)
进入界面后,注册登录,提前准备好Token和环境变量
配置示例:
登录后,切换到“环境变量”,添加:

QL_TOKEN=你的token
(其他你需要的变量)
完成后,即可在“脚本订阅”中导入任务,自动领取优惠。

🧹 使用示例:京东薅羊毛脚本
复制大佬的JD脚本仓库地址(也在视频说明)
配置好对应的环境变量(如JD_COOKIE、JD_TOKEN)
设置定时任务(建议每天运行)
观察运行日志,确认有提取成功的优惠券或奖励
示例效果:
成功领取了几张高价值优惠券,奖励拿到手软!

⚠️ 注意事项
IP变化频繁:建议用家庭宽带,避免被封
脚本风险:请合法使用,不要违反平台规则
账号安全:环境变量中,敏感信息务必保密

库地址


定时规则

0 3,14 *

说明:
这个定时规则表示在每天的03:0014:00 执行任务。


文件后缀

支持的文件后缀包括:

  • .py 📜 (Python 脚本)
  • .sh 🐚 (Shell 脚本)
  • .js 🌐 (JavaScript 文件)
  • .so 🔧 (动态库文件)

🔍在 Vercel 上部署网盘搜索工具–盘搜(pansou-ui)🔍
https://www.bilibili.com/video/BV1vdttzdENm?t=18.3

盘搜(pansou)🔍的优势主要在于:

💡 多平台聚合搜索
🎯 智能筛选
🔥 更全面的热搜功能
而 CloudSaver 则更侧重于:

🚀 便捷部署
🔗 端到端的转存能力
两个项目各有特色,当然也可以同时使用哦!😊

📌 在 Vercel 上部署运行盘搜(pansou-ui)✨

准备工作:
📝 一个 GitHub 账号(用来 fork 仓库)
🚀 一个 Vercel 账号,免费版即可使用
部署步骤一览

  1. Fork 仓库(仓库地址:📎 https://github.com/ZhjGo/pansou-ui)
  2. 记录环境变量
    在仓库说明或代码中找到需要配置的环境变量名(例如,“清除密码”对应变量名),做好记录。
  3. 登录 Vercel 账号,点击 “Import Project”,关联 Github fork 的仓库,选择导入(Import)
  4. 配置环境变量
    在 项目设置 → Environment Variables 填入你记下的变量名和值,创建项目并部署
    热搜数据存储设置
    🔑 盘搜使用 Vercel KV(类似 Redis)存储热搜数据。操作流程如下:

在 Vercel 仪表盘 进入 Storage(KV) 选项,创建一个 KV 实例
选择离你较近的区域(推荐东京、首尔等),免费额度30MB
创建成功后,点击 “Connect Project”,关联到你刚部署的盘搜项目
Vercel 会自动帮你填写相关环境变量
解决域名访问问题(GFW限制)
如果访问域名遇到问题,可能是被长城防火墙拦截 🛡️。建议添加自定义域名解决:

  1. 添加自定义域名
    没有域名的可以使用 https://pansou.910501.xyz/ 这个公益站点
  2. 配置域名解析
    在你的域名管理面板中,按 Vercel 指引添加验证记录
    若托管在 Cloudflare,记得关闭“代理(橙色云)”🔧,避免被屏蔽
  3. 等待解析与证书生成
    等待 DNS 解析生效和 SSL 证书自动生成完成
    完成后,即可正常访问 https://pansou.910501.xyz!

重要提醒
📝 免责声明:盘搜本质是一个工具,但资源的搜索与分享涉及法律与版权边界。请确保合规使用,避免传播侵权内容。

相关资源
🚀 GitHub仓库:https://github.com/ZhjGo/pansou-ui
🌐 公益站点:https://pansou.910501.xyz/

Github实现IPTV源无限续杯!
https://www.bilibili.com/video/BV16BtZzSEBX?t=13.4

🛠️ 动手实践:构建你的自动化IPTV系统
项目地址:https://github.com/Guovin/iptv-api

  1. 🚀 Fork 项目仓库

  2. 📝 个性化配置:精细化你的直播源
    2.1 修改 config/demo.txt 模板文件
    第一步:点击 config 文件夹内 demo.txt 模板文件。
    您可以复制并参考默认模板的格式进行后续操作。

点击 config 目录
创建文件
模板文件命名为 user_demo.txt
将复制的模板文件按照需要自行修改。
📺央视频道,#genre#
CCTV-1
CCTV-2
CCTV-3
CCTV-4
CCTV-5
CCTV-5+
CCTV-6
CCTV-7
CCTV-8
CCTV-9
CCTV-10
CCTV-11
CCTV-12
CCTV-13
CCTV-14
CCTV-15
CCTV-16
CCTV-17

📡卫视频道,#genre#
广东卫视
浙江卫视
湖南卫视
北京卫视
安徽卫视
重庆卫视
东方卫视
东南卫视
广西卫视
贵州卫视
海南卫视
江苏卫视
四川卫视
深圳卫视
新疆卫视
云南卫视
点击 Commit changes… 进行保存
2.2 config 文件夹内新建个人配置文件 user_config.ini。
创建文件
配置文件命名为 user_config.ini
粘贴推荐配置
[Settings]
#修改模板和结果文件配置:
source_file = config/user_demo.txt
final_file = output/user_result.txt

基础功能配置

open_driver = False
open_epg = True
open_empty_category = False
open_filter_resolution = True
open_filter_speed = True
open_speed_test = True
open_update = True
open_update_time = True
open_service = True

源功能配置

open_hotel = True
open_hotel_foodie = True
open_hotel_fofa = False
open_local = True
open_multicast = True
open_multicast_foodie = True
open_multicast_fofa = False
open_online_search = False
open_subscribe = True

高级功能配置

open_m3u_result = True
open_rtmp = False
open_request = False
open_supply = True
open_use_cache = True
open_history = True
open_headers = False
open_url_info = True

网络配置(适合Docker)

#app_host = http://0.0.0.0
#app_port = 8000
#cdn_url =

数量控制配置

hotel_num = 15
local_num = 15
multicast_num = 15
subscribe_num = 15
online_search_num = 0
urls_limit = 8

分页配置

hotel_page_num = 2
multicast_page_num = 2
online_search_page_num = 1

地区配置

hotel_region_list = 全部
multicast_region_list = 全部

网络类型配置

ipv_type = 全部
ipv_type_prefer = ipv4
ipv4_num =
ipv6_num =
ipv6_support = True

过滤条件配置

isp =
location =
min_resolution = 1280x720
max_resolution = 1920x1080
min_speed = 1.0

性能优化配置

recent_days = 15
request_timeout = 15
speed_test_limit = 8
speed_test_timeout = 12
speed_test_filter_host = True

来源偏好配置

origin_type_prefer = local,subscribe,hotel,multicast

时间配置

time_zone = Asia/Shanghai
update_interval = 6
update_time_position = top
点击 Commit changes… 进行保存

如果你有自己的订阅地址可以填写在 config/subscribe.txt 目录下
如果你有自己的本地源地址可以填写在 config/local.txt 目录下
如果你有需要过滤的接口不希望被收集,请填写在 config/blacklist.txt 目录下。比如最近频繁故障的(肥羊),我们可以先暂时屏蔽它。
如果你有自己的组播源地址可以填写在 config/rtp 目录下

2.3 修改 Github Actions 工作流频率
第三步:修改工作流更新频率。

进入 .github/workflows/main.yml 目录文件中。
修改修改更新频率 schedule 字段。
将定时规则修改为:

  • cron: ‘0 10 */2 * *’
    建议不要太频繁,两天一次就可以

点击 Commit changes… 进行保存
⚙️ 运行与获取你的专属直播源
需要修改的地方就这么多,修改好之后就可以在Actions中手动触发一次了。

由于 Fork 的仓库工作流是默认关闭的,我们点击Actions–Update schedule,点击Enable workflow按钮确认开启。

你可以通过这里 output/user_result.m3u 找到订阅地址。点击Raw并复制IPTV订阅地址

📺 轻松观看:如何使用你的IPTV直播源
公益的订阅地址:iptv.910501.xyz

  1. TVBox 配置演示
    ⚠️ 公益地址: https://iptv.910501.xyz
    数据源地址: http://ok321.top/tv

用WireGuard打造VIP通道,软路由 + NAS 双方案
https://youtu.be/DzZ6S1ly_5s

第一部分:在OpenWrt上配置WireGuard 🔧
OpenWrt是软路由的热门选择,它支持WireGuard内置
第一步:安装必要的“装备” 📦
先登录OpenWrt后台,进入“系统” -> “软件包”。

点击“更新列表”,让系统刷新一下。
在过滤器输入“wireguard”,搜索并安装以下包:

luci-proto-wireguard(带图形界面,超级友好!)
kmod-wireguard(内核模块,支持核心功能)
qrencode(生成二维码,配手机时超方便)
安装完成后,重启系统。✨

第二步:创建WireGuard服务端接口 🛠️
去“网络” -> “接口”,点击“添加新接口”。

接口名称:填WireGuard,简单好记。
协议:选择WireGuard VPN。
现在是核心配置!🔑

生成密钥:点击按钮,系统自动生成公钥和私钥。
监听端口:随便选一个没冲突的端口,比如51820(UDP协议)。
IP 地址:重点!用一个你局域网没用过的网段。例如,如果你家路由器是192.168.1.1,这里设为192.168.88.1/24(开辟新“VIP通道”)。
MTU(最大传输单元):如果是纯IPv4环境,设为1440;如果用IPv6或手机客户端,设为1280。
自定义 DNS 服务器:填个公共DNS,比如119.29.29.29。
防火墙区域:选lan。
添加对端:比如为iPhone添加,描述写iPhone88,生成新密钥对和预共享密钥。允许的IP设为192.168.88.2/24(同网段,别冲突)。
路由允许的 IP:勾选。
持续保持连接:填25或30。
连接端点:用你的公网IPv6地址(如果有固定IPv6,超赞!)。
允许的 IP:填0.0.0.0/0和::/0,允许所有地址。
保存配置,并生成二维码。📷

第三步:防火墙设置——给VIP通道开门 🚪
接口建好,但防火墙还“不认识它”。去“网络” -> “防火墙”,添加新规则:

端口转发:放行UDP端口51820,让外网朋友能敲开大门。
保存并应用。
第四步:使用WireGuard客户端——连接测试 ✅
手机端:下载WireGuard app,扫描刚才生成的二维码
PC端:下载WireGuard,新建隧道,粘贴配置。
打开开关,看见钥匙图标亮起?恭喜!你已连上家网!无论你在哪,都能像在家一样访问NAS或摄像头。🕵️‍♂️ 发挥你的想象力,场景无限!
第二部分:飞牛NAS化身WireGuard悍将 🏰
如果没有软路由,别担心!飞牛NAS也能轻松玩转WireGuard。借助Docker和wg-easy项目,一键部署,带WebUI管理!😍

第一步:安装和运行wg-easy Docker容器 🐳
飞牛NAS打开Docker套件,创建一个新容器:

镜像:搜索并拉取weejewel/wg-easy(最新版)。
端口映射:

WireGuard通信端口:51820/udp。
管理界面端口:51821/tcp(可以自定义)。
存储位置:映射容器内的/etc/wireguard目录到NAS上的文件夹(防止配置丢失)。
环境变量:

WG_HOST: 填你的NAS IPv6地址或DDNS域名。
PASSWORD: 可选,设个管理后台密码。
WG_PORT: 51820,如果改了端口,也要同步更改映射。
WG_MTU: 1280。
WG_PERSISTENT_KEEPALIVE: 25。
WG_DEFAULT_DNS: 119.29.29.29。
WG_ALLOWED_IPS: 0.0.0.0/0, ::/0。
功能选项:勾选NET_ADMIN和SYS_MODULE,确保权限足够。
创建并启动容器,开机自动运行。
容器启动后,浏览器输入http://你的NAS_IP:51821,登录管理界面(输入密码如果设了)。
添加新客户端(Peer)时,点“New Client”,自动生成配置和二维码。🤩

第二步:防火墙设置——给VIP通道开门 🚪
去飞牛NAS的“网络” -> “防火墙”,添加规则:

端口转发:放行UDP端口51820,目标地址是NAS。
保存并应用。
测试连接:用手机或PC客户端扫描二维码或导入配置,马上就能用上!💥

飞牛NAS Nastools 全自动追剧、整理、看片
https://www.bilibili.com/video/BV1Jwt5zxEwx?t=146.6

https://www.youtube.com/watch?v=76TfOsmYL4E
14款Docker开源项目