缙哥哥的博客
与你分享我的点点滴滴生活

使用宝塔Docker搭建Navidrome开源音乐服务器,支持多终端畅听

现在的听歌环境是越来越难了,虽然缙哥哥有多个音乐平台的会员,但是音乐版权却分散在各个平台,不是这首歌灰色就是那首歌灰色,总不可能为了一首歌再去切换平台听吧?

曾经想过如下方案,供借鉴:

  • 方案一:下载音乐到本地,通过 OneDrive 等同步盘进行多终端同步。
  • 方案二:下载并上传音乐到网易云音乐网盘,通过私人网盘无限制播放音乐。

扩展阅读

这两个方案也是目前缙哥哥都在使用的,但是方案一适合电脑上播放,还需要配合音乐播放器;而方案二一开始还挺好用,而现在则逐渐连上传的音乐都会进行云端匹配,要么上传失败、要么替换音乐文件,更甚者直接不予显示(参见《网易云音乐云盘检测用户个人文件,无损音乐听歌转战阿里云盘》)……

所以随着越来越“智能化”的信息时代,在一个什么都在云端,又什么都要自建的年代,音乐服务缙哥哥也决定自己搞定的,只不过这个需求较为小众。如果你需要它,那么这篇文章或许对你有所帮助。

前期准备

  • 40G存储、5M带宽以上的云服务器
  • 一双眼、一双手、一个脑袋

以上为必备,40G是绝大部分云服务器赠送的空间,一般人这个空间足够存放自己喜欢听的歌曲了,当然,你可以购买更大的空间,或者通过挂载对象存储(内网),挂载云盘来实现自动备份的大空间。5M以上的带宽是为了能够流程的听歌,毕竟现在的歌曲动则10M/20M甚至更大,听听就卡我想这不是你想要的。

现有服务器特价活动 活动链接
亚洲云 AsiaYun 暑期优惠活动(7折终身优惠码:dujin70) >>>戳我直达<<<
华为云2022开年采购季 >>>戳我直达<<<
阿里云2022年上云采购季 >>>戳我直达<<<
腾讯云2022年新春大促 >>>戳我直达<<<

可选准备

  • 域名
  • CDN(CloudFlare/云盾等)

有域名稍微好记一点,可以免得记 IP 地址,有 CDN 可以缓存音乐文件,让你听歌更加流程。

部署 Navidrome 环境

首先这里建议安装 CentOS 7.6 操作系统,然后部署宝塔控制面板。为啥不直接装 Docker?因为 Navidrome 有专门的音乐上传界面,经过缙哥哥使用测试,对比起宝塔文件管理还是有差距的,那为什么不直接使用宝塔可视化面板呢?

推荐使用宝塔Linux控制面板站内AD

你还没开始用?缙哥哥推荐使用宝塔服务器面板,一键全能部署及可视化管理 Linux 服务器,简单快捷!

送你3188元礼包,点我注册领取 https://www.bt.cn/?invite_code=MV91dGp3eGQ=

现在托管 WordPress 专用服务器送宝塔专业版,托管多久送多久,数量有限,有意可联系微信:xyzyysd

宝塔装好后,在软件商店运行环境中安装下Docker 管理器

安装 docker-compose

缙哥哥亲测 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

配置 Navidrome 参数

在宝塔面板菜单栏点击文件进入在线资源管理界面,进入根目录/home目录,创建music文件夹,并在该文件夹下分别创建datasong文件夹。

同时,在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_BASEURLpath用于在代理后面配置 Navidrome的基本 URL(仅部分)(例如/music:)Empty
会话超时ND_SESSIONTIMEOUTNavidrome 在关闭 Web ui 空闲会话之前将等待多长时间"24h"

接着仍旧通过 ssh 进行安装部署,输入:

cd /home/music
docker-compose up -d

设置 Navidrome 后台

打开浏览器,输入ip:4533,创建用户名和密码。

需要注意的是,这个账号密码是你前端访问的账号密码,也是客户端访问的账号密码。

而上面配置的账号密码是音乐上传页面的账号密码,两者是有区别的。

点击网页右上角头像Personal

Language中选择简体中文(英语很吊的当我没说)。

打开浏览器,输入ip:4534,输入docker-compose.yaml文件末尾预先设置的用户名和密码(如果你没有改动的话,用户名dujin,密码www.dujin.org),就可以进入音乐上传页面了。

当我们上传音乐文件之后,点击头像左边的图标(刷新&运行情况)可以快速扫描音乐文件。

个人感觉宝塔的可视化上传更加方便,这也意味着还可以配置宝塔 FTP,甚至挂载网盘来进行扩容、保存、备份你的音乐文件。

扩展阅读

使用 Navidrome 在线听歌

打开浏览器,输入ip:4533,输入账号密码即可进入 Navidrome 首页。

Navidrome 会自动识别你的音乐文件匹配对应的专辑名称、专辑封面等相关内容,非常方便。

可以根据歌手来进行筛选、统计。

如果你上传音乐的时候把lrc歌词文件也放上去,那么 Navidrome 网页版还会自动匹配并展示歌词,如果没有lrc歌词文件,你可以选择使用 Subsonic 客户端进行播放,也会匹配出歌词。

Navidrome 第三方客户端

Navidrome 除了网页界面,还支持各种第三方客户端:

缙哥哥在 Windows 操作系统上使用 Sonixd 客户端,起官方地址为:

  • https://github.com/jeffvli/sonixd/releases

无法访问的小伙伴,这里也给你放个网盘链接,分流下载。

下载后解压即可,无需安装,直接运行Sonixd.exe文件。

这里输入你网页版的ip:4533,输入账号密码点击Connect按钮即可。

老规矩,第一件事先设置为中文语言。

那么后面这种中文的可视化界面想必就不用缙哥哥过多介绍了吧,不懂的话随便点。

有了这个啥歌都能听,相当于你自己打造了一个多终端云端音乐平台,再也不用纠结听歌的事情了。当然,还可以跟你“臭味相投”的小伙伴一起听。

到这里有人又问了,Navidrome 部署使用我会了,音乐哪下载?呃,我觉得吧,这玩意你都会了,你应该也不算萌新了,找个音乐资源还能难倒你?实在找不到的试试这个:

赞(6) 打赏
转载请注明来源及链接:缙哥哥 » 使用宝塔Docker搭建Navidrome开源音乐服务器,支持多终端畅听
如需 WordPress 优化加速、二次开发、托管等服务,可联系我购买付费服务:点此联系我 | 近期站内热门福利:

评论 3

评论前必须登录!

 

  1. #2

    用域名的话 直接创建站点,在站点创建data和song文件夹?

    nianba6天前
  2. #1

    请问大佬用的是dux主题吗?我网上下载了 dux 7.0 感觉和大佬的网站完全不一样。这是为什么,求解答

    hausen10121周前 (07-31)

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏