基于某些执念,总是想把喜欢的,尤其是那些循环的音乐离线下来,总感觉哪天想起一个旋律但却想不起名字,也找不到,所以创建一个音乐库就是成也为执念的实现方式。
很久以前,我使用 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 的客户端,这个按自己喜好找了,有不少
以上
本文是 居家服务器折腾笔记 的一部分
One thought on “私有音乐服务 Navidrome:部署与Nginx 二级目录反代访问”