NAS 里吃灰的几百张专辑,被一个国产音乐服务器盘活了

NAS 上的音乐文件夹大概是我硬盘里最尴尬的角落:几百张专辑躺在那里,SMB 挂载能放,但没有封面墙、没有歌单、手机上更是没法优雅地听。之前折腾过几个音乐服务器,要么配置繁琐,要么客户端拉胯。这两天翻到一个国产项目 Songloft,试着在 NAS 上跑了一晚上,感觉这个”为爱发电”的项目意外地完成度很高,值得写一篇。

Songloft 桌面端首页界面

是什么

Songloft 的前身叫 MiMusic,从 v2.0 开始改名,作者是国内开发者 hanxi。定位很明确:面向个人用户的自托管音乐服务器,只管理你自己合法拥有的音乐文件。项目今年 5 月底才首次开源,两个月不到已经 1200+ star,最新版本 v2.11.0 是 7 月 22 日发的,提交记录几乎天天在动,是那种肉眼可见的活跃。

技术栈也对我胃口:后端 Go 写的,CGO-free 单二进制,数据库用 SQLite,没有任何外部依赖(想要更详细的音频参数才需要装个 ffprobe)。前端是 Flutter,官方客户端直接覆盖 Android、iOS、macOS、Windows、Linux、Web 六个端,还有一个 Kodi 插件伺候电视盒子和树莓派这类大屏设备。Apache-2.0 协议,商用友好级别的开源。

为什么是它,而不是老牌选手

音乐服务器这个赛道其实不缺选手,Navidrome、Jellyfin 都能干。但 Songloft 有几个点戳中了我:

一是全家桶是官方自己做的。很多老牌服务器本体很稳,但客户端全靠第三方,质量参差不齐还经常弃坑。Songloft 的六端客户端和服务端是同一批人维护,界面风格统一,亮暗双主题,移动端还有带歌词的沉浸式播放页——这在自托管项目里算稀有物种。

Songloft 移动端沉浸式播放器

二是 JS 插件体系。它内置了一个基于 QuickJS 的沙箱插件引擎,带权限模型、健康检查和热更新,可以扩展音源、元数据抓取、设备控制这些能力。注意主仓库不预置任何第三方音源插件,社区插件的版权合规要自己拿捏,但这个架构本身给折腾留足了空间。

三是 Bundle 本地模式。客户端里直接内嵌了 Go 后端,不部署服务器也能当本地播放器用。这个设计对”先试试再决定要不要上 NAS”的人很友好。

另外它支持网络歌曲和电台流,播放时会透明缓存到服务端,Home Assistant 用户还能一键装加载项。扫描器支持 MP3/FLAC/WAV/APE/OGG/M4A 等一大票格式,自动提取封面和元数据。

怎么跑

NAS 上 Docker Compose 三分钟的事:

services:
  songloft:
    image: songloft/songloft:latest
    container_name: songloft
    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

起来之后浏览器开 58091 端口就是完整的 Web 界面,指一下音乐目录开扫,封面墙和元数据就自动出来了。手机再装个官方客户端填上服务器地址,认证走 JWT 双 Token,支持多设备管理。

Songloft 歌曲库暗色主题界面

有什么坑

试下来几个要注意的地方,都是文档里明说的:

默认账号是 admin/admin。只适合本地测试,只要有一丝可能暴露到外网,密码必须改强。另外别用 -password 命令行参数传密码——它会留在 shell history 和进程列表里,老老实实用环境变量。

精简版不带 Web 前端。下载二进制时注意别拿了 -lite 版,那个必须搭配 Flutter 客户端用。macOS 直接跑二进制的话还要手动解除隔离属性(xattr 那套)。

命令行参数只认单横杠。习惯性敲 --help 会碰壁,得用 -help,Go 标准库 flag 的老规矩。

版权这条线要自己守。项目本体不内置任何音源,第三方插件由社区维护,用网络音源产生的合规责任在用户自己。还有一点作者反复强调:这项目完全免费、不接受任何赞助,遇到收费的都是骗子。

Songloft 歌单详情页

小结

一个开源两个月、star 破千、几乎日更的国产音乐服务器,单二进制部署,官方六端客户端齐活,还留了插件接口——就算你已经在用别的方案,也值得把它加进观察列表。至于我,NAS 里那几百张专辑总算有了个像样的门面,下一步打算研究下它的插件工具链,看看能玩出什么花来。

项目地址:github.com/songloft-org/songloft,文档站在 songloft.hanxi.cc。

发表评论