🎵 给小爱音箱一个家 —— Songloft 私有音乐库搭建指南
🎵 给小爱音箱一个家 —— Songloft 私有音乐库搭建指南
你是不是也有这样的困惑:买了小爱音箱,想让她放自己的歌,结果发现——"对不起,我没有找到这首歌"。
版权限制让小爱同学成了一个只能放会员曲库的"高级蓝牙音箱"。
其实,只需要在 NAS 或电脑上搭一个 Songloft,小爱音箱就能重新"苏醒",播放你硬盘里积攒多年的那些歌。

🌟 Songloft 是什么
Songloft 是一个自托管的私有音乐服务器。简单来说,就是在自己的设备上搭建一个"私人网易云",小爱音箱可以随时连接,点歌、播放、换歌——全靠语音完成。
支持的能力:
🎵 本地音乐管理(MP3、FLAC、WAV、APE、OGG、M4A 等)
🎬 视频支持(MP4、MOV、MKV、WebM)
🌐 Web 界面 + 六端客户端(Android / iOS / macOS / Windows / Linux / Web)
🔌 JS 插件扩展
🗣️ 小爱音箱语音点歌
⚡ 轻量低功耗,NAS / 树莓派都能跑
关于改名:本项目前身为 MiMusic,v2.0 起正式更名为 Songloft,内核与功能完全不变。
🏠 部署方案选择
方案 适合人群 推荐指数 Docker Compose 有 NAS 或 Linux 服务器的用户 ⭐⭐⭐⭐⭐ Docker 图形界面 新手,不想碰命令 ⭐⭐⭐⭐ Home Assistant 加载项 已在用 Home Assistant ⭐⭐⭐⭐ 直接运行二进制 Windows / macOS 桌面使用 ⭐⭐⭐
本文以 Docker Compose 为例,覆盖最通用的 NAS / Linux 部署场景。
📦 第一步:准备音乐文件
Songloft 只能播放你合法拥有的音乐文件。把你的 MP3、FLAC、WAV 等格式的音乐整理到一个文件夹里,比如:
/volume1/Music/
├── 周杰伦/
│ ├── 晴天.mp3
│ └── 稻香.flac
├── 林俊杰/
│ └── 可惜没如果.flac
├── 欧美金曲/
│ └── ...
└── 古典/
└── ...
🐳 第二步:Docker 部署(NAS / Linux 通用)
2.1 创建配置目录
SSH 登录 NAS 或服务器,执行:
# 创建 Songloft 工作目录
mkdir -p ~/songloft/{music,data}
# 说明:
# music/ → 存放你的音乐文件
# data/ → 服务运行数据(重启不丢失)
2.2 编写 docker-compose.yml
进入目录,创建配置文件:
cd ~/songloft
nano docker-compose.yml
粘贴以下内容:
version: '3.8'
services:
songloft:
image: songloft/songloft:latest
container_name: songloft
restart: always
ports:
- "58091:58091"
volumes:
# ⚠️ 必填:将 /path/to/your/music 替换为你的实际音乐目录路径
- /path/to/your/music:/app/music
# 数据持久化目录
- ./data:/app/data
environment:
# ⚠️ 安全必改:修改为你的管理员账号密码
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=你的强密码
# 服务端口(默认 58091)
- LISTEN_PORT=58091
安全提示:默认账号
admin / admin仅供本地测试使用。任何可被外网访问的部署,必须修改密码后再启动,否则你的音乐库会被陌生人访问。
2.3 启动服务
# 启动(后台运行)
docker compose up -d
# 查看日志,确认启动成功
docker compose logs -f
看到类似以下输出即为成功:
🎵 Songloft is running on http://0.0.0.0:58091

2.4 访问 Web 界面
打开浏览器,访问:
http://<你的服务器IP>:58091
首次登录使用你在配置中设置的管理员账号密码。

🖥️ 第三步:配置音乐目录
登录后,按以下步骤操作:
3.1 进入设置
点击界面右上角「设置」图标。
3.2 配置音乐路径
找到「音乐目录」配置项,填写:
/app/music
Docker 部署时,容器内的音乐路径固定为
/app/music,不要改。
3.3 扫描音乐
在设置——音乐库管理可以手动扫描音乐库

在界面中点击「扫描」按钮,Songloft 会自动扫描 /app/music 目录下的所有音频文件,提取封面、歌手、专辑等元数据。
扫描完成后,你的音乐库就准备好了。
🔊 第四步:让小爱音箱唱起来
小爱音箱接入 Songloft 后,可以直接语音点歌,比如: "小爱同学,放一首晴天" "小爱同学,播放周杰伦的歌" "小爱同学,下一首"
4.1 下载 Flutter 客户端
Songloft 提供功能更完整的 Flutter 客户端,支持后台播放、锁屏控制、通知栏操作等:
Android:在 GitHub Releases(https://github.com/songloft-org/songloft/releases/latest)下载
songloft-bundled-android-arm64-v8a.apkiOS:同上,下载
.ipa文件macOS / Windows / Linux:下载对应平台的
songloft-bundled-*安装包Windows 一键安装:通过 Scoop(https://scoop.sh)安装:
scoop bucket add songloft https://github.com/songloft-org/songloft-scoop scoop install songloft-player
Bundle 版:如果你下载的是
songloft-bundled-*版本,首次启动时点击「使用本地模式」→ 选择音乐目录,无需额外部署服务器,手机/电脑直接播放本地音乐。
4.2 安装 MIoT 音箱插件
Songloft 通过 MIoT 插件(songloft-plugin-miot)将歌曲投放到小爱音箱等支持 MIoT 协议的智能设备。
MIoT(小米IoT) 是小米智能设备的通信协议,支持小爱音箱、小米电视、米家网关等设备。安装 MIoT 插件后,Songloft 可以发现局域网内的 MIoT 设备并向其投送音乐。
第一步:下载插件
前往 MIoT 插件的 GitHub Releases 页面,下载最新的 .jsplugin.zip 文件:
🔗 插件地址:songloft-plugin-miot(https://github.com/songloft-org/songloft-plugin-miot/releases)
如果 GitHub 访问困难,可关注 Songloft 插件合集 Issue(https://songloft.hanxi.cc/issues/4)获取国内镜像下载地址。
第二步:上传安装
打开 Songloft Web 界面(
http://<你的IP>:58091)进入「设置」→「插件管理」页面
点击「上传插件」,选择下载的
.jsplugin.zip文件上传完成后,插件自动启用
第三步:配置音箱设备
插件安装后,前往首页找到「智能音箱」插件:

点击进入插件设置

点左上角设置icon添加账号与音箱

配置服务地址直接自动填充

从设备结果中选择你要绑定的小爱音箱

有些设备不支持部分格式,可以开启转成mp3

5.语音交互开启监听

支持自定义命令

注意:确保小爱音箱和 Songloft 服务器处于同一局域网内,且音箱已通过「小爱音箱」APP 完成初始配网。
第四步:验证连接
安装并配置好插件后,可以在 Songloft 播放页,点击即可将当前歌曲投送到已配置的小爱音箱播放。

🌐 进阶一:外网访问(远程点歌)
如果你想在公司、户外等场景远程访问家里的音乐库,需要做两步配置:
5.1 配置反向代理
在 NAS 的 Nginx 或堡览等 Web 服务器中,添加反向代理:
location /songloft/ {
proxy_pass http://127.0.0.1:58091;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
注意:
proxy_pass末尾不要加斜杠。
5.2 更新 docker-compose.yml
添加 BASE_PATH 环境变量:
environment:
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=你的强密码
- BASE_PATH=/songloft
- LISTEN_PORT=58091
5.3 安全建议
⚠️ 务必设置强密码,不要使用默认账号密码!建议同时配合 HTTPS(Let's Encrypt 免费证书)使用,防止密码被中间人窃取。
🔧 进阶二:Home Assistant 用户
如果你在使用 Home Assistant OS,Songloft 支持一键安装为加载项,无需手动写 Docker 命令:
「设置 → 加载项 → 加载项商店 → 仓库」,添加:
https://github.com/songloft-org/songloft刷新后在商店里找到 Songloft,点击安装
在配置页填写管理员账号密码、音乐目录路径
启动后点击「打开 Web UI」即可访问
音乐文件放入 HA 的 /media 或 /share 目录即可被扫描。
🛠 常用运维命令
# 进入 songloft 目录
cd ~/songloft
# 重启服务
docker compose restart
# 查看日志
docker compose logs -f
# 更新到最新版本
docker compose pull
docker compose up -d
# 停止服务
docker compose down
# 进入容器(调试用)
docker exec -it songloft sh
❓ 常见问题
Q1:服务启动了,但访问不了?
检查防火墙或 NAS 安全策略,确保 58091 端口已开放。
Q2:界面看不到歌曲?
确认音乐目录挂载正确,容器内路径为 /app/music,宿主机路径替换为你的实际路径。修改配置后重启容器:
docker compose down
docker compose up -d
Q3:Docker 镜像拉取很慢?
国内用户可使用镜像加速:
image: m.daocloud.io/songloft/songloft:latest
Q4:如何备份数据?
备份 ~/songloft/data 目录即可:
tar -czvf songloft-backup.tar.gz ~/songloft/data
Q5:想修改端口?
修改 docker-compose.yml 中的 ports 映射(如 58092:58091),同时更新 LISTEN_PORT 环境变量为对应的宿主机端口。
Q6:MIoT 插件搜不到小爱音箱?
确认音箱和服务器在同一局域网(同一 WiFi 或网段)
在「小爱音箱」APP 中确认音箱已正常联网
部分路由器需要开启「AP 隔离」关闭或设置 UPnP 端口转发
尝试重启音箱和 Songloft 服务后重新搜索
Q7:投送音乐没声音?
部分小爱音箱型号在接收 MIoT 投送时,需要在音箱端确认授权。在音箱联网后首次投送时,对小爱说「小爱同学,播一下」触发授权流程,之后即可正常使用。
📚 相关链接
资源 链接 资源 ------
📦 GitHub 仓库 https://github.com/songloft-org/songloft
🎯 MIoT 音箱插件 https://github.com/songloft-org/songloft-plugin-miot/releases
📖 官方文档 https://songloft.hanxi.cc
🐳 Docker Hub https://hub.docker.com/r/songloft/songloft
🧩 插件合集 https://songloft.hanxi.cc/issues/4
💡 Songloft 是一款完全免费的开源软件,无广告、不收费、不接受捐款。如果你在网上看到任何以 Songloft 名义收费的行为,请勿上当。
