Featured image of post Docker 部署 XiaoMusic 小爱音箱播放本地音乐  🎵

Docker 部署 XiaoMusic 小爱音箱播放本地音乐 🎵

Docker 部署 XiaoMusic 小爱音箱播放本地音乐 🎵 📋 目录导航

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. 拉取镜像并启动容器 🚀

1
docker-compose up -d

🚀 二、使用 XiaoMusic

1. 初始设置与配置 ⚙️

  1. 访问 Web 界面: 在浏览器中打开 http://localhost:8393
  2. 登录小米账号: 在设置页面输入您的小米账号和密码
  3. 选择设备: 系统会自动获取您的小爱音箱设备列表,选择要控制的设备
  4. 配置下载源: 可选择 bilisearch:(哔哩哔哩)或 ytsearch:(YouTube)作为下载源

2. 使用技巧与语音口令 🗣️

XiaoMusic 支持丰富的语音控制口令:

语音指令 功能描述 使用示例
播放歌曲 播放本地的歌曲 “播放歌曲”
播放歌曲+歌名 播放指定歌曲 “播放歌曲周杰伦晴天”
上一首/下一首 切换曲目 “下一首”
播放模式控制 切换播放模式 “单曲循环”/“全部循环”/“随机播放”
停止播放 停止播放 “停止播放"或"关机”
刷新列表 刷新音乐列表 “刷新列表”
播放列表 播放指定歌单 “播放列表我的最爱”
收藏管理 管理收藏歌曲 “加入收藏”/“取消收藏”

3. 更新音乐列表 🔄

  1. /mnt/file/music 文件夹添加新的音乐文件
  2. 重启 xiaomusic 容器:docker restart xiaomusic
  3. 在 XiaoMusic Web 后台进行操作:
    • 点击"设置"
    • 点击"重新拉取设置数据"
    • 点击"拉取最新的音乐列表"
    • 点击"刷新音乐标签"

4. 支持的音乐格式与设备 📋

支持的音乐格式:

  • MP3
  • FLAC
  • WAV
  • APE
  • OGG
  • M4A

注意: 部分设备型号(如 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 提出。

祝你使用愉快,音乐相伴!🎉