--- 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/