selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Tagr logo

Self-host Tagr

v1.16.2

Self-hosted music metadata editor with web UI

ReleaseOpen SourceAGPL-3.0
Updated9 hours ago
LanguageTypescript
Setup difficultyModerate
MobileResponsive
ThemeDark mode
Stars
236
Port
3000 (HTTP web interface)
Requires
Node.js
Docker
ghcr.io/suitux/tagr
Install with Docker Compose
Main three-panel interface showing folder tree, song list, and metadata editorSearch and metadata editing viewSong change history with revert capabilityExpanded audio player with waveform visualizationCollapsed sidebar playerFolder tree with context menuCustomizable columns dialogUser management interfaceMobile song list viewMobile song detail view

What is Tagr?

Tagr provides a browser-based interface for organizing and editing music file tags. Users point the application at their music directories and gain access to a three-pane layout showing folder hierarchy, track listings, and a detailed tag editor. The software handles over forty metadata fields, supports custom tags, and writes changes directly back to the audio files. An integrated player offers waveform visualization and playback controls, while optional ListenBrainz integration submits listening data. Multiple user accounts with distinct permission levels control who can edit versus only play. The interface adapts to mobile screens with swipe navigation, includes a dark theme by default, and preserves view state in the URL. Deployment options include Docker containers from GHCR or a manual Node.js setup, with SQLite handling data storage.

Should you self-host Tagr?

Tagr scores 48/100 on selfhost.directory (how scoring works) and ranks #16 of 31 in Music. It has 236 GitHub stars.

It shipped 7 stable releases in the past year. The latest, v1.16.2, came out on 27 October 2026. New versions land roughly every 3 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is Beets (77/100, 15 857 stars). It scores higher overall, so compare the two before you pick. See Tagr vs Beets side by side.

Features

  • Album art management
  • Built-in audio player
  • Change history with revert
  • File format support
  • Folder exclusion patterns
  • Library browsing with three-panel layout
  • ListenBrainz scrobbling
  • Listen history and play counts
  • Metadata Editing
  • Multi-language Support
  • Multi-user with roles
  • Star ratings
  • URL-based state

Tagr README

How to install Tagr

Install Tagr with Docker Compose

Docker and Docker Compose
Environment variables
DATABASE_URL, AUTH_SECRET, AUTH_USER, AUTH_PASSWORD, AUTH_URL, MUSIC_FOLDERS, EXCLUDE_FOLDERS, PUID, PGID, TAGR_INSIGHTS, NODE_ENV

wget https://raw.githubusercontent.com/suitux/Tagr/main/docker-compose.yml

openssl rand -hex 32

Edit docker-compose.yml with your AUTH_SECRET, AUTH_USER, AUTH_PASSWORD, AUTH_URL, and music folder mounts

docker compose up -d

Multi-arch images (linux/amd64, linux/arm64) on GHCR

How to configure Tagr

  • AUTH_PASSWORDPassword of the admin account (plain text).

    Password of the admin account (plain text).

  • AUTH_SECRETSecret for signing JWT sessions. Generate with openssl rand -hex 32.

    Secret for signing JWT sessions. Generate with openssl rand -hex 32.

  • AUTH_URLThe public URL of your Tagr instance (e.g., https://your-domain.com).

    The public URL of your Tagr instance (e.g., https://your-domain.com).

  • AUTH_USERUsername of the admin account. Additional users are created from Settings → Users.

    Username of the admin account. Additional users are created from Settings → Users.

  • DATABASE_URLSQLite database path. Use file:/data/tagr.db in Docker or file:./data/tagr.db locally.

    SQLite database path. Use file:/data/tagr.db in Docker or file:./data/tagr.db locally.

  • EXCLUDE_FOLDERSComma-separated folder names, globs or regex patterns to skip, on top of the built-in ones.

    Comma-separated folder names, globs or regex patterns to skip, on top of the built-in ones.

  • MUSIC_FOLDERS/musicComma-separated list of paths to music directories. Defaults to /music if not set.

    Comma-separated list of paths to music directories. Defaults to /music if not set.

  • NODE_ENVproductionNode environment, typically production.

    Node environment, typically production.

    values: production,development

  • PGID1000Group ID for the container process. Defaults to 1000. (Docker only)

    Group ID for the container process. Defaults to 1000. (Docker only)

  • PUID1000User ID for the container process. Defaults to 1000. (Docker only)

    User ID for the container process. Defaults to 1000. (Docker only)

  • TAGR_INSIGHTSSet to false to stop sending Insights (anonymous usage statistics).

    Set to false to stop sending Insights (anonymous usage statistics).

    values: true,false

Tagr releases & version history

More in Audio

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…