惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
爱范儿
爱范儿
T
The Exploit Database - CXSecurity.com
量子位
T
Tailwind CSS Blog
T
Threatpost
The GitHub Blog
The GitHub Blog
AWS News Blog
AWS News Blog
云风的 BLOG
云风的 BLOG
K
Kaspersky official blog
P
Proofpoint News Feed
博客园 - 司徒正美
L
LangChain Blog
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
S
Secure Thoughts
The Last Watchdog
The Last Watchdog
Spread Privacy
Spread Privacy
H
Hacker News: Front Page
T
Troy Hunt's Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
W
WeLiveSecurity
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
P
Proofpoint News Feed
T
Tor Project blog
T
The Blog of Author Tim Ferriss
I
Intezer
P
Privacy & Cybersecurity Law Blog
美团技术团队
N
Netflix TechBlog - Medium
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
Google Developers Blog
Attack and Defense Labs
Attack and Defense Labs
T
Tenable Blog
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
J
Java Code Geeks
腾讯CDC
Microsoft Security Blog
Microsoft Security Blog
A
About on SuperTechFans
Last Week in AI
Last Week in AI

yywr – Ed_'s Blog

给 Debian 开了自动安全更新 – yywr's Blog macOS 下 xlr-spaceFN 键盘映射方案实现方案 v1 – yywr's Blog 移动网络/高延迟网络下 ssh 的替代品 – yywr's Blog H3C NX30PRO 半砖救回记 – yywr's Blog OBS摄像头设置教程:画面形状与绿幕功能详解 – yywr's Blog 走出舒适区的第一步:先做个垃圾出来 – yywr's Blog 视频录制和推流直播工具OBS Studio 的使用 – 基础篇 – yywr's Blog [一个酷酷的软件] Readest 电子书阅读器 – yywr's Blog UPower – 将笔记本电池当成UPS使用 – yywr's Blog 简单的私有云数据访问工具 – FileBrowser 部署记要 – yywr's Blog 配置评论邮件通知,沮丧的一天 – yywr's Blog 停止想象 – yywr's Blog 关于冥想的一些想法 – yywr's Blog
私有音乐服务 Navidrome:部署与Nginx 二级目录反代访问 – yywr's Blog
yywr · 2024-10-26 · via yywr – Ed_'s Blog

基于某些执念,总是想把喜欢的,尤其是那些循环的音乐离线下来,总感觉哪天想起一个旋律但却想不起名字,也找不到,所以创建一个音乐库就是成也为执念的实现方式。

很久以前,我使用 foobar2000 ,智能手机兴起后,各种APP都尝试过,后面还用过MDP(Music Player Daemon),现在,我选择了 Navidrome,有基本的功能,很简单。把它部署在我的家庭服务器上,记录一下部署过程。

目标

  • 让Navidrome跑起来
  • 使用Nginx二级目录反向代理进行访问

环境:

  • Debian/12
  • Docker/27.3.1
  • Nginx/1.27.2

准备工作

  • 查看用户 ID,以备用: id www (www换成你准备运行Navidrome和存储音乐的用户)
  • 两个文件夹:音乐数据文件夹、Navidrome 数据文件夹
  • 检查音乐文件夹的权限,如果有必要,进行修改 chown www:www /srv/Music -P
  • 确定用于反代的二级目录名称,比如这里用 /music 

配置Compose 文件并启动Docker

  • 使用二级目录反向代理的时候,需要在 Docker 的启动项中配置二级目录的名称 ND_BASEURL: /music
  • 指定用户 user: 1001:1001
  • 指定挂载文件夹 (参考下面 volumes 部分)
# navidrome
# Music
version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    container_name: "navidrome"
    user: 1001:1001 # should be owner of volumes
    network_mode: host
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      # Optional: put your config options customization here. Examples:
      # This is part of my reverse proxy setup; see below.
      ND_BASEURL: /music
      # Re-scan the music library every 60 minutes.
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
    volumes:
      - "/srv/Music/navidrome:/data"
      - "/srv/Music:/music:ro"

将上面配置保存为 navidrome.yml 并启动:docker compose -f /path/to/composs/navidrome.yml up -d

检查容器 docker ps ,如果容器运行正常,这个时候防火墙开放端口(上面演示的是4533,防火墙可以使用 UFW),就可以通过本地IP+端口进行访问了

反向代理

我希望用 https://域名:端口/music 的方式访问这个应用,面且在外面的时候也能访问,需要配置一个二级目录反向代理

在现有 Nginx 站点配置文件下,添加下面反向代理配置(如果没有站点,那就新建一个,可以使用  LNMP 面板进行管理,参考 「说说 LNMP 面板」)

注意:反向代理的二级目录名称需要和前面 Docker 配置的 ND_BASEURL: /music 保持一至  (即  proxy_pass http://127.0.0.1:4533/music;

## Music
       location ^~ /music {
               proxy_pass http://127.0.0.1:4533/music;
               proxy_set_header Host $host;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header X-Forwarded-Proto $scheme;
               proxy_set_header X-Forwarded-Protocol $scheme;
               proxy_set_header X-Forwarded-Host $http_host;
               proxy_buffering off;
       }

说实话,在搞二级目录反代的时候找了不少资料,大都好像关注点都在把它安装上,但怎么用好却不讲,总是一笔带过,甚至不说,最后是这老哥的文章帮了我,基本靠抄:Setting up Navidrome with Nginx as a reverse proxy

好像各平台都有支持 Navidrome 的客户端,这个按自己喜好找了,有不少

以上

本文是 居家服务器折腾笔记 的一部分