lefteros_by SomniusX
EL ↗Say hello

LEFTEROS / PERSONAL ARCHIVE

Beta

Mus-Eq — a music server and player you run yourself

7 November 2026 / Lef

Mus-Eq is a music server and player you run yourself. A small Rust server holds your library and serves it over one documented API. A web player built on Webamp, with the classic Winamp look, and an early Android app talk to it. It's open source, under MIT or Apache-2.0.

It's still early and still changing. The server and the web player work; I've tried them locally, in a headless browser and from a phone at home over the same network; not yet with Podman or on a large library.

The Mus-Eq web player with Webamp

What works today

  • Library: scan a folder, read tags, search that ignores accents and case (Greek included), streaming with Range.
  • Web player: Webamp, login, search, playlists, skin upload and picker.
  • Playlists that grow by themselves: when a playlist ends, tracks by artists it doesn't have yet, in the same genre, are added from your own library.
  • Duplicates: found by audio fingerprint, with a suggestion for which copy to keep. Nothing is ever deleted.
  • Tag suggestions: from MusicBrainz, and from AcoustID if you bring your own key. They change the database only if you accept them; audio files are never rewritten.
  • Radio: a station list with search and a check for which stations are live (a Greek list is included), and a radio made from your own files. Transcoding to opus, mp3 or aac while it plays.
  • Android app (early): search, playlists, radios, stations, background playback, and offline tracks checked against the server's size and SHA-256.

Greek search without the accent in the web playerThe Greek station list in the web player

Greek search with the accent left out, and the Greek station list.

Third-party programs, only when you say so

Mus-Eq doesn't include ffmpeg, yt-dlp or deno. When one is needed, the server shows you what it will download, from where, how big it is, why and under which licence, and waits for you to confirm. The file is checked against a SHA-256 pinned in the release before it's used. If you already have your own ffmpeg, that one is used and nothing is downloaded.

The web player shows what it would download for ffmpeg before the confirm button

The Android app

It's a debug build only, which you build from the android/ folder, and I've tried it on one phone (a OnePlus 13) at home. There I tested by hand: offline tracks play with the server stopped, a damaged file is repaired by "Check pinned copies", and the token is stored encrypted. With the battery exemption on, it played about 35 minutes with the screen off; I haven't run a full hour.

A library radio in the Android appStations in the Android appThe app asks before downloading deno

What isn't ready or hasn't been checked

  • Clients for Windows and Linux, skins on Android, live radio from the phone's mic: not built yet.
  • Track titles on the radio from your own files have tests, but haven't been tried in VLC or a browser yet. A radio is running for 24 hours and has no result yet.
  • HTTPS hasn't been tried with a real certificate.
  • Fetching from YouTube Music or Spotify is off by default and has never run against the real services.
  • The downloads for ARM haven't been run.

The full list, phase by phase, is in the roadmap.

How to try it

With Docker: make a .env with your token, put music in the music folder and run docker compose up --build. The player opens at http://127.0.0.1:8080/. All the details are in the README. Issues for bugs, ideas and stations are open on GitHub.

Thanks and licences

Mus-Eq is under MIT or Apache-2.0, your pick. The player is Webamp (MIT), and the Greek station list comes from Constantinos's Tray-FM (Unlicense). All third-party software is listed in THIRD_PARTY.md.

Posts