缘起
随着几家音乐巨头垄断了音乐市场,几个著名的歌手的歌分散在不同的巨头手里,在A客户端只能听周杰伦的歌,要听陶喆的还得切换到另外的客户端,如果想听韩红2022年春晚唱过的《这世界那么多人》还得切换到视频网站,要听刘惜君的《大风吹》也得切换到视频网站。
现在不流行把mp3存在手机里,第一个不能同步到任何终端,第二个播放记录之类的不用同步,第三手机容量有限
docker
装软件太方便了,我用windows虚拟了个linux出来装这个,看来当年预计linux能做但是windows不能做的事越来越多了
安装docker
yum install docker yum install docker-compose
Docker部署Navidrome
方法1:
推荐使用docker-compose部署,新建一个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:
- "/apps/navidrome/data:/data"
- "/media/Music:/music:ro"
- /apps/navidrome/data:请自行指定一个本地路径用来存储navidrome数据
- /media/Music:/music:您主机上的音乐文件夹路径
然后使用 docker-compose up -d 运行,如果没有出现意外,
就可以通过http://IP:4533
进行访问,首次访问会要求设置一个帐号、密码。
方法二:
docker run -d --name navidrome --restart=unless-stopped --user $(id -u):$(id -g) -v /root/music/music:/music -v /root/music/data:/data -p 4533:4533 -e ND_LOGLEVEL=info deluan/navidrome:latest
firewall-cmd --permanent --zone=public --add-port=4533/tcp --permanent
firewall-cmd --reload
/root/music/music:/music -v /root/music/data:/data
保存路径请自定
http://xxx.xxx.xxx.x:4533
设定管理员用户名密码即可
然后通过xftp或者建立个web方式导入歌曲到music目录
客户端
除了访问http://xxx.xxx.xxx.x:4533直接在线听个外还可以如下
除了可以使用搭建的网页端 Web UI,Navidrome 还可以与以下所有 Subsonic 客户端兼容。以下客户端经过测试并确认可以正常工作:
iOS:play:Sub、 substreamer、 Amperfy和 iSub
安卓:DSub, Subtracks, substreamer, Ultrasonic和 Audinaut
网络:Subplayer、 Airsonic Refix、 Aurial、 Jamstash和 Subfire
桌面:Sublime Music (Linux) 和Sonixd (Windows/Linux/macOS)
CLI:Jellycli (Windows/Linux) 和STMP (Linux/macOS)
连接的扬声器:
Sonos: bonob
Alexa:AskSonic
其他:
Subsonic Kodi 插件、 Navidrome Kodi 插件、 HTTP目录文件系统
我在安卓选择subsonic,在ios选择了substreamer
最后
- Navidrome官网:https://www.navidrome.org/
- Navidrome帮助文档:https://www.navidrome.org/docs/
- 项目地址:https://github.com/navidrome/navidrome/
IT works!