标签搜索

目 录CONTENT

文章目录

在VPS或者NAS上使用Docker部署一款音乐管理软件-道理鱼音乐

yyzq
2025-10-16 / 0 评论 / 1 点赞 / 47 阅读 / 1,974 字

前言

在现代的数字化生活中,音乐已经成为我们日常生活的一部分,如何高效地管理和播放音乐也成了不少音乐爱好者关注的问题。道理鱼音乐管理平台,作为一款专为 NAS 用户设计的音乐管理与播放系统,提供了全面的功能支持。从媒体扫描、元数据补全到智能播放、实时通知,它不仅能够帮助你整理和管理大量的音乐文件,还能为你提供流畅的播放体验。

如果你正在寻找一款适合在 VPS 或 NAS 上部署的音乐管理软件,且希望利用 Docker 实现快速部署,那么道理鱼无疑是一个值得考虑的选择。无论你是技术爱好者,还是音乐收藏控,这款软件都能为你提供方便、灵活且高效的管理方式。接下来,我们将通过 Docker 来部署道理鱼音乐管理平台,让你轻松拥有一个属于自己的音乐管理中心。

项目简介

道理鱼音乐管理平台 是一款面向 NAS 用户的音乐管理与播放系统
image-1760596423660

功能特点

  • 🔍 媒体扫描:支持多目录配置,自动解析 ID3 元数据、封面、歌词等信息,并写入数据库,极大提升管理效率。
  • 🎧 智能播放:Web 前端提供队列、收藏、音量和进度控制功能,支持令牌式音频流和 HLS 播放,确保高质量播放体验。
  • 👥 账号系统:拥有管理员与普通用户权限区分,支持开放注册、资料修改、密码更改和头像上传等功能,满足个性化需求。
  • 💖 收藏体系:曲目、专辑和歌单的收藏功能一应俱全,轻松管理并可直接将喜欢的内容加入播放器队列。
  • 📢 实时通知:内置 WebSocket 网关,能够提供实时扫描和播放反馈,提升用户交互体验。
  • 🔄 转码缓存:集成 FFmpeg 实时转码功能,自动生成指定码率的缓存文件,并具备后台统计与清理功能,确保系统高效运行。
  • 🧩 插件与元数据:自动识别插件清单,支持多元数据源的启用与优先级配置,灵活拓展,提升系统兼容性和功能性。

项目图片

首页
image-1760596487450
专辑
image-1760596508834
歌曲库
image-1760596529515
歌曲信息
image-1760596560636
用户管理
image-1760596616512
元数据修正
image-1760596649070

部署方法

使用Docker安装

本教程使用docker的方式安装部署,简单便捷
164b6ac419e23bc5390dc46601a202bf

准备条件

1)一台服务器

我们使用莱卡云VPS和飞牛云NAS来演示

需要vps的可以看以下信息配置可以参考以下资源占用情况
莱卡云官网

本期docker容器占用资源情况如下仅供参考,总体占用内存不足200M
image-1760597437971

2)本项目使用到的项目

本镜像的官方地址
https://hub.docker.com/u/msmkls
更多功能或者二次修改可以访问开源项目地址

3)域名(可选)

域名可以根据自己的需求绑定,建议绑定下域名

① VPS部署

一、Docker环境部署

在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04

推荐直接用一键脚本

docker安装脚本

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

docker-compose安装脚本

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

二、创建docker-compose.yml文件

登录服务器使用root账户执行以下步骤

创建一个目录,并进入此目录

mkdir  daoliyu;cd daoliyu 

然后再新建docker-compose.yml

vim docker-compose.yml
services:
  backend:
    image: msmkls/daoliyu-backend:latest          # 使用的 Docker 镜像
    container_name: daoliyu-backend               # 容器名称
    restart: always                               # 容器总是重启
    environment:
      DATABASE_PROVIDER: "sqlite"                 # 数据库提供者,使用 sqlite
      DATABASE_URL: "file:/app/data/dev.db"       # 数据库文件路径
      APP_PORT: 4000                               # 应用监听端口
      ADMIN_DISPLAY_NAME: "admin"                  # 管理员用户显示名称
      ADMIN_EMAIL: "admin@yyzq.cf"               # 管理员用户邮箱
      ADMIN_PASSWORD: "admin123"                 # 管理员用户密码 (请务必修改为强密码)
      LIBRARY_ROOT: "/data/media"                 # 媒体文件库根路径
      PLAYLISTS_IMPORT_ROOT: "/data/playlists"    # 播放列表导入根路径
      REGISTRATION_OPEN: "true"                   # 是否开放注册
      PLUGINS_DIR: "/plugins"                     # 插件目录
      ACOUSTID_API_KEY: ""                        # AcoustID API 密钥,用于音乐识别
      LASTFM_API_KEY: ""                          # Last.fm API 密钥,用于获取音乐元数据
      LASTFM_API_SECRET: ""                       # Last.fm API 密钥的秘密
      SPOTIFY_TOKEN: ""                           # Spotify Token,用于 Spotify 集成 (如果使用)
      SPOTIFY_CLIENT_ID: ""                       # Spotify 客户端 ID
      SPOTIFY_CLIENT_SECRET: ""                   # Spotify 客户端秘密
      REDIS_URL: "redis://redis:6379/0"           # Redis 数据库连接 URL
      LOG_LEVEL: "debug"                          # 日志级别
      DEBUG: "true"                               # 是否开启调试模式
    volumes:
      - ./backend-data:/app/data                  # 持久化数据库文件
      - ./backend-storage:/app/storage            # 持久化存储文件
      - ./media:/data/media                       # 持久化媒体文件(歌曲放这里)
      - ./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:latest         # 使用的 Docker 镜像
    container_name: daoliyu-frontend              # 容器名称
    restart: always                               # 容器总是重启
    depends_on:
      - backend                                   # 启动顺序:前端依赖后端服务
    ports:
      - "5173:8080"                               # 5173是本地访问端口,8080是容器内端口

  redis:
    image: redis:alpine                        # 使用的 Redis 镜像
    container_name: daoliyu-redis                 # 容器名称
    restart: always                               # 容器总是重启
    command: ["redis-server", "--appendonly", "yes"]  # 启动 Redis 服务,开启 AOF 持久化
    volumes:
      - ./redis_data:/data                        # Redis 数据持久化到当前目录

三、执行容器运行命令

docker-compose up -d #运行容器
docker-compose ps  #查看是否启动成功

正常启动如下所示

docker-compose ps
NAME               IMAGE                            COMMAND                  SERVICE    CREATED          STATUS                    PORTS
daoliyu-backend    msmkls/daoliyu-backend:latest    "/entrypoint.sh"         backend    31 minutes ago   Up 31 minutes (healthy)   4000/tcp
daoliyu-frontend   msmkls/daoliyu-frontend:latest   "/docker-entrypoint.…"   frontend   31 minutes ago   Up 31 minutes             80/tcp, 0.0.0.0:5173->8080/tcp, [::]:5173->8080/tcp
daoliyu-redis      docker.itelyou.cf/redis:alpine   "docker-entrypoint.s…"   redis      31 minutes ago   Up 31 minutes             6379/tcp

四、打开web页面使用

成功以后需要打开自己相应的端口5173)防火墙就可以web端访问了

主界面

http://ip:5173

开箱即用
image-1760597604794
默认管理员用户名和密码见配置文件

扫描后出音乐
image-1760597807323
开始扫描
image-1760597835094
音乐出来了
image-1760597849851
image-1760597885147
其他自行探索

②飞牛云NAS部署

新建项目

daoliyu

复制以上vps上的yaml文件
image-1760597659347
正常启动即可-注意./media替换为自己的音乐路径
image-1760597687790

绑定域名

建议绑定下域名

视频教程

B站

YouTube

绑定域名可以参考
NginxProxyManager
https://duan.yyzq.eu.org//npm-ch

有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我

欢迎关注我们的微信公众号!
微信公众号

1

评论区