编辑
2022-05-15
Application
00
请注意,本文编写于 905 天前,最后修改于 417 天前,其中某些信息可能已经过时。

目录

一、安装mStream
二、配置播放选项
三、配置域名以及反向代理
四、开启VPS防火墙
五、配置开机自启动
六、问题记录
1. iOS客户端不显示播放文件
2. 显示歌词问题
3. 音频meta文件显示不正确问题
七、参考文档

本来想将这个内容加到"Debian Server部署全过程记录"中的,但是一方面,由于这篇博客太长了,不好再往里加内容,另一方面,想把这种做成一个系列,后续还会有自建家庭影院,自建家庭相册等,最重要的是,还可以水一篇blog(不好意思断更太久不是,哈哈哈)。因为音乐付费以及广告的问题,很早之前就有自己host一个音乐站点的想法了,由于一直在忙其他的,本周六稍微安稳了一点(包括内和外,心累...),就赶紧去找了一下,最后锁定mStream这个开源方案,看Github上的提交记录,作者已经不经常更新了,不过搭建完之后看还是不错的,算是比较完善了。

Notice

【update @ 10/16/2022】已经发现一个更好的音乐库解决方案,本方案弃用......

一、安装mStream

Info

mStream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere.

如上是官方对mStream的介绍,很简洁,就是让你可以在任何设备上访问你自己电脑上的音频流,即mStream支持跨平台,安卓,iOS,Windows,Linux,Mac都有客户端。至于安装配置,官网也介绍的很清楚了,有三种方式:docker,源码,以及二进制包,其优缺点也各有介绍。由于我的小破站资源并不是很丰富,本着能省一点内存是一点的原则,选择了源码安装,官网的介绍优点是节省资源,缺点是不能自己开机启动,个人感觉这个并不是个问题。

bash
$ curl -fsSL https://deb.nodesource.com/setup_18.x | bash - $ apt-get install -y nodejs $ git clone https://github.com/IrosTheBeggar/mStream.git $ cd mStream $ npm run-script wizard ... ____ _ _ __ ___ / ___|| |_ _ __ ___ __ _ _ __ ___ | '_ ` _ \\___ \| __| '__/ _ \/ _` | '_ ` _ \ | | | | | |___) | |_| | | __/ (_| | | | | | | |_| |_| |_|____/ \__|_| \___|\__,_|_| |_| |_| v5.11.4 Check out our Discord server: https://discord.gg/AM896Rr 2022-05-14T16:54:26.306Z info: Config File does not exist. Attempting to create file 2022-05-14T16:54:26.309Z info: Config file does not have secret. Generating a secret and saving 2022-05-14T16:54:26.331Z info: Access mStream locally: http://localhost:3000

当看到如上的输出时,说明mStream已经成安安装,并启动,在浏览器输入http://localhost:3000即可看到界面。

二、配置播放选项

服务端安装好之后,第一件事情就是在浏览器访问http://ip:3000,以完成关键选项的配置,主要有如下:

  • 添加音乐文件夹
  • 设定admin账户
  • 开启Transcoding,并下载FFmpeg Downloaded
  • 开启log记录

三、配置域名以及反向代理

要想配置域名,首先要去域名提供商那里添加DNS解析,然后和其他站点一样,想用nginx做web服务器,只不过这里多了一个步骤,mStream默认是使用3000端口,所以为了url比较美观,不带的特殊端口,使用了反向代理的方式进行配置,实际并不复杂,就多了一条指令,即在location块中加入proxy_pass http://localhost:3000;

由于目前大多数浏览器都启用了强制HSTS,所以还是用certbot来申请免费的证书并配置。操作完之后,重启nginx服务器,在浏览器访问域名即可看到如下界面:

四、开启VPS防火墙

以上都配置好了,但是通过localhost:3000还是访问不了,一开始怀疑系统防火墙拦截了,看日志并没有,所以把ufw disable将防火墙彻底关掉,还是没有用,最后到腾讯控制台看了下web界面的防火墙,果然没有开放3000端口,添加完自定义之后,就可以访问了

五、配置开机自启动

可以使用pm2命令,配合cron服务来实现:

bash
$ npm install -g pm2 $ crontab -e # 在文档中追加如下 # when reboot @reboot /usr/bin/pm2 start /opt/source-code/mStream/cli-boot-wrapper.js --name mStream

保存并退出,以后每次重启之后,mStream都会自动在后台运行。

六、问题记录

1. iOS客户端不显示播放文件

需要创建文件夹,然后把音频文件放在文件夹里,才会显示

2. 显示歌词问题

暂无

3. 音频meta文件显示不正确问题

暂无

七、参考文档

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Manford Fan

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!