Skip to content

[music] 0.1.0

Choose a tag to compare

@lmdevv lmdevv released this 11 Oct 14:24
· 75 commits to main since this release
4007541

The first release of [music]: self-hosted music for people and agents.

docker run -d --name music -p 8080:8080 -v music-data:/data -v /path/to/music:/music:ro \
  -e PUBLIC_URL=http://localhost:8080 ghcr.io/lmdevv/music:0.1.0

Open http://localhost:8080, create the admin account, and add /music as a library.

What's in it

  • One container (linux/amd64, linux/arm64) with self-hosted Convex, the media service, the web app, and Caddy on one port; a NixOS module that runs it.
  • Library scan of your existing files and tags, watched for changes, with artwork.
  • Web app for desktop and phone, light (Apple Music feel) and dark (Spotify feel): home, albums, artists, songs, search, playlists, likes, history, Now Playing, queue, command menu (⌘K), settings, and admin.
  • Lossless and gapless playback: FLAC in fragmented MP4 through a Media Source Extensions engine, measured sample-accurate in Chromium and within one sample in Firefox; AAC for data saver; HTML audio fallback.
  • Live handoff and remote control between your devices.
  • Multi-user accounts with invites, shared or private libraries, and API keys.
  • The music CLI generated from the command registry, and an agent skill in skills/music.

Demo videos

music-demo-desktop.mp4 (1 min): first-run setup, real scan, play, Now Playing, search, command menu, like, playlist, API key, dark mode. music-demo-phone.mp4: the same account on a phone while the desktop plays. Demo music is CC licensed; credits in docs/demo-music.md.

Known gaps

  • Safari and iOS are untested. Firefox and Chromium are tested.
  • The first play of an uncached lossy file waits for its transcode (a few seconds). The next song is prepared ahead.
  • The NixOS module runs the container rather than native systemd units.
  • No lyrics, offline downloads, or native apps yet. Those come in V1.