## 前言
在这个版权大战的今天,收藏夹的歌一首首变灰已是家常便饭,为了听首歌还要下载几个音乐客户端,虽然现在国内已经开始着手改变这个现状。
今天这个教程,教你如何搭建一个属于自己的音乐流媒体,上传自己喜欢的歌,不随第三方限制,获取随处聆听体验
首先这里需要的软件叫 navidrome ,在搭建之前你可以点击下面链接试用。
https://demo.navidrome.org/
搭建前提,你需要有一个云服务器,或者一个nas, 或者一个长时间开机的电脑,再或者一个树莓配就行。不过后者需要你有相关的基本知识,本次教程已腾讯云上的 ubuntu系统为例
本次搭建需要使用 linux系统,配合docker,如果云服务器的话一般linux居多,nas有些也支持docker,树莓派和windows pc都行,不过要者折腾些别的,希望你在看这篇文章之前可以处理好这些前置条件。
遇到其他问题欢迎在下方留言,你也可以去菜鸟教程看看linux的[基础教程](https://www.runoob.com/linux/linux-tutorial.html),只需要熟悉几个相关文件操作就可以阅读本教程
## 正文
这里先简单说一个 购买 云服务器,以腾讯云为例,这里选择云服务器或者轻量轻量应用服务器都行,推荐轻量应用服务器,虽然灵活性低,但是价格便宜,活动时只需要77/年。当然我不是打广告,腾讯也没给我广告费,你也可以购买阿里云的服务器,都差不多一个价
![image.png](https://s2.loli.net/2022/02/14/jorz3uXsbeVdIhp.png)
在你购买服务器的时候会让你选择系统,这里推荐使用 `ubuntu` 或者 `centos`, 也可以直接使用`docker镜像`。这里我们选择 `ubuntu20.04`,阿里云的界面基本上也差不多
![image.png](https://s2.loli.net/2022/02/14/cn46uaoAdwOGIgr.png)
然后就是选择服务器的配置,这里按照你的钱包来决定就行,我们这套音乐网站配置要求不高,最低配置也没事。
购买好服务器之后就可以去你的控制台查看你的服务器了。
![image.png](https://s2.loli.net/2022/02/14/iUOj4K2BPh1laQF.png)
我们这里需要知道三个东西,
1. 你的服务器ip地址,接下我们需要通过这个ip地址来登录你的服务器
2. 你的服务器用户名和密码,密码可以点击上面的重置密码来设置
知道这些之后我们就要登录服务器了。这里我们需要使用了个软件叫 xshell ,可以点击这里去 [下载](https://www.xshell.com/zh/xshell/)
,个人用户是免费的。
下载好软件后我们需要点击上方的新建来新建一个服务器链接,上面标记的地方分别是输入
你的服务器ip地址,然后再用户身份验证那里输入账号和密码。
![image.png](https://s2.loli.net/2022/02/14/5mYtorIiGNUPvxw.png)
登录成功之后你看到的应该大概就是这个界面,可能会有些许的不同。
![image.png](https://s2.loli.net/2022/02/14/5ElB2iSTtoVbsxc.png)
接下来是流媒体服务的安装
首先是安装 docker ,如果你之前选的是带docker镜像的系统,这里可以跳过,不过你接着操作也没事,系统应该会提示你已安装。
这里的安装基于ubuntu系统,如果你选择的centos,你应该知道centos大概怎么操作。
```shell
安装docker
#更新软件源
sudo apt update
#安装docker
sudo apt install docker
#安装docker-compose
sudo apt install docker-compose
##没错 就是这么简单😏
```
接下安装 navidrome
创建一个相关数据文件夹 (可自行调整,后续会用到)
```shell
#创建存放音乐的文件夹
mkdir music
#创建存放数据库的文件夹
mkdir navidrome
#使用pwd来查看当前目录
pwd
#上面文件夹的目录就是 pwd的输出 + /文件夹名
#例如我的就是 /home/ubuntu/music
#输入id来查看当前用户id
id
# 示例输出 uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lxd)
#其中 1000就是我当前用户uid
#这些后续都会用到
```
创建一个文件 `docker-compose.yml`
```shell
nano docker-compose.yml
#如果提示 nano 未找到之类的,运行下个命令安装
sudo apt install nano
```
复制下面文本到文件中,xshell 中可以右键粘贴
```yaml
version: "3"
services:
navidrome:
image: deluan/navidrome:latest
user: 1000:1000 # 前面的1000换成你的uid,如果也是1000就不要动
ports:
- "4533:4533"
#端口映射,前面那个可以换成你想要的端口
restart: unless-stopped
environment:
ND_SCANSCHEDULE: 1h #扫描周期
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
volumes:
- "/path/to/data:/data" # 分号前面的/path/to/data 换成你的数据库文件夹路径
- "/path/to/your/music/folder:/music:ro" # 分号前面的换成你音乐文件按夹路径
```
`ctrl+s` 可以保存,然后 `ctrl+x` 退出。
退出之后我们就可以启动啦
```shell
#创建容器并启动
sudo docker-compose up -d
#可以输入下面的命令查看是否启动,列表中有 navidrome就代表已经在运行
sudo docker ps
#示例返回
#CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
#f0fc627a1096 deluan/navidrome:latest "/app/navidrome" 41 minutes ago Up 41 minutes (healthy) 0.0.0.0:4533->4533/tcp, :::4533->4533/tcp ubuntu_navidrome_1
# 你可以添加这条命令实现开机自启,f0fc627a1096 是上面的id
sudo docker update --restart=always f0fc627a1096
#如果你没有添加自启的话,可以输入下面的命令手动启动 ubuntu_navidrome_1 是容器名称
sudo docker start ubuntu_navidrome_1
```
> 最后别忘了在你的服务器防火墙面板那里放开端口。
> 启动之后你可以输入 exit来断开服务器的连接,或者直接关闭xshell也没事
接下来在浏览器输入 你的ip地址+端口就可以使用啦,例如 http://127.0.0.1:4355。
右上角个性化那里是可以切换为中文的
![image.png](https://s2.loli.net/2022/02/14/p7XZPJghzGB1iIE.png)
不过现在还没有音乐,下面说一下几种上传音乐的方式
第一种
```shell
#进入你的音乐文件夹
cd music
#输入rz即可上传文件
rz
```
不过这种方法上传显得有点费事。我们也可以下载xftp这个软件,就在xshell的上方工具栏中,
下载安装后点击打开就行,音乐就可以直接拖过去了。
![image.png](https://s2.loli.net/2022/02/14/q2toxEfnaIC84p1.png)
不过这种方式你也觉得麻烦的话。
也可以试试 `everhting` 和 `Resilio Sync` ,他们可以使用 p2p 的方式同步你的文件夹,即使没有内网 ip 也可以,由于篇幅有限,这里就不仔细介绍了。
对于想要在手机上畅听的用户的话,他们不仅有网页端,也是有客户端的,准确的话客户端不是他们的,因为他们兼容 `Subsonic`(另一个流媒体,不过有点老了)的 api,所以客户端是通用的,各个平台都有,就是质量参差不齐就是了。
这里列举几个他们官网支持的
- iOS: [play:Sub](http://michaelsapps.dk/playsubapp/), [substreamer](https://substreamerapp.com/), [Amperfy](https://github.com/BLeeEZ/amperfy#readme) and [iSub](https://isub.app/)
- Android: [DSub](https://play.google.com/store/apps/details?id=github.daneren2005.dsub), [Subtracks](https://github.com/austinried/subtracks#readme), [substreamer](https://substreamerapp.com/), [Ultrasonic](https://github.com/ultrasonic/ultrasonic#readme) and [Audinaut](https://github.com/nvllsvm/Audinaut#readme)
- Desktop: [Sublime Music](https://sublimemusic.app/) (Linux) and [Sonixd](https://github.com/jeffvli/sonixd) (Windows/Linux/macOS)
---
最后的结尾,类似的开源自建的音乐服务我也体验了几个,总结就是这个综合体验还是蛮不错的,其他的基本上不是太老就是太贵。
另外 `plex` 的方案感觉也蛮不错,主要是他们的 app 看起来比较现代,果然交钱了就是不一样。我没有nas 所以也就没有用,就为了个音乐使用他们感觉有点大材小用了。
大家有什么自建音乐服务器的方案也欢迎交流分享。
>整个了b站视频,可以前往 https://www.bilibili.com/video/BV1944y1J72r
搭建一个属于自己的音乐库