70 lines
2.7 KiB
Markdown
70 lines
2.7 KiB
Markdown
---
|
||
title: "用Docker中安装Navidrome"
|
||
type: source
|
||
tags: [docker, music, navidrome, synology, nas]
|
||
date: 2026-04-15
|
||
---
|
||
|
||
## Source File
|
||
- [[raw/Home Office/用Docker中安装Navidrome.md]]
|
||
|
||
## Summary
|
||
- 核心主题:Synology NAS Docker 部署 Navidrome 开源音乐服务器
|
||
- 问题域:自托管音乐流媒体服务搭建,支持多客户端访问和转码
|
||
- 方法/机制:docker-compose 定义服务,指定 UID/GID 用户映射,音乐目录只读挂载,数据目录持久化
|
||
- 结论/价值:获得私有 Spotify 替代品,完全掌控音乐数据和流媒体服务
|
||
|
||
## Key Claims
|
||
- Navidrome 音乐目录以只读(:ro)方式挂载,防止容器误操作损坏原始音乐文件
|
||
- ND_AUTOTRANSCODEDOWNLOAD=true 使 Navidrome 根据客户端能力自动下载合适格式
|
||
- ND_TRANSCODINGCACHESIZE=200MB 限制转码缓存保护 NAS 磁盘空间
|
||
- 容器以非 root 用户(1026:100)运行,符合最小权限原则
|
||
|
||
## Key Quotes
|
||
> "ND_LOGLEVEL=info — 开启详细日志,便于排查流媒体传输问题" — 故障排查配置
|
||
> "ND_ENABLETRANSCODINGCONFIG=true — 启用转码配置界面" — 管理接口配置
|
||
> "user: "1026:100" — 以指定 UID/GID 用户身份运行容器" — 安全加固配置
|
||
|
||
## Key Concepts
|
||
- [[Navidrome]]:开源 Web UI 音乐播放器,支持 Subsonic API,兼容绝大多数音乐客户端
|
||
- [[音乐流媒体服务器]]:将本地音乐库通过 HTTP 流媒体协议提供给多设备客户端
|
||
- [[Transcoding(转码)]]:根据客户端能力动态转换音频格式(如 FLAC → MP3 320kbps)
|
||
- [[只读挂载]]::ro 后缀保护原始数据,容器只能读取不能写入
|
||
- [[Subsonic API]]:开源音乐流媒体协议标准,众多音乐 App 均兼容此协议
|
||
|
||
## Key Entities
|
||
- [[Synology NAS]]:硬件平台(192.168.3.17),Docker 宿主机
|
||
- [[Docker]]:容器化平台,运行 Navidrome 服务
|
||
- [[deluan/navidrome]]:Navidrome 官方 Docker 镜像
|
||
|
||
## Connections
|
||
- [[用Docker中安装Navidrome]] ← hosted_on ← [[Synology NAS]]
|
||
- [[用Docker中安装Navidrome]] ← managed_by ← [[Docker]]
|
||
|
||
## Navidrome Docker Compose 配置
|
||
```yaml
|
||
version: '3.8'
|
||
services:
|
||
navidrome:
|
||
image: deluan/navidrome:latest
|
||
container_name: navidrome
|
||
user: "1026:100"
|
||
restart: unless-stopped
|
||
ports:
|
||
- "4533:4533"
|
||
volumes:
|
||
- /volume1/music:/music:ro"
|
||
- /volume1/docker/navidrome/data:/data
|
||
environment:
|
||
- ND_LOGLEVEL=info
|
||
- ND_ENABLETRANSCODINGCONFIG=true
|
||
- ND_AUTOTRANSCODEDOWNLOAD=true
|
||
- ND_TRANSCODINGCACHESIZE=200MB
|
||
```
|
||
|
||
## Contradictions
|
||
|
||
## Reference
|
||
- Navidrome Doc: https://www.navidrome.org/docs/
|
||
- Navidrome FAQ: https://www.navidrome.org/docs/faq/
|