最近发现,经常用的网易云音乐,有很多歌曲下架了,能听的越来越少了;歌单里的一些歌曲,现在要开通 VIP 才能听了。其实自己常听的歌曲不是很多,现在却有很多听不了了。
怎么办呢,付费吗?花钱当然是一个好方式,花 1 分钟开通 VIP,立马就可以畅听起来。我听的歌也不多,还是搭建一个属于自己的音乐服务器用来听歌吧。
安装音乐服务器
网上搜索了很多音乐服务器,综合对比之后选择了 Navidrome,Navidrome是一款完全开源免费的音乐服务器,且有很多开源客户端可以直接使用,十分方便。

官方也给出了如何使用 Docker 安装 Navidrome 的教程,可以点击查看。
编写 docker-compose.yml 文件,配置中使用 volumes 指定了配置文件夹 data,歌曲存放文件夹 folder.
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:
- "~/app/music/data:/data"
- "~/app/music/folder:/music:ro"
下载 docker 镜像,等待 navidrome 镜像下载完成。
linux@darcy:~/music $ sudo docker-compose up -d
Creating network "music_default" with the default driver
Pulling navidrome (deluan/navidrome:latest)...
latest: Pulling from deluan/navidrome
9b18e9b68314: Extracting [==================================================>] 2.708MB/2.708MB
6faacaf0d83b: Downloading [=================> ] 11.49MB/32.64MB
4f4fb700ef54: Download complete
e67430195958: Downloading [========> ] 2.203MB/13.64MB
音乐上传
歌曲的来源这里不细说,我电脑上刚好有几首不知何年何月使用网易云音乐时保存的歌曲,上传歌曲文件到树莓派服务器。
这里直接使用 scp 命令进行上传,需要在歌曲所在文件夹下运行。
./*表示上传当前目录所有文件。darcy@192.168.31.21为服务器用户名和 IP.:/home/darcy/music/folder为上传到的路径。
➜ folder scp ./* darcy@192.168.31.21:/home/darcy/music/folder
darcy@192.168.31.21's password:
GALA - 追梦赤子心.mp3 100% 13MB 7.0MB/s 00:01
伍佰 - 晚风.mp3 100% 4102KB 9.4MB/s 00:00
暗杠 - 狂草.mp3 100% 9693KB 9.1MB/s 00:01
被动(Live).mp3 100% 4463KB 10.4MB/s 00:00
刘德华 - 17岁 (Live).mp3 100% 12MB 10.0MB/s 00:01
张雨生 - 我期待.mp3 100% 14MB 6.8MB/s 00:02
赵英俊 - 方的言.ncm
启动音乐服务器
先使用 sudo docker ps -a 查看 Navidrome 是否已经启动了,如果没有启动可以使用 docker start id 进行启动。服务的默认端口是 4533。
linux@darcy:~ $ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS 
外网访问
如果已经是使用云服务器进行部署,那么因为有相应的公网 IP,其实已经可以直接使用公网 IP 访问了。
但是如果使用的树莓派或者家里的其他机器进行部署的,因为没有公网 IP ,只能局限在家庭局域网内,就会让公网访问十分困难。这时有下面的几个方案。
如果你的宽带运营商每次会分配公网 IP,刚好你又有一个域名,那么可以使用 DNS 服务商提供的 API 进行动态 DNS 配置,让域名总能解析到运营商分配给你的公网 IP。
有公网服务器,可以使用类似于 FRP 这样的内网穿透工具,借助公网服务器暴露局域网服务。