用Lunarr打造私人流媒体中心

📅 2026/7/9 5:32:16
用Lunarr打造私人流媒体中心
简介什么是 Lunarr Lunarr是一个自托管的媒体服务器专为电影和电视库设计。它可以帮助用户管理本地、SFTP或WebDAV上的媒体文件自动匹配TMDb元数据并支持直接播放或实时HLS转码。支持Chromecast和AirPlay远程播放。主要特点多源媒体库支持本地磁盘、SFTP和WebDAV三种媒体源可以灵活管理不同位置的媒体文件智能元数据匹配自动扫描文件并与TMDb数据库匹配提供电影和电视剧的详细信息、海报和推荐多种播放方式支持直接播放和实时HLS转码兼容Chromecast和AirPlay进行远程播放字幕支持自动检测侧边.vtt字幕文件支持FFmpeg转码和可选硬件加速设备配对支持电视和移动设备配对提供访客分享链接和API密钥管理开源免费基于Apache-2.0协议开源可免费使用和修改应用场景家庭影院将家庭媒体库集中管理在电视、手机、平板等多种设备上播放个人影视库整理和管理个人收藏的电影和电视剧自动获取元数据和海报远程媒体访问通过SFTP或WebDAV访问远程服务器上的媒体文件开发者测试开发人员可以快速搭建测试环境测试媒体播放和转码功能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# 修改目录权限chmodarw data# 一键启动dockerrun-d\--namelunarr\--restartunless-stopped\-p3418:3000\-v$(pwd)/data:/data\-v/volumeUSB1/usbshare:/media:ro\-eAUTH_SECRETEKKprYZqoEN7WdrwQrojun8VFPrs5jCA\-eORIGINhttp://192.168.0.197:3418\sayem314/lunarr:latestdocker-compose 安装也可以用docker-compose安装将下面的内容保存为docker-compose.yml文件services:lunarr:image:sayem314/lunarr:latestcontainer_name:lunarrrestart:unless-stoppedports:-3418:3000volumes:-./data:/data-/volumeUSB1/usbshare:/media:ro# 这是老苏的移动硬盘environment:AUTH_SECRET:EKKprYZqoEN7WdrwQrojun8VFPrs5jCAORIGIN:http://192.168.0.197:3418然后通过SSH登录到您的群晖执行下面的命令# 新建文件夹 lunarr 和 子目录mkdir-p/volume1/docker/lunarr/data# 进入 lunarr 目录cd/volume1/docker/lunarr# 修改目录权限chmodarw 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 的原生fetchundici默认不支持这是Node.js的设计行为不是Lunarr的问题。只有使用node-fetch、axios等库时才会自动读取代理环境变量。所以没办法让Lunarr走代理可能只有路由器透明代理才是唯一可行的方案所以如果不是这样设不设TMDb Key应该结果都是一样的添加电影库添加电影或电视库点Add library创建电影库Name是库的名字Type可以选择Movies或者TV showsSource可以是local folder(本地文件夹)、SFTP和WebDAVFolder path文件夹路口这里要选择容器内的路径也就是我们映射的/mediaScheduled rescan可以选择定时扫描的时间间隔如果电影库比较大可以选时间间隔大一些如果库比较小可以间隔短一点老苏用的是Hourly也就是每个小时扫描一次创建成功后会在右侧显示点scan开始扫描扫描完成后是没有封面的随便点开一部虽然没有缩率图但是不影响播放注意事项AUTH_SECRET 必须稳定AUTH_SECRET在重启之间必须保持稳定至少32个字符数据持久化LUNARR_DATA_DIR存储SQLite数据库和HLS缓存请确保存储在持久化存储上媒体库权限本地媒体库可以监控文件变化远程库使用手动或计划重新扫描管理员权限第一个注册的用户成为管理员后续注册默认禁用除非管理员在设置中启用安全建议建议修改默认的AUTH_SECRET使用强随机值参考文档Lunarr - Self-hosted media streaming server designed as an alternative to Plex地址https://github.com/lunarr-app/lunarr-gosayem314/lunarr - Docker Image地址https://hub.docker.com/r/sayem314/lunarrLunarr Documentation地址https://github.com/lunarr-app/lunarr-go/tree/main/docs