全栈音乐管理系统:道理鱼音乐

简介

什么是道理鱼音乐?

道理鱼音乐 是一款设计精美、功能强大的自托管音乐管理和播放平台。能帮助用户轻松扫描和管理本地音乐库,通过一个现代化的 Web 界面,随时随地享受自己的音乐收藏。特别适合在 NAS 或个人服务器上搭建属于自己的私人音乐中心。

主要特点

  • 高音质支持:支持多种高码率音频格式(如 DTSDSDAPEWMA 等)以及音乐视频和有声书。
  • 实时转码:能够自动将高码率格式转为兼容的流媒体,保证播放流畅且不卡顿。
  • 封面管理:自动生成多个尺寸的封面缩略图(100/300/600),提升列表加载速度。
  • 多媒体库统一管理:将音乐、视频和有声书集中管理,自动解析元数据与封面。
  • 轻量化部署:提供 PostgreSQLSQLite 的安装模式,易于部署和使用。
  • 移动端支持:用户可通过移动端应用随时随地访问并播放音频内容。
  • 快速上手:登录后自动扫描媒体库,识别格式与封面,提升用户体验。

应用场景

  • 在群晖、飞牛或任何支持 DockerNAS 设备上,搭建个人音乐库。
  • 为家庭成员或小团队提供一个共享的音乐服务。
  • 替代公有云音乐服务,将自己的音乐数据掌握在自己手中。

道理鱼音乐为用户提供了丰富的音乐体验,使其能够便捷地探索和享受全球的音乐资源。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 daoliyu ,选择第四个 msmkls/daoliyu-music,版本选择 latest

本文写作时, latest 版本对应为 0.2.2

官方推荐了 PostgreSQL/SQLite 两种数据库安装方式。老苏觉得,如果你音乐数量不多,而且只是自己用的话,可以考虑采用 SQLite 轻量版部署,无需独立数据库服务。否则建议使用 PostgreSQL 版部署。

下面的 docker-compose.ymlPostgreSQL 数据库为示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
services:
postgres:
image: postgres:16-alpine
container_name: daoliyu-postgres
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:
- ./data:/var/lib/postgresql/data

backend:
image: msmkls/daoliyu-music:latest
container_name: daoliyu-music
restart: unless-stopped
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"
volumes:
- ./backend-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

一些简单的说明:

  1. 关于卷
主机目录 容器目录 描述
./backend-storage /app/storage 后端存储
./media /data/media 音乐目录
./media1 /data/media1 自定义音乐目录
./audiobooks /data/audiobooks 有声书
./audiobooks1 /data/audiobooks1 自定义有声书
./music-videos /data/music-videos 音乐视频
./playlists /data/playlists 歌单目录
./plugins /plugins 插件目录
  1. 硬件加速

如果你的设备支持硬件加速,可以取消下面代码前面的 # 启用加速功能

1
2
# devices:
# - /dev/dri:/dev/dri

然后启用对应的环境变量

配置项 说明
STREAMING_TRANSCODE_ENABLED 开启流媒体转码(默认值为 true),用于实时转码音频/视频。
VIDEO_HWACCEL 视频硬件加速设置(默认为 vaapi),提升视频处理性能。
VIDEO_HWACCEL_DEVICE 指定硬件加速设备的路径(例如 /dev/dri/renderD128),用于检测硬件。
LIBVA_DRIVER_NAME 设置 LIBVA 驱动名称(例如 iHD),与硬件加速兼容。

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 daoliyu 和 子目录
mkdir -p /volume1/docker/daoliyu/{data,backend-storage,media,audiobooks,music-videos,playlists,plugins}

# 进入 daoliyu 目录
cd /volume1/docker/daoliyu

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行与设置

等待容器启动完成后,在您的浏览器中输入 http://群晖IP:5173,首次访问时,系统会引导您注册管理员账户

登录成功后的主界面

将音乐放入 media 目录

右上角 –> 多媒体库 –> 全量扫描

扫描时间取决于您的音乐库大小,扫描完成之后

播放界面

参考文档

道理鱼音乐 · 多媒体播放与管理
地址:https://dlyu.cn/

【首发】道理鱼音乐管理更新上线0.2.2稳定版本 20260117 - 攻略分享 飞牛私有云论坛 fnOS
地址:https://club.fnnas.com/forum.php?mod=viewthread&tid=38427

Home - Amcfy Music Player - NAS Music Player
地址:https://www.amcfy.com/