手把手教你用Docker Compose在NAS上部署道理鱼音乐Daoliyu,管理音乐、有声书和MV。详解配置步骤、功能体验与移动端播放,搭建专属音乐流媒体服务器。

daoliyu:
在追求个性化与数据自主权的今天,搭建一个专属的私人音乐库,摆脱商业流媒体的算法束缚,成为了许多音乐爱好者的新选择。本文将为您详细介绍一款新兴的高颜值自托管音乐服务器——“道理鱼音乐”(Daoliyu),并手把手教您如何利用NAS和Docker Compose技术,轻松构建属于自己的全能多媒体娱乐中心。

安装
docker compose安装
暂时停用latest推送
找到飞牛内的docker - docker compose - 新建项目 - 创建docker-compose.yml(将目录设置好)
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:
- ./docker-data/postgres:/var/lib/postgresql/data
backend:
image: msmkls/daoliyu-music:0.2.2
build:
context: .
dockerfile: Dockerfile.app
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
networks:
default:
aliases:
- backend
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:4000/health"]
interval: 30s
timeout: 5s
retries: 5
sqlite轻量版 (N系列cpu性能低可以尝试该版本)
services:
backend:
image: msmkls/daoliyu-music:0.2.2
build:
context: .
dockerfile: Dockerfile.app
args:
PRISMA_SCHEMA: "${PRISMA_SCHEMA-prisma/schema.sqlite.prisma}"
container_name: daoliyu-music-sqlite
restart: unless-stopped
depends_on: {}
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:
- ./backend-storage:/app/storage
- ./backend-data:/app/backend-data
- ./media:/data/media
- ./audiobooks:/data/audiobooks
- ./music-videos:/data/music-videos
- ./playlists:/data/playlists
- ./plugins:/plugins
networks:
default:
aliases:
- backend
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:4000/health"]
interval: 30s
timeout: 5s
retries: 5
参数说明(更多参数建议去看文档)
:::
/var/lib/postgresql/data(路径):postgresql 配置数据
/data(路径):redis 配置数据
/app/storage(路径):后端配置数据
/data/media(路径):音乐目录
/data/audiobooks(路径):有声书
/data/music-videos(路径):音乐视频
/data/playlists(路径):歌单
/plugins(路径):插件
:::
使用
浏览器中输入 http://NAS的IP:5173 就能看到界面

建议修改一下邮箱和密码,避免忘记

进入面板,排版配色还挺不错的

TIP:在 /data/media 目录放入歌曲

正常情况会自动扫描目录的歌曲,显示在面板

如果没有刷新出来,也可以手动扫描目录

TIP:也可以添加多个音乐目录

回到面板,点击音乐就可以播放了

点击多首音乐,可以加入播放歌单列表

右下角可以打开歌词显示

除了常规的播放功能,还支持音频均衡器

根据艺人分类

根据专辑分类

TIP:在 /data/audiobooks 目录放入有声书

可以正确读取到文件夹里的元数据(已经刮削过的)

有针对有声书做了适配,比如一共多少集和播放总时长

不想下载 APP 的,移动网页端访问也是可以的

客户端支持 Android 和 iOS ,下载地址:cn.amcfy.com

总结
体验使用下来,最大的感受就是界面设计好看,其次是支持音乐、有声书管理播放,提供客户端应用。不过即使与成熟开源音乐应用相比,还是存在不小的差距,比如:切歌有时候会操作卡顿、窗口缩放适配不足、操作逻辑待优化等问题。
总而言之,道理鱼音乐(Daoliyu)以其出色的视觉设计和同时管理音乐与有声书的实用功能,在开源自托管音乐解决方案中占据了独特的一席之地。它降低了拥有私人音乐服务器的门槛,带来了耳目一新的使用体验。当然,作为一款处于发展中的项目,它在性能优化和交互细节上仍有成长空间。但对于乐于尝试、希望完全掌控自己数字音乐生活的朋友来说,它无疑是一个充满潜力的起点。不妨跟随本教程部署体验,探索打造个人音乐世界的乐趣。
综合推荐:⭐⭐⭐(支持音乐、有声书管理,未来可期)
使用体验:⭐⭐⭐(界面挺好看的,提供客户端应用)
部署难易:⭐⭐⭐(一般,关联容器多)︎
︎
觉得内容不错?我要






