目 录CONTENT

文章目录

Docker一键部署道理鱼音乐服务器|群晖NAS搭建自建声破天解决方案

这两年在 NAS 上搭音乐库,我一直有个小痛点:好用的项目不少,但很多是国外作者主导,功能很强没错,UI/交互基本没有对胃口的。
所以当我看到一个由国内开发者维护、界面风格更现代、并且把部署门槛压得很低的音乐管理项目时,那真的是眼前一亮。
本期想介绍的就是 「道理鱼音乐」:支持 Docker 一键部署,也提供 ARM 架构镜像;数据库方面既能走轻量化方案,也能对接常规数据库。
道理鱼音乐网页界面,含推荐歌单、热门排行与播放列表



项目介绍

道理鱼音乐是一套面向自建媒体库场景的音乐播放与管理系统,气质偏现代:页面信息密度控制得比较舒服,功能入口也更接近我们熟悉的主流 Web 应用逻辑,不需要花太多时间去适应。其覆盖的内容不只音乐,也包括视频和有声书,更像一个统一的媒体库入口。
道理鱼音乐网页界面,展示Hawk Nelson等专辑封面及播放列表
在部署形态上,它对 NAS 用户非常友好:可以用 Docker 直接跑起来,并且提供 ARM 架构版本,像群晖、威联通、软路由/小主机这类设备都更容易覆盖。数据层也做了分层思路:如果你只是个人听歌、库不大、想快速落地,可以走轻量化数据库;如果你打算长期使用、设备多、并发访问更多,或者希望更稳定可迁移,也能切到常规数据库方案,后续扩展空间更大。



项目特点

  • 高音质播放:主打多声道/高码率音频自动兼容,在保持音质的同时快速启动
  • 边播边转:针对 DTS/DSD/APE/WMA 等高码率格式,自动转码为兼容流,边播边转不卡顿
  • 封面同步+三档缩略图:封面同步生成 100/300/600 三档缩略图,列表浏览加载更快。
  • 多媒体库统一管理:音乐、视频、有声书统一管理,元数据与封面同步解析
  • 轻量部署:提供 PostgreSQL/SQLite 双版本镜像,内置 Redis 轻量模式,拉起即用。
  • 移动端支持:提供移动端获取入口,随时随地播放。



部署流程

本文以威联通NAS为例,通过Docker Compose的方式进行部署。
因为音乐项目属于长期使用项目,随着周期拉长,会产生大量数据,因此我这里给出的是PostgreSQL 版部署,代码如下:
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" # 冒号左侧可改
    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
如果要自定义多个有声书和音乐目录,分别如下写:
/你的媒体库目录:/data/media1
/你的媒体库目录:/data/audiobooks1
打开威联通的Container Station,创建新的应用程序。
Container Station界面中创建daoliyu应用的Docker Compose配置弹窗
为了以防万一,我还是补充一个轻量化的部署代码吧:
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 # 必须持久化
      - /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:5137即可访问服务。首次进入需要注册账户。同样无需真实邮箱,格式对了即可。
音乐服务器初始化管理员账号创建界面
我这个已经是部署了一段时间,有新版本进入会提示版本更新。
道理鱼音乐0.2.2版本更新提示弹窗界面
点击右上角色头像,点击「多媒体库」,便可对其进行配置。别忘记把资源放进去~
道理鱼音乐后台管理界面,显示系统概览与品牌设置
点击「全量扫描」。
道理鱼音乐管理后台界面,含媒体库扫描与播放列表功能
扫描完毕后,效果如下,可以开始享受了。
道理鱼音乐网页界面,含歌单推荐与播放器
界面都很受用。
道理鱼音乐网页界面展示G.E.M.邓紫棋专辑信息与播放列表
邓紫棋歌曲《唯一》的网页音乐播放界面
关于移动端,见下图。
箭头音乐官网页面,展示兼容多平台的现代化音乐播放器



最后

我倒是挺希望也继续推出个PC端。
感谢观看,本文完。

0

评论区