收起左侧

Zhiyin Music 知音音乐 远程 NAS 音乐库 + Web 播放器系统

0
回复
44
查看
[ 复制链接 ]

3

主题

0

回帖

0

牛值

江湖小虾

📖 项目简介

Zhiyin 知音 是一个专为 NAS 场景设计的音乐流媒体服务,旨在提供:

  • 🎼 大规模音乐库支持:轻松管理数万首音乐
  • 🚀 高性能:Rust + SQLite + 异步架构,内存优化至 ~30-50MB
  • 📦 开箱即用:Docker 一键部署
  • 🔍 智能推荐:基于播放历史的离线推荐系统
  • 🎨 完整元数据:封面、艺术家、专辑信息自动解析
  • 🌐 RESTful API:前后端分离,易于集成
  • 📡 Subsonic API 兼容:支持音流、Symfonium、DSub 等主流客户端直连
  • 🔐 用户认证:JWT + Basic Auth + bcrypt,角色权限控制
  • 🖥️ 前端托管:可选的内置 Web 前端服务,支持 SPA
  • 🎯 刮削(Scraping):从多个音乐平台自动抓取元数据与封面
  • ☁️ STRM 网盘直链:支持 .strm 文件接入阿里云盘等网盘资源,服务端代理播放

🚀 快速开始

方式一:Docker Compose(推荐)

`yaml
version: '3.8'

services:
  zhiyin-music:
    image: qwex333/zhiyin-music:latest
    container_name: zhiyin-music
    
    ports:
      - "8080:8080"
    
    volumes:
      # 音乐目录可选(只读)- 请修改为你的实际路径
      # 默认配置会自动扫描 /music,无需再手动配置 config.toml
      - ./music:/music
      
      # 数据库目录可选(持久化)
      - ./data:/data
      
      # 封面缓存目录(可选, 如果想手动管理封面)
      #- ./covers:/covers
      
      
      # Web 前端已内置于镜像中(/app/web)
      # 如需使用自定义前端,可取消注释覆盖:
      # - ./web/dist:/app/web:ro
      
      # 配置文件(可选,高级自定义时再启用)
      # - ./config.toml:/app/config.toml:ro
    
    environment:
      # 日志级别
      - RUST_LOG=info
      # Subsonic 密码加密 Pepper(可选)
      # 不设置时服务会自动生成并持久化到 /data/.zhiyin/key_pepper
      # 设置后优先使用该值(适合多实例统一密钥)
      # 生成方式: openssl rand -hex 32
      # - MUSIC_KEY_PEPPER=your-random-hex-secret-here
      # 如需自定义托管文件路径(可选):
      # - MUSIC_KEY_PEPPER_FILE=/data/.zhiyin/key_pepper
      
      # 初始管理员(仅首次启动时生效,创建后可删除)
      # - MUSIC_ADMIN_USER=admin
      # - MUSIC_ADMIN_PASSWORD=your_secure_password
      
      # 如需覆盖默认配置,可通过 MUSIC_* 环境变量或挂载 config.toml
    
    # 内存限制(含文件页缓存),防止在小内存主机上占用过多内存
    # 256m 适合大多数场景;极低内存主机可设为 192m,追求缓存加速可设为 512m
    # mem_limit: 256m
    
    restart: unless-stopped
    
    # 健康检查(镜像中未安装 curl/wget,使用内置二进制的 HTTP 自检)
    # 如安装了 wget 可替换为: test: ["CMD-SHELL", "wget -qO- http://localhost:8080/api/health || exit 1"]
    healthcheck:
      test: ["CMD", "zhiyin-music", "--health-check"]
      interval: 30s
      timeout: 3s
      retries: 3
      start_period: 10s
    
    networks:
      - music-network

networks:
  music-network:
    driver: bridge

# 使用说明(零配置默认):
# 1. 修改 volumes 中的音乐目录路径(./music 改为你的实际路径)
# 2. 运行: docker-compose up -d
# 3. 查看日志: docker-compose logs -f
# 4. 停止服务: docker-compose down
# 5. 访问 API: http://localhost:8080/api/songs
# 6. 访问文档: http://localhost:8080/swagger-ui
# 7. 如需高级自定义:挂载 config.toml 或设置 MUSIC_* 环境变量
#
# 配置热重载(无需重启):
#   docker-compose kill -s SIGHUP zhiyin-music

使用 Docker Command 快速启动:

默认推荐挂载数据目录,迁移或删除重建数据不丢失

docker run --name zhiyin-music -v /path/to/your/music:/music -v ./data:/data -p 8080:8080 zhiyin-music:latest

如果你只想使用 strm 快速管理音乐库,那么可以试试:

docker run --name zhiyin-music -v /path/to/your/music:/music -p 8080:8080 zhiyin-music:latest
收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则