NAS私藏音乐库新选择:开源项目“道理鱼音乐”一站式部署指南
在NAS上构建个人音乐库的这几年,我始终面临着一个细微却恼人的问题:虽然功能强大的项目层出不穷,但大多由海外开发者主导,其用户界面与交互逻辑,总与国内用户的使用习惯有些隔阂。
因此,当我发现一个由国内开发者维护、界面风格更为现代、且将部署门槛显著降低的音乐管理项目时,确实有种眼前一亮的感觉。
本期要向大家详细介绍的,正是这款名为「道理鱼音乐」的应用。它支持Docker一键部署,同时提供了ARM架构的镜像,对NAS设备极其友好。在数据库支持上,它既提供了轻量化的快速启动方案,也能无缝对接更稳定的常规数据库,兼顾了便捷与扩展性。

项目概览:不止于音乐的现代媒体库
道理鱼音乐是一款专为自建媒体库场景设计的音乐播放与管理系统,整体气质偏向现代简约。其页面信息密度控制得当,浏览体验舒适,各项功能入口的布局也更贴近我们日常使用的各类主流Web应用,无需花费大量时间去学习和适应。值得一提的是,它管理的不仅是音乐文件,还涵盖了视频与有声书资源,更像是一个统一的家庭媒体库入口。

在部署方式上,它对NAS用户展现了极高的亲和力。你可以直接通过Docker容器快速运行,并且官方提供了ARM架构版本,这意味着像群晖(Synology)、威联通(QNAP)以及各种基于ARM的软路由或小型主机都能轻松兼容。数据存储层面,项目设计了灵活的分层策略:如果你只是个人聆听,音乐库规模不大,希望快速搭建使用,可以选择轻量级数据库方案;若你计划长期使用、拥有多台设备、存在更高并发访问需求,或希望未来迁移更稳定,则可以切换到PostgreSQL等常规数据库方案,为后续的扩展预留充足空间。
核心功能亮点
- 高音质音频支持:核心支持多声道及高码率音频的自动兼容,在确保音质无损的前提下实现快速播放启动。
- 智能流媒体转码:针对DTS、DSD、APE、WMA等设备兼容性较差的高码率格式,系统能够在播放时自动进行实时转码,生成兼容性更佳的音频流,实现边播边转,流畅不卡顿。
- 高效封面管理与加载:自动同步音乐封面,并智能生成100px、300px、600px三档不同分辨率的缩略图。在列表浏览时,系统会按需加载合适尺寸的图片,显著提升页面加载速度与浏览体验。
- 统一多媒体库管理:将音乐、视频、有声书等多种媒体资源置于同一平台进行管理,并自动解析元数据与封面信息,实现一站式管理。
- 轻量灵活的部署选项:提供基于PostgreSQL和SQLite的双版本Docker镜像。其中SQLite版本内置了轻量化的Redis模式,真正做到开箱即用,部署简单快捷。
- 完善的移动端支持:提供了便捷的移动端应用获取入口,让你能够随时随地访问自己的音乐库并享受播放。
详细部署流程(以威联通NAS为例)
本文将以威联通(QNAP)NAS为例,演示通过Docker Compose部署“道理鱼音乐”的完整步骤。考虑到音乐库属于长期积累型应用,随着时间推移会产生大量元数据和播放数据,为了更好的长期稳定性和性能,这里选择部署功能更完备的PostgreSQL版本。
请将以下Compose配置代码用于创建应用程序:
services:
postgres:
image: postgres:16-alpine
container_name: daoliyu-postgres
restart: always
environment:
- POSTGRES_DB=daoliyu
- POSTGRES_USER=daoliyu
- POSTGRES_PASSWORD=daoliyupassword
- PGDATA=/var/lib/postgresql/data/pgdata
command:
- "postgres"
- "-c"
- "max_connections=200"
- "-c"
- "shared_buffers=256MB"
- "-c"
- "work_mem=32MB"
- "-c"
- "maintenance_work_mem=256MB"
- "-c"
- "checkpoint_completion_target=0.9"
- "-c"
- "wal_buffers=16MB"
- "-c"
- "port=5433"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U daoliyu -d daoliyu -p 5433"]
interval: 10s
timeout: 5s
retries: 6
start_period: 30s
# ports:
# - "5433:5433" # 数据库容器一般无需映射端口到宿主机
volumes:
- /share/Container/daoliyu/data:/var/lib/postgresql/data
backend:
image: msmkls/daoliyu-music:latest
container_name: daoliyu-music
restart: always
depends_on:
postgres:
condition: service_healthy
environment:
- NODE_ENV=production
- DB_PROVIDER=pg
- LOG_LEVEL=${LOG_LEVEL:-info}
- DEBUG=${DEBUG:-true}
# - STREAMING_TRANSCODE_ENABLED=true
# - VIDEO_HWACCEL=vaapi
# - VIDEO_HWACCEL_DEVICE=/dev/dri/renderD128
# - LIBVA_DRIVER_NAME=iHD
# devices:
# - /dev/dri:/dev/dri # 如需硬件加速解码视频,可取消注释
ports:
- "5173:4000" # 冒号左侧的5173为宿主机访问端口,可按需修改
volumes:
- /share/Container/daoliyu/backend-storage:/app/storage
- /share/media/music:/data/media # 映射你的音乐目录
- /share/media/有声书:/data/audiobooks # 映射你的有声书目录
- /share/media/music-videos:/data/music-videos # 映射音乐视频目录
- /share/Container/daoliyu/playlists:/data/playlists # 歌单目录
- /share/Container/daoliyu/plugins:/plugins # 插件目录
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:4000/health"]
interval: 30s
timeout: 5s
retries: 5
路径映射说明:如果你有多个独立的音乐或有声书目录需要添加,可以参照以下格式在volumes部分增加映射(请注意容器内的路径名需不同):
- /你的媒体库目录1:/data/media1
- /你的媒体库目录2:/data/audiobooks1
打开威联通NAS上的Container Station,选择“创建应用程序”,将上述代码粘贴到编辑区。

为了满足不同用户的需求,这里也补充一份基于SQLite的轻量化部署配置,适合资源有限或希望快速尝鲜的用户:
services:
backend:
image: msmkls/daoliyu-music:0.2.2
container_name: daoliyu-music-sqlite
restart: always
environment:
- NODE_ENV=production
- DB_PROVIDER=sqlite
- PRISMA_SCHEMA=${PRISMA_SCHEMA-prisma/schema.sqlite.prisma}
- LOG_LEVEL=${LOG_LEVEL:-info}
- DEBUG=${DEBUG:-true}
ports:
- "5173:4000"
volumes:
- /share/Container/daoliyu/backend-storage:/app/storage
- /share/Container/daoliyu/backend-data:/app/backend-data # SQLite数据库文件,必须持久化
- /share/media/music:/data/media
- /share/media/有声书:/data/audiobooks
- /share/media/music-videos:/data/music-videos
- /share/Container/daoliyu/playlists:/data/playlists
- /share/Container/daoliyu/plugins:/plugins
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:4000/health"]
interval: 30s
timeout: 5s
retries: 5
初始配置与使用体验
部署完成后,在浏览器中输入你的NAS_IP:5173(端口号取决于你之前的映射设置)即可访问“道理鱼音乐”的Web界面。首次进入需要注册一个账户,按照提示操作即可,通常无需验证真实邮箱,格式正确即可完成注册。

这是我已运行一段时间的实例,当有新版发布时,界面会贴心地提示更新。

点击页面右上角的用户头像,在下拉菜单中选择「多媒体库」,即可进入库配置页面。在这里,你需要确保之前Docker Compose中映射的媒体文件夹路径已被正确添加。别忘了将你的实际音乐、视频等资源文件放入对应的NAS文件夹中。

添加库路径后,点击「全量扫描」按钮,系统将开始索引你媒体文件夹中的所有文件,并自动抓取元数据和封面。

扫描完成后,你的个人音乐库就基本准备就绪了,可以开始畅享音乐。

其界面设计简洁直观,专辑、艺人、播放列表等分类清晰,播放控制台的功能也很齐全,整体使用感受相当不错。


关于移动端的使用,项目通常提供PWA(渐进式Web应用)支持或专用的应用下载方式。你可以在Web界面中查找相关提示,通过手机浏览器访问服务器地址,并按照指引将应用“安装”到手机桌面,实现类似原生应用的体验。

结语
“道理鱼音乐”以其现代的风格、较低的上手门槛和对中文环境的天然友好,为NAS用户在音乐库自建方案上提供了一个值得尝试的新选择。它较好地平衡了功能、美观与易用性。
如果项目未来能推出专用的桌面客户端(PC端),相信会吸引更多追求全方位体验的用户。希望这份详细的部署与介绍指南,能帮助你成功搭建属于自己的高品质音乐流媒体服务器。