本地部署道理鱼音乐服务器

简介

道理鱼音乐管理平台 是一款面向 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

image

img

添加新评论