Music Discovery & Management for Lidarr
Mixarr is a free, self-hosted music discovery companion for your *arr stack. It connects to Spotify, TIDAL, Last.fm, Deezer, Plex, and more to automatically discover new artists and add them to Lidarr. Deploy with Docker in minutes. Review queue, automated subscriptions, and AI-powered recommendations included.
Create a docker-compose.yml:
version: "3"
services:
mixarr:
image: ghcr.io/aquantumofdonuts/mixarr:latest
container_name: mixarr
ports:
- "3443:443" # HTTPS Access
- "3010:3010" # Web UI (HTTP)
volumes:
- /path/to/data:/data
environment:
- SESSION_SECRET=replace_with_long_random_string
- BASE_URL=https://YOUR_IP:3443
restart: unless-stoppedRun it:
docker compose up -ddocker run -d \
--name mixarr \
-p 3443:443 \
-p 3010:3010 \
-v ~/mixarr-data:/data \
-e SESSION_SECRET="$(openssl rand -hex 32)" \
-e BASE_URL="https://YOUR-IP:3443" \
ghcr.io/aquantumofdonuts/mixarr:latestNote: Access the web interface at
https://YOUR-IP:3443.
Mixarr offers two Docker image variants:
| Image | Size | Contents | Best For |
|---|---|---|---|
mixarr:latest |
Full stack (API, Web, MariaDB, Redis, Caddy) | Docker, single-container setups | |
mixarr:slim |
API + Web only | Production, Kubernetes, existing infrastructure |
Everything in one container - the examples above use this approach.
Separate containers for better reliability and scalability:
curl -sSL https://raw.githubusercontent.com/aquantumofdonuts/mixarr/prod/docker-compose.slim.yml -o docker-compose.yml
docker compose up -dFor users with existing MariaDB/MySQL and Redis:
docker run -d \
--name mixarr \
-p 3000:3000 -p 3005:3005 \
-e DATABASE_URL=mysql://user:pass@your-db:3306/mixarr \
-e REDIS_URL=redis://your-redis:6379 \
-e SESSION_SECRET=your-secret-here \
ghcr.io/aquantumofdonuts/mixarr:slim- Create Admin Account: Follow the prompts on first launch.
- Global Settings: Go to Settings > Global and ensure
Base URLis set correctly (e.g.,https://192.168.1.10:3443). This is critical for OAuth callbacks. - Connect Lidarr: Go to Settings > Connections and add your Lidarr URL and API Key.
- Add Services: Connect Spotify, Tidal, or Last.fm to start discovering music.
- No-Miss Lidarr Adds: SkyHook cache warming ensures artist adds succeed the first time. No more 503 errors or missing metadata.
- Review Queue: Discovered artists sit in a queue for your approval. No more junk in your library.
- Automated Subscriptions: Sync standard playlists (Top 50), dynamic lists (Discover Weekly), or charts from Last.fm.
- Multi-Service Support:
- Spotify & Tidal: Full integration (Playlists, New Releases, Followed Artists).
- Last.fm: Charts, Tag/Genre feeds, User Library.
- Plex & Jellyfin: Recommendations based on listening history.
- MusicBrainz & ListenBrainz: Metadata and listening habits.
- Discogs & Deezer: Libraries, Playlists, and User Collections.
- AI Recommendations: OpenAI, Anthropic, or Ollama integration for "smart" suggestions based on your existing library.
- Library Health: Tools to analyze and repair your Lidarr library. Fix missing metadata with one click.
Mixarr supports any OpenAI-compatible API endpoint:
| Provider | Base URL | Model Example |
|---|---|---|
| OpenAI (default) | (leave empty) | gpt-3.5-turbo |
| Ollama | http://localhost:11434/v1 |
llama3.2 |
| LiteLLM | http://localhost:4000/v1 |
gpt-4 |
| OpenRouter | https://openrouter.ai/api/v1 |
meta-llama/llama-3-8b |
Note: For local Ollama, no API key is required. For cloud providers, enter your API key.
Configure these in Settings → AI.
| Variable | Description | Default |
|---|---|---|
SESSION_SECRET |
Required. Random string for session encryption. | - |
BASE_URL |
Required. The full URL to access Mixarr. Used for OAuth redirects. | - |
FRONTEND_URL |
Optional. If behind a reverse proxy, set this to the public URL. | - |
TZ |
Timezone for scheduled tasks. | UTC |
| Port | Protocol | Usage |
|---|---|---|
3443 |
HTTPS | Primary Access. Secured via internal Caddy. |
3010 |
HTTP | Direct Node.js access (useful for reverse proxies like Traefik/Nginx). |
| Path | Description |
|---|---|
/data |
Stores SQLite database, Redis persistence, and logs. |
To build from source:
git clone https://github.com/aquantumofdonuts/mixarr.git
cd mixarr
cp .env.example .env
npm install
docker compose -f docker-compose.dev.yml up -d
npm run devThe stack includes Next.js (Frontend), Express (API), Redis (Queue), and MySQL (Dev DB).
GPLv3. See LICENSE for details.
