Navidrome 是一开源的音乐服务器软件,可以用来自建云端音乐播放器,它兼容 Subsonic、Aironic 播放器,你可以将Navidrome打造成个人音乐流媒体服务平台。Navidrome 支持各大平台,包括:Windows 、macOS 、Linux。它几乎可播放任何音频格式,支持多用户,每个用户都有自己的播放次数、播放列表、收藏夹等。
Navidrome适用于所有主要平台的即用型二进制文件,包括 Raspberry Pi ,可以自动监控你的库的变化,导入新文件和重新加载新的元数据,还可以在传输中进行转码,可按用户/播放器设置,支持 Opus 编码 。Navidrome安装也比较简单,支持Docker,有网页端、手机APP和电脑PC端。
一、Navidrome安装准备
网站:
- 官网:https://www.navidrome.org
- 项目:https://github.com/navidrome/navidrome
1.1 VPS主机准备
Navidrome对于主机的配置要求不高,一般地512MB内存的VPS就可以了。Navidrome不能安装在虚拟主机上,你需要提前准备好一台VPS主机
1.2 Docker环境
有了VPS主机,现在你就可以需要在VPS主机上配置好Docker环境,这里有一个一键安装Docker环境的命令,配置起来非常地简单:Docker 和 Docker Compose 一键安装脚本 可手动选择安装版本和下载源。
1.3 docker-compose
Docker images 适用 linux/amd64, linux/arm/v6, linux/arm/v7 and linux/arm64 platforms
. 官方给的docker-compose
示例如下:
version: "3"
services:navidrome:image: deluan/navidrome:latestuser: 1000:1000 # should be owner of volumesports:- "4533:4533"restart: unless-stoppedenvironment:# Optional: put your config options customization here. Examples:ND_SCANSCHEDULE: 1hND_LOGLEVEL: infoND_SESSIONTIMEOUT: 24hND_BASEURL: ""volumes:- "/path/to/data:/data"
- "/path/to/your/music/folder:/music:ro"
最后执行 docker-compose up –d
开始安装。详细的安装步骤见本文第二部分。
二、Navidrome安装过程
首先是创建文件夹,用来存放Navidrome主程序和音乐文件。
apt update -y ## 升级包
mkdir -p ~/data/docker_data/navidrome ## 创建文件夹
mkdir -p /root/data/docker_data/qbittorrent/music
然后是进入到文件夹。
cd ~/data/docker_data/navidrome ## 进入文件夹
接着就是新建docker-compose.yml
。
vim docker-compose.yml ## 创建docker-compose
你可以将官方的docker-compose.yml
示例代码放在这里,也可以使用以下网友优化版的:
version: "3"
services:navidrome:image: deluan/navidrome:latestports:- "4533:4533" # 左边可以改成自己服务器未被占用的端口environment:# Optional: put your config options customization here. Examples(这些都是可选的):ND_SCANSCHEDULE: 1mND_LASTFM_ENABLED:ND_LASTFM_APIKEY: 8da9158005895f6e620cd75aaac9 # 修改成自己的APIKEYND_LASTFM_SECRET: c518b8d36590a1119b5f90e1ce46a # 修改成自己的SECRETND_SPOTIFY_ID: 4cd036bsqd1594bd0b41bc8f94c46846d # 修改成自己的IDND_SPOTIFY_SECRET: 249ca01a48be46fcb084523a6b267661bb1 # 修改成自己的SECRETND_LASTFM_LANGUAGE: zhND_LOGLEVEL: infoND_SESSIONTIMEOUT: 24hND_BASEURL: ""ND_ENABLETRANSCODINGCONFIG: "true"ND_TRANSCODINGCACHESIZE: "4000M"ND_IMAGECACHESIZE: "1000M"volumes:- "./data:/data"- "/root/data/docker_data/qbittorrent/music:/music:ro" # 冒号左边修改成自己本地的音乐文件夹路径miniserve:image: svenstaro/miniserve:latestdepends_on:- navidromeports:- "4534:8080"volumes:- "/root/data/docker_data/qbittorrent/music:/downloads" # 冒号左边修改成自己本地的音乐文件夹路径command: "-r -z -u -q -p 8080 -a wzfou:123456 /downloads" # wzfou:123456 修改成自己的账号:密码
restart: unless-stopped
优化版本的docker-compose.yml
主要是添加了以下功能(你可以根据自己的需要进行取舍) :
2.1 Last.fm
docker-compose.yml 配置 Navidrome 可以从 Last.fm 和 Spotify 获取专辑信息和图像。
Last.fm。首先需要一个Last.fm 免费帐户,其次你要能访问Last.fm。转到 https://www.last.fm/api/account/create 并创建一个 API 帐户。只有 应用程序名称 字段是强制性的。
提交表单后,可以从 API account Created 页面获取 API Key 和 Shared Secret,将上面的值复制到 Docker 的环境变量。
2.2 Spotify
Spotify。在 Spotify 中创建一个免费帐户,单击 Spotify 的开发者仪表板中的CREATE AN APP 按钮:https://developer.spotify.com/dashboard/applications。
填写所有字段并单击 CREATE 按钮,将值复制到 Docker 的环境变量。
2.3 转码设置
Navidrome虽然支持各种音乐格式,但是有一些音乐文件比较大的话,无法在客户端播放,需要配置Navidrome进行转码成。不过 Navidrome 出于安全原因,禁用了从 Web 界面更改参数,所以需要先修改 Docker 的环境变量。
2.4 开始安装
最后,docker-compose.yml
代码如下:
version: "3"
services:navidrome:image: deluan/navidrome:latestports:- "4533:4533" # 左边可以改成自己服务器未被占用的端口environment:# Optional: put your config options customization here. Examples(这些都是可选的):ND_SCANSCHEDULE: 1mND_LASTFM_ENABLED:ND_LASTFM_APIKEY: 8da9158005895f6e620cd75aaac9 # 修改成自己的APIKEYND_LASTFM_SECRET: c518b8d36590a1119b5f90e1ce46a # 修改成自己的SECRETND_SPOTIFY_ID: 4cd036bsqd1594bd0b41bc8f94c46846d # 修改成自己的IDND_SPOTIFY_SECRET: 249ca01a48be46fcb084523a6b267661bb1 # 修改成自己的SECRETND_LASTFM_LANGUAGE: zhND_LOGLEVEL: infoND_SESSIONTIMEOUT: 24hND_BASEURL: ""ND_ENABLETRANSCODINGCONFIG: "true"ND_TRANSCODINGCACHESIZE: "4000M"ND_IMAGECACHESIZE: "1000M"volumes:- "./data:/data"- "/root/data/docker_data/qbittorrent/music:/music:ro" # 冒号左边修改成自己本地的音乐文件夹路径miniserve:image: svenstaro/miniserve:latestdepends_on:- navidromeports:- "4534:8080"volumes:- "/root/data/docker_data/qbittorrent/music:/downloads" # 冒号左边修改成自己本地的音乐文件夹路径command: "-r -z -u -q -p 8080 -a wzfou:123456 /downloads" # wzfou:123456 修改成自己的账号:密码
restart: unless-stopped
执行命令:docker-compose up -d
完成安装。
访问IP:4533端口就可以有界面出现了。
访问IP:4534端口就可以上传下载歌曲了。
三、Navidrome使用方法
Navidrome 除了网页界面,还支持各种第三方客户端:
iOS: play:Sub, substreamer, Amperfy 和 iSub
Android: DSub, Subtracks, substreamer, Ultrasonic 和 Audinaut
Web: Subplayer, Airsonic Refix, Aurial, Jamstash 和 Subfire
Desktop: Sublime Music (Linux) 和 Sonixd (Windows/Linux/macOS)
CLI: Jellycli (Windows/Linux) 和 STMP (Linux/macOS)
Connected Speakers:
Sonos: bonob
Alexa: AskSonic
Other:
Subsonic Kodi Plugin
Navidrome Kodi Plugin
3.1 Web网页端
Navidrome支持中文,进入到Navidrome的网页版后可以设置为中文。
这个就是Navidrome的界面,Navidrome会自动检测你存放在/root/data/docker_data/qbittorrent/music
中的音乐文件(路径是我们在docker-compose.yml
设置的)。
Navidrome可以在线播放音乐、下载音乐以及查看音乐信息等。
3.2 PC电脑端
PC电脑端推荐:Sonixd
- 下载:https://github.com/jeffvli/sonixd
下载安装Sonixd,先登录你的Navidrome的URL、账号和密码。
这个就是Navidrome的Sonixd界面,和Navidrome的网页端类似。
这是Sonixd的播放界面。
3.3 手机APP
安卓上推荐Ultrasonic:
- https://ultrasonic.gitlab.io
- https://gitlab.com/ultrasonic/ultrasonic
手机上安装Ultrasonic,然后填写服务器地址、账号和密码。
这个就是Ultrasonic的界面,你可以在媒体库看到自己的音乐文件。
这是Ultrasonic的音乐播放界面。
四、Navidrome优化设置
4.1 反向绑定域名
(可选)Navidrome使用IP+端口的形式访问,不如使用域名访问方便。给Navidrome反向绑定域名有三种方式:
宝塔面板反向绑定域名。如果你的VPS主机上安装了宝塔面板(教程:新版宝塔面板安装与使用教程-利用宝塔面板在VPS主机上搭建网站),先在宝塔面板上添加域名网站,并且申请好SSL证书,然后进入到反向绑定域名界面。
如下图填写你的Navidrome的IP:端口地址
,点击保存,重启Nginx生效。
Docker一键反向绑定域名。如果你在你的Docker安装了Nginx反向绑定域名管理工具,反向绑定域名就更简单了,先添加SSL证书。
然后添加反向绑定域名。然后填写你的Navidrome的IP+端口地址,保存,完成。
4.2 整合Filemanager
我们在以前的文章有介绍过CCAA脚本整合了Filemanager文件管理器,Filemanager是一个非常不错的在线文件管理器。Navidrome可以使用以下方法将Filemanager整合进来。
docker run -d --restart=always \
-v /root/data/docker_data/qbittorrent/music:/srv \-p 8003:80 \--name filebrowser \
langren1353/filebrowser-ckplayer
访问IP:8003就可以Filemanager界面了,由于我们在安装Filemanager时已经将它默认的下载路径设置与Navidrome的音乐路径保持一致,直接用Filemanager就可以下载和查看文件了。
4.3 Navidrome转码
对于一些无法播放的格式的音乐文件,你需要在Navidrome设置转码。
默认设置中有两个转码方案,一个是转 MP3,另一个是转 OPUS。先选择要转码的客户端。
根据需要修改 比特率等。
五、总结
Navidrome用Docker安装比较简单,特别适合那些音乐重度用户使用。Navidrome本身的文件管理不怎么好,我们可以借助Filemanager进行管理。