飞牛NAS自建音乐服务器:Navidrome部署
为什么需要在飞牛NAS上自建音乐服务器
流媒体音乐平台虽然方便,但版权下架、音质缩水、会员涨价等问题日益突出。如果你恰好有大量本地无损音乐收藏,又希望在任何设备上随时访问自己的曲库,那么自建音乐服务器就是最佳选择。Navidrome 是一款轻量级、开源、兼容 Subsonic API 的音乐服务器,界面现代,支持多用户,资源占用极低,非常适合部署在飞牛NAS上。配合飞牛自带的 Docker 容器管理功能,整个部署过程不超过十分钟。
准备工作
在开始之前,请确认你的飞牛NAS系统版本在 0.8.2 以上,并且已经开启 Docker 应用。你可以在飞牛应用中心安装 Docker 套件,之后通过 Docker 管理界面或 SSH 命令行操作。本文以 Docker CLI 方式演示,同时也会给出 Docker Compose 的配置,方便你选择。
第一步:创建音乐文件夹结构
SSH 登录你的飞牛NAS,或直接在文件管理器中新建目录。推荐在存储池中建立一个专门的音乐目录,例如:
/vol1/1000/Music
├── Artist1
│ ├── Album1
│ └── Album2
└── Artist2
└── Album1
Navidrome 支持按歌手/专辑文件夹自动扫描,建议你提前整理好元数据(ID3标签、封面图等),这能省去后续大量手动编辑工作。如果你有大量中文歌曲,请确保文件名和标签编码为 UTF-8。
第二步:创建 Navidrome 配置文件
Navidrome 的配置通过环境变量或 navidrome.toml 文件完成。我们采用环境变量方式,便于在 Docker 命令中直接指定。关键配置项包括:
ND_MUSICFOLDER:音乐目录路径,必须映射到容器内ND_DATAFOLDER:数据目录,存放数据库和缓存,建议放在NAS的SSD卷上ND_BASEURL:反向代理时的基础路径,如果直接用IP访问则留空
在 NAS 上创建一个配置目录,例如 /vol1/1000/docker/navidrome,用于存放数据。
第三步:使用 Docker 命令部署 Navidrome
打开 SSH 终端,执行以下命令:
docker run -d \
--name navidrome \
--restart=unless-stopped \
-p 4533:4533 \
-v /vol1/1000/Music:/music:ro \
-v /vol1/1000/docker/navidrome:/data \
-e ND_MUSICFOLDER=/music \
-e ND_DATAFOLDER=/data \
-e ND_LOGLEVEL=info \
-e ND_BASEURL="" \
deluan/navidrome:latest
这里将 NAS 上的音乐目录以只读方式挂载到容器 /music,数据目录挂载到 /data。端口映射为 4533,你可以按需修改。--restart=unless-stopped 保证容器在 NAS 重启后自动启动。
如果你更喜欢 Docker Compose,保存以下内容为 docker-compose.yml:
version: "3"
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
ports:
- "4533:4533"
environment:
- ND_MUSICFOLDER=/music
- ND_DATAFOLDER=/data
- ND_LOGLEVEL=info
volumes:
- /vol1/1000/Music:/music:ro
- /vol1/1000/docker/navidrome:/data
restart: unless-stopped
然后在同目录下执行 docker compose up -d 即可。
第四步:初始化与配置
容器启动后,打开浏览器访问 http://你的飞牛IP:4533。首次访问会进入初始化界面,需要创建一个管理员账号。这个账号拥有所有管理权限,请设置强密码。
登录后进入设置页面,你可以调整以下选项:
- 扫描间隔:默认 1 小时,如果你的音乐更新频繁,可改为 15 分钟
- 启用 Last.fm 集成:获取艺术家简介和相似推荐
- 启用歌词支持:Navidrome 会尝试从内置资源获取歌词,中文歌曲支持一般
- 音质转码:默认关闭,建议在移动网络环境开启 192kbps 转码,节省流量
点击「立即扫描」按钮,Navidrome 会开始索引你的音乐库。扫描速度取决于文件数量和磁盘性能,数千首歌曲通常只需几十秒。
第五步:客户端连接与使用
Navidrome 兼容 Subsonic API,所以几乎所有主流音乐播放器都能直接接入。推荐使用以下客户端:
- iOS/Android:substreamer(免费)、play:Sub(付费)、音流
- 桌面:Sonixd(跨平台)、Feishin(跨平台)
- Windows:dSub(较老但稳定)
以 Sonixd 为例,添加服务器时填写你的 NAS IP、端口 4533,用户名和密码就是刚才创建的管理员账号。协议选择 Subsonic,然后测试连接即可。连接成功后,你的所有音乐就会出现在客户端中,支持在线播放、缓存下载、创建播放列表等功能。
第六步:外网访问与安全建议
如果你希望在外网也能听歌,推荐使用飞牛NAS自带的 DDNS 或反向代理功能。不要直接将 4533 端口映射到公网,而是通过 HTTPS 反向代理,并在 Navidrome 环境变量中设置 ND_BASEURL=/navidrome(如果你挂载在子路径)。同时,建议开启 Navidrome 的「允许匿名访问」关闭,并限制登录失败次数。
另外,为了防止音乐元数据泄露,请确保 NAS 防火墙只允许受信任的 IP 访问 4533 端口。如果你使用 Docker 网络模式为 host,则注意控制宿主机防火墙规则。
常见问题排查
如果扫描后没有显示任何音乐,请检查挂载目录是否正确,以及音乐文件夹是否有读取权限。你可以在容器日志中查看错误信息:
docker logs navidrome --tail 50
如果出现权限错误,在 NAS 上执行 chmod -R 755 /vol1/1000/Music 即可。
端口冲突时,修改 -p 映射为例如 -p 4534:4533,然后客户端连接时使用 4534 端口。
总结
通过以上步骤,你已经在飞牛NAS上成功部署了 Navidrome 音乐服务器。它轻量、稳定,支持多用户,配合飞牛的硬件转码能力,无论是局域网内高保真播放,还是外网低码率流媒体,都能获得不错的体验。自建音乐服务器的核心价值在于数据自主可控和长期可用,不受平台政策影响。后续你可以进一步探索 Navidrome 的插件系统,比如对接 Last.fm 获取歌曲推荐,或者接入 Home Assistant 实现语音控制播放。现在,打开你的音乐客户端,享受专属曲库带来的自由感吧。
暂无评论,来说两句吧