Docker 部署 XiaoMusic 小爱音箱播放本地音乐 🎵
📋 目录导航
🎯 项目简介
XiaoMusic
是一个开源工具,它允许您通过小爱音箱播放本地音乐文件,并在音乐不存在时自动从网络下载。通过 Docker 部署,您可以轻松地将您的 NAS 或服务器转变为个人音乐流媒体服务中心,让小爱音箱摆脱平台版权限制,畅享个人音乐库。
✨ 核心特性
特性类别 |
功能描述 |
优势 |
🎵 本地音乐播放 |
支持播放 NAS 或本地存储中的音乐文件 |
摆脱平台版权限制,享受个人音乐收藏 |
🌐 自动下载 |
当本地没有请求的歌曲时,自动从哔哩哔哩或 YouTube 下载 |
无缝补充音乐库,无需手动操作 |
🎙️ 语音控制 |
支持通过小爱音箱语音指令控制播放 |
保持原有的语音交互体验 |
📱 Web 管理 |
提供直观的 Web 界面进行管理和配置 |
方便远程管理和监控 |
🐳 容器化部署 |
使用 Docker 简化安装和维护过程 |
快速部署,易于升级和维护 |
🔄 多格式支持 |
支持 MP3、FLAC、WAV、APE、OGG、M4A 等多种音频格式 |
兼容大多数音频文件格式 |
🐳 一、Docker 部署 XiaoMusic
1. 创建部署目录和 docker-compose.yml
文件 📁
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
mkdir -p /mnt/mydisk/home/xiaomusic && cd $_ && \
cat > docker-compose.yml <<'EOF'
services:
xiaomusic:
image: m.daocloud.io/docker.io/hanxi/xiaomusic ## 国内镜像
## image: hanxi/xiaomusic ## 国外镜像
container_name: xiaomusic
restart: unless-stopped
ports:
- 8393:8090
volumes:
- /mnt/file/music:/app/music
- ./conf:/app/conf
environment:
XIAOMUSIC_PUBLIC_PORT: 8393
EOF
|
2. 拉取镜像并启动容器 🚀
🚀 二、使用 XiaoMusic
1. 初始设置与配置 ⚙️
- 访问 Web 界面: 在浏览器中打开
http://localhost:8393
- 登录小米账号: 在设置页面输入您的小米账号和密码
- 选择设备: 系统会自动获取您的小爱音箱设备列表,选择要控制的设备
- 配置下载源: 可选择
bilisearch:
(哔哩哔哩)或 ytsearch:
(YouTube)作为下载源
2. 使用技巧与语音口令 🗣️
XiaoMusic 支持丰富的语音控制口令:
语音指令 |
功能描述 |
使用示例 |
播放歌曲 |
播放本地的歌曲 |
“播放歌曲” |
播放歌曲+歌名 |
播放指定歌曲 |
“播放歌曲周杰伦晴天” |
上一首/下一首 |
切换曲目 |
“下一首” |
播放模式控制 |
切换播放模式 |
“单曲循环”/“全部循环”/“随机播放” |
停止播放 |
停止播放 |
“停止播放"或"关机” |
刷新列表 |
刷新音乐列表 |
“刷新列表” |
播放列表 |
播放指定歌单 |
“播放列表我的最爱” |
收藏管理 |
管理收藏歌曲 |
“加入收藏”/“取消收藏” |
3. 更新音乐列表 🔄
- 向
/mnt/file/music
文件夹添加新的音乐文件
- 重启 xiaomusic 容器:
docker restart xiaomusic
- 在 XiaoMusic Web 后台进行操作:
- 点击"设置"
- 点击"重新拉取设置数据"
- 点击"拉取最新的音乐列表"
- 点击"刷新音乐标签"
4. 支持的音乐格式与设备 📋
支持的音乐格式:
注意: 部分设备型号(如 L05B、L05C)可能不支持 FLAC 格式。
测试支持的设备型号:
型号 |
设备名称 |
L06A |
小爱音箱 |
L07A |
Redmi小爱音箱 Play |
S12/S12A |
小米AI音箱 |
LX5A |
小爱音箱 万能遥控版 |
LX05 |
小爱音箱Play(2019款) |
LX06 |
小爱音箱Pro |
LX01 |
小爱音箱mini |
L05B |
小爱音箱Play |
L05C |
小米小爱音箱Play 增强版 |
及其他多种型号 |
|
🌐 三、Nginx 反向代理配置
访问地址示例:
https://xiaomusic.example.com
1. 创建 Nginx 配置文件 🔧
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
mkdir -p /etc/nginx/conf.d && \
cat > /etc/nginx/conf.d/xiaomusic.conf <<'EOF'
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name xiaomusic.example.com; # 🌐 请替换为您的实际域名
# SSL 证书配置
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384;
# 安全头部
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
# 文件上传大小限制
client_max_body_size 10M;
location / {
proxy_pass http://localhost:8393;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_buffering on;
proxy_http_version 1.1;
# 超时设置
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
}
# 错误页面处理
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
EOF
|
2. 测试并重载 Nginx 🔄
1
|
sudo nginx -t && sudo systemctl reload nginx
|
–
🔧 四、容器维护命令
1. Docker Compose 命令 🐳
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# 进入项目目录
cd /mnt/mydisk/home/xiaomusic
# 停止并删除容器
docker-compose down
# 拉取最新镜像
docker-compose pull
# 启动容器
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看服务日志
docker-compose logs
# 跟踪服务日志
docker-compose logs -f
# 完整升级流程
docker-compose down && \
docker-compose pull && \
docker-compose up -d && \
docker image prune -f
|
2. Docker 容器命令 📦
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# 查看所有容器名称
docker ps -a --format "{{.Names}}"
# 查看运行中容器
docker ps
# 停止/启动/重启容器
docker stop xiaomusic # 停止容器
docker start xiaomusic # 启动容器
docker restart xiaomusic # 重启容器
# 删除容器
docker rm xiaomusic # 删除已停止容器
docker rm -f xiaomusic # 强制删除运行中容器
# 进入容器Shell
docker exec -it xiaomusic bash # 使用bash进入容器
docker exec -it xiaomusic sh # 使用sh进入容器
# 查看容器详情和资源使用
docker inspect xiaomusic # 查看详细配置
docker stats xiaomusic # 实时资源监控
## 容器日志管理
docker logs xiaomusic # 查看日志
docker logs -f xiaomusic # 实时跟踪日志
docker logs --tail 100 xiaomusic # 查看最后100行
docker logs -t xiaomusic # 带时间戳的日志
|
3. Docker 镜像管理 📀
1
2
3
4
|
docker images # 列出所有镜像
docker rmi <image_name:tag> # 删除指定镜像
docker image prune -f # 清理悬空镜像
docker image prune -a -f # 清理所有未使用镜像
|
🎶 启航音乐,畅享无限
通过本文档,你已经成功使用 Docker 部署了 XiaoMusic,让小爱音箱焕发新生,并通过 Nginx 反向代理实现了安全便捷的远程访问。现在,你可以:
🎵 解放音乐 摆脱平台版权限制,让小爱音箱播放你珍藏的个人音乐收藏
🗣️ 语音控制 保持原有的语音交互体验,通过简单口令控制音乐播放
🌐 智能补充 自动从网络下载缺失的歌曲,无缝扩展你的音乐库
📱 远程管理 通过 Web 界面随时随地管理音乐和配置设置
音乐是生活的背景音,也是情感的催化剂。愿 XiaoMusic 成为你与小爱音箱之间的音乐桥梁,让科技真正服务于你的个人喜好和生活方式。
从现在开始,唤醒你的小爱音箱,让它真正成为你的私人音乐管家!🎧
📌 持续迭代:建议关注
XiaoMusic 官方更新
,及时获取新功能与优化。
🐛 反馈与互助:使用中如有疑问或建议,可前往
GitHub Issues
提出。
祝你使用愉快,音乐相伴!🎉