跳到主要内容

Navidrome

阅读量: 101
阅读人次: 102

Navidrome 是一个开源的音乐服务器和流媒体解决方案,类似于 Subsonic,它允许你组织和播放你的音乐收藏,并通过 Web 界面或移动应用访问。

特性

  • 支持 MP3, FLAC, OGG, AAC 等多种音频格式
  • 自动扫描和标记音乐文件
  • 支持用户管理
  • 播放列表和收藏功能
  • 支持多语言界面
  • RESTful API
  • 响应式 Web 界面

Docker 部署

Navidrome 可以通过 Docker 容器轻松部署:

docker run -d \
--name navidrome \
--restart=unless-stopped \
--user 1000:1000 \
-p 4533:4533 \
-e ND_SCANSCHEDULE=1h \
-e ND_LOGLEVEL=info \
-e ND_SESSIONTIMEOUT=24h \
-e ND_BASEURL=/navidrome \
-v /mnt/user/Music:/music \
-v /mnt/user/appdata/navidrome:/data \
deluan/navidrome:latest

参数说明

参数说明
--user 1000:1000使用非 root 用户运行,与 unRaid 用户权限匹配
-p 4533:4533端口映射,4533 是 Navidrome 的默认端口
ND_SCANSCHEDULE音乐库扫描计划,1h 表示每小时扫描一次
ND_LOGLEVEL日志级别,info 表示显示信息级别日志
ND_SESSIONTIMEOUT会话超时时间,24h 表示 24 小时
ND_BASEURL基础 URL,用于反向代理配置
-v /mnt/user/Music:/music音乐目录映射
-v /mnt/user/appdata/navidrome:/data数据目录映射

反向代理配置

如果使用 Nginx 进行反向代理,可以添加以下配置:

location /navidrome/ {
proxy_pass http://192.168.5.3: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;
proxy_set_header X-Forwarded-Proto $scheme;

# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

客户端应用

Navidrome 与 Subsonic 兼容,可以使用以下客户端:

移动端

桌面端

音乐库组织

为了获得最佳体验,建议按以下结构组织音乐文件:

Music/
├── Artist Name/
│ ├── Album Name/
│ │ ├── 01 Song Title.mp3
│ │ ├── 02 Song Title.flac
│ │ └── cover.jpg
│ └── Another Album/
│ ├── 01 Song Title.mp3
│ └── cover.jpg
└── Another Artist/
└── Album Name/
├── 01 Song Title.mp3
└── cover.jpg

高级配置

可以在数据目录下创建 navidrome.toml 文件进行高级配置:

# 基本设置
Address = "0.0.0.0"
Port = 4533
MusicFolder = "/music"
DataFolder = "/data"

# 扫描设置
ScanInterval = "1h"
ScanSchedule = "@every 1h"

# 用户设置
DefaultLanguage = "zh"
EnableTranscodingConfig = true
EnableDownloads = true

# 性能设置
ImageCacheSize = 100
EnableArtworkPrecache = true

# 安全设置
SessionTimeout = "24h"
EnableUserEditing = true

故障排除

音乐文件不被识别

  1. 检查文件格式是否受支持
  2. 确认文件权限正确
  3. 手动触发扫描:在 Web 界面中点击"立即扫描"

播放问题

  1. 检查音频文件是否损坏
  2. 确认网络连接稳定
  3. 尝试不同的音频质量设置

性能优化

  1. 定期清理日志文件
  2. 限制并发用户数
  3. 使用 SSD 存储音乐文件以提高读取速度

与其他服务集成

Navidrome 可以与其他自托管服务集成:

备份策略

建议定期备份 Navidrome 数据:

#!/bin/bash
#description=备份 Navidrome 数据

DATE=$(date +%Y%m%d)
BACKUP_DIR="/mnt/user/Backup/Appdata"
TAR_FILE="$BACKUP_DIR/navidrome-$DATE.tar.gz"

tar -czvf $TAR_FILE /mnt/user/appdata/navidrome
echo "Navidrome backup completed: $TAR_FILE"

可以将此脚本添加到 User Scripts 中定期执行。