打造你的私人 Spotify:用 Navidrome 在 NAS/VPS 上搭建音乐流媒体服务

如果你拥有大量的本地音乐收藏(无论是购买的数字专辑还是从CD抓取的音轨),并且希望能像使用 Spotify 或 Apple Music 一样,在任何设备上随时随地访问它们,那么自建一个音乐流媒体服务器是你的最佳选择。Navidrome 就是这个领域的佼佼者。

本文将指导你如何使用 Docker 在你的 NAS 或 VPS 上轻松部署 Navidrome,并分析其优缺点,让你彻底掌控自己的音乐世界。


什么是 Navidrome?

Navidrome 是一个现代化的、轻量级的开源音乐服务器。它能让你通过浏览器或各种兼容的移动应用,串流播放你存储在服务器上的个人音乐收藏。你可以把它想象成一个只属于你自己的、私有的 Spotify。

核心特性:

  • 超轻量级:资源占用极低,在树莓派这样的低功耗设备上也能流畅运行。
  • 现代化的 Web 界面:干净、快速、美观,支持专辑封面、艺术家信息和播放列表管理。
  • 兼容 Subsonic API:这是一个巨大的优势,意味着你可以使用大量成熟的第三方移动 App (如 Substreamer, play:Sub, DSub 等) 来连接你的音乐库。
  • 高保真串流:支持 FLAC, ALAC, WAV 等无损格式的在线播放。
  • 快速扫描:能高效地处理数十万首歌曲的庞大曲库。

部署实战:使用 Docker Compose

和许多现代自托管服务一样,使用 Docker Compose 是部署 Navidrome 最简单、最可靠的方法。

前提条件:

  • 一台已经安装好 Docker 和 Docker Compose 的 NAS 或 VPS。
  • 你已经将你的音乐文件整理好,并上传到了服务器的某个特定文件夹中,例如 /music/volume1/music

步骤 1:创建项目文件夹和配置文件

通过 SSH 连接到你的服务器,或使用 NAS 的文件管理工具进行操作。

  1. 创建一个用于存放 Navidrome 配置的文件夹。

    1
    2
    mkdir navidrome
    cd navidrome
  2. 在该文件夹中,创建一个名为 docker-compose.yml 的文件。

    1
    2
    # 使用 nano 或 vim 创建并编辑文件
    nano docker-compose.yml
  3. 将以下内容复制并粘贴到 docker-compose.yml 文件中:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    version: "3"
    services:
    navidrome:
    image: deluan/navidrome:latest
    # 建议使用特定的用户ID和组ID来运行,以匹配你的音乐文件夹权限
    # 在终端运行 `id` 命令获取你的 UID 和 GID
    user: 1000:1000 # 替换成你的 UID:GID
    ports:
    - "4533:4533"
    restart: unless-stopped
    environment:
    # 可选配置: 设置扫描计划,例如每小时扫描一次
    ND_SCANSCHEDULE: 1h
    ND_LOGLEVEL: info
    volumes:
    # 左边是宿主机路径,右边是容器内路径
    # Navidrome 的配置文件和数据库存放位置
    - ./data:/data
    # 你的音乐库位置,请务必替换成你自己的真实路径!
    # :ro 表示只读,这是一个好习惯,防止容器意外修改你的音乐文件
    - /path/to/your/music:/music:ro

步骤 2:理解并修改配置

在保存文件之前,请务必理解并修改以下几个关键部分:

  • user: 1000:1000: 为了避免文件权限问题,最好让 Navidrome 容器使用与你的音乐文件夹所有者相同的用户ID (UID) 和组ID (GID) 运行。在你的服务器终端中运行 id 命令,然后用输出的 uidgid 替换 1000:1000

  • /path/to/your/music: 这是最重要的一步。将这个路径替换成你服务器上存放音乐文件的绝对路径。例如:

    • 在群晖 NAS 上可能是 /volume1/music
    • 在 VPS 上可能是 /mnt/storage/music

步骤 3:启动 Navidrome

配置完成后,保存并退出编辑器。在 navidrome 文件夹中,运行以下命令启动服务:

1
docker-compose up -d

Docker 将会自动下载 Navidrome 镜像并启动容器。首次启动时,Navidrome 会开始扫描你的音乐库,这可能需要一些时间,具体取决于你的曲库大小。

步骤 4:访问和使用

  1. 创建管理员:打开浏览器,访问 http://<你的服务器IP>:4533。首次访问时,Navidrome 会引导你创建一个管理员账户。
  2. 开始探索:创建账户并登录后,你就可以看到 Navidrome 已经为你整理好的音乐库了。你可以按艺术家、专辑或歌曲进行浏览和播放。
  3. 连接移动 App:在手机上下载任何兼容 Subsonic API 的 App (如 Substreamer)。在 App 的服务器设置中,填入你的服务器地址 http://<你的服务器IP>:4533 以及你刚刚创建的用户名和密码,即可开始享受移动端的音乐串流。

优缺点与适用场景

优点

  1. 完全免费与开源:没有订阅费,没有广告,代码公开透明。
  2. 极致轻量:对硬件要求极低,非常适合在 NAS 或低成本 VPS 上运行。
  3. 广泛的客户端支持:得益于 Subsonic API,你可以自由选择喜欢的移动 App。
  4. 专注纯粹的音乐体验:界面简洁,没有复杂的社交或推荐功能,让你专注于自己的音乐收藏。
  5. 保护隐私:你的听歌习惯和音乐数据完全由你自己掌控。

缺点

  1. 需要自己提供音乐:它是一个播放器和管理器,而不是一个音乐发现服务。你必须拥有音乐文件。
  2. 功能相对基础:与 Spotify 等商业服务相比,它缺少智能推荐、歌词同步(部分客户端支持)、播客等高级功能。
  3. 需要基础的技术知识:部署和维护需要一些对 Docker 和命令行的基本了解。

适用场景

  • 音乐收藏家和发烧友:如果你拥有大量高质量的本地音乐文件(特别是 FLAC 等无损格式),并希望随时随地以最佳音质聆听它们。
  • 注重隐私的用户:不希望自己的收听数据被商业公司收集和分析。
  • 预算有限的用户:希望通过一次性硬件投入,永久性地解决音乐流媒体需求,避免月度订阅。
  • 喜欢 DIY 的技术爱好者:享受自己动手搭建和控制个人服务的过程。

总结

Navidrome 是一个出色、可靠且资源友好的自托管音乐服务器。它完美地满足了“访问和播放个人音乐收藏”这一核心需求。如果你正想从商业流媒体服务中解放出来,或者想为你庞大的 CD 收藏赋予新的生命,那么部署一个 Navidrome 服务,绝对是物超所值的选择。