自建私人音乐库
打造你的私人 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 的文件管理工具进行操作。
创建一个用于存放 Navidrome 配置的文件夹。
1
2mkdir navidrome
cd navidrome在该文件夹中,创建一个名为
docker-compose.yml的文件。1
2# 使用 nano 或 vim 创建并编辑文件
nano docker-compose.yml将以下内容复制并粘贴到
docker-compose.yml文件中:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21version: "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命令,然后用输出的uid和gid替换1000:1000。/path/to/your/music: 这是最重要的一步。将这个路径替换成你服务器上存放音乐文件的绝对路径。例如:- 在群晖 NAS 上可能是
/volume1/music - 在 VPS 上可能是
/mnt/storage/music
- 在群晖 NAS 上可能是
步骤 3:启动 Navidrome
配置完成后,保存并退出编辑器。在 navidrome 文件夹中,运行以下命令启动服务:
1 | docker-compose up -d |
Docker 将会自动下载 Navidrome 镜像并启动容器。首次启动时,Navidrome 会开始扫描你的音乐库,这可能需要一些时间,具体取决于你的曲库大小。
步骤 4:访问和使用
- 创建管理员:打开浏览器,访问
http://<你的服务器IP>:4533。首次访问时,Navidrome 会引导你创建一个管理员账户。 - 开始探索:创建账户并登录后,你就可以看到 Navidrome 已经为你整理好的音乐库了。你可以按艺术家、专辑或歌曲进行浏览和播放。
- 连接移动 App:在手机上下载任何兼容 Subsonic API 的 App (如 Substreamer)。在 App 的服务器设置中,填入你的服务器地址
http://<你的服务器IP>:4533以及你刚刚创建的用户名和密码,即可开始享受移动端的音乐串流。
优缺点与适用场景
优点
- 完全免费与开源:没有订阅费,没有广告,代码公开透明。
- 极致轻量:对硬件要求极低,非常适合在 NAS 或低成本 VPS 上运行。
- 广泛的客户端支持:得益于 Subsonic API,你可以自由选择喜欢的移动 App。
- 专注纯粹的音乐体验:界面简洁,没有复杂的社交或推荐功能,让你专注于自己的音乐收藏。
- 保护隐私:你的听歌习惯和音乐数据完全由你自己掌控。
缺点
- 需要自己提供音乐:它是一个播放器和管理器,而不是一个音乐发现服务。你必须拥有音乐文件。
- 功能相对基础:与 Spotify 等商业服务相比,它缺少智能推荐、歌词同步(部分客户端支持)、播客等高级功能。
- 需要基础的技术知识:部署和维护需要一些对 Docker 和命令行的基本了解。
适用场景
- 音乐收藏家和发烧友:如果你拥有大量高质量的本地音乐文件(特别是 FLAC 等无损格式),并希望随时随地以最佳音质聆听它们。
- 注重隐私的用户:不希望自己的收听数据被商业公司收集和分析。
- 预算有限的用户:希望通过一次性硬件投入,永久性地解决音乐流媒体需求,避免月度订阅。
- 喜欢 DIY 的技术爱好者:享受自己动手搭建和控制个人服务的过程。
总结
Navidrome 是一个出色、可靠且资源友好的自托管音乐服务器。它完美地满足了“访问和播放个人音乐收藏”这一核心需求。如果你正想从商业流媒体服务中解放出来,或者想为你庞大的 CD 收藏赋予新的生命,那么部署一个 Navidrome 服务,绝对是物超所值的选择。
