使用 Melody 和 Navidrome 搭建私有音乐服务
一、整体规划和实现效果
1.1 整体规划
Melody 负责全网搜索音乐并且将音乐下载到服务器上,Navidrome 负责将服务器硬盘里的音乐文件以流媒体的方式展示出来,在浏览器端播放,并且兼容所有的Subsonic/Airsonic 客户端。
1.2 实现效果
1.2.1 PC端

1.2.2 移动端
{% asset_img IMG_8021.png 300 200 %}
二、Melody 安装使用
2.1 安装
仓库地址:https://github.com/foamzou/melody
readme 中提供了多种安装方式,这里使用的是 docker 方式进行安装的。
docker run -d -p 15566:5566 -v ~/melody-profile:/app/backend/.profile foamzou/melody:latest
这里设置外部端口为 15566
2.2 使用
访问 [服务器ip]:15566 进入 Melody 服务,默认 key 是 melody,输入这个进入就行。
绑定云音乐账号,点击「我的云音乐账号」,然后点击「扫码登录」,扫描二维码登录即可

创建服务器音乐存储目录
mkdir ~/melody-profile/music
然后点击「设置」,配置音乐存储目录,然后点击「更新配置」按钮,完成配置!

2.3 验证
此时点击「搜索」按钮,随便搜一首歌,然后点击播放和下载等按钮,验证是否可以正常工作;
注:如果下载按钮是灰色,还需要进入容器中创建一下music目录,具体是如下命令
# 进入容器
docker exec -it [container id] sh
# 创建 music 目录
mkdir /app/backend/.profile/music
下载完成后,可进入服务器 ~/melody-profile/music 目录下验证是否有对应歌曲文件,如果有的话,证明 Melody 部署完毕!
三、Navidrome 安装使用
3.1 安装
仓库地址:https://github.com/navidrome/navidrome/
官方文档:https://www.navidrome.org/docs/installation/
官方也给出了多种安装方式,这里使用最简单的 docker 方式进行安装
-
在服务器中建一个目录存放 navidrome 安装数据
mkdir /opt/navidrome -
进入该目录,创建 docker-compose.yml 文件,写入以下内容
version: "3" services: navidrome: image: deluan/navidrome:latest ports: - "40108:4533" restart: unless-stopped environment: ND_SCANSCHEDULE: 1h ND_LOGLEVEL: info ND_SESSIONTIMEOUT: 24h ND_BASEURL: "" volumes: - "./data:/data" - "/root/melody-profile/music:/music:ro" -
执行以下命令,即可完成安装
docker-compose up -d
3.2 使用
访问 [服务器ip]:40108;首次进入会让你设置管理员用户名和密码,自行设置,一定要记住,后面客户端都需要用到这个。
进入后页面中会展示你下载到服务器上的歌曲

3.3 客户端
- PC:https://github.com/jeffvli/feishin
- 移动端(IOS):Amperfy
- 配置:
- URL:http://[服务器ip]:40108/
- 用户名 & 密码:就是首次进入 Navidrome 设置的用户名和密码