简介
道理鱼音乐管理平台 是一款面向 NAS 用户的音乐管理与播放系统,支持媒体扫描、元数据补全、收藏与队列管理、自动转码等功能。支持 Docker 快速部署,也可本地运行,适合技术爱好者和音乐收藏控。
特性
- 歌曲列表
- 随机歌曲
- 自定义歌单
- 手动扫描
- 收藏(歌手,歌曲)
- 打分(歌手,歌曲,专辑)
- subsonic API
- 删除歌曲
- 文件夹浏览模式
- 支持多目录配置,自动解析 ID3 元数据、封面、歌词并写入数据库。
安装
使用 Docker 安装
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
redis:
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: 5
backend:
image: msmkls/daoliyu-backend:0.1.8
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
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"
LOG_LEVEL: "${LOG_LEVEL:-info}"
DEBUG: "${DEBUG:-true}"
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
frontend:
image: msmkls/daoliyu-frontend:0.1.8
build:
context: ./frontend
dockerfile: Dockerfile
container_name: daoliyu-frontend
restart: unless-stopped
depends_on:
backend:
condition: service_started
ports:
- "5173:8080"Amcfy Music配置
默认端口 5173

