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

推荐订阅源

宝玉的分享
宝玉的分享
J
Java Code Geeks
S
SegmentFault 最新的问题
L
LangChain Blog
M
MIT News - Artificial intelligence
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
MongoDB | Blog
MongoDB | Blog
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
H
Help Net Security
阮一峰的网络日志
阮一峰的网络日志
Jina AI
Jina AI
N
Netflix TechBlog - Medium
A
About on SuperTechFans
博客园 - 叶小钗
美团技术团队
人人都是产品经理
人人都是产品经理
D
DataBreaches.Net

カレーうどん屋

パソコンをアップグレードした 我再也不能不假思索 Soundcore C30i 耳机 日本之行-第二站-奈良 23 年对我影响最大的硬件与软件 旅行与军粮 被我整坏的路由器和服务器 日本之行-第一站-大阪 深圳-香港三日行 My Second Attempt To ARM Servers 修复 UEFI 引导的 GRUB 使用 Docker Compose 部署 Keycloak 20 寻梦穿越机 - 入门浅谈 使用再生龙 Clonezilla 备份操作系统 BETAFPV 高频头固件编译 AttributeError DIY 显示器音箱 迁移 Hexo 渲染环境至 GitHub Actions DELL 灵越 15 5547 拆解与更换硅脂 Virmach Japan
使用 Docker Compose 部署音乐服务器 Navidrome
Kare Udon · 2023-01-31 · via カレーうどん屋

服务介绍

Navidrome 是一款兼容 Subsonic API 的开源音乐服务器软件,它提供了一个不错的 WebUI,也可以将支持 Subsonic API 的客户端接入。

目前项目正处在活跃开发中,各种各样的新功能正在陆续加入。

我的客户端选择

电脑端

自带 WebUI, Sonixd 【跨平台】

iOS

play:sub 【付费软件 4.99$】

部署方式

采用 Docker Compose 部署 Navidrome,使用 Nginx 作为反向代理。

Docker Compose 配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
version: "3"
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
user: 1000:1000 # should be owner of volumes
ports:
- "127.0.0.1:4533:4533"
restart: unless-stopped
environment:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
ND_SEARCHFULLSTRING: true
# Optional: fetch artist images from spotify
ND_SPOTIFY_ID:
ND_SPOTIFY_SECRET:
# Optional: fetch artist information from last.fm
ND_LASTFM_APIKEY:
ND_LASTFM_SECRET:
ND_LASTFM_LANGUAGE: en
volumes:
- "./data:/data" # Navidrome data
- "/APTH-TO/navidrome-music:/music:ro" # Music folder

使用命令 docker compose up -d 启动服务。

Nginx 配置文件

我建议使用 DigitalOcean 的 Nginx 配置生产工具,示例配置如下:

示例配置

也可参考下述配置,此为 DigitalOcean 生成配置的简化版:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name music.example.com;

# SSL
ssl_certificate /etc/letsencrypt/live/music.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/music.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/music.example.com/chain.pem;

# logging
access_log /var/log/nginx/access.log combined buffer=512k flush=1m;
error_log /var/log/nginx/error.log warn;

# reverse proxy
location / {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:4533;
}
}

# subdomains redirect
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name *.music.example.com;

# SSL
ssl_certificate /etc/letsencrypt/live/music.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/music.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/music.example.com/chain.pem;
return 301 https://music.example.com$request_uri;
}

音乐管理

我一直以文件夹分类的方式管理音乐,但 Navidrome 并不支持文件夹分类。它是根据音乐标签来分类的,例如按照歌手、专辑等依据分类歌曲。

因此,若想使用 Navidrome,需要对音乐进行标签管理。

大约两年前,我写了 一篇文章 介绍使用 Music Tag 和 Foobar2000 两款软件来管理音乐。

Music Tag 的标签源是网易云音乐、豆瓣音乐、QQ 音乐等国内音乐平台,说实话,这些平台的音乐标签质量都不是很好,所以我一直在寻找更好的音乐标签源。

直到我发现了 MusicBrainz,这是一个开源的音乐标签数据库,任何人都可以为它贡献标签。在体验之后,我发现 MusicBrainz 的音乐标签质量要比国内音乐平台的标签质量好很多,所以我决定将 MusicBrainz 作为我的音乐标签源。

我使用 Picard 这款软件来从 MusicBrainz 获取音乐标签。

将音乐导入 Picard 后,它会自动从 MusicBrainz 获取音乐标签,然后将标签写入音乐文件,十分方便。

开始使用

不论是使用 Navidrome 自带的 Web 界面,还是使用兼容 Subsonic API 的客户端,只要连接到 Navidrome,便可开始享受你的私人音乐库。