Self-hosted music catalogue

Your library,
quietly in order.

A self-hosted catalogue that identifies every album in your archive down to the pressing and corrects tags without breaking anything.

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

Needs Docker with Compose 2.20 or later. Free and open source, AGPL-3.0.

The album grid. Select a screenshot to see it full size.
Why it exists

Players play music. tagave knows what it is.

For a collection you actually own: folders ripped over twenty years, tags from a dozen programs, and a shelf of records next to them.

Identifies to the pressing

Every album is matched against MusicBrainz and Discogs, with acoustic fingerprinting when the tags are wrong or missing. It finds the edition you have, with its catalogue number, and knows that folders named CD1 and CD2 are one release.

Reversible tag correction

Changes are proposed as a plan and previewed file by file before anything is written. Every write is journalled and can be reverted. A field whose correct value is unknown is never blanked, and files are never moved, split or converted.

Gaps and ownership

Incomplete albums, duplicates and missing releases by artists you follow are listed for you. Sync a Discogs collection and the vinyl and CDs on your shelf join the same catalogue as the files.

How it works

Read first. Change gently.

Tag plans

Every change, before it happens.

A plan lists each file, each field, the value it has now and the value it would get, and why. You apply it when it looks right, or change the policy and preview again.

  • Nothing is written until you apply
  • The audio is hashed before and after each write, and a mismatch stops the job
  • Any applied plan can be reverted from the journal
  • Locked fields keep your values through every rewrite
Compilations

One album again, without moving a file.

A compilation filed one folder per artist turns into a row of one-track albums. tagave notices the pieces that share a title and fit together, treats them as one album, and sets the album values for every track in one previewed plan.

  • Nothing on disk moves, and rescans keep the album together
  • Split it back into its pieces at any time
  • Album artist, title and the compilation flag are set for all tracks at once, after a preview
Library care

See what is missing.

Once albums are identified, tagave can tell which ones are short of tracks, which are duplicated across formats or editions, and which releases by artists you follow are not in the library at all.

  • Incomplete albums name the missing tracks
  • Dismiss a gap once and it stays dismissed
  • A review queue for matches it is not sure about
  • Quality flags mark albums whose files still lack MusicBrainz IDs or cover art, which a tag plan and an art fetch fill in
Get started

One command, then a browser.

The installer pulls the published images, asks where your music is, generates the secrets and starts everything in ~/tagave. Running it again is safe.

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

Requires Docker and Docker Compose 2.20 or later, on Linux or macOS.

  1. Run the installer

    Answer where your music lives. Every question also has a flag, so it can run unattended.

  2. Open tagave

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

  3. Add your music

    When the setup asks for a scan root, enter /mnt/music. That is your music folder as the file worker sees it.

Early, and honest about it.

tagave catalogues one real library every day. It has one user so far, so expect rough edges, and read the operations guide before you trust it with anything you cannot re-rip.

27,000albums
240,000files
1user
Questions

What it is, and what it is not.

What is tagave?

A catalogue for a music collection you own. It scans your folders, identifies each album against MusicBrainz and Discogs, shows what is incomplete or duplicated, and corrects tags through plans you preview first.

Is it a music player?

No. Navidrome, Jellyfin, Plexamp and Roon play your music, and they work better when the tags underneath are right. tagave is the part that gets them right.

Will it change my files?

Only their tags, only when you apply a plan, and only after you have seen the preview. Each write is journalled so it can be reverted, and the audio is hashed before and after so a write that touched the audio stops the job.

Files are never moved, renamed, split, converted or deleted. You can also mount your music read-only and use tagave as a catalogue alone.

Does it need the cloud or an account?

No. It runs on your own computer or server in Docker, and your library and account stay there. It talks to the metadata services it uses (MusicBrainz, Cover Art Archive, Wikipedia and Wikidata, plus Discogs and AcoustID if you add keys for them). If you set a release feed under Settings › Updates, it checks that feed for new versions when you open that page or press Check now. Nothing else leaves your server, and there is no telemetry.

What does it cost, and what is the licence?

It is free. The code 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 tags are read but not written yet, and albums that come from a CUE sheet only get album-level fields.