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

推荐订阅源

爱范儿
爱范儿
博客园_首页
W
WeLiveSecurity
S
Secure Thoughts
S
Security @ Cisco Blogs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Hugging Face - Blog
Hugging Face - Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
H
Hacker News: Front Page
Project Zero
Project Zero
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
U
Unit 42
N
News and Events Feed by Topic
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
Forbes - Security
Forbes - Security
T
Tor Project blog
I
Intezer
B
Blog
F
Full Disclosure
Security Archives - TechRepublic
Security Archives - TechRepublic
F
Fortinet All Blogs
Schneier on Security
Schneier on Security
T
Threat Research - Cisco Blogs
AI
AI
Google DeepMind News
Google DeepMind News
L
LINUX DO - 最新话题
Cloudbric
Cloudbric
L
Lohrmann on Cybersecurity
WordPress大学
WordPress大学
博客园 - 聂微东
雷峰网
雷峰网
P
Privacy International News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
PCI Perspectives
PCI Perspectives
Y
Y Combinator Blog
Spread Privacy
Spread Privacy
Simon Willison's Weblog
Simon Willison's Weblog
罗磊的独立博客
Vercel News
Vercel News
A
Arctic Wolf
The Register - Security
The Register - Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
H
Heimdal Security Blog
Know Your Adversary
Know Your Adversary
P
Proofpoint News Feed
C
Cybersecurity and Infrastructure Security Agency CISA
P
Proofpoint News Feed

Computer – 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 视频录制和推流直播工具OBS Studio 的使用 – 基础篇 – yywr's Blog UPower – 将笔记本电池当成UPS使用 – yywr's Blog 简单的私有云数据访问工具 – FileBrowser 部署记要 – yywr's Blog 又一个 Honkintosh – yywr's Blog Samba 服务基本用法 – yywr's Blog Crontab 使用笔记 – yywr's Blog 终于修了个梯子 – yywr's Blog 防火墙配置工具 UFW – yywr's Blog
私有音乐服务 Navidrome:部署与Nginx 二级目录反代访问 – yywr's Blog
yywr · 2024-10-26 · via Computer – 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 的客户端,这个按自己喜好找了,有不少

以上

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