songloft is a free, open source media & streaming project written in Go and released under Apache-2.0. It has 1,746 GitHub stars, 143 forks and 19 open issues, and was last pushed 16 hours ago. On this registry it ranks #20 of 27 tracked projects in Media & Streaming, with 5 head-to-head comparisons available. It gained 14 stars over the last 3 tracked days.

What is songloft?

What it is

Songloft is a self-hosted music server written in Go under Apache-2.0. It manages music files the user already owns and provides no built-in copyrighted content. The project was renamed from MiMusic at version 2.0, with old GitHub and Docker paths kept as redirects for at least one year.

The problem it solves is organizing, playing, and extending a local or network music library without a commercial streaming service. It targets home servers, NAS devices, and low-power hardware such as Raspberry Pi. Its topics place it in the self-hosted music-server ecosystem alongside Navidrome and Subsonic, with Docker, Docker Compose, WebDAV, and MIoT tags.

Key capabilities

  • It scans local directories and extracts cover art and metadata from common audio formats, including MP3, FLAC, WAV, APE, OGG, Opus, M4A, M4B, WMA, AIF, AIFF, and MKA.
  • It scans video containers such as MP4, MOV, MKV, WebM, AVI, TS, MPG, FLV, WMV, RM, RMVB, and 3GP, detects real video tracks, and renders video in supported clients.
  • It runs JavaScript plugins in a QuickJS sandbox with permissions, health checks, and hot updates for audio sources, metadata, and device control.
  • It provides a Flutter client for Android, iOS, macOS, Windows, Linux, and Web, plus a Kodi plugin client for Xbox, Apple TV, Raspberry Pi, and Android TV.
  • It offers a full server with a built-in Web interface, a lite server without the Web frontend, and a Bundle client with an embedded Go backend for local playback without a separate server.
  • It supports JWT access and refresh tokens, multi-device management, network audio URLs, radio streams, server-side caching during playback, and a REST API with Swagger documentation.

Who uses it and how

  • Home-server and NAS users deploy the Docker image or Go binary to serve a personal music library from local storage.
  • Users connect through the Flutter application, the built-in Web interface, or the Kodi plugin, depending on the device and screen size.
  • Users add network audio URLs or radio streams, and plugin developers extend the server with QuickJS JavaScript plugins.

Getting started

The README points to the Docker image songloft/songloft, Docker Compose, GitHub releases, and binary downloads, with full, lite, and Bundle variants. The project lists a homepage and documentation site at https://songloft.hanxi.cc/.

When to use it — and when not to

Songloft is suitable when the user wants a free, self-hosted server for legally owned music, local files, personal network streams, and extensible playback on home devices. It is not suitable for anyone expecting built-in music, commercial licensing, multi-tenant public services, or a hosted option. Trade-offs include operational responsibility for storage, authentication, plugins, and copyright compliance, while third-party plugins are community-maintained and not distributed by the main repository.

project readme (upstream, from github) — read inline

🎵 Songloft 快速使用指南

简体中文English

Songloft

GitHub License Docker Image Version Docker Pulls GitHub Release Visitors Visitors

🎵 面向个人用户的自托管音乐服务器 — 仅管理你合法拥有的音乐

📣 关于改名:本项目自 v2.0 起由 MiMusic 更名为 Songloft(内核与功能不变,仅品牌升级)。老的 mimusic-org GitHub 组织与 hanxi/mimusic Docker 镜像保留至少一年作跳转,但不再更新。详见 GitHub Releases

🏠 GitHub📥 下载📖 文档💬 问题反馈👥 微信群💬 Telegram 群📣 Telegram 频道📸 截图

💚 纯为爱发电 · 谨防诈骗

Songloft 是完全免费的开源项目,纯粹出于兴趣与热爱开发,与任何商业利益无关:

  • 永久免费 —— 没有任何收费功能、内购或会员
  • 无广告 —— 不含任何广告或商业推广
  • 不接受赞助 / 捐款 —— 官方不设任何收款渠道
  • ⚠️ 谨防诈骗 —— 官方渠道仅有 GitHub 仓库文档站官方微信群Telegram 群Telegram 频道。任何以 Songloft 名义收费、售卖付费版本、代部署收费或索要赞助的行为都与本项目无关;即便在群内,我们也从不向任何人收取任何费用,请勿上当受骗。

✨ 核心功能

  • 🎵 本地音乐管理 — 扫描本地目录,自动提取 MP3/FLAC/WAV/APE/OGG/Opus/M4A/M4B/WMA/AIF/AIFF/MKA 等格式的封面和元数据
  • 🎬 视频支持 — 扫描 MP4/MOV/M4V/MKV/WebM/AVI/TS/MPG/MPEG/FLV/WMV/RM/RMVB/3GP 等视频容器并探测真实视频轨,客户端内渲染画面
  • 🧩 JS 插件体系 — 基于 QuickJS 沙箱运行,支持权限模型、健康检查、热更新,可自由扩展音源 / 元数据 / 设备控制等能力
  • 📱 跨平台客户端 — Flutter 客户端支持 Android、iOS、macOS、Windows、Linux、Web 六端
  • 📦 Bundle 本地模式 — 客户端内嵌 Go 后端,无需部署服务器,手机/电脑直接播放本地音乐
  • 📺 Kodi 插件客户端 — 支持 Xbox、Apple TV、树莓派、Android TV 等大屏设备,专为遥控器操作优化,带来流畅的客厅影音体验
  • 🌐 Web 界面 — 完整版内置 Web 前端,开箱即用
  • 🔑 JWT 认证 — 双 Token 机制(Access Token + Refresh Token),支持多设备管理
  • 📡 网络歌曲 & 电台 — 支持添加网络音频 URL 与电台流,播放时透明缓存到服务端
  • 🔌 完整 REST API — 内置 Swagger 文档,方便集成和二次开发
  • 轻量高效 — Go 编写,CGO-free,无外部依赖,适合 NAS / 树莓派等低功耗设备

🖼️ 界面截图

首页 · 桌面端

沉浸式播放器 · 移动端

📸 更多界面(歌曲库、歌单、设置等,含桌面 / 移动端与亮 / 暗双主题)见 界面截图一览

⚖️ 版权与免责声明

Songloft 是一款面向个人用户的自托管工具,定位为帮助用户管理自己合法拥有的音乐文件。在使用本项目前,请务必阅读并理解以下条款:

  • 🚫 不提供任何音乐内容 — Songloft 本身不内置、不分发、不存储任何受版权保护的音乐资源,仅是一个供你管理本地音乐库的开源软件
  • 请仅管理合法来源的音乐 — 用户应仅使用 Songloft 管理自己合法获得的音乐文件,包括但不限于:
    • 自行购买并下载的数字音乐
    • 从实体唱片转录的个人备份
    • 自己创作或录制的作品
    • 公有领域(Public Domain)作品
    • 明确以 CC(Creative Commons)等开源协议授权的作品
  • 🔌 第三方插件免责 — JS 插件由第三方社区维护,主仓库不预置、不分发任何第三方音源插件成品。插件接入的任何网络音源、元数据、歌词内容版权均归原权利人所有。使用网络音源等功能时,用户须自行承担版权合规责任,并遵守所在国家 / 地区的法律法规
  • 🏠 仅供个人非商业使用 — 严禁将本项目用于商业用途、对外公开分发版权内容,或搭建面向不特定多数人的公共服务
  • ⚠️ 责任自担 — 因不当使用本项目(包括但不限于侵犯第三方版权)所引发的任何法律责任、纠纷或损失,均由使用者本人承担,本项目作者及贡献者不承担任何责任
  • 📩 侵权举报 — 如果你是版权持有人,认为本项目代码、文档或官方分发的插件侵犯了你的合法权益,请通过 GitHub Issues 或邮件 ([email protected]) 联系我们,我们将在核实后及时处理。对于第三方社区插件的侵权问题,请直接联系该插件的维护者
  • ™️ 商标声明 — 本项目及内置插件中提到的所有品牌、协议、产品名称(包括但不限于「MIoT」「Bluetooth」「Android」「iOS」「macOS」「Windows」「Docker」等)均归各自商标权人所有。相关名称的出现仅出于互操作和指示性合理使用目的,Songloft 与上述商标持有人无任何关联,也未获得任何形式的授权或背书。详见 NOTICE
  • 🔒 隐私 — 不采集任何用户数据;官方构建仅上报匿名运行统计(版本号、崩溃栈),自编译版本零遥测。详见 PRIVACY.md

💡 我们尊重并支持知识产权保护。如果你喜欢某位艺术家的作品,请通过正版渠道购买或订阅以支持创作者。

📋 版本说明

Songloft 提供三种版本,满足不同使用场景:

版本 后缀 说明 适用场景
🌟 完整版 无后缀 包含 Web 前端,开箱即用 推荐初次使用,访问服务地址即可看到 Web 界面
📦 精简版 -lite 不包含 Web 前端,体积更小 配合 Flutter 桌面/移动客户端,或前后端分离部署
📱 Bundle 版 bundled- Flutter 客户端内嵌 Go 后端 无需部署服务器,手机/电脑直接播放本地音乐

💡 推荐:初次使用直接下载默认的 完整版,开箱即用,无需额外配置前端。 想在手机或电脑上独立使用,无需部署服务器?可下载 Bundle 版

🖥️ 平台支持

📦 二进制文件

🌟 完整版(推荐)

包含 Web 前端,开箱即用:

平台 架构 下载链接
🐧 Linux x86_64 songloft-linux-amd64
🐧 Linux ARM64 songloft-linux-arm64
🐧 Linux ARMv7 songloft-linux-armv7
🍎 macOS x86_64 (Intel) songloft-darwin-amd64
🍎 macOS ARM64 (Apple Silicon) songloft-darwin-arm64
🪟 Windows x86_64 songloft-windows-amd64.exe
🪟 Windows ARM64 songloft-windows-arm64.exe
📦 精简版(Lite)

不包含 Web 前端,体积更小:

平台 架构 下载链接
🐧 Linux x86_64 songloft-linux-amd64-lite
🐧 Linux ARM64 songloft-linux-arm64-lite
🐧 Linux ARMv7 songloft-linux-armv7-lite
🍎 macOS x86_64 (Intel) songloft-darwin-amd64-lite
🍎 macOS ARM64 (Apple Silicon) songloft-darwin-arm64-lite
🪟 Windows x86_64 songloft-windows-amd64-lite.exe
🪟 Windows ARM64 songloft-windows-arm64-lite.exe
📱 Bundle 版(内嵌后端,无需服务器)

客户端内嵌 Go 后端,首次启动点击「使用本地模式」选择音乐目录即可使用:

平台 架构 下载链接
🤖 Android ARM64 + ARMv7 songloft-bundled-android-arm64-v8a.apk
🐧 Linux x86_64 songloft-bundled-linux-x64.tar.gz
🍎 macOS ARM64 (Apple Silicon) songloft-bundled-macos-arm64.dmg
🪟 Windows x86_64 songloft-bundled-windows-x64.zip
🍎 iOS ARM64 songloft-bundled-ios-arm64.ipa

🐳 Docker 镜像

🌟 完整版(推荐)
平台 下载链接
🐧 Linux x86_64 songloft-docker-linux-amd64.tar
🐧 Linux ARM64 songloft-docker-linux-arm64.tar
🐧 Linux ARMv7 songloft-docker-linux-arm-v7.tar
📦 精简版(

readme truncated — read the full docs on github

Frequently asked questions

Is songloft free to use?

songloft is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does songloft do?

🎵 插件化、无广告的免费音乐服务器

What is songloft written in?

songloft is primarily written in Go. Its source is publicly available at https://github.com/songloft-org/songloft, and it has 1,746 GitHub stars.