🎵 面向个人用户的自托管音乐服务器 — 仅管理你合法拥有的音乐
📣 品牌迁移预告:本项目计划在 v2.0 更名为 Songloft(项目内核与功能保持不变,仅是品牌升级,旧仓库 / Docker 镜像保留至少一年作 redirect)。当前
MiMusic命名继续维护到 v1.x 全部周期结束。新名相关讨论欢迎在 Issues 留言。
🏠 GitHub • 📥 下载 • 📖 文档 • 💬 问题反馈 • 👥 微信群 • 📸 截图
MiMusic 是一款面向个人用户的自托管工具,定位为帮助用户管理自己合法拥有的音乐文件。在使用本项目前,请务必阅读并理解以下条款:
💡 我们尊重并支持知识产权保护。如果你喜欢某位艺术家的作品,请通过正版渠道购买或订阅以支持创作者。
MiMusic 提供两种版本,满足不同使用场景:
| 版本 | 后缀 | 说明 | 适用场景 |
|---|---|---|---|
| 🌟 完整版 | -full | 包含 Web 前端,开箱即用 | 推荐初次使用,访问服务地址即可看到 Web 界面 |
| 📦 精简版 | 无后缀 | 不包含 Web 前端,体积更小 | 配合 Flutter 桌面/移动客户端,或前后端分离部署 |
💡 推荐:初次使用建议下载 完整版(-full),开箱即用,无需额外配置前端。
包含 Web 前端,开箱即用:
| 平台 | 架构 | 下载链接 |
|---|---|---|
| 🐧 Linux | x86_64 | mimusic-linux-amd64-full |
| 🐧 Linux | ARM64 | mimusic-linux-arm64-full |
| 🐧 Linux | ARMv7 | mimusic-linux-armv7-full |
| 🍎 macOS | x86_64 (Intel) | mimusic-darwin-amd64-full |
| 🍎 macOS | ARM64 (Apple Silicon) | mimusic-darwin-arm64-full |
| 🪟 Windows | x86_64 | mimusic-windows-amd64-full.exe |
| 🪟 Windows | ARM64 | mimusic-windows-arm64-full.exe |
不包含 Web 前端,体积更小:
| 平台 | 架构 | 下载链接 |
|---|---|---|
| 🐧 Linux | x86_64 | mimusic-linux-amd64 |
| 🐧 Linux | ARM64 | mimusic-linux-arm64 |
| 🐧 Linux | ARMv7 | mimusic-linux-armv7 |
| 🍎 macOS | x86_64 (Intel) | mimusic-darwin-amd64 |
| 🍎 macOS | ARM64 (Apple Silicon) | mimusic-darwin-arm64 |
| 🪟 Windows | x86_64 | mimusic-windows-amd64.exe |
| 🪟 Windows | ARM64 | mimusic-windows-arm64.exe |
| 平台 | 下载链接 |
|---|---|
| 🐧 Linux x86_64 | mimusic-docker-linux-amd64-full.tar |
| 🐧 Linux ARM64 | mimusic-docker-linux-arm64-full.tar |
| 🐧 Linux ARMv7 | mimusic-docker-linux-armv7-full.tar |
| 平台 | 下载链接 |
|---|---|
| 🐧 Linux x86_64 | mimusic-docker-linux-amd64.tar |
| 🐧 Linux ARM64 | mimusic-docker-linux-arm64.tar |
| 🐧 Linux ARMv7 | mimusic-docker-linux-armv7.tar |
除了 Web 界面,MiMusic 还提供功能更强大的跨平台 Flutter 客户端,支持后台播放、本地缓存、媒体控制(耳机/锁屏/通知栏)等服务端 Web 界面无法实现的能力,覆盖 iOS、Android、macOS、Windows、Linux 和 Web 六端。
🔗 GitHub 仓库:mimusic-org/mimusic-player 📥 下载:GitHub Releases
💡 使用 精简版 服务端时,推荐直接搭配 Flutter 客户端使用(无需额外部署 Web 前端);如确实需要独立 Web 前端,可参考 mimusic-player 仓库的
flutter build web流程自行构建并由 Nginx 等反向代理静态托管。
🔐 安全提示(必读):默认管理员账号是
admin / admin,仅适用于本地测试。任何对外网暴露或多设备访问的部署,请务必通过环境变量ADMIN_USERNAME/ADMIN_PASSWORD设置强密码后再启动;否则你的音乐库可能被陌生人访问。
# 1️⃣ 下载对应平台的二进制文件(推荐完整版)
# 例如 Linux x86_64 完整版:
wget https://github.com/mimusic-org/mimusic/releases/latest/download/mimusic-linux-amd64-full
mv mimusic-linux-amd64-full mimusic
# 2️⃣ 添加执行权限
chmod +x mimusic
# 3️⃣ 创建必要目录
mkdir -p music data
# 4️⃣ 启动(推荐通过环境变量传入凭证,避免出现在 shell history / 进程列表中)
ADMIN_USERNAME=admin ADMIN_PASSWORD='your_strong_password' ./mimusic
🍎 macOS 用户注意:从 GitHub 下载的二进制带有 Gatekeeper 隔离属性,首次运行会被拦截。运行前请先执行:
xattr -d com.apple.quarantine ./mimusic
# 1️⃣ 下载对应平台的二进制文件(推荐完整版),并重命名为 mimusic.exe
# 例如 Windows x86_64 完整版: mimusic-windows-amd64-full.exe
# 2️⃣ 创建必要目录
mkdir music
mkdir data
# 3️⃣ 设置环境变量并启动(PowerShell)
$env:ADMIN_USERNAME = "admin"
$env:ADMIN_PASSWORD = "your_strong_password"
.\mimusic.exe
⚠️ 镜像标签提醒:
hanxi/mimusic:latest是 精简版(不含 Web 前端)。如需开箱即用的 Web 界面,请使用hanxi/mimusic:full或hanxi/mimusic:<version>-full。
# 🌟 完整版(推荐,包含 Web 前端)
docker pull hanxi/mimusic:full
# 或指定版本: docker pull hanxi/mimusic:1.4.1-full
# 📦 精简版(不含 Web 前端,需搭配 Flutter 客户端使用)
docker pull hanxi/mimusic:latest
# 或指定版本: docker pull hanxi/mimusic:1.4.1
# 运行容器(以完整版为例)
docker run -d \
--name mimusic \
-p 58091:58091 \
-v /path/to/music:/app/music \
-v /path/to/data:/app/data \
-e ADMIN_USERNAME=admin \
-e ADMIN_PASSWORD='your_strong_password' \
hanxi/mimusic:full
适合无法直接访问 Docker Hub 的环境:
# 1️⃣ 下载对应平台的 Docker 镜像 tar 文件(推荐完整版)
wget https://github.com/mimusic-org/mimusic/releases/latest/download/mimusic-docker-linux-amd64-full.tar
# 2️⃣ 导入镜像
docker load -i mimusic-docker-linux-amd64-full.tar
# 3️⃣ 查看导入的镜像标签
docker images | grep mimusic
# 4️⃣ 使用上一节的 docker run 命令启动即可(注意替换为导入的镜像标签)
使用 Docker Compose 可以更方便地管理容器配置:
version: '3.8'
services:
mimusic:
image: hanxi/mimusic:full
container_name: mimusic
restart: always
ports:
- "58091:58091"
volumes:
- /path/to/music:/app/music
- /path/to/data:/app/data
environment:
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=your_strong_password
- LISTEN_PORT=58091
将上述内容保存为 docker-compose.yml 文件,然后运行:
# 启动服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
服务启动后,访问 http://localhost:58091 即可打开 Web 界面(仅完整版内置;精简版请使用 Flutter 客户端 连接)。
使用配置的管理员账号密码登录。
首次登录后,进入「设置」页面配置音乐文件目录(music_path)。Docker 部署时通常配置为 /app/music。
在 Web 界面中点击"扫描"按钮,系统会自动扫描音乐目录中的音频文件并提取元数据。
扫描完成后,即可在界面中浏览和播放音乐。
MiMusic 仅依赖少量启动期配置(凭证、端口、数据库路径)通过环境变量或命令行参数指定,其余业务配置(音乐目录、扫描规则、封面存储等)都保存在数据库 config 表中,启动后通过 Web 界面管理。
| 变量名 | 说明 | 默认值 |
|---|---|---|
ADMIN_USERNAME | 👤 管理员用户名 | admin |
ADMIN_PASSWORD | 🔐 管理员密码 | admin |
LISTEN_PORT | 🔌 服务端口 | 58091 |
DB_PATH | 💾 数据库文件路径 | data/mimusic.db |
📁 Docker 镜像中音乐目录与数据目录固定为
/app/music与/app/data,通过-v挂载即可,无需额外环境变量。
# 查看帮助
./mimusic -help
# 指定端口
./mimusic -port 8080
# 指定数据库文件路径
./mimusic -db data/mimusic.db
# 指定管理员账号(不推荐,密码会出现在 shell history 和 ps 进程列表中)
./mimusic -username admin -password your_password
⚙️ 优先级:命令行参数 高于 环境变量。若两者均未提供,则回退到默认值(管理员账号为
admin/admin)。 ⚠️ 参数格式:MiMusic 使用单横杠参数(如-help),不支持双横杠参数(如--help)。 🔐 密码安全:推荐通过环境变量ADMIN_PASSWORD传入密码,避免-password在进程列表中明文暴露。
| 项目 | 要求 |
|---|---|
| 操作系统 | 🐧 Linux / 🍎 macOS / 🪟 Windows |
| 架构 | x86_64 / ARM64 / ARMv7 |
| 可选依赖 | 🔧 ffprobe(用于获取音频技术参数,不安装也可正常运行) |
每个 Release 都包含 checksums.txt 文件,用于验证下载文件的完整性:
# 下载校验和文件
wget https://github.com/mimusic-org/mimusic/releases/latest/download/checksums.txt
# 验证文件
sha256sum -c checksums.txt
# 查看版本信息(含 Git Commit / 构建时间 / 构建类型)
./mimusic -version
# 查看完整帮助
./mimusic -help
# 通过 API 检查版本
curl http://localhost:58091/api/v1/version
输出示例:
MiMusic Version: 1.4.1
Git Commit: c8f3171
Build Time: 2026-05-28_13:46:11
Build Type: lite
MiMusic 内置 JS 插件引擎,插件运行在 QuickJS 沙箱中,支持权限模型、健康检查与热更新,可自由扩展音源 / 元数据 / 设备控制等能力。
社区维护的预构建插件集中在 mimusic-org/jsplugins 仓库,下载 .jsplugin.zip 后在 MiMusic 客户端的「插件管理」页上传即可启用。
想看更多插件或共建?欢迎在 插件合集 Issue 留言。
⚠️ 版权提示:第三方插件接入的任何网络音源、歌词、封面等内容,版权均归原权利人所有。请仅将插件用于访问你本人享有合法使用权的内容,下载 / 转存 / 二次分发等行为请遵守所在国家或地区的法律法规。详见上文 版权与免责声明。
如需开发自定义插件,请参考以下资源:
@mimusic/plugin-sdk + @mimusic/plugin-builder + 脚手架pnpm create mimusic-plugin <name>,详见 JS 插件开发指南完整的 API 文档(Swagger/OpenAPI 格式)可在以下地址查看:
http://localhost:58091/swagger/index.html| 接口组 | 路径 | 说明 |
|---|---|---|
| 认证 | /api/v1/auth/* | 登录、刷新 Token、登出、Token 管理 |
| 歌曲 | /api/v1/songs/* | 歌曲 CRUD、封面、播放、歌词 |
| 歌单 | /api/v1/playlists/* | 歌单 CRUD、歌单歌曲管理、网络歌曲转本地 |
| JS 插件 | /api/v1/jsplugins/* | 插件上传、启用、禁用、删除、检查更新 |
| 扫描 | /api/v1/scan/* | 音乐库扫描 |
| 配置 | /api/v1/configs/* | 系统配置管理 |
| 版本 | /api/v1/version | 版本信息 |
遇到问题?请查看 常见问题与解决方案 💬
详细的版本更新记录请查看 CHANGELOG.md。
本项目基于 Apache-2.0 License 开源。
Content type
Image
Digest
sha256:1b1a1bbdf…
Size
12.2 MB
Last updated
4 months ago
docker pull hanxi/mimusic