跳转到内容

Navidrome:自托管音乐服务

扫描本地音乐文件,提供网页播放器,并兼容 Subsonic 协议——这意味着手机上有大量现成的客户端可以连接它。

适合谁

  • 有一批本地音乐文件(无损、老唱片、流媒体上没有的内容)。
  • 希望在手机上随时听,而不用把文件同步到本地。

部署

yaml
services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidrome
    restart: unless-stopped
    ports:
      - "4533:4533"
    environment:
      ND_SCANSCHEDULE: "1h"
      ND_LOGLEVEL: info
    volumes:
      - /vol1/docker/navidrome/data:/data
      - /vol1/music:/music:ro

ND_SCANSCHEDULE 控制自动扫描间隔。音乐目录挂载为只读,避免应用改动原始文件。

让音乐库整齐一些

播放体验取决于标签(元数据)质量。扫描之前值得做的事:

  • 用标签编辑工具统一填写艺术家、专辑、年份、曲目号。
  • 专辑封面嵌入文件内,或在专辑目录里放一张 cover.jpg
  • 合辑类专辑注意「专辑艺术家」字段,否则会被拆成很多个单曲专辑。

标签比目录结构更重要——Navidrome 主要按标签组织,而不是按文件夹。

数据与备份

data 目录里是数据库,包含播放记录、收藏和播放列表。音乐文件本身按常规备份策略处理。

已知坑

  • 改了标签后需要等待下次扫描,或手动触发。
  • 大量无损文件在手机上播放时会占用较多带宽,客户端里可以设置转码码率。
  • 中文标签的编码问题偶尔会导致乱码,源头通常在文件本身的标签编码。

参考资料

fnOS 非官方中文使用指南,与飞牛官方无隶属关系。