Navidrome 是一款开源音乐服务器,它可以把你硬盘里的音乐文件以流媒体的方式展示出来,就可以在任何浏览器里收听了,也支持不少第三方客户端,最终在全平台播放收听。类似自家的 Spotify、Apple Music、网易云音乐、QQ音乐的意思。
Navidrome 支持各大平台,包括:
只需要有一台小型服务器,比如理财产品树莓派,就可以了。当然一般的 NAS 系统都自带音乐服务器,所以…根据自己喜好吧。青小蛙倒是觉得群晖的 Audio Station 还不错,够用。
官方文档提供了每个平台的安装方式,这里就不重复了。
主要特性包括:
随着几家音乐巨头垄断了音乐市场,几个著名的歌手的歌分散在不同的巨头手里,在A客户端只能听周杰伦的歌,要听陶喆的还得切换到另外的客户端,如果想听韩红2022年春晚唱过的《这世界那么多人》还得切换到视频网站,要听刘惜君的《大风吹》也得切换到视频网站。
现在不流行把mp3存在手机里,第一个不能同步到任何终端,第二个播放记录之类的不用同步,第三手机容量有限
现在的听歌环境是越来越难了,虽然缙哥哥有多个音乐平台的会员,但是音乐版权却分散在各个平台,不是这首歌灰色就是那首歌灰色,总不可能为了一首歌再去切换平台听吧?
曾经想过如下方案,供借鉴:
扩展阅读
这两个方案也是目前缙哥哥都在使用的,但是方案一适合电脑上播放,还需要配合音乐播放器;而方案二一开始还挺好用,而现在则逐渐连上传的音乐都会进行云端匹配,要么上传失败、要么替换音乐文件,更甚者直接不予显示(参见《网易云音乐云盘检测用户个人文件,无损音乐听歌转战阿里云盘》)……
所以随着越来越“智能化”的信息时代,在一个什么都在云端,又什么都要自建的年代,音乐服务缙哥哥也决定自己搞定的,只不过这个需求较为小众。如果你需要它,那么这篇文章或许对你有所帮助。
以上为必备,40G是绝大部分云服务器赠送的空间,一般人这个空间足够存放自己喜欢听的歌曲了,当然,你可以购买更大的空间,或者通过挂载对象存储(内网),挂载云盘来实现自动备份的大空间。5M以上的带宽是为了能够流程的听歌,毕竟现在的歌曲动则10M/20M甚至更大,听听就卡我想这不是你想要的。
有域名稍微好记一点,可以免得记 IP 地址,有 CDN 可以缓存音乐文件,让你听歌更加流畅。
首先这里建议安装 CentOS 7.6 操作系统,然后部署宝塔控制面板。为啥不直接装 Docker?因为 Navidrome 有专门的音乐上传界面,经过缙哥哥使用测试,对比起宝塔文件管理还是有差距的,那为什么不直接使用宝塔可视化面板呢?
宝塔装好后,在软件商店
→运行环境
中安装下Docker 管理器
。
缙哥哥亲测 CentOS 7.6 操作系统是安装了 docker-compose 的,如果你在 ssh 中输入 docker-compose 显示没有安装,就装一下。
通过 ssh 输入下方代码进行编辑,不理解 Linux 编辑的小伙伴参见《Linux 文本编辑器 Vim “真 · 简单”使用教程》。
vi /etc/docker/daemon.json
写入下面的内容
{ "registry-mirrors": ["https://cq20bk8v.mirror.aliyuncs.com"] }
键盘左上角按esc
键,再输入:wq
保存退出。输入下方指令:
yum install epel-release
yum install python3-pip
pip3 install --upgrade pip
pip3 install docker-compose
若是报错:ModuleNotFoundError: No module named ‘setuptools_rust’
则输入下方指令,若是没有报错可跳过。
pip3 install -U pip setuptools
在宝塔面板菜单栏点击文件进入在线资源管理界面,进入根目录/home
目录,创建music
文件夹,并在该文件夹下分别创建data
和song
文件夹。
同时,在music
文件夹下,创建一个名为docker-compose.yaml
的文件,双击对其进行编辑,并将下方内容复制进去。
version: "3"
services:
navidrome:
container_name: navidrome
image: deluan/navidrome:latest
user: 0:0 #0:0代表用root用户运行
ports:
- "4533:4533"
restart: unless-stopped
environment:
# Optional: put your config options customization here. Examples:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
ND_ENABLETRANSCODINGCONFIG: "true"
ND_TRANSCODINGCACHESIZE: "4000M"
ND_IMAGECACHESIZE: "1000M"
volumes:
- "/home/music/data:/data"
- "/home/music/song:/music:ro"
miniserve:
image: svenstaro/miniserve:latest
depends_on:
- navidrome
ports:
- "4534:4534"
volumes:
- "/home/music/song:/downloads"
command: "-r -z -u -q -p 4534 -a dujin:www.dujin.org /downloads"
restart: unless-stopped
这里缙哥哥简单对上述参数解释一下,小伙伴们可以根据自己的喜好进行调整修改。
其中4534
端口是上传音乐文件的网页端口,而倒数第二行的dujin
为上传页面的登陆账号,www.dujin.org
为上传页面的登陆密码。
而由于我们使用了宝塔面板,你可以直接将这个端口屏蔽也没有关系。
Navidrome 默认将 song 和 data 文件夹放根目录,缙哥哥将其放入 home 文件夹,你们随意。
配置文件中的选项
环境变量
描述
默认值
ND_CONFIGFILE
从外部配置文件加载配置
"./navidrome.toml"
音乐文件夹
ND_MUSICFOLDER
存储音乐库的文件夹。可以是只读的
"./music"
资料文件夹
ND_DATAFOLDER
存储应用程序数据的文件夹(数据库、缓存……)
"./data"
扫描计划
ND_SCANSCHEDULE
使用“cron”语法配置定期扫描。要完全禁用它,请将其设置为”0″
"@every 1m"
日志级别
ND_LOGLEVEL
日志级别。对故障排除很有用。可能的值:error
, warn
, info
, debug
,trace
"info"
启用转码配置*
ND_ENABLETRANSCODINGCONFIG
在 UI 中启用转码配置
false
转码缓存大小
ND_TRANSCODINGCACHESIZE
转码缓存的大小。设置”0″为禁用缓存
"100MB"
图像缓存大小
ND_IMAGECACHESIZE
图像(艺术作品)缓存的大小。设置”0″为禁用缓存
"100MB"
基本网址
ND_BASEURL
path
用于在代理后面配置 Navidrome的基本 URL(仅部分)(例如/music
:)
Empty
会话超时
ND_SESSIONTIMEOUT
Navidrome 在关闭 Web ui 空闲会话之前将等待多长时间
"24h"
接着仍旧通过 ssh 进行安装部署,输入:
cd /home/music
docker-compose up -d
打开浏览器,输入ip:4533
,创建用户名和密码。
需要注意的是,这个账号密码是你前端访问的账号密码,也是客户端访问的账号密码。
而上面配置的账号密码是音乐上传页面的账号密码,两者是有区别的。
点击网页右上角头像
→Personal
在Language
中选择简体中文(英语很吊的当我没说)。
打开浏览器,输入ip:4534
,输入docker-compose.yaml
文件末尾预先设置的用户名和密码(如果你没有改动的话,用户名dujin
,密码www.dujin.org
),就可以进入音乐上传页面了。
当我们上传音乐文件之后,点击头像左边的图标(刷新&运行情况)可以快速扫描音乐文件。
个人感觉宝塔的可视化上传更加方便,这也意味着还可以配置宝塔 FTP,甚至挂载网盘来进行扩容、保存、备份你的音乐文件。
扩展阅读
打开浏览器,输入ip:4533
,输入账号密码即可进入 Navidrome 首页。
Navidrome 会自动识别你的音乐文件匹配对应的专辑名称、专辑封面等相关内容,非常方便。
可以根据歌手来进行筛选、统计。
如果你上传音乐的时候把lrc歌词文件也放上去,那么 Navidrome 网页版还会自动匹配并展示歌词,如果没有lrc歌词文件,你可以选择使用 Subsonic 客户端进行播放,也会匹配出歌词。
Navidrome 除了网页界面,还支持各种第三方客户端:
Connected Speakers:
Other:
缙哥哥在 Windows 操作系统上使用 Sonixd 客户端,起官方地址为:
无法访问的小伙伴,这里也给你放个网盘链接,分流下载。
下载后解压即可,无需安装,直接运行Sonixd.exe
文件。
这里输入你网页版的ip:4533
,输入账号密码点击Connect
按钮即可。
老规矩,第一件事先设置为中文语言。
那么后面这种中文的可视化界面想必就不用缙哥哥过多介绍了吧,不懂的话随便点。
有了这个啥歌都能听,相当于你自己打造了一个多终端云端音乐平台,再也不用纠结听歌的事情了。当然,还可以跟你“臭味相投”的小伙伴一起听。
到这里有人又问了,Navidrome 部署使用我会了,音乐哪下载?呃,我觉得吧,这玩意你都会了,你应该也不算萌新了,找个音乐资源还能难倒你?实在找不到的试试这个:
另外还有一个在线 DEMO 可以直接使用,用户名密码 demo:
除了访问http://xxx.xxx.xxx.x:4533直接在线听个外还可以如下
除了可以使用搭建的网页端 Web UI,Navidrome 还可以与以下所有 Subsonic 客户端兼容。以下客户端经过测试并确认可以正常工作:
iOS:play:Sub、 substreamer、 Amperfy和 iSub
安卓:DSub, Subtracks, substreamer, Ultrasonic和 Audinaut
网络:Subplayer、 Airsonic Refix、 Aurial、 Jamstash和 Subfire
桌面:Sublime Music (Linux) 和Sonixd (Windows/Linux/macOS)
CLI:Jellycli (Windows/Linux) 和STMP (Linux/macOS)
连接的扬声器:
Sonos: bonob
Alexa:AskSonic
其他:
Subsonic Kodi 插件、 Navidrome Kodi 插件、 HTTP目录文件系统
我在安卓选择subsonic,在ios选择了substreamer