本地Docker部署Navidrome音乐服务器与远程访问听歌详细教程

news2024/11/25 4:26:27

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 前言
    • 1. 安装 Docker
    • 2. Docker 镜像源添加方法
    • 3. 创建并启动 Navidrome 容器
    • 4. 公网远程访问本地 Navidrome
      • 4.1 内网穿透工具安装
      • 4.2 创建远程连接公网地址
      • 4.3 使用固定公网地址远程访问

前言

本文和大家分享一款目前在 G 站有 11K+Star 的开源跨平台音乐服务器 Navidrome,如何在 Linux 环境本地使用 Docker 部署,并结合 cpolar 内网穿透工具配置公网地址,实现随时随地远程访问本地存储音乐的详细流程。

Navidrome 是一个全功能的跨平台开源音乐服务器应用,可以在 macOS、Linux、Windows 以及 Docker 等平台上运行,支持传输常见的 MP3、FLAC、WAV 等音频格式。它允许用户通过 Web 界面或 API 进行音乐库的管理和访问。提供音乐库智能管理、智能播放列表、用户权限控制以及多语言支持等多种功能。

通过 Navidrome 来搭建自己的本地化音乐管理和流媒体平台,可以享受更加便捷和个性化的音乐体验。本例中,我们在 Linux 系统使用 Docker 快速进行本地部署。

image-20240821174243765

1. 安装 Docker

本教程操作环境为 Linux Ubuntu 系统,在开始之前,我们需要先安装 Docker 与 docker-compose。

在终端中执行下方命令安装 docker:

sudo curl -fsSL https://github.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh| bash -s docker --mirror Aliyun

如果上边命令中访问不了 Github,可以使用 Gitee 的链接安装:

sudo curl -fsSL https://gitee.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh| bash -s docker --mirror Aliyun

然后启动 Docker 即可

sudo systemctl start docker

下载 docker-compose 文件

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

给他一个执行权限

sudo chmod +x /usr/local/bin/docker-compose

查看是否安装成功

docker-compose -version

2. Docker 镜像源添加方法

sudo docker pull deluan/navidrome

如因网络问题拉取不到镜像,

可尝试在终端执行 sudo nano /etc/docker/daemon.json

输入:

{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}

保存退出

然后执行:

sudo systemctl restart docker

3. 创建并启动 Navidrome 容器

成功拉取镜像后,创建 navidrome 项目文件夹并编辑 docker-compose.yml,内容如下:

version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    ports:
      - "4533:4533" #自定义端口
    restart: unless-stopped
    environment:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
    volumes:
      - "~/Music/data:/data"   #这里的~/Music/data为data数据真实路径
      - "~/Music:/music:ro"    #这里的~/Music为音乐文件真实路径

保存退出后,执行下方命令启动容器

sudo docker-compose up -d

image-20240822111905554

启动成功后,在浏览器中输入 localhost:4533,可以看到进入到了 Navidrome 的登录界面,需要设置一个用户名和密码。

image-20240821175844172

登录后,点击界面右上角的头像图标进入个性化,可以设置语言为中文:

image-20240821180156239

Navidrome 会自动扫描你存放在上边设置的真实存储路径中的音乐,并自动将歌曲分类为各个专辑的形式展现:

image-20240822112249164

image-20240822113149405

4. 公网远程访问本地 Navidrome

不过我们目前只能在本地访问刚刚使用 docker 部署的 Navidrome 音乐服务器,如果出门在外,想要随时远程访问在家中主机上部署的 Navidrome 听歌,应该怎么办呢?

我们可以使用 cpolar 内网穿透工具来实现无公网 ip 环境下的远程访问需求。

4.1 内网穿透工具安装

下面是安装 cpolar 步骤:

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

使用一键脚本安装命令

curl https://get.cpolar.sh | sudo sh

image-20240801132238671

安装完成后,执行下方命令查看 cpolar 服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

Cpolar 安装和成功启动服务后,在浏览器上输入 ubuntu 主机 IP 加 9200 端口即:【http://localhost:9200】访问 Cpolar 管理界面,使用 Cpolar 官网注册的账号登录,登录后即可看到 cpolar web 配置界面,接下来在 web 界面配置即可:

image-20240801133735424

4.2 创建远程连接公网地址

登录 cpolar web UI 管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:navidrome 注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:4533
  • 域名类型:随机域名
  • 地区:选择 China VIP

image-20240822112759133

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑或手机平板(异地)上,使用任意一个地址在浏览器中访问即可。

image-20240822112854795

如下图所示,成功实现使用公网地址异地远程访问本地部署的 Navidrome 音乐服务器 !

image-20240822113023314

image-20240822113052384

小结

为了方便演示,我们在上边的操作过程中使用了 cpolar 生成的 HTTP 公网地址隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在 24 小时内会发生随机变化,更适合于临时使用。

如果有长期远程访问本地搭建的 Navidrome 听音乐或者其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定的二级子域名方式来远程访问。

4.3 使用固定公网地址远程访问

登录 cpolar 官网,点击左侧的预留,选择保留二级子域名,地区选择 China VIP,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称,这里我填写的是 mynavid,大家也可以自定义喜欢的名称。

image-20240822113517375

保留成功后复制保留成功的二级子域名的名称:mynavid,返回登录 Cpolar web UI 管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道 Navidrome,点击右侧的编辑:

image-20240822113646177

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

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

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

image-20240822113741401

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

image-20240822113823092

最后,我们使用任意一个固定公网地址在浏览器访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,随时随地都可以远程访问本地部署的 Navidrome 音乐服务器来听音乐了!

image-20240822113954734

image-20240822114024383
以上就是如何在 Linux Ubuntu 系统使用 Docker 部署 Navidrome 音乐服务器,并结合 cpolar 内网穿透工具配置公网地址,实现随时随地远程访问本地搭建的曲库站点的全部流程,感谢您的观看,如果你也有远程访问本地部署服务的需求,不妨下载体验一下 cpolar!

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2063663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VueSeamlessScroll 无缝滚动点击事件不生效(需要给复制Dom加样式)

VueSeamlessScroll 无缝滚动点击事件不生效(需要给复制Dom加样式) 实现效果遇到问题具体实现扩展 实现效果 VueSeamlessScroll 列表无缝滚动,且可以选择某一项进行选中改变背景,并且将选中的数据传到其他接口中 遇到问题 问题…

AgentMD:通过大规模临床工具学习提升语言代理的风险预测能力

人工智能咨询培训老师叶梓 转载标明出处 临床计算器在医疗保健中扮演着至关重要的角色,它们通过提供准确的基于证据的预测来辅助临床医生进行诊断和预后评估。然而,由于可用性挑战、传播不畅和功能受限,这些工具的广泛应用常常受限。为了克服…

如何备份电脑所有数据?有哪些方法值得参考借鉴?

备份电脑所有数据是防护数据丢失和泄密的重要一项措施,备份数据也有不同的方式和工具,正确的工具能帮你省时省力,下面盘点了几个方法,来看哪一种最适合你。 一、使用专业备份软件 第三方服务器文件自动备份软件:如安企…

AI恶搞《黑神话:悟空》爆火!

黑神话简直太火了,各个热搜榜都有它的身影。 单 Steam 上的销量榜就是榜首,同时在线人数突破 200W。 估计周末在线人数更多,能不能破最高同时在线人数记录,拭目以待。 最近有不少人用清影 AI 生成鬼畜视频,我也用《黑…

【精选】基于大数据的___银行信用卡用户的数仓系统的设计与实现(全网独一无二,最新定制)

目录: 关键技术介绍 PYTHON语言简介 大数据介绍 MySql数据库 DJANGO框架 Hadoop介绍 Scrapy介绍 B/S架构 系统的设计 系统总功能模块设计 系统测试 系统测试的目的 软件测试过程 6.3测试用例 参考代码: 为什么选择我: 博主介绍&am…

Ciallo~(∠・ω・ )⌒☆第二十三篇 python 可迭代,迭代器,生成器,装饰器

Python中的可迭代对象(iterable)是指可以被迭代的对象,例如列表、元组、字符串等。可迭代对象可以通过循环来访问其元素。 迭代器(iterator)是一种能够逐个访问元素的对象,它实现了__iter__()和__next__()方…

C++ TinyWebServer项目总结(1. 配置安装)

语雀文档 项目记录会先更新在我的语雀文档 :Webserver 然后再同步发送到CSDN上,有些格式问题实在是懒得改了,可能会导致大家看的不舒服,建议有需要的大家可以看看我的原文。 安装环境 Ubuntu 20.04 mysql Ver 8.0.39-0ubuntu0…

活动策划必备:活动页面设计全攻略

活动页面是营销策略中的重要环节,它不仅传递活动信息,更是吸引用户参与和转化的关键。设计师需要深入理解活动的核心价值和目标受众的需求,确保设计能够准确传达活动信息,同时激发用户的参与欲望。通过这样的设计,活动…

【AI Agent极限挑战赛】三大赛题揭晓

由AIGC开放社区联合联想拯救者、英特尔共同主办的【2024 AI Agent极限挑战赛】于8月17日在上海中庚聚龙酒店成功举办。赛事全面考察参赛者将AI技术应用于实际问题的能力。比赛内容包括对大语言模型的理解、提示词(Prompt)的结构化调优技术、个人助理Agen…

做谷歌seo如何确保网站的速度快?

想做谷歌seo,网站的快慢也是一个重要因素,至少不能慢的让客户等得不耐烦,以下是一些实用的小建议,帮助你提高页面加载速度,确保用户体验的顺畅。 压缩图片文件大小:图片通常是网页上最占用带宽的资源之一&a…

记一次:Datawhale AI夏令营-第五期-CV-Task01

前言:前面参加了第四期AIGC算是入门了,第五期我又来了,这期我参加了两个,计算机视觉CV所以按照惯例写一个笔记。 学习任务 一、计算机视觉CV的了解 1.1、什么是计算机视觉? 1.2、什么是YOLO?什么是物体…

SAP赋能消费品行业:创新与效率的双重驱动

在快速消费品行业,市场变化如同潮水般汹涌,消费者需求日益个性化,竞争愈发激烈。SAP系统以其先进的企业资源规划技术,为消费品行业提供了强大的数字化解决方案,助力企业在创新与效率的双重驱动下,实现业务的…

上位机图像处理和嵌入式模块部署(linux Qt程序的编译)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 linux上位机写程序,大家都喜欢用designer设计界面,用qt creator编写程序。这样其实也无可厚非。但是从效率和快速开发的角度…

视频智能分析工业排污检测算法及算法源码全套应用方案

工业排污检测算法在环境保护领域发挥着至关重要的作用,其主应用场景可以归纳如下: 应用场景 1、化工厂:监测化工厂的废气、废水排放情况,预防化学品泄漏污染环境。通过实时监测和数据分析,确保化工厂的排放符合环保标…

鸿蒙Harmony开发知识:Arkts函数

函数 函数声明 函数声明引入一个函数,包含其名称、参数列表、返回类型和函数体。 以下示例是一个简单的函数,包含两个string类型的参数,返回类型为string: function add(x: string, y: string): string {let z: string ${x} …

Xinstall:让App下载摆脱注册码的束缚,效率翻倍!

你是否曾经因为繁琐的注册码而放弃了某个App的下载?或者在安装过程中因为邀请码填写错误而功亏一篑?这些问题,相信很多人都曾遇到过。今天,我要为大家介绍一个神奇的品牌——Xinstall,它凭借强大的免注册码下载技术&am…

二叉树练习

1.认识树 树的根节点及其子树,都是相对的概念。在任何一棵树中都有一个根节点,而这棵树本身又可以是别的树的子树。树的基本概念有: A)双亲和孩子:一个节点的后继节点被称为该节点的孩子,该节点称为这些孩子的双亲。…

面试车载测试岗位,我们应该如何准备呢?

在进行车载测试方面的简历撰写以及面试时,我们需要注意的几点如下: 01、简历方面 1.没有相关项目怎么办? 要投递和面试的岗位所要参与的项目和做过的项目不可能是完全一样的。招聘企业更关注工作思路以及解决问题的思路。 不同的公司就算是做一样的项…

无人机:航拍书籍推荐

写在前面 学习航拍,整理一些书籍分享理解不足小伙伴帮忙指正 😃,生活加油 99%的焦虑都来自于虚度时间和没有好好做事,所以唯一的解决办法就是行动起来,认真做完事情,战胜焦虑,战胜那些心里空荡荡的时刻&…

JavaWeb基础 -- Servlet

JavaWeb基础 – Servlet 1.Servlet简介 1.1 Servlet是什么 Servlet本身是用Java编写的,运行在Web服务器上的应用程序,并作为Web浏览器和其他HTTP客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。Servlet可以收集来自网页表单输入的数据…