返回列表 发布新帖

[玩法教程] 道理鱼音乐部署教程

2779 8
发表于 2026-1-13 08:26:48 | 查看全部 阅读模式 IP:–广东–佛山–高明区

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
QQ_1768263416714.png
QQ20260113-081720.png
QQ截图20260113081854.png
道理鱼(daoliyu)是一个 音乐管理与播放系统, 支持媒体库扫描、刮削、在线播放,同时支持有声书与音乐视频的播放。

项目亮点
媒体扫描:支持自动解析ID3元数据、刮削封面歌词等信息。
音乐类型:不仅支持播放音乐,还支持有声书和音乐视频。
转码缓存:集成 FFmpeg 实时转码,支持自动生成指定码率的缓存文件。
账号系统:支持区分管理员账号和普通账号。

注意:
1. 注意端口占用
2. volumes: 一定要映射

3. 下载完启动较慢 耐心等待

  1. services:
  2.   postgres:
  3.     image: postgres:16-alpine
  4.     container_name: daoliyu-postgres
  5.     restart: unless-stopped
  6.     environment:
  7.       POSTGRES_DB: "daoliyu"
  8.       POSTGRES_USER: "daoliyu"
  9.       POSTGRES_PASSWORD: "daoliyupassword"
  10.       PGDATA: "/var/lib/postgresql/data/pgdata"
  11.     command:
  12.       - "postgres"
  13.       - "-c"
  14.       - "max_connections=200"
  15.       - "-c"
  16.       - "shared_buffers=256MB"
  17.       - "-c"
  18.       - "work_mem=32MB"
  19.       - "-c"
  20.       - "maintenance_work_mem=256MB"
  21.       - "-c"
  22.       - "checkpoint_completion_target=0.9"
  23.       - "-c"
  24.       - "wal_buffers=16MB"
  25.       - "-c"
  26.       - "port=5433"
  27.     healthcheck:
  28.       test: ["CMD-SHELL", "pg_isready -U daoliyu -d daoliyu -p 5433"]
  29.       interval: 10s
  30.       timeout: 5s
  31.       retries: 6
  32.       start_period: 30s
  33.     ports:
  34.       - "5454:5433"   # postgres数据库端口,冒号前面请勿本地冲突
  35.     volumes:
  36.       - ./postgres:/var/lib/postgresql/data  # 冒号前面映射postgres子文件夹本地路径

  37.   redis:
  38.     image: redis:7-alpine
  39.     container_name: daoliyu-redis
  40.     restart: unless-stopped
  41.     command: ["redis-server", "--appendonly", "yes"]
  42.     volumes:
  43.       - ./redis:/data   # 冒号前面映射redis子文件夹本地路径
  44.     healthcheck:
  45.       test: ["CMD", "redis-cli", "ping"]
  46.       interval: 10s
  47.       timeout: 5s
  48.       retries: 5

  49.   backend:
  50.     image: msmkls/daoliyu-backend:0.2.0
  51.     build:
  52.       context: ./backend
  53.       dockerfile: Dockerfile
  54.     container_name: daoliyu-backend
  55.     restart: unless-stopped
  56.     depends_on:
  57.       postgres:
  58.         condition: service_healthy
  59.       redis:
  60.         condition: service_started
  61.     environment:
  62.       NODE_ENV: production
  63.       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"
  64.       APP_PORT: 4000
  65.       ADMIN_DISPLAY_NAME: "${ADMIN_DISPLAY_NAME}"
  66.       ADMIN_EMAIL: "${ADMIN_EMAIL}"
  67.       ADMIN_PASSWORD: "${ADMIN_PASSWORD}"
  68.       LIBRARY_ROOT: "/data/media"
  69.       AUDIOBOOK_LIBRARY_ROOT: "/data/audiobooks"
  70.       VIDEO_LIBRARY_ROOT: "/data/music-videos"
  71.       VIDEO_TRANSCODE_CACHE: "/app/storage/transcoded/videos"
  72.       VIDEO_THUMBNAIL_CACHE: "/app/storage/thumbnails/videos"
  73.       PLAYLISTS_IMPORT_ROOT: "/data/playlists"
  74.       REGISTRATION_OPEN: "${REGISTRATION_OPEN:-true}"
  75.       PLUGINS_DIR: "/plugins"
  76.       REDIS_URL: "redis://redis:6379/0"
  77.       ACOUSTID_API_KEY: "${ACOUSTID_API_KEY}"
  78.       LASTFM_API_KEY: "${LASTFM_API_KEY}"
  79.       LASTFM_API_SECRET: "${LASTFM_API_SECRET}"
  80.       SPOTIFY_TOKEN: "${SPOTIFY_TOKEN}"
  81.       SPOTIFY_CLIENT_ID: "${SPOTIFY_CLIENT_ID}"
  82.       SPOTIFY_CLIENT_SECRET: "${SPOTIFY_CLIENT_SECRET}"
  83.       LOG_LEVEL: "${LOG_LEVEL:-info}"
  84.       DEBUG: "${DEBUG:-true}"
  85.     volumes:
  86.       - ./backend-storage:/app/storage   # 冒号前面映射storage子文件夹本地路径
  87.       - /volume2/Music/歌曲:/data/media   # 冒号前面映射本地歌曲目录
  88.       - /volume2/Music/有声小说:/data/audiobooks   # 冒号前面映射本地有声书目录
  89.       - /volume2/Music/MV:/data/music-videos   # 冒号前面映射本地音乐视频目录(MV)
  90.       - ./playlists:/data/playlists   # 冒号前面映射本地歌单目录(音乐专辑)
  91.       - ./plugins:/plugins   # 冒号前面映射plugins子文件夹本地路径
  92.     healthcheck:
  93.       test: ["CMD", "wget", "-qO-", "http://localhost:4000/health"]
  94.       interval: 30s
  95.       timeout: 5s
  96.       retries: 5

  97.   frontend:
  98.     image: msmkls/daoliyu-frontend:0.2.0
  99.     build:
  100.       context: ./frontend
  101.       dockerfile: Dockerfile
  102.     container_name: daoliyu-frontend
  103.     restart: unless-stopped
  104.     depends_on:
  105.       backend:
  106.         condition: service_healthy
  107.     ports:
  108.       - "5173:8080"   # 项目Web页面打开端口,冒号前面请勿本地冲突
复制代码

入口

QQ_1768263927819.png
通过部署的 IP:端口进入

评论8

没有车的老司机Lv.4绿联NAS社区会员用户 发表于 2026-1-13 09:11:53 | 查看全部 IP:–浙江–绍兴
看着不错,就是这个容器数量真的是醉了,直接一个应用,一个数据库不好吗?整那么多
PEPZY5楼主Lv.1 发表于 2026-1-13 11:01:09 | 查看全部 IP:–河北
没有车的老司机 发表于 2026-1-13 09:11
看着不错,就是这个容器数量真的是醉了,直接一个应用,一个数据库不好吗?整那么多 ...

咱也不知道啊, 咱只是个搬运工
playokLv.4 发表于 2026-1-13 15:40:57 | 查看全部 IP:–贵州–遵义
没有车的老司机 发表于 2026-1-13 09:11
看着不错,就是这个容器数量真的是醉了,直接一个应用,一个数据库不好吗?整那么多 ...

架构设计如此,前后端分离项目,多个容器正常,使用redis缓存,增加访问速度。
没有车的老司机Lv.4绿联NAS社区会员用户 发表于 2026-1-14 08:49:32 | 查看全部 IP:–浙江–绍兴
playok 发表于 2026-1-13 15:40
架构设计如此,前后端分离项目,多个容器正常,使用redis缓存,增加访问速度。 ...

还有个问题就是这冗长的compose代码,其中的环境变量,command等都应该弄成config.yaml配置文件,这样才比较好
xxxlLv.1 发表于 2026-1-19 10:52:43 | 查看全部 IP:–湖北–襄阳
我的nav+音流+mtag  也足够应付啦
a6N1DXLv.1 发表于 2026-1-29 14:58:23 | 查看全部 IP:–广东–佛山–高明区
部署成功了,但是有个问题。有声书功能,每次扫描媒体库,他不会覆盖,里面放了三本有声书,扫描了两次,他重复了,然后现在是六本,内容还一样
PEPZY5楼主Lv.1 发表于 2026-1-30 10:26:01 | 查看全部 IP:–广东–佛山–高明区
a6N1DX 发表于 2026-1-29 14:58
部署成功了,但是有个问题。有声书功能,每次扫描媒体库,他不会覆盖,里面放了三本有声书,扫描了两次,他 ...

我的能覆盖啊
yCngI3Lv.1 发表于 2026-3-20 20:27:16 | 查看全部 IP:–河北
我媒体库删了,但是歌曲数量还是没变,怎么扫描都不更新

评论

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2026 绿联NAS私有云社区 版权所有 All Rights Reserved. 粤公网安备44030002002555号| 粤ICP备12028978号
关灯 在本版发帖
联系技术支持
返回顶部
快速回复 返回顶部 返回列表