项目介绍
官网地址: Navidrome
什么是Navidrome呢,引用官网的原话:
Navidrome is a self-hosted, open source music server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device.
翻译成人话就是:
Navidrome 是一个自托管的开源音乐服务器和流媒体。它让您可以自由地从任何浏览器或移动设备收听您的音乐收藏。
特点:
- 处理非常大的音乐收藏
- 流式传输几乎任何可用的音频格式
- 读取并使用您所有精心策划的元数据
- 对合辑(各种艺术家专辑)和盒装(多碟专辑)的大力支持
- 多用户,每个用户都有自己的播放次数、播放列表、收藏夹等…
- 资源使用率极低
- 多平台,可在 macOS、Linux 和 Windows 上运行。还提供了Docker镜像
- 可用于所有主要平台的二进制文件,包括Raspberry Pi
- 自动监控您的音乐库的更改、导入新文件和重新加载新元数据
- 基于Material UI的主题化、现代和响应式Web 界面
- 与所有 Subsonic/Madsonic/Airsonic客户端兼容
- 即时转码。可以为每个用户/玩家设置。支持 Opus 编码
- 翻译成各种语言
缺点 - 除web外,客户端不支持歌词显示
- 不支持web上传歌曲文件
- 不支持歌曲分享
准备工作
- 一台干净的VPS,安装好Debian 11,本文以甲骨文春川arm 2c12g为例。
- 自行解决rclone网盘配置,网盘里有完整tag标签的音乐资源。
安装Rclone
首先更新下自带的软件源并安装必要的命令:
apt update
apt upgrade -y
apt install curl wget fuse pv sudo -y
安装rclone
curl https://rclone.org/install.sh | sudo bash
输入 rclone config
,提示
表示rclone安装完成。
复制自己的 rclone.conf
到 /root/.config/rclone
,此处的 rclone.conf
自行查找网上教程,复制完成后,再次输入rclone config
,提示
rclone配置完成。
安装Rclone挂载服务
本文以世纪互联sharepoint,rclone配置名为sp01网盘下的music为例
cd /lib/systemd/system
vi rclone-sp01.service
填入以下内容
[Unit]
Description=OneDrive Sharepoint (rclone)
Requires=network-online.target
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/rclone mount sp01: /mnt/sp01 --umask 000 \
--allow-other \
--allow-non-empty \
--use-mmap \
--dir-cache-time 5m \
--vfs-cache-mode writes \
--buffer-size 100M \
--vfs-read-chunk-size 256M \
--vfs-read-chunk-size-limit 4G \
--no-modtime \
--config /root/.config/rclone/rclone.conf
ExecStop=/bin/fusermount -u /mnt/sp01
Restart=always
RestartSec=10
[Install]
WantedBy=default.target
按 ESC
,输入 :wq
保存退出。
在 mnt
目录下创建 sp01
的文件夹,然后运行 rlone-sp01.service
的服务
systemctl start rclone-sp01.service
加入开机启动
systemctl enable rclone-sp01.service
查看下 /mnt/sp01
目录下有无内容,有表示rlone挂载服务安装完成。
安装Docker和Docker-compose
curl -fsSL https://get.docker.com | bash -s docker
sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
root
目录下新建 docker-compose.yml
,输入以下内容
version: "3"
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
ports:
- "4533:4533"
restart: unless-stopped
environment:
ND_SCANSCHEDULE: 1h #扫描计划
ND_LASTFM_ENABLED: #设置第三方链接lastfm,将此设置false为完全禁用默认Last.fm 集成 true
ND_LASTFM_APIKEY: abcdefghijklml # 修改成自己的APIKEY
ND_LASTFM_SECRET: abcdefghijklml # 修改成自己的SECRET
ND_LASTFM_LANGUAGE: zh #用于从 Last.fm 检索传记的语言的两个字母代码 zh
ND_LOGLEVEL: info #日志级别,可能的值:error, warn, info,debug,trace
ND_SESSIONTIMEOUT: 24h #会话超时,Navidrome 在关闭 Web ui 空闲会话之前将等待多长时间
ND_BASEURL: "/music" #基本网址,path用于在代理后面配置 Navidrome的基本 URL(仅部分)(例如/music:)默认空
ND_ENABLETRANSCODINGCONFIG: "true" #在 UI 中启用转码配置
ND_TRANSCODINGCACHESIZE: "200M" #转码缓存的大小。设置"0"为禁用缓存 默认"100MB"
ND_IMAGECACHESIZE: "200M" #图像(艺术作品)缓存的大小。设置"0"为禁用缓存,默认"100MB"
ND_UIWELCOMEMESSAGE: "念念不忘,必有回响" #web页面的欢迎词"
volumes:
- "/home/navidrome:/data"
- "/mnt/sp01/music:/music:ro"
其中,
ND_LASTFM_ENABLED: #设置第三方链接lastfm,将此设置false为完全禁用默认Last.fm 集成 true
ND_LASTFM_APIKEY: abcdefghijklml # 修改成自己的APIKEY
ND_LASTFM_SECRET: abcdefghijklml # 修改成自己的SECRET
ND_LASTFM_LANGUAGE: zh #用于从 Last.fm 检索传记的语言的两个字母代码 zh
ND_BASEURL: "/music" #基本网址,path用于在代理后面配置 Navidrome的基本 URL(仅部分)(例如/music:)默认空
这几项可先不配置,有需求的自行研究。
运行Docker-compose服务
docker-compose up -d
打开网页,输入http://your-vpsip:4533/,创建管理员账户,和密码
设置完成后,发现navidrome已经在扫我的音乐库了
修改下语言,点击右上角头像-Personal-language选择简体中文
其余设置项自行研究,如主题,对接last.fm,listembrainz等。
至此,Navidrome音乐服务端已经安装完成,
下载下 客户端 体验一下吧。
这里我没有每个客户端都用过,本人安卓手机用的多,推荐
subtracks :开源项目,支持中文,多音乐服地址,缺点,UI比较不讨喜,随机播放音乐只能以整张专辑来。
substreamer :这款UI我比较喜欢,支持随机播放曲库,有算法推荐,缺点,不支持中文,不支持多音乐服地址。
总结
navidrome的安装教程就到这里,如果你只是想要开箱即用的,查看本篇就够了,navidrome的进阶设置打算另外开一篇。
请问substreamer如何随机播放曲库,我感觉好像还是只能按专辑播放呢?