Navidrome开源音乐服务搭建与使用-打造个人音乐流媒体服务平台

Navidrome 是一开源的音乐服务器软件,可以用来自建云端音乐播放器,它兼容 Subsonic、Aironic 播放器,你可以将Navidrome打造成个人音乐流媒体服务平台。Navidrome 支持各大平台,包括:Windows 、macOS 、Linux。它几乎可播放任何音频格式,支持多用户,每个用户都有自己的播放次数、播放列表、收藏夹等。

Navidrome适用于所有主要平台的即用型二进制文件,包括 Raspberry Pi ,可以自动监控你的库的变化,导入新文件和重新加载新的元数据,还可以在传输中进行转码,可按用户/播放器设置,支持 Opus 编码 。Navidrome安装也比较简单,支持Docker,有网页端、手机APP和电脑PC端。

 

一、Navidrome安装准备

网站:

  1. 官网:https://www.navidrome.org
  2. 项目: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:latest
user: 1000:1000 # should be owner of volumes
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: ""
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:latest
ports:
- "4533:4533" # 左边可以改成自己服务器未被占用的端口
environment:
# Optional: put your config options customization here. Examples(这些都是可选的):
ND_SCANSCHEDULE: 1m
ND_LASTFM_ENABLED:
ND_LASTFM_APIKEY: 8da9158005895f6e620cd75aaac9 # 修改成自己的APIKEY
ND_LASTFM_SECRET: c518b8d36590a1119b5f90e1ce46a # 修改成自己的SECRET
ND_SPOTIFY_ID: 4cd036bsqd1594bd0b41bc8f94c46846d # 修改成自己的ID
ND_SPOTIFY_SECRET: 249ca01a48be46fcb084523a6b267661bb1 # 修改成自己的SECRET
ND_LASTFM_LANGUAGE: zh
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_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:latest
depends_on:
- navidrome
ports:
- "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 帐户。只有 应用程序名称 字段是强制性的。

Navidrome注册账号

提交表单后,可以从 API account Created 页面获取 API Key 和 Shared Secret,将上面的值复制到 Docker 的环境变量。

ND_LASTFM_ENABLED 设置 false 为完全禁用 Last.fm 集成
ND_LASTFM_APIKEY Last.fm 获取的 API Key
ND_LASTFM_SECRET Last.fm 获取的 Shared Secret
ND_LASTFM_LANGUAGE 用于从 Last.fm 检索的语言的两个字母代码,简体中文为 zh

2.2 Spotify

Spotify。在 Spotify 中创建一个免费帐户,单击 Spotify 的开发者仪表板中的CREATE AN APP 按钮:https://developer.spotify.com/dashboard/applications。

填写所有字段并单击 CREATE 按钮,将值复制到 Docker 的环境变量。

ND_SPOTIFY_ID Spotify 客户端 ID
ND_SPOTIFY_SECRET Spotify 客户端 Secret

2.3 转码设置

Navidrome虽然支持各种音乐格式,但是有一些音乐文件比较大的话,无法在客户端播放,需要配置Navidrome进行转码成。不过 Navidrome 出于安全原因,禁用了从 Web 界面更改参数,所以需要先修改 Docker 的环境变量。

ND_ENABLETRANSCODINGCONFIG 设置为 true 才能支持转码功能
ND_TRANSCODINGCACHESIZE 转码缓存的大小。设置 0 为禁用缓存,默认为 100MB

2.4 开始安装

最后,docker-compose.yml 代码如下:

version: "3"
services:
navidrome:
image: deluan/navidrome:latest
ports:
- "4533:4533" # 左边可以改成自己服务器未被占用的端口
environment:
# Optional: put your config options customization here. Examples(这些都是可选的):
ND_SCANSCHEDULE: 1m
ND_LASTFM_ENABLED:
ND_LASTFM_APIKEY: 8da9158005895f6e620cd75aaac9 # 修改成自己的APIKEY
ND_LASTFM_SECRET: c518b8d36590a1119b5f90e1ce46a # 修改成自己的SECRET
ND_SPOTIFY_ID: 4cd036bsqd1594bd0b41bc8f94c46846d # 修改成自己的ID
ND_SPOTIFY_SECRET: 249ca01a48be46fcb084523a6b267661bb1 # 修改成自己的SECRET
ND_LASTFM_LANGUAGE: zh
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_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:latest
depends_on:
- navidrome
ports:
- "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完成安装。

Navidrome安装Docker

访问IP:4533端口就可以有界面出现了。

Navidrome登录界面

访问IP:4534端口就可以上传下载歌曲了。

Navidrome上传下载歌曲

三、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的界面,Navidrome会自动检测你存放在/root/data/docker_data/qbittorrent/music中的音乐文件(路径是我们在docker-compose.yml 设置的)。

Navidrome使用界面

Navidrome可以在线播放音乐、下载音乐以及查看音乐信息等。

Navidrome开始播放

3.2 PC电脑端

PC电脑端推荐:Sonixd

  1. 下载:https://github.com/jeffvli/sonixd

下载安装Sonixd,先登录你的Navidrome的URL、账号和密码。

Navidrome电脑端

这个就是Navidrome的Sonixd界面,和Navidrome的网页端类似。

Navidrome电脑使用

这是Sonixd的播放界面。

3.3 手机APP

安卓上推荐Ultrasonic:

  1. https://ultrasonic.gitlab.io
  2. https://gitlab.com/ultrasonic/ultrasonic

手机上安装Ultrasonic,然后填写服务器地址、账号和密码。

Navidrome手机使用

这个就是Ultrasonic的界面,你可以在媒体库看到自己的音乐文件。

Navidrome手机上播放app

这是Ultrasonic的音乐播放界面。

Navidrome手机上听音乐

四、Navidrome优化设置

4.1 反向绑定域名

(可选)Navidrome使用IP+端口的形式访问,不如使用域名访问方便。给Navidrome反向绑定域名有三种方式:

宝塔面板反向绑定域名。如果你的VPS主机上安装了宝塔面板(教程:新版宝塔面板安装与使用教程-利用宝塔面板在VPS主机上搭建网站),先在宝塔面板上添加域名网站,并且申请好SSL证书,然后进入到反向绑定域名界面。

如下图填写你的Navidrome的IP:端口地址,点击保存,重启Nginx生效。

Navidrome绑定域名

Docker一键反向绑定域名。如果你在你的Docker安装了Nginx反向绑定域名管理工具,反向绑定域名就更简单了,先添加SSL证书。

然后添加反向绑定域名。然后填写你的Navidrome的IP+端口地址,保存,完成。

Navidrome反向域名

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就可以下载和查看文件了。

Navidrome管理文件

4.3 Navidrome转码

对于一些无法播放的格式的音乐文件,你需要在Navidrome设置转码。

Navidrome转码

默认设置中有两个转码方案,一个是转 MP3,另一个是转 OPUS。先选择要转码的客户端。

Navidrome添加客户端

根据需要修改 比特率等。

Navidrome转码设置

五、总结

Navidrome用Docker安装比较简单,特别适合那些音乐重度用户使用。Navidrome本身的文件管理不怎么好,我们可以借助Filemanager进行管理。

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注