使用 Melody 和 Navidrome 搭建私有音乐服务
一、整体规划和实现效果
1.1 整体规划
Melody 负责全网搜索音乐并且将音乐下载到服务器上,Navidrome 负责将服务器硬盘里的音乐文件以流媒体的方式展示出来,在浏览器端播放,并且兼容所有的Subsonic/Airsonic 客户端。
1.2 实现效果
1.2.1 PC端
1.2.2 移动端
二、Melody 安装使用
2.1 安装
仓库地址:https://github.com/foamzou/melody
readme 中提供了多种安装方式,这里使用的是 docker 方式进行安装的。
1 | docker run -d -p 15566:5566 -v ~/melody-profile:/app/backend/.profile foamzou/melody:latest |
这里设置外部端口为 15566
2.2 使用
访问 [服务器ip]:15566 进入 Melody 服务,默认 key 是 melody,输入这个进入就行。
绑定云音乐账号,点击「我的云音乐账号」,然后点击「扫码登录」,扫描二维码登录即可
创建服务器音乐存储目录
1 | mkdir ~/melody-profile/music |
然后点击「设置」,配置音乐存储目录,然后点击「更新配置」按钮,完成配置!
2.3 验证
此时点击「搜索」按钮,随便搜一首歌,然后点击播放和下载等按钮,验证是否可以正常工作;
注:如果下载按钮是灰色,还需要进入容器中创建一下music目录,具体是如下命令
1 | 进入容器 |
下载完成后,可进入服务器 ~/melody-profile/music 目录下验证是否有对应歌曲文件,如果有的话,证明 Melody 部署完毕!
三、Navidrome 安装使用
3.1 安装
仓库地址:https://github.com/navidrome/navidrome/
官方文档:https://www.navidrome.org/docs/installation/
官方也给出了多种安装方式,这里使用最简单的 docker 方式进行安装
在服务器中建一个目录存放 navidrome 安装数据
1
mkdir /opt/navidrome
进入该目录,创建 docker-compose.yml 文件,写入以下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15version: "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"执行以下命令,即可完成安装
1
docker-compose up -d
3.2 使用
访问 [服务器ip]:40108;首次进入会让你设置管理员用户名和密码,自行设置,一定要记住,后面客户端都需要用到这个。
进入后页面中会展示你下载到服务器上的歌曲
3.3 客户端
- PC:https://github.com/jeffvli/feishin
- 移动端(IOS):Amperfy
- 配置:
- URL:http://[服务器ip]:40108/
- 用户名 & 密码:就是首次进入 Navidrome 设置的用户名和密码