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.

mixarr logo

Self-host mixarr

v2.3.5

Music discovery companion for Lidarr

ReleaseOpen SourceGPL-3.0
Docker ComposeCompose file & guide
docker compose up -d
Updated10 hours ago
LanguageTypescript
Setup difficultyModerate
Stars
160
Ports
443 (HTTPS via internal Caddy (primary access, unified image)), 3000 (Direct Node.js HTTP access for reverse proxies (unified image)), 3005 (API port (slim image))
Requires
Lidarr, MariaDB/MySQL, Redis
Docker
ghcr.io/aquantumofdonuts/mixarr
Music Discovery screen showing artist discovery interfaceSubscription Management screen showing automated subscription configurationUniversal Search screen for finding artists across servicesService Connections screen showing connected music servicesSubscription Results screen showing discovered artists ready for reviewUser Management screen for admin account configuration

What is mixarr?

A self-hosted companion for Lidarr that automates finding new music. It links to streaming platforms like Spotify and TIDAL, plus community sources such as Last.fm and ListenBrainz, pulling artists from playlists, charts, and personalized recommendations. Discovered artists go into a review queue before being sent to Lidarr. The tool also offers AI-driven suggestions using OpenAI, Anthropic, Gemini, or a local Ollama instance, plus utilities to clean up missing metadata in your existing library. Deployment is handled through Docker, either as an all-in-one container with MariaDB, Redis, and Caddy included, or as a slim image that connects to your own database and cache. The web interface runs on HTTPS (port 443 in the container) with an optional direct HTTP port for reverse proxies.

Should you self-host mixarr?

mixarr scores 46/100 on selfhost.directory (how scoring works) and ranks #28 of 59 in Music Streaming. It has 160 GitHub stars.

It shipped 16 stable releases in the past year. The latest, v2.3.5, came out on 5 September 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 GPL-3.0-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is koel (75/100, 17 320 stars). It scores higher overall, so compare the two before you pick. See mixarr vs koel side by side.

Features

  • 56 subscription types
  • AI Recommendations
  • Library health tools
  • Multi-service music discovery
  • Review Queue
  • Scheduled automation
  • SkyHook cache warming

mixarr README

How to install mixarr

Install mixarr with Docker

Docker
Environment variables
SESSION_SECRET, BASE_URL

docker run -d
--name mixarr
-p 3443:443
-p 3010:3000
-v ~/mixarr-data:/data
-e SESSION_SECRET="$(openssl rand -hex 32)"
-e BASE_URL="https://YOUR-IP:3443"
ghcr.io/aquantumofdonuts/mixarr:latest

Single-container deployment using unified image.

How to configure mixarr

  • BASE_URLRequired. The full URL to access Mixarr. Used for OAuth redirects.

    Required. The full URL to access Mixarr. Used for OAuth redirects.

  • DATABASE_URLDatabase connection URL for slim image (e.g., mysql://user:pass@your-db:3306/mixarr).

    Database connection URL for slim image (e.g., mysql://user:pass@your-db:3306/mixarr).

  • FRONTEND_URLOptional. If behind a reverse proxy, set this to the public URL.

    Optional. If behind a reverse proxy, set this to the public URL.

  • IPV6_PROBE_HOSTmusicbrainz.orgHost probed at startup over IPv6 to detect broken v6 egress. If the probe fails, Mixarr prefers IPv4 for outbound fetches.

    Host probed at startup over IPv6 to detect broken v6 egress. If the probe fails, Mixarr prefers IPv4 for outbound fetches.

  • MIXARR_SKIP_NETWORK_PREFLIGHTSet to 1 to skip the IPv6 egress probe entirely (e.g. on air-gapped hosts or when you want to force Node's default Happy Eyeballs behaviour).

    Set to 1 to skip the IPv6 egress probe entirely (e.g. on air-gapped hosts or when you want to force Node's default Happy Eyeballs behaviour).

    values: 1

  • REDIS_URLRedis connection URL for slim image (e.g., redis://your-redis:6379).

    Redis connection URL for slim image (e.g., redis://your-redis:6379).

  • SESSION_SECRETRequired. Random string for session encryption.

    Required. Random string for session encryption.

  • TZUTCTimezone for scheduled tasks.

    Timezone for scheduled tasks.

mixarr releases & version history

More in Music Streaming

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…