Navidrome部署记录
Navidrome部署记录
Navidrome是一款用Go语言写的流媒体窜流平台,前端基于React,使用的接口标准基于SubSonic,所以凡是支持这个标准的Android,IOS应用均能使用。一路的部署流程也十分顺利。
我采用的方案是阿里云盘本地只读映射到磁盘,Navidrome使用Docker快速部署
阿里云盘映射
使用aliyundrive-fuse,感觉作者拿它的用途应该和我是一致的,用screen命令挂在后台
https://github.com/messense/aliyundrive-fuse/releases/tag/v0.1.14
Navidrome Dokcer-compose部署文件
version: "3"
services:
navidrome:
container_name: navidrome
image: deluan/navidrome:latest
user: 0:0 #0:0代表用root用户运行
ports:
- "4533:4533"
restart: unless-stopped
environment:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
ND_ENABLETRANSCODINGCONFIG: "true"
ND_TRANSCODINGCACHESIZE: "4000M"
ND_IMAGECACHESIZE: "1000M"
volumes:
- "/data/music/data:/data"
- "/mnt/aliyundrive/webdav/Music:/music:ro"
网页端
这个网页端超赞,桌面适配和手机适配都相当完美,提供多国语言支持,转码支持,还支持PWA,要是没有缓存需求可以考虑下。整个页面组件比较大,首次打开网速不够的话加载会有些缓慢
安卓端
使用的是Ultrasonic,从F-Droid下载
Ultrasonic-Subsonic 服务器的音乐流客户端
桌面
使用的是Sonixd,但由于其居然还依赖electeon13,这次选择了appimage的版本
yay -S sonixd-appimage
Windows的话直接下载安装包即可
外部集成
配置 Navidrome 可以从 Last.fm 和 Spotify 获取专辑信息和图像
转码设置
要转码,是因为无损的文件比较大,一般都有几百M,所以需要进行转码便于客户端进行播放,一来减小服务器带宽压力,二来也没有什么高端耳机,听个响就可以了
Navidrome 出于安全原因,禁用了从 Web 界面更改参数,所以需要先修改 Docker 的环境变量
(本文前面部分的docker-compose.yaml已经默认配置转码)
ND_ENABLETRANSCODINGCONFIG 设置为 true 才能支持转码功能 ND_TRANSCODINGCACHESIZE 转码缓存的大小。设置 0 为禁用缓存,默认为 100MB
默认设置中有两个转码方案,一个是转 MP3,另一个是转 OPUS
可以根据需要修改比特率,然后选择需要转码的客户端
具体图文链接,将这一部分的内容搜素CSDN就可以找到
结语
比较麻烦的是从QQ和网易导出音乐的流程,花了很长时间在上面。但这个平台使用体验真心不错,如果有折腾能力的推荐尝试,有效打破平台壁垒。