Docker搭建YesPlayMusic云音乐播放器并实现异地远程连接播放歌曲

news/2024/12/25 22:30:53/

文章目录

    • 前言
    • 1. 安装Docker
    • 2. 本地安装部署YesPlayMusic
    • 3. 安装cpolar内网穿透
    • 4. 固定YesPlayMusic公网地址

前言

本文主要介绍如何在本地Linux服务器快速搭建 YesPlayMusic 云音乐播放器,并结合 cpolar 内网穿透工具实现随时随地远程访问局域网内的音乐播放器,畅享无界的音乐之旅。

想象一下,在家中、办公室或任何有网络的地方,你都能轻松地通过手机或其他设备连接到你的个人音乐库。无论是最新发布的歌曲还是经典老歌,只需几秒钟就能找到并播放出来。YesPlayMusic 不仅拥有美观的界面设计和简洁清爽的操作体验,还支持绑定网易云音乐账号,实现收藏同步、快速搜索等功能。

无论你是音乐爱好者、技术小白还是资深开发者,都能轻松上手这个强大的本地音乐播放器。接下来就让我们一起深入了解如何在几分钟内完成这一切吧!

【视频教程】

Linux系统Docker部署第三方网易云音乐播放器YesPlayMusic结合内网穿透远程访问

1. 安装Docker

本文演示环境:CentOS7,Xshell7远程ssh

没有安装Docker的小伙伴需安装Docker,已有Docker可跳过以下步骤。

如没有安装Docker,需先安装Docker:

安装软件包(提供实用程序)并设置存储库

$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装Docker引擎

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动Docker

sudo systemctl start docker

通过运行映像来验证 Docker 引擎安装是否成功

sudo docker run hello-world

2. 本地安装部署YesPlayMusic

检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

systemctl status docker

image-20240206162936342

检查Docker版本

docker -v

检查docker compose版本,确保2.0以上版本

docker compose version

下载YesPlayMusic镜像,从docker hub拉取YesPlayMusic镜像

docker pull  fogforest/yesplaymusic

image-20240206163602086

PS:如果拉取不到镜像,可以在终端执行 nano /etc/docker/daemon.json

输入:

{
"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.1panel.live"
]
}

保存退出

然后执行:systemctl restart docker

使用docker-cli创建YesPlayMusic容器,执行以下命令,映射端口可自行修改

docker run -d --name yesplaymusic --restart always -p 7900:80 fogforest/yesplaymusic

访问YesPlayMusic

访问地址:http://192.168.149.143:7900,将IP替换为自己服务器IP地址,进入到YesPlayMusic登录页。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。

image-20240207143527001

在线播放音乐

可以登录自己的网易云账号进行绑定,也可以直接在线播放歌曲。

eaad4868f55eb895799f3ff9a04fd52

我们就成功在本地搭建了YesPlayMusic,但如果想实现出门在外,也能随时随地听到自己储存在本地的歌曲,就需要借助cpolar内网穿透工具来实现公网访问了!接下来介绍一下如何安装cpolar内网穿透并实现YesPlayMusic公网访问!

3. 安装cpolar内网穿透

下面是安装cpolar步骤:

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可。

接下来配置一下YesPlayMusic的公网地址,

登录后,点击左侧仪表盘的隧道管理——创建隧道,

创建一个YesPlayMusic的公网http地址隧道

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:7900 (本地访问的地址)
  • 域名类型:免费选择随机域名
  • 地区:选择China Top

点击创建

2661ecb733394201a153fb96e39d51e

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

image-20240207150010486

使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到YesPlayMusic界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可到公网进行远程访问音乐播放器了!

image-20240207151705738

小结

如果我们需要长期异地远程访问YesPlayMusic音乐播放器,由于刚才创建的是随机的地址,24小时会发生变化。另外它的网址是由随机字符生成,不容易记忆。如果想把域名变成固定的二级子域名,并且不想每次都重新创建隧道来听歌,我们可以选择创建一个固定的http地址来解决这个问题。

4. 固定YesPlayMusic公网地址

我们接下来为其配置固定的HTTP端口地址,该地址不会变化,方便分享给别人长期查看你的博客,而无需每天重复修改服务器地址。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20240207152153246

保留成功后复制保留成功的二级子域名的名称

image-20240207152223703

返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20240207152322636

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20240207152521988

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

image-20240207152606441

最后,我们使用固定的公网https地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,可以随时随地听到自己储存在本地的歌曲了!

image-20240207152840805

YesPlayMusic 不仅是一款优秀的个人音乐播放器,更是一个让你随时随地享受高质量音效的理想工具。通过 cpolar 内网穿透技术的加持,你可以在任何地点、任何时间畅享无界的音乐之旅。如果你对本地音乐管理有需求的话,不妨试试 YesPlayMusic 吧!相信它一定能给你带来不一样的惊喜体验。希望你在探索的过程中发现更多有趣的功能,并与我们一起分享你的使用心得哦!


http://www.ppmy.cn/news/1558097.html

相关文章

设计模式-创建型模式-简单工厂模式详解

简单工厂模式 简介 简单工厂模式 : Simple Factory Pattern 是一种创建型设计模式 。 通过一个工厂类,封装了对象的创建逻辑。 客户端使用时不需要通过 new 的方式进行对象的创建,而是直接调用工厂类中的方法获取对象。 应用场景 场景介绍 …

怎样配备公共配套设施,才能让啤酒酿造流程高效环保?

今天,天泰邀请大家和我一起走进啤酒厂,了解水、蒸汽、压缩空气和二氧化碳这些基础设施如何助力啤酒生产,实现高效与环保的完美结合。 水 水是啤酒酿造的基础,啤酒厂对水质的要求极高。为了确保水质达标,啤酒厂设有专…

2、C#基于.net framework的应用开发实战编程 - 设计(二、二) - 编程手把手系列文章...

二、设计; 二.二、设计用户界面; 这个编程例子主要用的Visual Studio 2022开发的,所以此文记录VS 2022的UI界面设计过程。 1、 窗体; 1) 此例子的窗体主要是便签窗体; 主要是便签的内容保存。还有一个标题…

【JavaEE进阶】@RequestMapping注解

目录 📕前言 🌴项目准备 🌲建立连接 🚩RequestMapping注解 🚩RequestMapping 注解介绍 🎄RequestMapping是GET还是POST请求? 🚩通过Fiddler查看 🚩Postman查看 …

如何详细地遵循RustDesk的步骤来搭建远程访问和自定义服务器?

要详细地遵循RustDesk的步骤来搭建远程访问和自定义服务器,你可以按照以下几个主要步骤进行操作: 下载并安装RustDesk:前往RustDesk的官方网站(https://rustdesk.com/)下载适用于你的操作系统的安装程序。然后&#xf…

Linux 系统新磁盘分区挂载

在Linux系统中,新磁盘分区挂载是一个常见的任务。以下是详细的步骤和样例: 一、查看磁盘信息 首先,使用lsblk或fdisk -l命令查看系统中的磁盘及其分区情况。 lsblk # 或 sudo fdisk -l二、分区操作 进入分区工具 使用fdisk或parted工具进…

8086汇编(16位汇编)学习笔记03.汇编指令

8086汇编(16位汇编)学习笔记03.汇编指令-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 指令种类 数据传送指令算数运算类指令位操作类指令串操作类指令控制转移类指令处理器控制类指令 数据传送类指令 **传送类指令不影响标志位,**除了标志位传…

JavaScript相关this指向面试题

这篇文章用来整理this指向相关面试题,我们请看内容 ##面试题一 var name "window";var person {name: "person",sayName: function () {console.log(this.name);} };function sayName() {var sss person.sayName;sss(); // 绑定: 默认绑定…