用Lunarr打造私人流媒体中心
2026/7/9 5:32:06 网站建设 项目流程

简介

什么是 Lunarr ?

Lunarr是一个自托管的媒体服务器,专为电影和电视库设计。它可以帮助用户管理本地、SFTPWebDAV上的媒体文件,自动匹配TMDb元数据,并支持直接播放或实时HLS转码。支持ChromecastAirPlay远程播放。

主要特点

  • 多源媒体库:支持本地磁盘、SFTPWebDAV三种媒体源,可以灵活管理不同位置的媒体文件
  • 智能元数据匹配:自动扫描文件并与TMDb数据库匹配,提供电影和电视剧的详细信息、海报和推荐
  • 多种播放方式:支持直接播放和实时HLS转码,兼容ChromecastAirPlay进行远程播放
  • 字幕支持:自动检测侧边.vtt字幕文件,支持FFmpeg转码和可选硬件加速
  • 设备配对:支持电视和移动设备配对,提供访客分享链接和API密钥管理
  • 开源免费:基于Apache-2.0协议开源,可免费使用和修改

应用场景

  • 家庭影院:将家庭媒体库集中管理,在电视、手机、平板等多种设备上播放
  • 个人影视库:整理和管理个人收藏的电影和电视剧,自动获取元数据和海报
  • 远程媒体访问:通过SFTPWebDAV访问远程服务器上的媒体文件
  • 开发者测试:开发人员可以快速搭建测试环境,测试媒体播放和转码功能

Lunarr是一个功能齐全的自托管媒体服务器,适合需要管理个人媒体库的用户。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索sayem314,选择第二个sayem314/lunarr,版本选择latest

本文写作时,latest版本对应为0.6.0

docker文件夹中,创建一个新文件夹lunarr,并在其中建一个子文件夹data,媒体文件可以使用现有的进行挂载

需要给/data目录EveryOne读写权限,否则会创建SQLite数据库失败

文件夹装载路径说明
docker/lunarr/data/data存放应用数据
/path/to/media/media:ro媒体文件目录(只读)

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用netstat-tunlp|grep端口号
本地端口容器端口
34183000

环境

可变
AUTH_SECRET至少 32 个字符的随机密钥
ORIGINhttp://<群晖IP>:3418

环境变量说明

  • AUTH_SECRET用于应用认证,必须保持稳定;
  • ORIGIN用于设置应用的公共访问URL

命令行安装

docker cli 安装

如果你熟悉命令行,可能用docker cli更快捷

# 新建文件夹 lunarr 和 子目录mkdir-p/volume1/docker/lunarr/data# 进入 lunarr 目录cd/volume1/docker/lunarr# 修改目录权限chmoda+rw data# 一键启动dockerrun-d\--name=lunarr\--restart=unless-stopped\-p3418:3000\-v$(pwd)/data:/data\-v/volumeUSB1/usbshare:/media:ro\-eAUTH_SECRET=EKKprYZqoEN7WdrwQrojun8VFPrs5jCA\-eORIGIN=http://192.168.0.197:3418\sayem314/lunarr:latest

docker-compose 安装

也可以用docker-compose安装,将下面的内容保存为docker-compose.yml文件

services:lunarr:image:sayem314/lunarr:latestcontainer_name:lunarrrestart:unless-stoppedports:-"3418:3000"volumes:-./data:/data-/volumeUSB1/usbshare:/media:ro# 这是老苏的移动硬盘environment:AUTH_SECRET:"EKKprYZqoEN7WdrwQrojun8VFPrs5jCA"ORIGIN:"http://192.168.0.197:3418"

然后通过SSH登录到您的群晖,执行下面的命令:

# 新建文件夹 lunarr 和 子目录mkdir-p/volume1/docker/lunarr/data# 进入 lunarr 目录cd/volume1/docker/lunarr# 修改目录权限chmoda+rw data# 将 docker-compose.yml 放入当前目录# 一键启动docker-composeup-d

运行

在浏览器中访问http://<群晖IP>:3418即可进入登录界面

第一次要注册账号(第一个注册的用户将成为管理员)

设置 TMDb Key

从右上角进入设置

下拉找到TMDb metadata

填入TMDb的读取访问令牌或API密钥;两者并非必需。读取访问令牌是首选。

回到上面,点test

如果返回的是fetch failed,说明连不上themoviedb.org,扫描的电影库就不会有封面

但是增加HTTP_PROXY/HTTPS_PROXY环境变量是没用的,因为Node.js 的原生fetch(undici)默认不支持,这是Node.js的设计行为,不是Lunarr的问题。只有使用node-fetchaxios等库时才会自动读取代理环境变量。所以没办法让Lunarr走代理

可能只有路由器透明代理才是唯一可行的方案,所以如果不是这样,设不设TMDb Key应该结果都是一样的

添加电影库

添加电影或电视库

Add library创建电影库

  • Name:是库的名字
  • Type:可以选择Movies或者TV shows
  • Source:可以是local folder(本地文件夹)SFTPWebDAV
  • Folder path:文件夹路口,这里要选择容器内的路径,也就是我们映射的/media
  • Scheduled rescan:可以选择定时扫描的时间间隔,如果电影库比较大,可以选时间间隔大一些,如果库比较小,可以间隔短一点,老苏用的是Hourly,也就是每个小时扫描一次

创建成功后,会在右侧显示

scan开始扫描

扫描完成后是没有封面的

随便点开一部

虽然没有缩率图,但是不影响播放

注意事项

  1. AUTH_SECRET 必须稳定AUTH_SECRET在重启之间必须保持稳定,至少32个字符
  2. 数据持久化LUNARR_DATA_DIR存储SQLite数据库和HLS缓存,请确保存储在持久化存储上
  3. 媒体库权限:本地媒体库可以监控文件变化,远程库使用手动或计划重新扫描
  4. 管理员权限:第一个注册的用户成为管理员,后续注册默认禁用,除非管理员在设置中启用
  5. 安全建议:建议修改默认的AUTH_SECRET,使用强随机值

参考文档

Lunarr - Self-hosted media streaming server designed as an alternative to Plex
地址:https://github.com/lunarr-app/lunarr-go

sayem314/lunarr - Docker Image
地址:https://hub.docker.com/r/sayem314/lunarr

Lunarr Documentation
地址:https://github.com/lunarr-app/lunarr-go/tree/main/docs

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询