1.项目简介
-
- 自建 NAS 音乐管理与播放系统,提供媒体扫描、元数据补全、**、收藏与队列管理、自动转码等能力,可通过 Docker 或本地环境快速部署。
- 这是一个全栈音乐管理系统,包含后端API服务器和React前端应用。
- 媒体扫描:支持多目录配置,自动解析 ID3 元数据、封面、歌词并写入数据库。
- 智能播放:Web 前端提供队列、收藏、下一首/上一首、音量与进度控制,支持令牌式音频流与 HLS。
- 账号系统:区分管理员与普通用户,支持注册开关、资料修改、密码变更与头像上传。
- 收藏体系:曲目、专辑收藏与歌单管理一应俱全,可直接加入播放器队列。
- 实时通知:内置 WebSocket 网关,后续可扩展扫描与播放的实时反馈。
- 转码缓存:集成 FFmpeg 实时转码,支持自动生成指定码率的缓存文件并在后台统计与清理。
- 有声书:有声书按目录入库支持绝大部分已刮削
- 音乐视频:音乐视频入库点播
- 插件与元数据:插件清单自动识别目录内 manifest,元数据提供方支持启用、优先级配置与第三方源扩展。
- 项目体验链接:点我访问 账户名:1394179649@qq.com 密码:12345678

2.功能亮点
- 媒体扫描:支持多目录配置,自动解析 ID3 元数据、封面、歌词并写入数据库。
- 智能播放:Web 前端提供队列、收藏、下一首/上一首、音量与进度控制,支持令牌式音频流与 HLS。
- 账号系统:区分管理员与普通用户,支持注册开关、资料修改、密码变更与头像上传。
- 收藏体系:曲目、专辑收藏与歌单管理一应俱全,可直接加入播放器队列。
- 实时通知:内置 WebSocket 网关,后续可扩展扫描与播放的实时反馈。
- 转码缓存:集成 FFmpeg 实时转码,支持自动生成指定码率的缓存文件并在后台统计与清理。
- 有声书:有声书按目录入库支持绝大部分已刮削
- 音乐视频:音乐视频入库点播
- 插件与元数据:插件清单自动识别目录内 manifest,元数据提供方支持启用、优先级配置与第三方源扩展。
3.安装方式
细心的朋友可能已经发现了飞牛应用商店已经有了 但是这里不建议使用应用商店的进行安装。
细心的朋友可能已经发现了飞牛应用商店已经有了 但是这里不建议使用应用商店的进行安装。
细心的朋友可能已经发现了飞牛应用商店已经有了 但是这里不建议使用应用商店的进行安装。
使用Docker Compose进行安装
在文件管理器中新建一个docker文件夹>在docker文件夹内在新建一个daoliyu的文件夹
打开docker-选择compose-新建项目-项目名称:daoliyu 文件路径选择咱们刚才新建的daoliyu的文件夹-选择创建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/dataredis:
image: redis:7-alpine
container_name: daoliyu-redis
restart: unless-stopped
command: [“redis-server”, “–appendonly”, “yes”]
volumes:
– ./docker-data/redis:/data
healthcheck:
test: [“CMD”, “redis-cli”, “ping”]
interval: 10s
timeout: 5s
retries: 5backend:
image: msmkls/daoliyu-backend:0.1.9
build:
context: ./backend
dockerfile: Dockerfile
container_name: daoliyu-backend
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_started
environment:
NODE_ENV: production
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”
APP_PORT: 4000
ADMIN_DISPLAY_NAME: “${ADMIN_DISPLAY_NAME}”
ADMIN_EMAIL: “${ADMIN_EMAIL}”
ADMIN_PASSWORD: “${ADMIN_PASSWORD}”
LIBRARY_ROOT: “/data/media”
AUDIOBOOK_LIBRARY_ROOT: “/data/audiobooks”
VIDEO_LIBRARY_ROOT: “/data/music-videos”
VIDEO_TRANSCODE_CACHE: “/app/storage/transcoded/videos”
VIDEO_THUMBNAIL_CACHE: “/app/storage/thumbnails/videos”
PLAYLISTS_IMPORT_ROOT: “/data/playlists”
REGISTRATION_OPEN: “${REGISTRATION_OPEN:-true}”
PLUGINS_DIR: “/plugins”
REDIS_URL: “redis://redis:6379/0”
ACOUSTID_API_KEY: “${ACOUSTID_API_KEY}”
LASTFM_API_KEY: “${LASTFM_API_KEY}”
LASTFM_API_SECRET: “${LASTFM_API_SECRET}”
SPOTIFY_TOKEN: “${SPOTIFY_TOKEN}”
SPOTIFY_CLIENT_ID: “${SPOTIFY_CLIENT_ID}”
SPOTIFY_CLIENT_SECRET: “${SPOTIFY_CLIENT_SECRET}”
LOG_LEVEL: “${LOG_LEVEL:-info}”
DEBUG: “${DEBUG:-true}”
volumes:
– ./backend-storage:/app/storage
– /vol2/1000/Media/Music:/data/media # 音乐目录
– /vol2/1000/Media/Book:/data/audiobooks # 有声书
– /vol2/1000/Media/Video:/data/music-videos # 音乐视频
– ./playlists:/data/playlists # 歌单(首层子目录文件夹名为歌单名)
– ./plugins:/plugins
healthcheck:
test: [“CMD”, “wget”, “-qO-“, “http://localhost:4000/health”]
interval: 30s
timeout: 5s
retries: 5frontend:
image: msmkls/daoliyu-frontend:0.1.9
build:
context: ./frontend
dockerfile: Dockerfile
container_name: daoliyu-frontend
restart: unless-stopped
depends_on:
backend:
condition: service_healthy
ports:
– “5173:8080”
注意重点部分来了 我们要修改一下 第87行的volumes的文件路径 其中
– /vol2/1000/Media/Music:/data/media # 音乐目录
–/vol2/1000/Media/Book:/data/audiobooks # 有声书
– /vol2/1000/Media/Video:/data/music–videos # 音乐视频
– /vol2/1000/Media/Music
– /vol2/1000/Media/Book
– /vol2/1000/Media/Video
要根据自己实际情况进行修改,例如我的音乐文件夹放在了/vol1/1000/Music 那么文件路径我们就要改成 – /vol1/1000/Music:/data/media # 音乐目录. 单击确定,等待程序跑完


创建完毕后访问http://nasip:5173/

跟随指引创建管理员账户-点击右上角头像选择多媒体库-第一次选择全量扫描这样一个颜值爆表的私人音乐库就搭建完成了
手机端可以访问箭头音乐官网下载移动端APP
手机端效果图:


手机端APP下载链接
箭头APP
这样一个颜值爆表的私人音乐库就搭建完成了
评论(0)
暂无评论