无公网IP 实现外网访问本地 Docker 部署 Navidrome

devtools/2025/1/18 12:07:58/

Navidrome 是一款可以在 macOS、Linux、Windows以及 Docker 等平台上运行的跨平台开源音乐服务器应用,它支持传输常见的 MP3、FLAC、WAV等音频格式。允许用户通过 Web 界面或 API 进行音乐库的管理和访问。本文就介绍如何快速在 Linux 系统使用 Docker 进行本地部署以及结合路由侠内网穿透进行外网远程访问。

第一步,安装 Navidrome

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

需要给 docker-compose 一个执行权限

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

查看是否安装成功

docker-compose -version

2. Docker 镜像源添加方法

sudo docker pull deluan/navidrome

3. 创建并启动 Navidrome 容器

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

mkdir navidrome
cd navidrome
vim docker-compose.yml

把下面内容复制到 docker-compose.yml 文件中并保存,内容如下:

version: "3"
services:navidrome:image: deluan/navidrome:latestports:- "4533:4533"restart: unless-stoppedenvironment:ND_SCANSCHEDULE: 1hND_LOGLEVEL: infoND_SESSIONTIMEOUT: 24hND_BASEURL: ""volumes:- "~/Music/data:/data"- "~/Music:/music:ro"

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

sudo docker-compose up -d

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

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

6,如果你在真实存储路径中有存放的音乐, Navidrome 会自动扫描进来,并自动将歌曲分类为各个专辑的形式展现。

第二步,外网访问本地 Navidrome

安装路由侠内网穿透。

1,当前未提供网页管理,需要先在任意一台 Windows 机器安装路由侠 Windows 版本,用作跨机器管理。

2,在路由侠客户端主界面,进入“设备管理”,点击右下角的“添加设备”,此时可查看到对应的安装码,此安装码用于将设备添加到对应账号下,可选中后复制。

3,可使用以下 Docker 命令拉取镜像:

docker pull luyouxia/lyx

注意,如果因网络问题,镜像无法拉取,可直接下载后导入:

wget https://dl.luyouxia.com:8443/v2/lyx-docker-i686.tar
docker load -i lyx-docker-i686.tar

4,然后使用该镜像启动容器

docker run --name lyx -it --restart=always --net=host -e code=这里填写安装码 luyouxia/lyx

5,此时,需要等待下载和安装的过程,如果一切正常,最终可以看到一些输出,并且可以看到如下提示:

[Device] Logged in. Token: ....

这就表示安装成功了。

当前 Linux 终端这边,如果是使用的上面的命令,Docker 是运行在前台,此时可以按住 Ctrl+C ,退出路由侠,容器也将退出。现在可以使用以下命令将其放入后台持续运行:

docker start lyx

注意如果容器删除,重新 docker run, 将创建为新的设备。

需要注意的是,因为容器参数已经添加了 --restart=always,这样开机就会自动启动,不需要再手动启动路由侠了。

6,现在回到 Windows 这边设备列表,点击右上角的×返回主界面,再次进入,就可以找到这个设备,可以修改名称。

7,回到主界面,点击【内网映射】。

8,注意右上角的设备名称下拉框,这里选中刚刚添加的设备名称,此时在这个界面上添加的映射,就属于刚刚这个设备。添加或修改一般需要等待30秒,容器中的路由侠进程就会更新并加载。切换好设备后,点击【添加映射】。

9,选择【原生端口】。

10,在内网端口里填写默认端口 4533 后点击【创建】按钮,如下图。

11,创建好后,就可以看到一条映射的公网地址,鼠标右键点击【复制地址】。

12,在外网的浏览器的地址栏输入复制的外网地址就可以看到下面这个 Navidrome 登录界面了。


http://www.ppmy.cn/devtools/151553.html

相关文章

iis强制重定向https

以下是在 IIS 10 中配置将 HTTP 请求的 403 错误重定向到 HTTPS 的步骤: 0.选择站点,ssl设置,勾选“要求sll”,下边忽略。 打开 IIS 管理器。 选择您要配置的网站。 在 “功能视图” 中,双击 “错误页”。 在 “错误…

(8)ERC20详细介绍

ERC20 是以太坊上的一种代币标准(同质化代币),由 Fabian Vogelsteller 在 2015 年提出。它定义了一组通用的接口和规则,使得开发者可以创建可互操作的代币。ERC20 代币在以太坊生态系统中非常流行,广泛应用于各种去中心…

STM32三导联蓝牙心电监护仪设计,C#上位机显示波形 附源码与电路和论文

资料下载地址:STM32三导联蓝牙心电监护仪设计,C#上位机显示波形 附源码与电路和论文 目录 摘要 1. 引言 2. 系统方案 3. 系统硬件设计 3.1 系统原理框图设计 3.2 系统主要元器件介绍 3.2.1 STM32F103VET6主控芯片 3.2.2 AD8232模拟前…

宇泰串口卡驱动在Ubuntu22.04编译、安装汇总

从官网下载驱动官网地址 上传到Ubuntu, 目录结构如下: 驱动源代码: 驱动代码是基于开源项目编译来的 编译路径不能有中文路径,否则可能有类似错误 源码是基于Linux2.3内核编译,我当前是6.8.0-51,数据结构有升级,需要调…

Vue3:当v-if和v-for同时使用时产生的问题和解决办法

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/nbci…

Python Wi-Fi密码测试工具

Python Wi-Fi测试工具 相关资源文件已经打包成EXE文件,可双击直接运行程序,且文章末尾已附上相关源码,以供大家学习交流,博主主页还有更多Python相关程序案例,秉着开源精神的想法,望大家喜欢,点…

网络协议基础--HTTP协议

一.HTTP介绍 HTTP 是基于 TCP/IP 协议栈之上的应用层协议,旨在规定客户端和服务器之间请求和响应的标准格式与交互方式,以实现超文本(包含文本、图片、音频、视频等多种格式的文档)的传输,让用户能够在浏览器中轻松访问…

【混合开发】CefSharp+Vue桌面应用程序开发

为什么选择CefSharpVue做桌面应用程序 CefSharp 基于 Chromium Embedded Framework (CEF) ,它可以将 Chromium 浏览器的功能嵌入到 .NET 应用程序中。通过 CefSharp,开发者可以在桌面应用程序中集成 Web 技术,包括 HTML、JavaScript、CSS 等…