828华为云征文|部署音乐流媒体服务器 mStream
828华为云征文|部署音乐流媒体服务器 mStream
- 一、Flexus云服务器X实例介绍
- 二、Flexus云服务器X实例配置
- 2.1 重置密码
- 2.2 服务器连接
- 2.3 安全组配置
- 2.4 Docker 环境搭建
- 三、Flexus云服务器X实例部署 mStream
- 3.1 mStream 介绍
- 3.2 mStream 部署
- 3.3 mStream 使用
- 四、总结
一、Flexus云服务器X实例介绍
云服务器是一种基于云计算技术的虚拟主机服务,用户可以通过互联网获取按需分配的计算资源。它具有高度的灵活性和可扩展性,允许用户根据实际需求快速调整配置。相比传统服务器,云服务器能够提供更好的成本效益、更高的可用性和更强的数据安全性,适合各种规模的企业使用。
华为云下一代云服务器Flexus X实例
焕新上线,新产品基于客户业务负载进行动态性能画像,智能推荐资源规格,持续优化性能和成本,按业务算力需求进行精细定价,根据实际使用算力付费,真正用多少花多少,针对迁移场景智能资源预画像,帮助用户在华为云上推荐匹配的资源规格,覆盖大多数通用工作负载场景。
Flexus X实例通过和其他服务组合,具备计算、镜像安装、网络、存储、安全等能力,您可根据业务需要灵活配置各资源。
本次测评使用的规格是:4核12G-100G-3M规格
的Flexus X实例基础模式
二、Flexus云服务器X实例配置
2.1 重置密码
购买服务器的时候可以提前设置用户名和密码,因为我这里跳过了,所以购买完成后需要重置密码,会短信或站内消息通过你的云服务器信息,重点是公网IP地址
和用户名,首先打开你的服务器控制台,选择重置密码
勾选自动重启,点击确定即可
2.2 服务器连接
华为云服务器提供了多种链接方式,如使用控制台提供的VNC方式登录、使用Linux/Mac OS系统主机登录Linux弹性云服务器(即ssh root@192.168.48.78
命令)或者使用Putty、Xshell等工具登录Linux弹性云服务器。
我个人习惯使用 MobaXterm
这款软件,添加SSH连接,输出公网IP
、用户名和端口(默认22),连接即可。
2.3 安全组配置
安全组是一个逻辑上的分组,为同一个VPC内的云服务器提供访问策略
。用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。
系统为每个网卡默认创建一个默认安全组,默认安全组的规则是对出方向上的数据报文全部放行,入方向访问受限。您可以使用默认安全组,也可以根据需要创建自定义的安全组
。
主要需要填写优先级
(默认填1即可)、协议端口
(协议一般为TCP
或UDP
,端口一般选择你项目需要暴露的端口即可),描述
(选填,一般会填写此端口的用途以免忘记了),其他默认点击确定即可。安全组配置主要是暴露端口可以给外网访问。
如果还不清楚可以参考文档:安全组配置示例
2.4 Docker 环境搭建
本次服务器环境是ubuntu系统镜像,需要自己安装docker环境
服务器类别 | 系统镜像 | 内网IP地址 | Docker版本 | 操作系统版本 |
---|---|---|---|---|
Flexus云服务器X实例 | Ubuntu | 192.168.0.168 | 27.2.0 | Ubuntu 22.04.4 LTS |
使用apt-get
命令安装docker及其配置
# 安装必要工具包
$ sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common# 添加Docker GPG秘钥
$ sudo curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -# 配置仓库源
$ sudo add-apt-repository \"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \$(lsb_release -cs) \stable" # 更新apt包索引
$ sudo apt-get update# 安装docker
$ sudo apt-get install docker-ce docker-ce-cli containerd.io# 添加docker镜像源
$ sudo vim /etc/docker/daemon.json{"registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com/","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://ccr.ccs.tencentyun.com/","https://docker.m.daocloud.io/","https://dockerproxy.com",]
}
# 重启
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
测试docker
安装是否成功
root@flexusx-c6b3:~# docker -v
Docker version 27.2.0, build 3ab4256```
检查docker
服务状态
root@flexusx-c6b3:~# systemctl status docker
* docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2024-08-30 15:53:45 CST; 17h ago
TriggeredBy: * docker.socketDocs: https://docs.docker.comMain PID: 24912 (dockerd)Tasks: 13Memory: 24.7MCPU: 3.778sCGroup: /system.slice/docker.service`-24912 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
检查docker compose
版本
root@flexusx-c6b3:~# docker compose version
Docker Compose version v2.29.2
三、Flexus云服务器X实例部署 mStream
3.1 mStream 介绍
mStream是一个个人音乐流媒体服务器,用户可以轻松地搭建并管理自己的音乐服务器。这意味着您可以将个人音乐收藏上传到服务器上,然后从任何设备通过互联网访问您的音乐。相比传统的流媒体服务,mStream使您完全掌控自己的音乐,不受任何平台的限制,也没有任何广告的干扰。更令人兴奋的是,mStream还支持音乐文件在不同设备间的离线同步。
-
设备兼容性:mStream拥有适用于iOS和Android的移动App,并且支持通过任意现代浏览器进行音乐播放。这种跨设备的无缝整合,使您在旅途中也能随时随地享受音乐。
-
无缝播放:Gapless Playback功能确保了曲目间的平滑过渡,让音乐听起来浑然一体,尤其适合古典音乐和连续性强的专辑。
-
视觉震撼:内置的Milkdrop可视化工具提供了一种视听结合的盛宴,让您的音乐体验更为丰富。
-
轻松分享:playlist分享功能和拖放文件上传大大方便了音乐分享与管理。
-
更多功能:无缝播放、Milkdrop 可视化工具、播放列表共享、拖放文件上传
mStream不仅仅是一个音乐播放器,它更像是一个私人云端音乐库。无论您身在何处,只需要互联网连接,就可以享受无障碍的音乐体验。而对于音乐发烧友和高品质音频爱好者来说,mStream支持无压缩的FLAC文件格式,让您不损失一丝音质细节。
- 官网:https://mstream.io/
- Github:https://github.com/IrosTheBeggar/mStream
3.2 mStream 部署
- 创建 docker-compose.yml
version: "3"
services:mstream:image: lscr.io/linuxserver/mstream:latestcontainer_name: mstreamenvironment:- PUID=1000- PGID=1000- TZ=Asia/Shanghaivolumes:- ./config:/config- ./music:/musicports:- 8093:3000restart: unless-stopped
- ports: 映射主机的 8093 端口到容器的 80 端口
- volumes: 将主机目录挂载到容器目录
如果将上述代码片段保存在名为 docker-compose.yml 的文件中,则只需从同一文件夹中运行 docker compose up -d
即可自动拉取 mStream 镜像,并创建并启动一个容器。 up
表示启动服务,-d
表示在后台执行。docker-compose down
命令用于停止和清理由 docker-compose up
启动的服务。
- 启动服务
进入项目目录,执行docker-compose up -d
启动命令,会自动拉取容器并运行
从 Dockerhub 拉取 mStream 镜像,地址:https://hub.docker.com/r/linuxserver/mstream
root@flexusx-c6b3:~/mstream# docker-compose up -d
Creating network "mstream_default" with the default driver
Pulling mstream (lscr.io/linuxserver/mstream:latest)...
latest: Pulling from linuxserver/mstream
b4fa62a600be: Pull complete
df25a931801a: Pull complete
0be3d9a79057: Pull complete
63d699e4e9b1: Pull complete
2fdbedb131bd: Pull complete
f624edeae4f4: Pull complete
f3788ab1c6c7: Pull complete
1d1ac8f2d2c4: Pull complete
Digest: sha256:8e5de8f8c80e027366bf583adb4a43e6cc675b2986b9e51a38ec53fdbac6a724
Status: Downloaded newer image for lscr.io/linuxserver/mstream:latest
Creating mstream ...
Creating mstream ... done
- 配置安全组
在Flexus云服务器X实例的安全组管理页面,添加入方向规则,接下来我们启动服务需要监听8093端口,所以添加安全组为TCP:8093
协议端口。
- 检查容器状态
检查 mStream 容器状态,确保容器正常启动
root@flexusx-c6b3:~/mstream# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
af51ee334628 lscr.io/linuxserver/mstream:latest "/init" 12 seconds ago Up 10 seconds 0.0.0.0:8093->3000/tcp, :::8093->3000/tcp mstream
- 访问地址
内网:http://localhost:8093
外网:http://公网IP:8093
- 访问结果
若出现此页面,则部署 mstream server 成功。
3.3 mStream 使用
进入 Admin Panel 管理面板,查看设置文件目录,默认已经添加 /music
目录
添加用户,首次添加为管理员帐号,身份验证将被开启
查看数据库扫描设置,开启手动开启扫描
手动复制音乐文件到 music
目录下,刷新网页即可显示音乐列表了,也可以将文件拖动到网页上上传文件
一键添加播放列表
左侧列表还显示:播放列表、专辑、歌手、最近添加、最近播放、最常播放、收藏等分类,还可以搜索
播放处可以设置循环方式、DJ风格、音乐可视化插件、音量等
播放列表可以保存、下载、分享播放列表
流媒体服务如Spotify、Apple Music等正在改变人们消费音乐的方式。虽然这些服务用海量曲库和便捷的使用方式吸引了众多用户,但它们也带来了不容忽视的问题。首先,用户对音乐拥有的控制权逐渐减弱,他们的歌曲列表随时可能被平台政策更改或移除。其次,广告和付费订阅制度也让人们对这些服务产生了些许依赖和反感。
mStream作为一个开源的音乐流媒体服务器,以其强大的功能和用户友好的设计,彻底颠覆了传统流媒体服务的运作方式,不仅解决了用户在音乐使用上的诸多困扰,还提供了一种更加自由和私密的音乐使用体验。虽然用户界面可能不像其他选项那样精致或直观、有些用户可能更喜欢为其音乐流媒体服务器提供更多高级自定义选项,整体作为音乐服务器的作用就已经很够了,还有更多有趣的设置和功能就需要自行探索了。
四、总结
mStream不仅仅是一个音乐播放器,它更像是一个私人云端音乐库。无论您身在何处,只需要互联网连接,就可以享受无障碍的音乐体验。而对于音乐发烧友和高品质音频爱好者来说,mStream支持无压缩的FLAC文件格式,让您不损失一丝音质细节。此次使用的Flexus X实例
配置还是很高的4核12G-100G-3M规格
的基础模式
,mStream 还设计为轻量级,这意味着它可以在配置较低的机器上运行,不会出现任何延迟或性能问题。它已在多 TB 库上进行了测试,因此您可以存储任意数量的音乐而不必担心空间问题。
华为云服务器828 B2B企业节
来袭!稳定可靠,为你的业务发展注入强大动力。专业的技术支持团队,保障服务质量,弹性扩展,满足不同阶段需求,快来体验华为云服务器的卓越品质 ,开启高效云端办公新时代。
相关文章:

828华为云征文|部署音乐流媒体服务器 mStream
828华为云征文|部署音乐流媒体服务器 mStream 一、Flexus云服务器X实例介绍二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置2.4 Docker 环境搭建 三、Flexus云服务器X实例部署 mStream3.1 mStream 介绍3.2 mStream 部署3.3 mStream 使用 四、…...
【动态规划-最长公共子序列(LCS)】力扣712. 两个字符串的最小ASCII删除和
给定两个字符串s1 和 s2,返回 使两个字符串相等所需删除字符的 ASCII 值的最小和 。 示例 1: 输入: s1 “sea”, s2 “eat” 输出: 231 解释: 在 “sea” 中删除 “s” 并将 “s” 的值(115)加入总和。 在 “eat” 中删除 “t” 并将 116 加入总和。 结束时&…...
override
override 是 C11 引入的一个关键字,override 的作用是在派生类中显式地声明某个函数是用于重写基类的虚函数。它不仅仅是一个语法标记,更重要的是提供了编译时的错误检查功能,确保程序员确实按照预期在派生类中重写了基类的函数。如果没有正确…...

万象奥科工业平板上线,邀您体验与众不同!
Vanxoak推出的全新品类——ARM工业平板电脑!该系列工业平板具有防护等级高、接口丰富、易开发等特点,专为工业HMI(人机界面)和工业控制领域设计。整机采用高性能工业级ARM处理器,适配全贴合电容触摸屏,可选…...

java将word转pdf
总结 建议使用aspose-words转pdf,poi的容易出问题还丑… poi的(多行的下边框就不对了) aspose-words的(基本和word一样) poi工具转换 <!-- 处理PDF --><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>fr.opensagres…...

Golang | Leetcode Golang题解之第449题序列化和反序列化二叉搜索树
题目: 题解: type Codec struct{}func Constructor() (_ Codec) { return }func (Codec) serialize(root *TreeNode) string {arr : []string{}var postOrder func(*TreeNode)postOrder func(node *TreeNode) {if node nil {return}postOrder(node.Le…...

基于SpringBoot+Vue+MySQL的美食信息推荐系统
系统展示 用户前台界面 管理员后台界面 系统背景 在数字化时代,随着人们对美食文化的热爱与追求不断增长,美食信息推荐系统成为了连接食客与美食之间的重要桥梁。面对海量的美食信息,用户往往难以快速找到符合个人口味和需求的美食。因此&…...
spring boot jar 分离自动部署脚本
背景 远程部署时spring boot 包,比较大。可以采用依赖库和业务包分离的方式。提供一个脚本进行自动部署 maven 配置分离jar包 <build><finalName>${project.artifactId}</finalName><plugins><plugin><groupId>org.springfra…...

PGMP-03战略一致性
1.概要 program strategy alignment:战略一致性 2.详细...
华为OD机试真题---智能成绩表
题目描述 小明来到某学校当老师,需要将学生按考试总分或单科分数进行排名。输入包括学生人数、科目数量、科目名称、每个学生的姓名和对应科目的成绩,最后输入一个用作排名的科目名称。如果输入的排名科目不存在,则按总分进行排序。输出一行…...

828华为云征文 | 华为云Flexus云服务器X实例搭建企业内部VPN私有隧道,以实现安全远程办公
VPN虚拟专用网络适用于企业内部人员流动频繁和远程办公的情况,出差员工或在家办公的员工利用当地ISP就可以和企业的VPN网关建立私有的隧道连接。 通过拨入当地的ISP进入Internet再连接企业的VPN网关,在用户和VPN网关之间建立一个安全的“隧道”ÿ…...
Hadoop集群的高可用(HA):NameNode和resourcemanager高可用的搭建
文章目录 一、NameNode高可用的搭建1、免密配置2、三个节点都需要安装psmisc3、检查三个节点是否都安装jdk以及zk4、检查是否安装了hadoop集群5、修改hadoop-env.sh6、修改core-site.xml7、修改hdfs-site.xml8、检查workers 文件是否为三台服务9、分发给其他两个节点10、初始化…...

支付宝沙箱环境 支付
一 什么是沙箱: 沙箱环境是支付宝开放平台为开发者提供的安全低门槛的测试环境 支付宝正式和沙箱环境的区别 : AI: 从沙箱到正式环境: 当应用程序开发完成后,需要将应用程序从沙箱环境迁移到正式环境。 这通常涉及…...
获取unity中prefab的中文文本内容以及和prefab有关的问题
背景1:经常会在开发中遇到策划需要改某个界面,但是我们不知道那是什么界面,只看到一些关键字比如圣诞活动,那这样我就可以轻易找到这个预设了。另外还可以扩展就是收集项目中的所有中文文本然后归集到多语言表中,然后接…...
Web自动化中常用XPath定位方式
在进行Web自动化测试时,元素定位是一个至关重要的环节。XPath(XML Path Language)是一种用于在XML文档中定位节点的语言。在Web自动化中,XPath广泛应用于定位HTML元素。本文将详细介绍几种常用的XPath定位方式,包括绝对…...

Unity3D播放GIF图片使用Animation来制作动画
系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、下载GIF动图,用PS制作导出帧动画图片👉二、使用Animation制作动画👉三、脚本控制动画播放👉壁纸分享👉总结👉前言 unity播放gif图片,本身是不支持的,但是可以使用其他方法来实现, 1.有一种使用System…...
redo log 和 bin log 的两阶段提交
两阶段提交的过程 当事务提交后,有一个两阶段提交策略。 在开启两阶段提交时,会开启一个 XA 事务(宏观上的事务), Prepare 阶段:将 redo log 的状态设置为 prepare,然后将 事务XID 写入 redo…...
Go基础学习07-map注意事项;多协程对map的资源竞争;sync.Mutex避免竟态条件
文章目录 Go中map使用以及注意事项map使用时的并发安全问题 Go中map使用以及注意事项 Go语言中map使用简单示例: func main() {var mp map[string]int// mp : map[string]int{}val, ok : mp["one"]if ok {fmt.Println(val)} else {fmt.Println(val)}mp[…...

远程服务器安装anaconda并创建虚拟环境
1、承接上文新用户zrcs,在服务器的zrcs文件夹下直接下载anaconda(很慢): wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh 或者选择本地下载,清华大学开源软件镜像站:https:/…...
什么是IIC通信协议?
IIC(Inter-Integrated Circuit)通信协议,又称为I2C(Inter-Integrated Circuit 2)协议,是一种广泛使用的串行通信协议。它由飞利浦半导体公司(现NXP Semiconductors)开发,…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...

Appium下载安装配置保姆教程(图文详解)
目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...