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

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

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

Navidrome是一个专门用于管理音乐软件的程序,想要管理音频和视频等综合类的程序软件,可以试试这几个:

  1. Plex完美个人影音云盘搭建教程-Plex Media Server安装与使用方法
  2. EMBY自建个人影音播放系统-使用免费开源Emby打造个人影视媒体库
  3. 利用Pydio搭建免费私有云存储-多终端自动同步可在线播放音乐视频

一、Navidrome安装准备

网站:

  1. 官网:https://www.navidrome.org
  2. 项目:https://github.com/navidrome/navidrome

1.1 VPS主机准备

Navidrome对于主机的配置要求不高,一般地512MB内存的VPS就可以了。Navidrome不能安装在虚拟主机上,你需要提前准备好一台VPS主机,选购参考: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反向域名

Oneinstack或者LNMP反向绑定域名。如果你的VPS主机上安装了Oneinstack或者LNMP一键包,那你可以直接修改你的域名Nginx配置文件达到反向绑定域名的目的了。

  1. https://docs.min.io/docs/setup-nginx-proxy-with-minio.html
  2. Oneinstack教程:https://wzfou.com/oneinstack-list/
  3. LNMP教程:https://wzfou.com/lnmp-yjb/

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进行管理。

并且Filemanager还可以整合Aria2离线下载,功能就更强了:Aria2离线下载和在线播放-整合KodExplorer FileManager Nextcloud和 Plex系统

文章出自:挖站否 https://wzfou.com/navidrome/, 部分内容参考 blog.laoda.de 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。


分享到:
Avatar for Qi
关于站长(Qi),2008年开始混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,但愿将自己经验与心得分享出来与大家共勉。
已有 8 条评论
  1. Avatar for                            

    手机浏览器上为什么就无法播放啊?

    5月21日 06:38来自QQ 回复
  2. Avatar for imkero imkero

    我也正在用这个方案,Navidrome + Ultrasonic,体验挺好的

    1月9日 17:22 回复
    • Avatar for Qi Qi

      是的,这个挺好用的。

      1月17日 22:27 回复
  3. Avatar for 枫影 枫影

    牛逼~不过为了音质,还是存手机内好些。。。。

    2023年9月1日 16:57 回复
    • Avatar for Qi Qi

      多终端有这优势这个

      2023年9月13日 21:34 回复
  4. 哈哈,想起来10年前BAE还在时,当时有个叫musiclink的啥东西能在BAE搭建类似网站,还支持mp3外链。时代的眼泪

    2023年4月27日 04:52 回复
  5. Avatar for gewt gewt

    这个功能很强

    2023年3月31日 22:12 回复

Login

Welcome! Login in to your account

Remember me Lost your password?

Don't have account. Register

Lost Password

Register