小爱音箱播放NAS音乐再进化!部署自托管音乐服务器『Songloft』

小爱音箱播放NAS音乐再进化!部署自托管音乐服务器『Songloft』

哈喽小伙伴们好,我是Stark-C~

说到如何使用小爱音箱播放NAS收藏的音乐,就不得不提到之前为大家分享的XiaoMusic项目,它通过本地服务接管小爱的音乐指令,让我们无需会员,就能直接语音播放自己的音乐收藏。

🔺遗憾的是这个项目已经停止维护,但是作者又带来了一个底层架构全部重写、功能全面升级的全新自托管音乐服务器项目--Songloft。

接下来我们就在极空间NAS上将它部署下来,看看它的表现吧!

关于Songloft

🔺Songloft是一个面向个人用户的自托管音乐服务器项目,最开始的名字叫做MiMusic,从 v2.0 起正式更名为Songloft。它专为 NAS、树莓派、迷你主机等本地设备打造,让用户能够完全掌控自己的音乐库,并通过 Web、移动端、小爱音箱等方式播放自己合法拥有的音乐。

项目Github地址(项目还很新,大家多多Star支持):https://github.com/songloft-org/songloft

项目核心功能(引自作者叙述):

  • 🎵 本地音乐管理 --- 扫描本地目录,自动提取 MP3/FLAC/WAV/APE/OGG/M4A 等格式的封面和元数据

  • 🧩 JS 插件体系 --- 基于 QuickJS 沙箱运行,支持权限模型、健康检查、热更新,可自由扩展音源 / 元数据 / 设备控制等能力

  • 📱 跨平台客户端 --- Flutter 客户端支持 Android、iOS、macOS、Windows、Linux、Web 六端

  • 🌐 Web 界面 --- 完整版内置 Web 前端,开箱即用

  • 🔑 JWT 认证 --- 双 Token 机制(Access Token + Refresh Token),支持多设备管理

  • 📡 网络歌曲 & 电台 --- 支持添加网络音频 URL 与电台流,播放时透明缓存到服务端

  • 🔌 完整 REST API --- 内置 Swagger 文档,方便集成和二次开发

  • ⚡ 轻量高效 --- Go 编写,CGO-free,无外部依赖,适合 NAS / 树莓派等低功耗设备

🔺各平台客户端下载地址:https://songloft.hanxi.cc/issues/8.html

Songloft部署

🔺本次部署我依然以极空间NAS为例,打开文件管理器,在Docker目录下新建一个"songloft"的文件夹。

🔺然后点击极空间NAS的"Docker"应用,点击【Compose】 > 【新增项目】。

🔺在"创建项目"页面自定义项目名称,"存储位置"需要手动选择我们前面新建的songloft文件夹,勾选下方的"所有合规文件夹添加最大读写权限",最后输入以下 Docker Compose 配置信息后点"创建"按钮:

复制代码
services:
  songloft:
    image: songloft/songloft:latest
    container_name: songloft
    restart: always
    ports:    
      - "58091:58091"     #项目打开端口,冒号前面请勿冲突
    volumes:
      - /path/to/music:/app/music    #映射音乐文件夹的绝对路径
      - ./data:/app/data
    environment:
      - ADMIN_USERNAME=Stark    #自定义用户名
      - ADMIN_PASSWORD=12345    #自定义用户密码
      - LISTEN_PORT=58091

以上代码需要修改的地方就看我给到的中文注释,其它的直接保持默认即可。镜像的拉取需要自行解决网络问题,粘贴到自己的NAS这边之前建议使用AI工具优化一下,以防止格式问题造成的部署失败。

🔺项目部署之后可以看到容器显示"运行中",就说明可以使用了!

Songloft体验

🔺项目的打开方式没什么特别,直接浏览器地址栏输入【IP:端口号】即可,如果你有外网使用需求,也可以直接通过项目自带的"远程访问"一键打开,当然这个也是极空间用户的专属福利了。

🔺首次打开需要登录,在这里输入我们部署时候自定义的用户名和密码,点击"登录"就可以进入项目主界面了!

🔺打开后里面还没有扫描出我们映射的音乐文件夹,我们需要在"设置"手动扫描。

🔺在"设置"里选择"音乐库管理",直接点击扫描即可。我这里已经扫描完成了,990首歌曲全部扫描成功,实测不管是速度还是准确率都相当的高。

🔺在回到首页就能看到自己的歌曲了,整个界面简洁与清新,整体观感非常舒适。

🔺我收集的都是无损音乐,它全都正常识别,包括所封面、艺术家、专辑等这些ID3标签信息也会正常显示。

🔺歌单都是大图模式,视觉冲击力很强,浏览体验非常顺畅。

🔺有个很不错的细节,就是它的状态栏会随着我们浏览的比例自动从左侧调整到页面上方,看着顺眼又贴心,完全符合用户的使用直觉。

🔺播放界面也非常的纯粹,歌词也是以居中滚动的方式呈现,给人的感觉反正就是看着舒服,听着沉浸。

进阶玩法

其实作为自托管音乐服务器Songloft已经足够优秀,但它的功能远不止如此。

🔺想要进一步体验Songloft的强大功能,我们需要打开它的"设置--扩展--插件商店"。

🔺这里已经有很多官方内置插件,都是非常实用的,比如说能接WebDAV、能接Subsonic,还能自动刮削标签,我们只需一键安装即可。我这里仅演示怎么和让这个项目和XiaoMusic一样,接入小爱音响,我们这里需要用到的是"智能音响"插件。

🔺安装好之后需要打开"外观设置",开启页面中的"智能音响",然后智能音响就会显示在状态栏中了。

🔺打开状态栏的智能音响,点击左上角图像。

🔺这里需要等绿米家账号,建议直接扫码登录。

🔺等绿之后就能在设备列表中发现局域网内的小爱音响,我们直接将它勾选。

🔺回到智能音响首页,点击右上角,将出现的小爱音响选中。

🔺在点击当前页面的设置按钮。

🔺服务器地址就是该项目的打开地址,也就是【本地IP:端口号】。(一般情况下点"自动填充"就能自动为我们填写好)。

🔺另外如果需要和小爱音响对话需要手动开启对话监听和语音口令。

🔺音乐的话,它会自动索引我们给出的音乐文件夹,但是它只显示的是歌单,如果和我一样歌单很多很分散,其实有些不太方便,因为它目前只能添加一个歌单。

🔺可能是我使用的小爱音响不兼容的问题,它虽说成功识别到我的小爱音响,但是无法正常播放,音量调节倒是有反应。

(我使用的这款音箱虽说也不在XiaoMusic的兼容列表,但是使用起来还是没啥问题的,因为是同一个项目的进化,我想作者后期应该会优化这个问题)

最后

Songloft确实是一个非常不错的项目,作为一个本地音乐管理器它就已经够强大了,再加上多客户端的支持以及扩展插件的加入,可以说它现在已经成为了一个名副其实的音乐生态!虽说项目面世的时间还不长,但功能已经丰富到超出预期,作者的更新节奏也非常积极,它的未来还是非常值得期待的!

好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,咱们下期再见!谢谢大家~