本地部署Navidrome个人云音乐平台随时随地畅听本地音乐文件

news2025/3/11 14:27:53

文章目录

    • 前言
    • 1. 安装Docker
    • 2. 创建并启动Navidrome容器
    • 3. 公网远程访问本地Navidrome
      • 3.1 内网穿透工具安装
      • 3.2 创建远程连接公网地址
      • 3.3 使用固定公网地址远程访问

前言

今天我要给大家安利一个超酷的私有化音乐神器——Navidrome!它不仅让你随时随地畅享本地音乐,还能让你在忙碌的工作生活中找到一片属于自己的小天地。如果你已经厌倦了那些千篇一律的在线音乐平台,渴望拥有一个完全个性化的音乐空间,那么这篇教程绝对是你不可错过的秘密武器!

Navidrome是一款全能、开源且支持多平台的音乐服务器应用程序,无论是macOS、Linux、Windows还是Docker,它都能轻松驾驭。无论你是MP3、FLAC还是WAV的忠实粉丝,Navidrome都能完美支持。通过简洁直观的Web界面或强大的API,你可以随心所欲地管理和访问你的音乐库。

接下来,让我们一起走进这个神奇的世界,手把手教你如何在Linux系统中快速完成Docker部署,并借助cpolar内网穿透工具配置一个固定的公网地址,让你无论身在何处都能轻松享受属于你的私人音乐云。

image-20240821174243765

1. 安装Docker

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

本例使用Docker Compose部署,如果没有安装Docker,可以查看这篇教程进行安装:《Docker安装教程——Linux、Windows、MacOS》

2. 创建并启动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

3. 公网远程访问本地Navidrome

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

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

3.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

3.2 创建远程连接公网地址

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

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

image-20240822112759133

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

image-20240822112854795

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

image-20240822113023314

image-20240822113052384

小结

为了方便演示,我们在上边的操作过程中使用了cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

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

3.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

现在你已经成功地将Navidrome和cpolar结合在一起,打造了一个属于你自己的私有化音乐云。现在,无论是身处喧嚣的都市还是宁静的乡村,只需轻轻一点,就能瞬间进入你的音乐世界。希望这篇文章不仅能帮助你在忙碌的工作生活中找到一丝宁静,还能让你在朋友面前大显身手,成为那个最酷的音乐达人!如果你觉得这个教程对你有帮助,别忘了分享给更多的人,让我们一起享受音乐带来的无限乐趣吧!

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

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

相关文章

数据集构建与训练前准备

训练数据集目录结构与格式 作者笨蛋学法,先将其公式化,后面逐步自己进行修改,读者觉得看不懂可以理解成,由结果去推过程,下面的这个yaml文件就是结果,我们去推需要的文件夹(名字可以不固定,但是…

jenkins+ant+jmeter生成的测试报告空白

Jenkins能正常构建成功,但是打开Jenkins上的测试报告,则显示空白 在网上找了很多文章,结果跟别人对比测试报告的配置,发现自己跟别人写的不一样 所以跟着别人改,改成一样的再试试 结果,好家伙&#xff0…

利用阿里云Atlas地区选择器与Plotly.js实现数据可视化与交互

在数据科学与可视化领域,交互式图表和地图应用越来越成为数据分析和展示的重要手段。本文将介绍如何结合阿里云Atlas地区选择器与Plotly.js,创建动态交互式的数据可视化应用。 一、阿里云Atlas地区选择器简介 阿里云Atlas是阿里云的一款数据可视化产品…

linux安装java8 sdk,使用 tar.gz安装包手动安装

1. 下载 Java 8 SDK 首先,需要从 Oracle 的官方网站或 OpenJDK 的网站下载 Java 8 的 .tar.gz 文件。并上传到服务器 2. 解压 JDK 下载完成后,使用 tar 命令解压文件。打开服务器终端,然后使用以下命令: tar -xvzf jdk-8uXXX-…

6.聊天室环境安装 - Ubuntu22.04 - elasticsearch(es)的安装和使用

目录 介绍安装安装kibana安装ES客户端使用 介绍 Elasticsearch, 简称 ES,它是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,res…

【python爬虫】酷狗音乐爬取练习

注意:本次爬取的音乐仅有1分钟试听,仅作学习爬虫的原理,完整音乐需要自行下载客户端。 一、 初步分析 登陆酷狗音乐后随机选取一首歌,在请求里发现一段mp3文件,复制网址,确实是我们需要的url。 复制音频的…

计算机视觉cv2入门之图像空域滤波(待补充)

空域滤波 空域滤波是指利用像素及像素领域组成的空间进行图像增强的方法。这里之所以用滤波这个词,是因为借助了频域里的概念。事实上空域滤波技术的效果与频域滤波技术的效果可以是等价的,而且有些原理和方法也常借助频域概念来解释。 原理和分类 空域滤波是在图…

游戏引擎学习第149天

今日回顾与计划 在今天的直播中,我们将继续进行游戏的开发工作,目标是完成资产文件(pack file)的测试版本。目前,游戏的资源(如位图和声音文件)是直接从磁盘加载的,而我们正在将其转…

PyCharm 接入 DeepSeek、OpenAI、Gemini、Mistral等大模型完整版教程(通用)!

PyCharm 接入 DeepSeek、OpenAI、Gemini、Mistral等大模型完整版教程(通用)! 当我们成功接入大模型时,可以选中任意代码区域进行解答,共分为三个区域,分别是选中区域、提问区域以及回答区域,我…

升级到碳纤维齿轮是否值得?

引言:当齿轮开始“减肥” 在F1赛车的变速箱里,一个齿轮的重量减轻100克,就能让圈速提升0.1秒; 在无人机旋翼传动系统中,轻量化齿轮可延长续航时间15%; 甚至在高端机械腕表中,碳纤维齿轮的引入…

基于SpringBoot+Vue的瑜伽课体验课预约系统【附源码】

基于SpringBootVue的瑜伽课体验课预约系统 一、系统技术说明二、运行说明三、系统的演示四、系统的核心代码演示 一、系统技术说明 框架:SpringbootVue 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软…

文章被检测出是AI写的怎么办?

随着人工智能技术的飞速发展,AI辅助写作工具逐渐普及,为学生、科研人员以及创作者带来了诸多便利。然而,随之而来的是对学术诚信和内容原创性的担忧。当文章被检测出是AI写作时,应该如何应对?本文将探讨这一问题&#…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14基础固定表头示例

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

【英伟达AI论文】多模态大型语言模型的高效长视频理解

摘要:近年来,基于视频的多模态大型语言模型(Video-LLMs)通过将视频处理为图像帧序列,显著提升了视频理解能力。然而,许多现有方法在视觉主干网络中独立处理各帧,缺乏显式的时序建模,…

[Lc10_hash] 总结 | 两数之和 | 字符重排 | 存在重复元素 i ii | 字母异位词分组

目录 1.介绍 2.两数之和 题解 3.面试题 01.02. 判定是否互为字符重排 题解 4.存在重复元素 题解 5.存在重复元素 II 题解 ⭕6.字母异位词分组 题解 1.介绍 哈希表是什么? 存储数据的容器前文:[C_] set | map | unordered_map 有什么用呢?…

缓存之美:Guava Cache 相比于 Caffeine 差在哪里?

大家好,我是 方圆。本文将结合 Guava Cache 的源码来分析它的实现原理,并阐述它相比于 Caffeine Cache 在性能上的劣势。为了让大家对 Guava Cache 理解起来更容易,我们还是在开篇介绍它的原理: Guava Cache 通过分段(…

小组件适配屏幕主题色

iOS 18 新增Home screen Tint Color(色调)选择,用户可以通过以下方式自定义主屏幕颜色,并且小组件,APP 图标也会跟随改颜色。 比如说意料之外的小组件(不兼容) 白色部分内部应该还有其他显示内…

IO学习---->线程

1.创建两个线程&#xff0c;分支线程1拷贝文件的前一部分&#xff0c;分支线程2拷贝文件的后一部分 #include <head.h> sem_t sem; long half_size 0; // 全局变量&#xff0c;供所有线程共享void* product(void *arg) {FILE *src fopen("IO.text", "…

个人记录,Unity资源解压和管理插件

就是经典的两个AssetStudio 和 Ripper 没有什么干货&#xff0c;就是记录一下&#xff0c;内容没有很详细 AssetStudio 说错了&#xff0c;AssetStudio比较出名&#xff08;曾经&#xff09;&#xff0c;但好像堕落了 这个工具有个好处就是分类选择&#xff0c;&#xff08;…

day19-前端Web——Vue3+TS+ElementPlus

目录 1. Vue工程化1.1 介绍1.2 环境准备1.2.1 NodeJS安装双击安装包选择安装目录验证NodeJS环境变量配置npm的全局安装路径 1.3 Vue项目-创建1.4 Vue项目开发流程1.5 API风格1.6 案例 2. TS2.1 概述2.2 快速入门2.3 常用类型2.3.1 基础类型2.3.2 联合类型2.3.3 函数类型2.3.4 对…