LunaTV|3步跑通配置订阅:从粘贴地址到自动同步播放源
【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议,禁止任何商业化行为,任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV
当你第一次打开 LunaTV 管理后台的配置文件模块,订阅 URL 输入框是空的,右上角写着"最后更新: 从未更新"。之后每发现一个可用的资源站,都要手动下载 JSON、核对格式、再贴回面板。LunaTV 的配置订阅功能就是为这个环节准备的:站长把一段 Base58 编码的订阅地址粘进面板,实例就能持续拉取最新的播放源配置,多个实例之间也能长期保持同一套资源。
功能定位
配置订阅位于管理后台的配置文件模块,面向站长角色。它把"下载文件、本地编辑 JSON、再提交"的流程,替换为服务端直接访问订阅地址、解码 Base58 内容并写入本地配置,手动改文件这一步被整体去掉。
⚙️ 前置条件
- 已部署并可访问的 LunaTV 实例
- 持有站长账号(环境变量 USERNAME)
- 存储方式非 localstorage(redis / kvrocks / upstash)
- 已拿到 Base58 编码的订阅地址
🔧 操作主线
登录管理后台
用站长账号登录实例,进入管理后台,在左侧菜单切到"配置文件"模块。页面顶部就是"配置订阅"卡片,包含订阅 URL 输入框、"拉取配置"按钮和"自动更新"开关三个元素,右上角显示上次同步时间,首次使用前显示"从未更新"。
填入订阅地址并拉取配置
把拿到的订阅地址粘贴到"订阅URL"输入框,注意地址内容必须是 Base58 编码、解码后为 JSON。点击"拉取配置"按钮,前端请求/api/admin/config_subscription/fetch完成解码,成功后弹出"配置拉取成功"提示,解码出的配置内容会回填到下方的编辑器区域。
保存配置并开启自动更新
打开"自动更新"开关,再点"保存"。后端会校验 JSON 格式,把订阅地址和开关写入ConfigSubscribtion配置,返回"配置文件更新成功"。此后每次 cron 任务执行时,系统都会自动重新拉取订阅并刷新最后检查时间,逻辑在 src/app/api/cron/route.ts 中。
配置解读
| 配置项 | 作用 | 推荐值/说明 |
|---|---|---|
ConfigSubscribtion.URL | Base58 编码的订阅地址 | 必填,解码失败时拉取与自动更新都会中断 |
ConfigSubscribtion.AutoUpdate | 是否由 cron 自动拉取 | 建议 true;为 false 时每次都要手动点"拉取配置" |
ConfigSubscribtion.LastCheck | 上次成功同步的时间戳 | 系统自动写入,用它判断自动更新是否真的在工作 |
🔍 常见问题
现象:点"拉取配置"报请求失败并带 HTTP 状态码。原因是订阅地址 404、502 或链接已失效。先用浏览器直接打开该地址,确认可取回一串 Base58 原文,再回面板重试。
现象:拉取成功,保存却提示"配置文件格式错误,请检查 JSON 语法"。原因是解码出来的内容不是合法 JSON。让订阅提供方核对编码;也可以自己取一份原文用 bs58 解码后确认。
现象:"自动更新"开着,但"最后更新"一直不动。原因是/api/cron没有被定时调用,或订阅地址、开关有一项为空。手动请求一次 /api/cron,看服务日志里是否出现"跳过刷新:未配置订阅地址或自动更新"即可定位。
现象:点保存直接提示"不支持本地存储进行管理员配置"。原因是存储方式为 localstorage。把环境变量 NEXT_PUBLIC_STORAGE_TYPE 改为 redis、kvrocks 或 upstash 后重新部署。
到这里,LunaTV 实例的资源同步就闭环了。接下来可以在浏览器手动请求一次 /api/cron,看"最后更新"是否变化,这是验证自动更新真正生效的最直接方式。
【免费下载链接】LunaTV本项目采用 CC BY-NC-SA 协议,禁止任何商业化行为,任何衍生项目必须保留本项目地址并以相同协议开源项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考