轻量级私有云音乐服务器QM-Music

简介

什么是 QM-Music ?

QM-Music 是一个基于 Subsonic 构建的轻量级私有云音乐服务器,是专为音乐爱好者设计的轻量级高性能解决方案。支持 Docker 一键部署,完美兼容 Subsonic 生态客户端(如 音流/Amperfy/substreamer/feishin/music-assistant),让您随时随地安全访问个人音乐库。

主要特点

  • 🐳 Docker 容器化部署 - 快速启动,零环境依赖
  • 🌱 轻量级部署 - 仅需约 150MB 内存占用,低资源消耗
  • 🎧 Subsonic 协议兼容 - 可在支持 subsonic api 的客户端连接使用
  • ⚡ 高性能媒体服务 - 低延迟流媒体传输
  • 🔄 智能转码支持 - 按需开启 libmp3lame/acc 转码节省流量
  • 📁 多格式支持 - 全面兼容 MP3/FLAC/AAC/WAV 等格式
  • 🔒 私有化部署 - 完全掌控您的音乐数据
  • 🇨🇳 中文曲库友好 - 支持繁简字互搜,中文排序/检索优化

应用场景

  • 个人音乐库管理:用户可以独立管理自己的音乐文件,包括上传、分类和播放
  • 家庭共享:家庭成员可以通过 QM-Music 共享个人音乐
  • 自托管解决方案:适合希望将音乐数据保存在个人服务器上的用户
  • 流媒体服务:为远程访问音乐提供可靠的流媒体服务,用户可以通过各种兼容的客户端播放音乐
  • 音乐探索:用户可通过该平台进行音乐的搜索和发现,享受个性化推荐

QM-Music 提供了一个灵活、功能强大的私有音乐服务,旨在方便用户访问和管理音乐库,支持多种音频格式和设备,是音乐爱好者的理想选择。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 qmmusic ,选择第一个 qmmusic/qm-music,版本选择 latest

本文写作时, latest 版本看起来比 v1.9.8 要更新一些;

docker 文件夹中,创建一个新文件夹 qm-music,并在其中建三个子文件夹 cachedbmusic

文件夹 装载路径 说明
docker/qm-music/cache /data/qm-music/cache 缓存目录
docker/qm-music/db /data/qm-music/db 数据库及元数据存储目录
docker/qm-music/music /data/qm-music/music_dir 音乐文件存储目录

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
6688 6688

环境

可变
QM_FFMPEG_ENABLE 默认为 false,设为 true 启用智能音频转码(推荐在户外使用的用户开启),支持按网络状况自动切换 libmp3lame/acc 编码,有效节省流量消耗
TZ 时区设置,国内用户建议设为 Asia/Shanghai

更多环境变量请参考官方的说明:https://github.com/chenqimiao/qm-music?#%EF%B8%8F-配置说明

关于 SpotifyLast.fm 免费账号的申请过程,老苏在 音乐流媒体服务器Navidrome 一文中介绍过

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 新建文件夹 qm-music 和 子目录
mkdir -p /volume1/docker/qm-music/{cache,db,music}

# 进入 qm-music 目录
cd /volume1/docker/qm-music

# 运行容器
docker run -d \
--restart unless-stopped \
--name qm-music \
-p 6688:6688 \
-v $(pwd)/music:/data/qm-music/music_dir \
-v $(pwd)/db:/data/qm-music/db \
-v $(pwd)/cache:/data/qm-music/cache \
-e QM_FFMPEG_ENABLE=true \
-e TZ=Asia/Shanghai \
qmmusic/qm-music:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '3'

services:
qm-music:
image: qmmusic/qm-music:latest
container_name: qm-music
restart: unless-stopped
ports:
- "6688:6688"
volumes:
- ./music:/data/qm-music/music_dir
- ./db:/data/qm-music/db
- ./cache:/data/qm-music/cache
environment:
- QM_FFMPEG_ENABLE=true
- TZ=Asia/Shanghai

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 qm-music 和 子目录
mkdir -p /volume1/docker/qm-music/{cache,db,music}

# 进入 qm-music 目录
cd /volume1/docker/qm-music

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:6688 就能看到登录界面

默认账号密码为: admin/admin

登录后记得修改密码

主界面

将音乐文件放入 music

刷新曲库

客户端

本来还想用古老的 Subsonic Music Streamer,毕竟文件比较小,可能与最新的系统存在兼容性问题,可以播放但是有报错,看着比较不爽

因此改用了 StreamMusic(音流),打开后选择 Subsonic

  • 主机地址:填写 http://群晖IP:6688
  • 用户名:填入管理员账号 admin
  • 密码:填入修改后的管理员密码

从安全角度考虑,建议在后台创建没有管理员权限的账号登录;

如果设置没问题的话,会看到登录成功的提示

可以看到我们拷入的专辑

可以直接播放

参考文档

chenqimiao/qm-music: 🎧☁️ Your Private Music Service
地址:https://github.com/chenqimiao/qm-music

gitbobobo/StreamMusic: 支持 Android、iOS、macOS、Windows 平台的 Subsonic/Navidrome/Jellyfin/Emby/AudioStation 客户端。
地址:https://github.com/gitbobobo/StreamMusic