一、前言

# LunaTV-Sync 本地采集源同步服务

定时从 GitHub 上游 [hafrey1/LunaTV-config]

拉取最新采集源配置,本地缓存并同时输出 MoonTV/LunaTVTVBox

两种格式的订阅接口。上游每小时自动测活并剔除失效源,本服务定时同步,

即可让 MoonTV、TVBox 等客户端始终使用可用的采集源。

感谢hafrey1大大

二、部署教程

下载地址: https://github.com/yexuu/lunatv-local
https://git.yexu.fun/share/lunatv-local (这个访问需要ipv6)

方式一:Docker(推荐)

cd lunatv_local
docker compose up -d --build
docker compose logs -f    # 应看到三个版本 "同步完成"

data/ 目录通过卷映射持久化在宿主机,容器重建后自动沿用旧缓存。

方式二:离线打包部署(无外网/无源码机器)

在能构建镜像的机器上打包:

cd lunatv_local
bash package.sh    # 无 docker 权限时: sudo bash package.sh
# 产物: dist/lunatv-sync-deploy.tar.gz

拷贝到目标机器后一键导入并启动:

tar -xzf lunatv-sync-deploy.tar.gz
cd lunatv-sync-deploy
bash deploy.sh     # docker load 导入镜像 + 启动服务

目标机器只需安装 Docker,无需源码、无需访问 GitHub。

方式三:裸机 + systemd

# Python 3.9+
pip install -r requirements.txt
cp .env.example .env      # 可选,全部有默认值
python3 lunatv_sync.py    # 前台试运行

# 常驻运行
sudo tee /etc/systemd/system/lunatv-sync.service <<'EOF'
[Unit]
Description=LunaTV-config sync service
After=network-online.target

[Service]
WorkingDirectory=/opt/lunatv_local
ExecStart=/usr/bin/python3 /opt/lunatv_local/lunatv_sync.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable --now lunatv-sync

订阅接口

路径 说明
/config.json MoonTV 格式,默认版本(默认 jin18)
/tvbox.json TVBox 格式,默认版本
/config/jin18.json MoonTV 格式,纯净版
/config/jingjian.json MoonTV 格式,含成人版
/config/full.json MoonTV 格式,完整版
/tvbox/jin18.json TVBox 格式,纯净版
/tvbox/jingjian.json TVBox 格式,含成人版
/tvbox/full.json TVBox 格式,完整版
/status 各版本最后同步时间与源数量

客户端填写示例(IP 替换为部署机地址):

  • MoonTV:管理后台"配置订阅"填 http://192.168.x.x:8899/config.json, 或定时拉取该地址覆盖 config.json
  • TVBox:配置地址填 http://192.168.x.x:8899/tvbox.json

配置项

全部通过环境变量配置(裸机可用 .env 文件,Docker 在 docker-compose.ymlenvironment 中修改):

变量 默认值 说明
LUNATV_DEFAULT_SOURCE jin18 /config.json/tvbox.json 返回的默认版本
LUNATV_PORT 8899 HTTP 服务端口
LUNATV_REFRESH_MINUTES 360 自动同步间隔(分钟)
LUNATV_MIRROR_PREFIX 内置列表 GitHub 加速镜像前缀,逗号分隔多个;默认内置 ghproxy.netghfast.topgh-proxy.com,官方地址失败/超时自动按序切换
LUNATV_DATA_DIR data 缓存目录(Docker 内固定为 /app/data