Self-hosted music library

Your music library,
quietly in order.

tagave knows every album you own, down to the pressing. It fixes the tags, files each album where it belongs and plays it on every screen at home.

  • Free and open source
  • Runs on your own server
  • No cloud, no tracking
bash -c "$(curl -fsSL https://raw.githubusercontent.com/xooxoxxo/tagave/main/install-tagave.sh)"

One command on Linux or macOS with Docker Compose 2.20 or later. AGPL-3.0.

Your albums, identified and sorted. Select any screenshot to see it full size.
Highlights

Everything your collection needs, in one app

Bring a messy archive of FLAC and MP3 files. tagave sorts it out, keeps it sorted and makes it a joy to play.

Knows the exact edition

Every album is matched against MusicBrainz and Discogs, down to the pressing and catalogue number. Acoustic fingerprints help when the tags are wrong.

Fixes tags you can undo

Every change comes as a plan you preview, file by file. Nothing is written until you apply it, and any plan can be undone later.

Files albums where they belong

Set your folder naming rules once. Each album moves into its place, and new downloads dropped into an inbox file themselves.

Plays on every screen

Play in the browser, from your phone's home screen or on AirPlay and Chromecast speakers. Music plays in one place, and every device can control it.

Finds what is missing

See incomplete albums, duplicates and new releases from artists you follow. Ask Lidarr for a missing album straight from the artist page.

Mixes like a DJ

Turn on DJ and your queue blends itself, with crossfades that land on the beat. Or open two decks and mix it yourself.

A closer look

Built for big, real libraries

tagave looks after a library of 27,000 albums every day. These are the parts that make it easy.

Identify

Know every album you own

tagave reads your folders, groups the files into albums and finds the exact release of each one. Matches it is unsure about wait for you in a review queue.

  • Matched against MusicBrainz and Discogs, with AcoustID fingerprints
  • Your pressing and catalogue number, with every other edition one tab away
  • Unsure matches reviewed from the keyboard, and your choice sticks
  • Critic scores, a Wikipedia summary and up to three clean genres per album
  • Artist pages with a short bio, the full discography and similar artists
  • Cover art from your own files first, then the Cover Art Archive
Tag

Preview every change before it happens

A tag plan shows each file and field, the value it has now and the value it would get. You decide what is written.

  • Nothing is written until you apply
  • The audio is checked before and after each write, and a mismatch stops the job
  • Any plan can be undone from the journal
  • Lock a field to keep your own value through every fix
  • Reads and writes MP3, FLAC, M4A, ALAC, Ogg, Opus, WAV and AIFF
Organize

A tidy folder for every album

Write your folder and file naming rules, or let tagave read them from your library. From then on, everything lands in its place.

  • Apply a plan and the album moves to its folder, with its covers, cue sheet and logs
  • Drop new albums into an inbox folder, and confident matches file themselves
  • Move stray songs into the right album, with every new name shown first
  • Split a whole album stored in one FLAC into one lossless file per track
  • Rejoin compilations that were filed one folder per artist
  • No file is ever overwritten, and every move can be undone
Collect

See what is missing, then get it

Once your albums are identified, tagave knows what is incomplete, what you have twice and what you do not have yet.

  • Incomplete albums name the missing tracks
  • Duplicates listed together, so you can keep the best copy
  • New releases from the artists you follow
  • Ask Lidarr for a missing album from the artist page
  • Play a missing album on your streaming service in one tap
  • Sync your Discogs collection, so vinyl and CDs sit next to your files
Listen

A player worthy of your library

Turn on the player and tagave becomes your music server. Everyone at home gets their own queue, likes and listening history.

  • A queue that follows you from your desk to your phone
  • Installs to your phone's home screen and plays with the screen locked
  • Casts to AirPlay and Chromecast speakers and TVs
  • Start on your phone, then control it from your laptop
  • Playlists you can share and build together
  • Likes for songs, albums and artists, in step with your Subsonic apps
  • Scrobbles to Last.fm and ListenBrainz
  • Colours that follow the cover, and a glow that moves with the music
DJ

Let the party mix itself

The DJ module measures each song's tempo, beats and quiet ends on your server. Then it blends your queue the way a DJ would.

  • Simple mode: crossfades that land on the beat and ease into the next tempo
  • Songs from one album still play without gaps
  • Advanced mode: two decks with waveforms, pitch, sync, filter, EQ and echo
  • Auto mix runs the decks for you
Made for your home server

Yours, and it looks after itself

For the whole household

Invite people with a link and give each one a role: owner, editor or listener. Sign in with a password, a passkey or your own login service, such as Authentik or Zitadel.

Private by design

Your library and your listening stay on your server. tagave only asks public music databases about your albums, and there is no telemetry.

Looks after itself

Updates are signed, take a backup first and roll back on their own if something fails. A music share that drops out is noticed and reconnected.

Install

Up and running in minutes

One command sets everything up in ~/tagave. Running it again is safe.

bash -c "$(curl -fsSL https://raw.githubusercontent.com/xooxoxxo/tagave/main/install-tagave.sh)"

Docker Compose 2.20 or later, on Linux or macOS.

  1. Run the installer

    Tell it where your music lives.

  2. Open tagave

    Go to http://localhost:3100 and create your account.

  3. Add your music

    Enter /mnt/music as the scan root. Identifying starts right away.

Early software, used every day

It runs one real library every day. Read the operations guide before you trust it with anything you cannot re‑rip.

27,000albums
240,000files
Dailyuse

Questions

What is tagave?

A self-hosted app for the music you own. It identifies every album, fixes tags through plans you preview, files albums by your naming rules and plays them at home and on your phone.

Is it a music player?

Yes, if you want one. Turn on the player and tagave plays in the browser, on your phone and on AirPlay or Chromecast speakers. It comes with Navidrome, so Subsonic apps work too.

Happy with Plexamp, Jellyfin or Roon? Keep them. tagave gets the tags under them right.

Will it change my files?

Only when you let it. Your music is mounted read-only unless you install with --music-writable.

Tag changes, moves and splits always show a preview first. Each one is journalled and can be undone. No file is ever overwritten. Files you delete, and originals you split, go to a trash first.

Can it download music?

Not by itself, but it works with Lidarr. Ask Lidarr for a missing album from the artist page, and tagave files the download by your naming rules.

Can my family use it?

Yes. Invite people with a one-time link and give each one a role. Everyone gets their own queue, likes, playlists, listening history and scrobbling.

Does it need the cloud or an account?

No. It runs in Docker on your own machine, and your library and accounts stay there.

It looks things up on MusicBrainz, Cover Art Archive, Wikipedia, Wikidata and ListenBrainz, plus Discogs and AcoustID if you add keys. Twice a day it checks GitHub for new tagave releases, sending nothing about you. You can turn that off in Settings › Updates. There is no telemetry.

What does it cost?

Nothing. It is open source under the GNU AGPL-3.0. The tag writer runs mutagen as a separate process.

Which formats does it handle?

It reads and writes tags in MP3, FLAC, M4A and ALAC, Ogg, Opus, WAV and AIFF. APE and WavPack are read only for now, and albums from a CUE sheet get album-level fields only.

Put your music library in order tonight

One command installs it. Point it at your music, and tagave starts identifying right away.