道理鱼音乐管理平台
自建 NAS 音乐管理与播放系统,提供媒体扫描、元数据补全、**、收藏与队列管理、自动转码等能力,可通过 Docker 或本地环境快速部署。

Docker compose部署模板
内置数据库(不使用第三方数据库)
services:
daoliyu-music:
image: msmkls/daoliyu-music:latest
container_name: daoliyu-music
restart: unless-stopped
ports:
- "4000:4000"
environment:
DLY_DB_DRIVER: "sqlite"
DLY_LO**IRROR_CONSOLE: "true"
TZ: "${TZ:-Asia/Shanghai}"
volumes:
- /etc/machine-id:/host/etc/machine-id:ro
- ./runtime-prod/data:/app/runtime/data
- ./runtime-prod/library:/app/runtime/library
- ./runtime-prod/cache/transcoding:/app/runtime/cache/transcoding
# Linux / NAS 如需本机声卡点唱机输出,可按需保留;不需要可删除下面三行。
devices:
- /dev/snd:/dev/snd
group_add:
- audio
MySQL(数据库仅供参考,为了安全数据库账号密码建议自己设置)
services:
mysql:
image: mysql:8.4
container_name: daoliyu-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: "ChangeMe_RootStrongPassword"
MYSQL_DATABASE: "daoliyu"
MYSQL_USER: "daoliyu_app"
MYSQL_PASSWORD: "ChangeMe_UseStrongPassword"
TZ: "${TZ:-Asia/Shanghai}"
command:
- "--character-set-server=utf8mb4"
- "--collation-server=utf8mb4_0900_ai_ci"
- "--max-connections=200"
- "--innodb-buffer-pool-size=256M"
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 --silent"]
interval: 10s
timeout: 5s
retries: 60
start_period: 120s
ports:
- "${MYSQL_PORT:-3306}:3306"
volumes:
- ./runtime-prod/mysql:/var/lib/mysql
# 上面只是为了快速部署的数据库模板,可以直接使用,已有mysql数据库结合使用即可,下面的参数有改成自己的参数
daoliyu-music:
image: msmkls/daoliyu-music:latest
container_name: daoliyu-music
restart: unless-stopped
depends_on:
mysql:
condition: service_healthy
ports:
- "4000:4000"
environment:
DLY_DB_DRIVER: "mysql"
#(推荐修改成自己的数据库账号密码)如果使用自定义账号密码在下面这一行,需要和上面的mysql一样(最简单的办法丢给ai让他给你改好自己数据库的用户名和密码)。
DLY_DB_DSN: "daoliyu_app:ChangeMe_UseStrongPassword@tcp(mysql:3306)/daoliyu?charset=utf8mb4&parseTime=true&loc=Local"
DLY_LO**IRROR_CONSOLE: "true"
TZ: "${TZ:-Asia/Shanghai}"
volumes:
- ./runtime-prod/data:/app/runtime/data
- ./runtime-prod/library:/app/runtime/library
- ./runtime-prod/cache/transcoding:/app/runtime/cache/transcoding
- /etc/machine-id:/host/etc/machine-id:ro
#下面映射示例,内外一致,方便查找
#- /vol3/1000/Music:/vol3/1000/Music
# Linux / NAS 如需不需要或提示audio相关的报错,可以删除下面的内容,属于点唱机相关的参数,需要有声卡:
devices:
- /dev/snd:/dev/snd
group_add:
- audio
Postgres (数据库仅供参考,为了安全数据库账号密码建议自己设置)
services:
postgres:
image: postgres:16-alpine
container_name: daoliyu-postgres
restart: unless-stopped
environment:
POSTGRES_DB: "daoliyu"
POSTGRES_USER: "daoliyu"
POSTGRES_PASSWORD: "daoliyupassword"
POSTGRES_PORT: "5433"
PGDATA: "/var/lib/postgresql/data/pgdata"
TZ: "${TZ:-Asia/Shanghai}"
command: ["postgres", "-c", "port=5433"]
healthcheck:
test: ["CMD-SHELL", "pg_isready -U \"$${POSTGRES_USER}\" -d \"$${POSTGRES_DB}\" -p \"$${POSTGRES_PORT}\""]
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
ports:
- "${POSTGRES_PORT:-5433}:5433"
volumes:
- ./runtime-prod/postgres:/var/lib/postgresql/data
# 上面只是为了快速部署的数据库模板,可以直接使用,已有pg数据库结合使用即可,下面的参数有改成自己的参数
daoliyu-music:
image: msmkls/daoliyu-music:latest
container_name: daoliyu-music
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
ports:
- "4000:4000"
environment:
DLY_DB_DRIVER: "postgres"
#(推荐修改成自己的数据库账号密码)如果使用自定义账号密码在下面这一行,需要和上面的pg数据库一样(最简单的办法丢给ai让他给你改好自己数据库的用户名和密码)。
DLY_DB_DSN: "postgres://daoliyu:daoliyupassword@postgres:5433/daoliyu?sslmode=disable"
DLY_LO**IRROR_CONSOLE: "true"
TZ: "${TZ:-Asia/Shanghai}"
volumes:
- ./runtime-prod/data:/app/runtime/data
- ./runtime-prod/library:/app/runtime/library
- ./runtime-prod/cache/transcoding:/app/runtime/cache/transcoding
- /etc/machine-id:/host/etc/machine-id:ro
#下面映射示例,内外一致,方便查找
#- /vol3/1000/Music:/vol3/1000/Music
# Linux / NAS 如需不需要或提示audio相关的报错,可以删除下面的内容,属于点唱机相关的参数,需要有声卡:
devices:
- /dev/snd:/dev/snd
group_add:
- audio
感谢
最后感谢XIAOBO、友人、玉尺书生、谢lalala
和 大家的支持,以及几位打赏的网友,感谢支持!