NAS私人音乐库一键部署指南:打造高音质流媒体服务
本文将介绍如何通过一套自部署的媒体管理方案,在您的NAS设备上快速搭建个人专属的音乐与有声书库。该方案注重高保真音质输出、高效的媒体转码能力,并提供了直观易用的前后端操作界面,完美适配个人及家庭私有化部署场景。

方案概述
这是一套集多媒体管理与播放于一体的私有化解决方案。其核心优势在于支持丰富的音频与视频格式,能够进行快速转码,并提供了经过优化的Web端与移动端访问体验,非常适合用于构建个人的流媒体服务中心。

安装部署
推荐使用Docker Compose进行一键化部署。请将以下配置文件保存为 docker-compose.yml。
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
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:
- ./postgres:/var/lib/postgresql/data
redis:
image: redis:7-alpine
restart: unless-stopped
depends_on:
postgres:
condition: service_started
command: ["redis-server", "--appendonly", "yes"]
volumes:
- ./redis:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
backend:
image: msmkls/daoliyu-backend:0.1.7
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_started
environment:
NODE_ENV: production
APP_PORT: 4000
DATABASE_URL: "postgresql://daoliyu:daoliyupassword@postgres:5433/daoliyu?schema=public&connection_limit=25&pool_timeout=10&statement_timeout=60000&idle_in_transaction_session_timeout=60000"
VIDEO_TRANSCODE_CACHE: "/app/storage/transcoded/videos"
VIDEO_THUMBNAIL_CACHE: "/app/storage/thumbnails/videos"
REDIS_URL: "redis://redis:6379/0"
REGISTRATION_OPEN: "true"
LOG_LEVEL: "info"
volumes:
- ./storage:/app/storage
- ./media:/data/media
- ./audiobooks:/data/audiobooks
- ./music_videos:/data/music-videos
- ./playlists:/data/playlists
- ./plugins:/plugins
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:4000/health"]
interval: 30s
timeout: 5s
retries: 5
frontend:
image: msmkls/daoliyu-frontend:0.1.7
restart: unless-stopped
container_name: daoliyu-music-frontend
depends_on:
backend:
condition: service_started
ports:
- "5173:8080"
关键参数说明 以下为配置文件中的核心路径映射说明,更多高级配置请参考官方文档。
./postgres:/var/lib/postgresql/data:用于持久化PostgreSQL数据库的配置与数据。./redis:/data:用于持久化Redis缓存数据。./storage:/app/storage:用于存放后端应用生成的缓存文件,如转码视频和缩略图。./media:/data/media:映射您本地的音乐文件目录,请将歌曲存放于此。./audiobooks:/data/audiobooks:映射您本地的有声书文件目录。./music_videos:/data/music-videos:映射您本地的音乐视频文件目录。./playlists:/data/playlists:用于存放歌单信息。./plugins:/plugins:用于存放自定义插件。
配置完成后,在终端中运行 docker-compose up -d 命令即可启动所有服务。
基础使用
-
访问界面:服务启动后,在浏览器中输入
http://你的NAS的IP地址:5173即可访问管理前端。
-
初始设置:首次进入建议立即修改默认的邮箱和密码,以确保账户安全。

-
管理面板:登录后的主面板设计现代,配色舒适,功能区划分清晰。

音乐库管理
-
导入音乐:将您的音乐文件放入之前映射的
./media目录(对应容器内/data/media)。
-
扫描媒体库:系统通常会定期自动扫描目录。扫描完成后,歌曲便会显示在媒体库中。

- 提示:若音乐未自动出现,您可以在设置中手动触发“扫描媒体库”操作。

- 提示:系统支持添加多个不同的音乐目录,方便您分类管理。
- 提示:若音乐未自动出现,您可以在设置中手动触发“扫描媒体库”操作。
-
播放音乐:在媒体库中点击任意歌曲即可开始播放。

-
播放列表:您可以多选歌曲,并将其添加到当前的播放队列或创建新的歌单。

-
歌词显示:播放界面右下角提供了歌词显示开关,开启后可以同步查看歌词。

-
音频增强:除了基础播放控制,系统还内置了音频均衡器,允许您根据喜好调整音效。

-
分类浏览:媒体库支持按“艺人”或“专辑”进行分类浏览,便于快速查找。

有声书管理
-
导入有声书:将您的有声书文件(建议已整理好元数据)放入映射的
./audiobooks目录。
-
元数据识别:系统能够正确读取文件夹和文件内的元数据信息(如书名、作者、章节标题)。

-
有声书优化:播放界面针对有声书进行了特别适配,会清晰展示总集数、当前进度和总时长。

多端访问
-
移动网页端:该方案的前端界面采用了响应式设计,在不安装App的情况下,直接通过手机浏览器访问也能获得良好的操作体验。

-
原生客户端:官方提供了Android与iOS客户端,可获得更佳的原生体验。客户端下载地址为:cn.amcfy.com。

总结与评价
经过实际部署与体验,该方案最突出的优点在于其美观的界面设计,以及对音乐、有声书统一管理播放的全面支持,辅以官方客户端,构成了完整的私有媒体生态。然而,与一些更成熟的开源音乐应用相比,它在细节上仍有提升空间,例如偶尔会出现切歌卡顿、界面窗口缩放适配不足、部分操作逻辑有待优化等。
- 综合推荐指数:⭐⭐⭐ (在音乐与有声书管理方面功能明确,具备发展潜力)
- 使用体验指数:⭐⭐⭐ (界面美观,多端覆盖是其亮点)
- 部署难易指数:⭐⭐⭐ (涉及多个关联容器,部署过程属常规复杂度)