Docker 部署 Navidrome 服务器与远程访问听歌的教程

Navidrome 是一个轻量级、功能强大的音乐流媒体服务器,可以通过 Docker 容器方便地部署。本教程涵盖从本地部署到远程访问的详细步骤。

一、环境准备

1. 安装 Docker 和 Docker Compose

在服务器(或本地机器)上安装 Docker 和 Docker Compose。

安装 Docker

Ubuntu 示例:

sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker

CentOS 示例:

sudo yum update
sudo yum install -y docker
sudo systemctl enable --now docker

验证 Docker 是否安装成功:

docker --version

安装 Docker Compose





sudo curl -L "https://github.com/docker/compose/releases/download/2.20.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. 确保有音乐文件准备

将你的音乐文件整理好,可以保存在一个目录下,比如 /home/user/Music


二、本地部署 Navidrome

1. 创建 Navidrome 配置和音乐存储目录

mkdir -p ~/navidrome/config ~/navidrome/music

将你的音乐文件复制到 ~/navidrome/music 中:

cp -r /path/to/your/music/* ~/navidrome/music/

2. 创建 Docker Compose 文件

~/navidrome 目录下创建 docker-compose.yml

version: "3.8"

services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: navidrome
    restart: unless-stopped
    ports:
      - "4533:4533" # Navidrome 默认端口
    volumes:
      - ./config:/data
      - ./music:/music
    environment:
      ND_LOGLEVEL: info
      ND_SCANNINGINTERVAL: "1h" # 自动扫描音乐文件的间隔
      ND_SESSIONTIMEOUT: "24h" # 登录会话超时时间

3. 启动 Navidrome

~/navidrome 目录下运行:

docker-compose up -d

验证服务是否启动:

docker ps

访问本地服务:

  • 打开浏览器并输入 http://localhost:4533(或 http://<你的IP>:4533)。
  • 初次访问会提示创建管理员账户。

三、配置远程访问

1. 开启端口转发

确保服务器或路由器上开放 4533 端口。

检查端口是否已开放:

sudo ufw allow 4533
sudo ufw reload

验证端口状态:

sudo netstat -tuln | grep 4533

2. 配置反向代理(推荐 Nginx)

反向代理可以通过域名访问 Navidrome,同时启用 HTTPS 提升安全性。

安装 Nginx

Ubuntu 示例:

sudo apt update
sudo apt install -y nginx

配置 Nginx

创建配置文件 /etc/nginx/sites-available/navidrome

nginx复制代码
server {
    listen 80;
    server_name yourdomain.com; # 替换为你的域名或 IP

    location / {
        proxy_pass http://localhost:4533;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

启用配置并重启 Nginx:

sudo ln -s /etc/nginx/sites-available/navidrome /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

启用 HTTPS(Let’s Encrypt)

使用 Certbot 为域名启用 HTTPS:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com

3. 配置动态域名(如没有固定 IP)

如果你没有固定的公网 IP,可以使用动态域名服务(如 No-IP 或 Cloudflare)设置 DDNS。

四、优化与管理

1. 自动更新音乐库

Navidrome 会根据 ND_SCANNINGINTERVAL 配置自动扫描新增的音乐文件。如果需要手动触发:

docker exec -it navidrome navidrome --scan

2. 查看日志

调试或排查问题:

docker logs -f navidrome

3. 更新 Navidrome

定期更新 Docker 镜像:

docker-compose pull
docker-compose up -d

4. 管理用户

通过 Web 界面可以管理用户和播放列表。

五、远程访问听歌

  1. 通过浏览器访问 http://yourdomain.comhttps://yourdomain.com
  2. 在移动设备上安装支持 Subsonic 协议的播放器(如 DSubUltrasonic)。
    • 服务器地址:你的域名(如 https://yourdomain.com)。
    • 用户名和密码:在 Navidrome Web 界面创建的账号。

六、总结

通过 Docker 部署 Navidrome 并结合反向代理和 HTTPS 配置,可以快速搭建安全、高效的音乐流媒体服务器。关键步骤包括:

  1. 本地部署 Navidrome。
  2. 开放端口或设置反向代理实现远程访问。
  3. 启用 HTTPS 提升安全性。

如有任何问题或特殊需求,欢迎进一步咨询!

发布者:myrgd,转载请注明出处:https://www.object-c.cn/4419

Like (0)
Previous 2024年11月22日 下午5:58
Next 2024年11月22日 下午7:33

相关推荐

  • 在 CANoe 的 Test Module 中进行压力测试和鲁棒性测试

    在 CANoe 的 Test Module 中进行压力测试和鲁棒性测试,可以通过以下步骤快速构建并执行相关测试: 1. 定义测试目标 首先明确测试的具体内容,例如: 具体的目标可以包括: 2. 配置 CANoe 环境 确保 CANoe 配置已准备好,包含: 3. 创建压力测试脚本 在 Test Module 中使用 CAPL 或 Test Case Edit…

    2024年12月5日
    00
  • 使用 Python 和 PyHive 连接 Hive 数据库需要安装相关依赖并配置好 Hive 服务

    使用 Python 和 PyHive 连接 Hive 数据库需要安装相关依赖并配置好 Hive 服务。以下是具体步骤:1. 安装依赖确保安装了以下库:PyHive:提供与 Hive 的交互。Thrift:支持 Hive 使用 Thrift 协议通信。Sasl:如果 Hive 使用 Kerberos 验证,需要安装此模块。Pyhive[Hive]:PyHive…

    2024年11月28日
    00
  • 在 Apache Kafka 中消息的消费和传递通过消费者与 Kafka 的分布式系统协作完成

    在 Apache Kafka 中,消息的消费和传递是通过消费者(Consumer)与 Kafka 的分布式系统协作完成的。以下是消息传递的主要流程: 1. Producer 生产消息到 Kafka 2. Consumer 消费消息 Kafka 中消费者的消息消费流程如下: 2.1 订阅主题 消费者通过 Kafka 客户端订阅一个或多个主题。它可以: 2.2 …

    2024年12月9日
    00
  • 浏览器跨域请求中携带 Cookie需要同时在前端和后端进行配置

    浏览器跨域请求中,要让请求携带 Cookie,需要同时在前端和后端进行配置。以下是实现的方法: 前端配置 在前端代码中使用 fetch 或 Axios 发起请求时,需要设置 credentials 属性: 1. Fetch 示例 2. Axios 示例 后端配置 在后端需要允许跨域请求,并确保 Cookie 能够正常传递。 1. 设置 Access-Cont…

    2024年12月9日
    00
  • 在 Linux 系统上配置 Hadoop 环境,包括创建 hadoop 用户、更新 apt、安装 SSH 和配置 Java 环境

    以下是详细的步骤,用于在 Linux 系统上配置 Hadoop 环境,包括创建 hadoop 用户、更新 apt、安装 SSH 和配置 Java 环境。 1. 创建 Hadoop 用户创建一个名为 hadoop 的新用户: 根据提示设置密码和用户信息。 将 hadoop 用户添加到 sudo 组(可选): 切换到 hadoop 用户: 2. 更新 APT 包…

    2024年12月1日
    00
  • 修复 Elementor 网站上出现的 HTTPS 400 错误请求(服务器错误)

    在修复 Elementor 网站上出现的 HTTPS 400 错误请求(服务器错误)时,您需要采取以下步骤来排查和解决问题。这类错误通常与服务器配置、插件冲突或 HTTPS 配置相关。 1. 检查 HTTPS 配置 2. 排查插件冲突 3. 检查主题兼容性 4. 调整服务器配置 URL 重写规则: 5. 清理缓存 6. 检查网络请求 7. 联系主机服务商 如…

    2024年12月9日
    00
  • 在 Kubernetes 中,解决kubelet下载docker私有仓库验证问题

    在 Kubernetes 中,kubelet 默认需要访问容器镜像时,能够成功从 Docker 私有仓库拉取镜像。遇到验证问题时,通常需要解决 镜像仓库认证 和 TLS 证书配置 问题。以下是具体步骤: 1. 配置私有镜像仓库认证如果私有镜像仓库需要身份验证,需要配置 imagePullSecrets 或在每个节点设置全局 Docker 登录。方法 1:使用…

    2024年12月2日
    00
  • 在工业场景中使用 Apache Flink 处理 Kafka 数据是一种常见的实时流处理方案

    在工业场景中使用 Apache Flink 处理 Kafka 数据是一种常见的实时流处理方案,特别是针对 ChangeRecord 数据类型时,能够帮助实现高效的实时 ETL(提取、转换、加载)或事件驱动的应用。以下是关于如何用 Flink 处理 Kafka 数据,并重点解析 ChangeRecord2 的详细步骤和注意事项。 1. ChangeRecord…

    2024年12月5日
    00
  • 在进行 Java 单元测试时,遇到找不到类名的错误

    在进行 Java 单元测试时,遇到找不到类名的错误,通常是由于以下几个原因引起的。下面是一些常见问题及其解决方法:1. 类路径(Classpath)问题最常见的原因是编译后的类文件没有正确地包含在类路径中,或者类文件没有被正确加载到测试框架中。要解决这个问题,确保以下几点:解决方法:确认类是否存在:首先确保测试类和目标类都已经编译,并且在正确的目录中。检查 …

    2024年11月28日
    00
  • STM32 的串口(RS485)数据收发通信模式

    STM32 的串口(RS485)数据收发需要使用 RS485 协议,这是一种常用于工业设备和长距离通信的串行通讯标准。RS485 支持半双工通信,即数据可以在同一线路上进行收发。STM32 支持通过 UART 串口来配置 RS485 模式,利用硬件流控制进行数据收发。以下是实现 STM32 与 RS485 数据收发的基本步骤。 1. 硬件连接 RS485 与…

    2024年11月25日
    00
  • 使用 Redis 和 Spring Cache 实现基于注解的缓存功能

    Spring Cache 提供了一种简单的方法来通过注解对方法的返回结果进行缓存。结合 Redis,可以构建一个高效的分布式缓存解决方案。以下是详细实现步骤: 1. 引入必要的依赖在 pom.xml 文件中添加以下依赖(适用于 Spring Boot 项目): 2. 配置 Redis在 application.yml 或 application.proper…

    2024年12月1日
    00
  • 部署 Harbor 时,如果运行 install 脚本报错可能导致问题的

    在部署 Harbor 时,如果运行 install 脚本报错,可能是网络问题导致的。以下是排查网络问题的方法: 1. 检查网络连通性 测试目标网络的连通性: 检查 DNS 配置: 如果解析失败,检查 /etc/resolv.conf 中的 DNS 配置,或者尝试手动指定公共 DNS,如 Google 的 8.8.8.8 或阿里云的 223.5.5.5。 2.…

    2024年12月9日
    00
  • 本地部署VMware ESXi服务并实现实现无公网IP远程访问服务器

    要在本地部署 VMware ESXi 服务,并实现无公网 IP 的情况下远程访问和管理 ESXi 服务器,您可以通过以下几种方法来完成。这些方法包括使用 VPN、反向代理、NAT(端口转发)等方式。下面是具体步骤和建议。 1. 使用 VPN(虚拟私人网络)访问 通过 VPN 将远程客户端与本地网络连接,从而可以通过局域网(LAN)访问 VMware ESXi…

    2024年11月24日
    00
  • 远程访问 VMware ESXi 主机的方法

    远程访问 VMware ESXi 主机可以通过以下几种方式实现。具体方法取决于你的网络环境和目标需求,例如是否有公网 IP,是否需要加密传输等。以下是详细教程: 1. 基于公网 IP 的直接访问 1.1 适用场景 1.2 操作步骤 2. 使用 VPN 隧道访问 2.1 适用场景 2.2 操作步骤 3. 配置跳板机访问 3.1 适用场景 3.2 操作步骤 远程…

    2024年11月24日
    00
  • ubuntu服务器安装cuda11.0、cuDNN入门教程

    在 Ubuntu 服务器上安装 CUDA 11.0 和 cuDNN 的详细教程如下。本教程涵盖了从环境准备到安装和验证的完整流程,适用于初学者。 一、环境准备 1. 系统要求 2. 卸载旧版本(如有) 清理可能存在的旧版本 CUDA 和 NVIDIA 驱动: 二、安装 NVIDIA 驱动 1. 检查 GPU 支持情况 使用 lspci 或 nvidia-sm…

    2024年11月22日
    00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

在线咨询: QQ交谈

邮件:723923060@qq.com

关注微信