戰(zhàn)指南)
自建影視聚合播放器LunaTV Docker 部署與播放源配置完整實(shí)戰(zhàn)指南【免費(fèi)下載鏈接】LunaTV本項(xiàng)目采用 CC BY-NC-SA 協(xié)議禁止任何商業(yè)化行為任何衍生項(xiàng)目必須保留本項(xiàng)目地址并以相同協(xié)議開源項(xiàng)目地址: https://gitcode.com/GitHub_Trending/lu/LunaTVLunaTV 是一個(gè)基于 Next.js 14 構(gòu)建的開源影視聚合播放器支持多資源站聚合搜索、在線播放、收藏與播放記錄跨端同步。本文帶你在一臺(tái)裝有 Docker 的服務(wù)器上完成部署并講清楚啟動(dòng)之后最關(guān)鍵的播放源配置10 分鐘內(nèi)你就能擁有一個(gè)可以正常看片、能記住進(jìn)度的個(gè)人影視站。部署后你得到什么LunaTV 的七項(xiàng)主要能力先花一分鐘了解裝好之后的使用體驗(yàn)這樣后面配置時(shí)就知道每個(gè)環(huán)節(jié)的意義。LunaTV 首頁會(huì)展示繼續(xù)觀看和熱門內(nèi)容推薦配合分類導(dǎo)航快速定位片源搜索結(jié)果來自你配置的全部資源站一次輸入即可跨站聚合。詳情頁提供劇集列表、演員、年份、簡介等完整信息播放端由 ArtPlayer 與 HLS.js 驅(qū)動(dòng)支持流媒體在瀏覽器里直接播放。收藏、播放記錄存在服務(wù)端存儲(chǔ)里換設(shè)備登錄也能接著上次的位置看。其余能力包括PWA 離線緩存與安裝到桌面/主屏桌面?zhèn)冗厵诩右苿?dòng)底部導(dǎo)航的響應(yīng)式布局實(shí)驗(yàn)性的切片廣告自動(dòng)跳過以及一個(gè)常被忽略的直播模塊可以配置直播源和 EPG 節(jié)目單。v100.0.0 以上的版本還能配合移動(dòng)端客戶端 Selene 使用數(shù)據(jù)完全同步在 Android TV 上也可以把它當(dāng)作 OrionTV 的后端播放記錄同樣與網(wǎng)頁端互通。部署前準(zhǔn)備只需要 Docker 和一個(gè)空閑端口LunaTV 官方僅支持 Docker 及基于 Docker 的平臺(tái)部署沒有裸機(jī) Node.js 的玩法這省去了裝依賴、編譯源碼的環(huán)節(jié)。機(jī)器上需要安裝 Docker 和 Docker Compose并且能訪問鏡像倉庫拉取鏡像。資源方面1GB 左右的內(nèi)存和 10GB 磁盤就足夠個(gè)人使用了。唯一必須讓出來的是本機(jī)3000 端口——服務(wù)默認(rèn)監(jiān)聽容器內(nèi)的 3000 端口compose 文件會(huì)把它映射到宿主機(jī)。如果你的 3000 已被占用改一下映射的左邊部分比如8080:3000之后用 8080 訪問即可容器內(nèi)端口不用動(dòng)。三步完成部署寫一份 compose 文件就夠整個(gè)部署就是寫文件 → 啟動(dòng) → 打開瀏覽器三步。下面這份docker-compose.yml采用官方推薦的 Kvrocks 存儲(chǔ)方案兩個(gè)服務(wù)、一個(gè)網(wǎng)絡(luò)、一個(gè)數(shù)據(jù)卷照抄后按需改兩處密碼即可services: moontv-core: image: ghcr.io/moontechlab/lunatv:latest container_name: moontv-core restart: on-failure ports: - 3000:3000 environment: - USERNAMEadmin - PASSWORD請(qǐng)改成一個(gè)強(qiáng)密碼 - NEXT_PUBLIC_STORAGE_TYPEkvrocks - KVROCKS_URLredis://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] networks: [moontv-network] networks: moontv-network: driver: bridge volumes: kvrocks-data:幾個(gè)字段的填寫邏輯moontv-core是應(yīng)用本體USERNAME/PASSWORD是登錄管理后臺(tái)用的站長賬號(hào)必填密碼務(wù)必?fù)Q成強(qiáng)密碼且不要公開分享實(shí)例地址NEXT_PUBLIC_STORAGE_TYPE指定收藏與播放記錄存放的存儲(chǔ)后端本例選了kvrocksKVROCKS_URL指向同網(wǎng)絡(luò)里的 Kvrocks 容器主機(jī)名直接用服務(wù)名moontv-kvrocks端口 6666 是 Kvrocks 的默認(rèn)端口。Kvrocks 是 Redis 協(xié)議的兼容存儲(chǔ)apache/kvrocks是官方鏡像把數(shù)據(jù)目錄/var/lib/kvrocks掛到命名卷kvrocks-data后容器刪了數(shù)據(jù)也不會(huì)丟。在文件所在目錄執(zhí)行docker-compose up -d等待鏡像拉取和容器啟動(dòng)瀏覽器打開http://localhost:3000遠(yuǎn)程機(jī)器則換成對(duì)應(yīng) IP就能看到登錄頁。管理后臺(tái)配置播放源為什么裝完的站點(diǎn)沒有片源這一點(diǎn)必須提前說明部署完成后 LunaTV 是一個(gè)空殼沒有內(nèi)置播放源和直播源需要站長自己收集并填進(jìn)后臺(tái)這也是全文最容易卡住的一步。登錄后臺(tái)后進(jìn)入配置文件設(shè)置對(duì)應(yīng)源碼見 src/app/admin/page.tsxLunaTV 接受標(biāo)準(zhǔn)蘋果 CMS V10 格式的接口把配置以 JSON 形式粘貼保存即可。這份配置由三部分組成cache_time控制接口緩存秒數(shù)填大一點(diǎn)可以減輕資源站壓力api_site是資源站列表每站需要一個(gè)唯一標(biāo)識(shí) key、該站api.php/provide/vod的 JSON 接口地址、界面展示用的 name個(gè)別站點(diǎn) API 拿不到劇集詳情時(shí)還要補(bǔ)detail指向其網(wǎng)頁詳情根地址custom_category用于在導(dǎo)航欄加自定義分類用typemovie 或 tv加query搜索關(guān)鍵詞作為標(biāo)識(shí)支持華語美劇豆瓣高分這類詞也可以直接寫哈利波特實(shí)現(xiàn)類似豆瓣搜索的效果。如果你的配置想復(fù)用到其他實(shí)例或客戶端還有一個(gè)訂閱機(jī)制把完整配置文件做 base58 編碼后提供一個(gè) HTTP 地址就成為一個(gè)訂閱鏈接可在后臺(tái)或 Helios 客戶端中直接拉取。存儲(chǔ)后端怎么選Kvrocks、Redis 還是 Upstash收藏和播放記錄存在哪里由NEXT_PUBLIC_STORAGE_TYPE決定三種選項(xiàng)各有取舍。Kvrocks 是默認(rèn)推薦項(xiàng)性能好、配合命名卷可以可靠持久化上文 compose 文件就是按它寫的。Redis 兼容性好但官方明確提示有丟數(shù)據(jù)風(fēng)險(xiǎn)——如果用redis方案必須像 README 示例那樣開啟持久化并掛載/data卷否則升級(jí)或重啟后記錄會(huì)清空。Upstash 則是托管在云端的 Redis適合無服務(wù)器或不想自己維護(hù)數(shù)據(jù)庫的場(chǎng)景需要額外注冊(cè)賬號(hào)把UPSTASH_URL和UPSTASH_TOKEN兩個(gè)環(huán)境變量填進(jìn) core 服務(wù)即可compose 里也就只剩一個(gè)容器。無論選哪種都建議養(yǎng)成備份習(xí)慣Kvrocks 方案?jìng)浞輐vrocks-data卷里的內(nèi)容即可Redis 方案?jìng)浞莩志没夸洝_@是全系統(tǒng)里唯一會(huì)產(chǎn)生用戶數(shù)據(jù)的地方??蛇x調(diào)優(yōu)豆瓣代理與站點(diǎn)展示基礎(chǔ)跑通后幾個(gè)環(huán)境變量值得按需調(diào)整它們都寫在 core 服務(wù)的environment里。豆瓣海報(bào)和詳情數(shù)據(jù)默認(rèn)由服務(wù)器直連豆瓣direct如果你的網(wǎng)絡(luò)到豆瓣不穩(wěn)推薦改為社區(qū) CDN 方案NEXT_PUBLIC_DOUBAN_PROXY_TYPEcmliussss-cdn-tencent與NEXT_PUBLIC_DOUBAN_IMAGE_PROXY_TYPEcmliussss-cdn-tencent讓瀏覽器直接向帶 CDN 加速的鏡像請(qǐng)求數(shù)據(jù)國內(nèi)訪問速度明顯更穩(wěn)。站點(diǎn)展示方面NEXT_PUBLIC_SITE_NAME改站名ANNOUNCEMENT改首頁公告默認(rèn)是一段合規(guī)免責(zé)聲明建議保留SITE_BASE填你的訪問 URL。行為類選項(xiàng)還有NEXT_PUBLIC_SEARCH_MAX_PAGE搜索可翻頁數(shù)默認(rèn) 5和NEXT_PUBLIC_FLUID_SEARCH搜索流式輸出默認(rèn)開啟。改完環(huán)境變量后重新docker-compose up -d讓容器重建生效。五項(xiàng)驗(yàn)證清單與日常更新方式部署是否真正可用按順序檢查五件事能用http://localhost:3000打開登錄頁用 compose 里的賬號(hào)密碼成功登錄管理后臺(tái)保存配置后首頁能加載出分類與推薦內(nèi)容搜索任意一部電影能返回聚合結(jié)果并點(diǎn)開詳情頁最終能流暢播放且刷新后繼續(xù)觀看位置保留。五步全過這套影視聚合播放器就算正式上線了。日常維護(hù)只需要一條命令docker-compose pull docker-compose up -d拉取新版鏡像并重建容器存儲(chǔ)卷里的數(shù)據(jù)不受影響。最后再叮囑兩句安全上的事實(shí)例只供個(gè)人使用不要公開傳播訪問鏈接避免他人濫用賬號(hào)密碼保持強(qiáng)隨機(jī)若日后要長期運(yùn)行也可以固定一個(gè)版本標(biāo)簽代替latest防止自動(dòng)拉到不穩(wěn)定的新版本。照這套流程走下來從空服務(wù)器到能看片只需要一份 compose 文件和一段播放源配置剩下的交給它自己同步記錄就好?!久赓M(fèi)下載鏈接】LunaTV本項(xiàng)目采用 CC BY-NC-SA 協(xié)議禁止任何商業(yè)化行為任何衍生項(xiàng)目必須保留本項(xiàng)目地址并以相同協(xié)議開源項(xiàng)目地址: https://gitcode.com/GitHub_Trending/lu/LunaTV創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考