Navidrome:在我深入了解后给大家的5个建议

前言

前几篇文章提过现在音乐平台一直在涨价,版权还麻烦,后来用iOS侧载安装第三方音乐软件感觉也稍显麻烦了些,主要是几个软件不是非常专业,用着有点难受,于是最终还是选择了自己搭建服务这一条路。

前提

首先,必须有自己的音乐库(或者准备建一个库);

其次,有NAS这类服务器;

最后,付诸行动。

如果你基本上只听固定的几首歌,或者固定的几位歌手,直接将那些歌下载下来存放到手机里或者U盘之类就行,没必要建一个库,维护成本太高

建议

建议一:安装方式

裂墙建议 使用 Docker Compose 部署 !!!

理由: Navidrome官方推荐和支持的做法是音乐文件只读,即它只读取你的音乐信息,而不更改,防止你在后台操作导致整个库被操作导致数据丢失等问题。

其他安装方式虽然也可以做到只读,但是操作上会复杂很多,而且权限管理上面有点混乱,不推荐。

建议二:配置文件

Navidrome可以使用 navidrome.toml 进行统一配置,将自定义的配置都放在里面,启动时可以进行加载。

完整的配置文件建议像学习时期做语文阅读理解那样深度阅读:Navidrome Configuration Options | Navidrome

如果是 Docker Compose 的安装方式,建议放在 data 目录下面,并在 environment 中定义,如下:

environment:
    - ND_CONFIGFILE=/data/navidrome.toml  #容器中的绝对路径
volumes:
    - "./data:/data"
    - "/music:/music"

如果是 二进制 的安装方式,直接放在二进制的根目录下就行。

建议三:多音乐库挂载

Navidrome从 v 0.58 开始支持多库,/music 为基础库,无法删除,就目前使用下来,不建议子目录挂载 方式进行挂载,即:

-- /music
   |-- Chinese    #华语音乐
   |-- Western    #欧美音乐
   |-- Japanese   #日语音乐
   |__ Others     #其他

这样会导致选择库的时候,基础库已经包含所有音乐,如果再选择其他库,歌曲都会重复。

要避免重复添加的情况,需要让它们保持目录平行,即:

-- /music
-- /Chinese    #华语音乐
-- /Western    #欧美音乐
-- /Japanese   #日语音乐
-- /Others     #其他

这个方式 /music 这个基础库是空的,但是又无法删除,看着很不舒服,建议的目录结构是:

-- /music      #华语音乐
-- /Western    #欧美音乐
-- /Japanese   #日语音乐
-- /Others     #其他

华语音乐 或者其他某个类别目录映射到 /music ,这样默认的库可以在页面给它改个名字,各个库相对独立,也没有闲置的。

最终配置文件大致为:

services:
  navidrome:
    image: deluan/navidrome:latest
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      - ND_CONFIGFILE=/data/navidrome.toml
    volumes:
      - "./data:/data"
      - "/mnt/music/A.Chinese:/music:ro"
      - "/mnt/music/B.Western:/Western:ro"
      - "/mnt/music/C.Japanese:/Japanese:ro"
      - "/mnt/music/D.Classical:/Classical:ro"

建议四:硬盘休眠(不开启!!)

如果要自己建库,当然最好是Nvme 或者 SSD,但现实情况非常残酷,一个稍微全面点的华语库估计就要几个TB(无损音乐,mp3这类不谈),如果是古典发烧友,这个库估计更大。

这就造成一个情况,这个硬盘99%会是HDD。

说到这里,必须澄清比较常见的一个误区:硬盘休眠可以保护硬盘,从而寿命更长???

这个说法比较有争议,目前最可靠的说法是:

  • 一直转动:轴承持续运转,现代NAS/企业级硬盘(如WD Red、Seagate IronWolf、Exos)设计就是 24×7 全天候运行,轴承寿命很长。温度稳定反而比较关键。

  • 休眠唤醒:每次唤醒时马达启动电流大、磁头加载/卸载(load/unload cycle),有一定机械应力。硬盘有额定启动次数(Load Cycle Count,常在几十万到几百万次),频繁启停(比如一天几十次)理论上会加速磨损。

现实情况是 硬盘坏掉更多是因为质量、温度、震动、批次等问题。没有大规模证据证明“休眠一定有助于延长使用寿命”。

所以,从多个角度来看,硬盘休眠只能省每年几十块钱的电费!

当然,这个也要分情况来看,如果是1T、2T这种容量小的盘,或者红盘、紫盘(?)这类硬盘,可能可以设置休眠,具体还是看硬盘的标准工作环境。

如果需要设置硬盘休眠,在 navidrome.toml 文件中添加下面配置来阻止程序后台自行扫描动作:

Scanner.Schedule = "0"         # 关闭计划扫描
Scanner.WatcherWait = "0"      # 关闭监视文件变动后启动扫描
Scanner.ScanOnStartup = false  # 程序启动时扫描

建议五:App

官网有独立的版面介绍基于不同系统可以使用的App:Client Apps | Navidrome

基于我现有的iPhone手机的测试,给出一点点小小的建议:

  • 歌曲数量在 10k左右 :挑一个好看的并且免费的即可,无特殊注意事项;

  • 歌曲数量在 30k+ :有些App在初始化音乐库的时候,会读取完所有数据才加载随机板块(随机专辑和随机播放),也就是前期会非常慢,比如我之前使用的 Nautiline 加载50k 首歌曲时就要 半小时左右 :

目前这些App更新非常迅速,基本上几天就要一更新,后续版本随时可能修正,所以这边我就不推荐了,建议查看官方的App页面,每个都去下载使用一下。适合自己的就是最好的。

目前我手机上就2款App,都支持Carplay:

  • 花了真金白银的 Nautiline :初始要全部加载,等待后续更新

  • 目前处于TestFlight的 Narjo :功能性完全不输 Nautiline ,而且没有任何问题

最后

其实还有一种终极方式,前段时间玩了几天。

在NAS上部署 roonserver开心版 以及 easytier 这种打洞服务,手机与NAS打洞成功后,直接使用 Roon 就能播放,这样做的好处是依赖于Roon的成熟度,体验非常丝滑,不会像Navidrome的App那样第三方开发适配或多或少有点问题。

缺点也很明显:不支持CarPlay,很痛~

其实估计很多朋友会说各种成品NAS自带的音乐播放功能还不错,又有现成的App可以直接使用,都不用部署DDNS外网都能连接,我随便举两个非常提升体验性的功能:

  1. 多艺术家的识别: tag标签中使用 , ; / & 任意一种,能够配置分隔符并识别

  2. 艺术家图片以及介绍: 联网自动获取艺术家照片和介绍

能做到这两点的不多,所以要我说音乐服务这块,开源免费的就是Navidrome,付费的就Roon,没有其他。

之前AI还推荐了一些其他的比如 lyrionmusic 、koel 、Jellyfin ,还说某些方面 Plex 比 Navidrome 还好。。。都试过,不评价~

0 0 投票数
文章评分
订阅评论
提醒
guest

1 评论
最旧
最新 最多投票
滚动至顶部
1
0
希望看到您的想法,请您发表评论x