飞牛NAS自建音乐服务器:Navidrome部署
飞牛NAS(fnOS)作为一款专为个人与家庭打造的NAS系统,其Docker支持做得非常出色。今天,我们不聊影音,不谈相册,而是聚焦于一个许多音乐发烧友的痛点:如何自建一个媲美Spotify的私人音乐服务器。我们将使用轻量级且功能强大的Navidrome,配合飞牛NAS的文件管理,打造一个随时随地可访问的音乐库。
为什么选择Navidrome?
在众多音乐服务器方案(如Plex、Jellyfin、Navidrome)中,Navidrome以其极低的资源占用、对Subsonic API的完整兼容以及现代化的Material UI界面脱颖而出。它不依赖重型数据库,仅需一个SQLite文件,非常适合在NAS的Docker环境中长期稳定运行。更重要的是,它支持多用户、多格式(MP3、FLAC、AAC等),并能自动抓取封面与歌词。
部署前的准备
在飞牛NAS的Docker中部署,我们需要准备一个存放音乐文件和配置文件的目录。建议在存储空间下建立如下结构:
/mnt/存储空间1/docker/navidrome/
├── data/ # 存放Navidrome的数据库和缓存
└── music/ # 存放你的无损/有损音乐文件(可软链接到其他盘)
如果你有现成的音乐文件夹,例如在 音乐 共享文件夹中,可以直接在Docker映射时将 music 路径指向该文件夹,无需复制文件。
通过飞牛NAS的Docker界面部署(图形化)
飞牛NAS的Docker管理界面非常直观,直接点击「Docker」应用进入。
- 在「镜像」页面,点击「拉取镜像」,输入
navidrome/navidrome,标签选择latest,点击拉取。 - 拉取完成后,点击「创建容器」。在「基础设置」中,勾选「启用资源限制」并分配内存(建议至少512MB),网络选择
bridge即可。 - 在「端口映射」中,将容器端口
4533映射到本地任意未被占用的端口,例如4533:4533。 - 在「存储空间」中,添加两个映射:
- 将
/mnt/存储空间1/docker/navidrome/data映射到容器内的/data - 将
/mnt/存储空间1/docker/navidrome/music映射到容器内的/music - 在「环境变量」中,添加一个关键变量:
ND_BASEURL留空即可,ND_LOGLEVEL设置为info。如果希望导入后自动扫描,可以设置ND_SCANSCHEDULER为1h。 - 点击「创建」并启动容器。
进阶:使用SSH命令行部署(可选)
如果你喜欢命令行操作,或者需要更精细的配置,可以通过SSH终端完成。首先进入飞牛NAS的SSH环境(需在控制面板开启SSH),然后执行:
docker run -d \
--name navidrome \
--restart=unless-stopped \
-p 4533:4533 \
-v /mnt/存储空间1/docker/navidrome/data:/data \
-v /mnt/存储空间1/docker/navidrome/music:/music \
-e ND_LOGLEVEL=info \
-e ND_SESSIONTIMEOUT=24h \
navidrome/navidrome:latest
这里我额外设置了 ND_SESSIONTIMEOUT,让登录状态保持24小时,省去频繁输入的烦恼。如果你有SSL证书需求,可以通过反向代理(如Nginx Proxy Manager)实现HTTPS访问。
首次配置与音乐导入
容器启动后,打开浏览器访问 http://你的NAS_IP:4533。首次访问会要求创建管理员账号,这个账号拥有对Navidrome的完全控制权。
创建完成后,点击「音乐管理」进入后台。在「音乐文件夹」设置中,确认路径为 /music。Navidrome会自动扫描该目录。如果你的音乐文件命名规范(如 歌手/专辑/曲目号 - 标题.flac),扫描速度会非常快。扫描过程在后台进行,首次导入大量音乐时,CPU占用会短暂升高,属正常现象。
客户端连接与使用体验
Navidrome兼容所有Subsonic API客户端,这意味着你可以使用手机上成熟的音乐播放器。
- 推荐iOS端使用
play:Sub或Amperfy。 - 推荐安卓端使用
Subsonic官方应用或DSub。 - 桌面端则推荐使用
Sonixd,体验极佳。
在客户端中,服务器地址填写 http://NAS_IP:4533,用户名和密码就是你在Navidrome后台创建的账号。连接成功后,你可以像使用流媒体服务一样,在线播放、缓存到本地、创建歌单。由于飞牛NAS的硬件解码能力有限,Navidrome默认不转码,直接输出原始文件流,因此对网络带宽有一定要求。如果你在公网环境,建议在Navidrome后台开启 转码 选项,并设置一个较低码率(如128kbps)用于移动网络。
进阶技巧:定时自动更新与歌词显示
Navidrome本身不提供歌词下载,但可以通过插件实现。在后台的「插件」页面,安装 LyricsPlugin,并配置对应的歌词源(如QQ音乐、网易云音乐的公共API)。安装后,播放时会自动在客户端显示歌词。
对于音乐库的更新,除了手动点击「扫描」外,更推荐设置定时任务。在飞牛NAS的「计划任务」中,添加一个自定义脚本,内容为:
docker exec navidrome /app/navidrome scan --rescan
每天凌晨执行一次,即可保证新添加的音乐能被自动识别,无需人工干预。
写在最后
通过以上步骤,你的飞牛NAS已经成功变身为一台功能完备的私人音乐服务器。Navidrome的部署过程非常简单,但带来的体验提升是巨大的——你不再依赖任何第三方云音乐服务,所有数据都掌握在自己手中,且播放无广告、无会员限制。配合飞牛NAS的硬盘休眠功能,整体功耗极低,开机即用。
这套方案非常适合拥有大量本地音乐文件、追求高品质音质且注重隐私的用户。如果你正为纷繁复杂的音乐管理工具烦恼,不妨试试这个组合,相信它会给你带来惊喜。
暂无评论,来说两句吧