Aurral: Self-Hosted Music Discovery for Your Lidarr Stack
You can quit Spotify and keep your library with Lidarr — but until recently, there was no good way to discover new music without going back to an algorithm owned by a streaming giant. That gap is exactly what Aurral fills. It's a self-hosted music discovery layer that sits on top of your existing Lidarr setup, and after passing 800,000 Docker pulls on its way to a million, it just shipped a big 2.5.0 release. Here's what it does and how to get it running.
[!TIP]
Aurral is a companion, not a replacement — you still need Lidarr doing the actual library work. If you don't have that yet, set it up first.
Why Self-Hosted Music Discovery Matters
Ask anyone who left Spotify what they miss, and it's rarely the playback. Navidrome, Plex, and Plexamp handle that fine. What they miss is the discovery — the Release Radar, the "because you listened to" queue, the feeling that something new shows up without you hunting for it.
The *arr stack solved acquisition years ago. Lidarr grabs albums you already know about and files them neatly. But telling you what to listen to next? That part stayed locked inside Spotify's recommendation engine, and honestly, that was the last hook keeping a lot of people subscribed.
It's the same pattern I ran into when I replaced ChatGPT with local models — every subscription you leave behind leaves a hole, and the open-source world eventually fills it (Open Source ChatGPT Alternatives You Can Self-Host). Aurral is that hole-filler for music: personalized recommendations, trending tracks, tag-based exploration, scheduled playlist flows, and even Spotify playlist imports — all running on your own server, pointed at your own library.
What You Need
- A Linux box or home server with Docker and Docker Compose
- A working Lidarr instance with some artists in it
- Your media directory mounted the same way Lidarr mounts it
- Optional but recommended: Navidrome or Plex for actual playback
- About 20 minutes
Step-by-Step: Getting Aurral Running
Step 1 — Run the Container
Create a docker-compose.yml like this:
services:
aurral:
image: ghcr.io/lklynet/aurral:latest
restart: unless-stopped
ports:
- "3001:3001"
environment:
- PUID=1000
- PGID=1000
volumes:
- ${MEDIA_ROOT:-/srv/media}:/data
- ./config:/config
Then bring it up:
docker compose up -d
The image lives on GitHub's container registry (ghcr.io), MIT licensed, and the project is under active daily development — the repo shows commits basically every day.
Step 2 — Get the Paths Right
This is the one step people rush and then wonder why downloads never show up. The MEDIA_ROOT volume must be the same host path that Lidarr already mounts. Aurral, Lidarr, and your download clients all need to see your media tree identically — if Lidarr sees /data/music and Aurral sees /srv/media/music, file handoffs break quietly.
Set Aurral's Downloads Folder to a container path like /data/downloads/aurral, and give that same mapping to Navidrome or Plex so playback finds the files too. The project's docs have a whole page on filesystem layout — read it once, save yourself an hour.
Step 3 — Connect Everything and Start Discovering
Open http://localhost:3001, create your admin account, and point Aurral at your Lidarr API key. From there:
- Connect Last.fm or ListenBrainz so recommendations have listening history to work with
- Set up playlist flows — scheduled queries that pull new releases into rotating playlists automatically
- Import your Spotify playlists if you're migrating, or adopt discover-style playlists as they generate
- Optionally wire up yt-dlp, slskd, or Usenet clients so requests turn into actual downloads without you touching Lidarr's UI
When it's done, the loop looks like this: Aurral discovers and queues, Lidarr acquires and organizes, Navidrome or Plex plays. Three small services, zero subscriptions.
Common Pitfalls
- Downloads never appear in your library? Almost always a path mismatch. Lidarr and Aurral must agree on container paths for the same host folders — check both compose files side by side.
- Port 3001 already taken? Change the left side of the port mapping (
3002:3001) — don't touch the container side. - Recommendations feel random? They improve with scrobble history. Connect Last.fm or ListenBrainz and let it cook for a week or two.
- Want the newest features? There's a
nightlytag, but the project itself warns it's less stable than releases. For anything you actually rely on, stick withlatest. - Expecting Aurral to stream music itself? It manages discovery and playlists; playback goes through Navidrome or Plex integrations.
Alternative Open-Source Options
- Navidrome — the streaming half of this stack. Fast, lightweight Subsonic-compatible server that serves your library to phone and desktop apps. Pair it with Aurral and you won't miss Spotify's player.
- Jellyfin — if you want music, movies, and TV in one self-hosted umbrella, Jellyfin does it all, though its music features are broader than deep.
- ListenBrainz — MusicBrainz's open scrobbling service. It remembers what you play without handing that data to a corporation, and feeds it back into tools like Aurral.
Conclusion
Self-hosted music used to mean giving up discovery — you kept your files but lost the "here's something you'll like" magic. Aurral closes that gap on your own hardware: recommendations, playlist automation, and request management wrapped around the Lidarr stack you may already run. One more piece of your digital life moved back where it belongs.
If you're building out a home server anyway — maybe you already run local AI like Ollama — a music stack is a natural next resident.
Try It
Spin up the container, connect Lidarr, and let one playlist flow run for a week. If you come back to a queue of albums you actually love — with no monthly fee attached — you'll get why this project is blowing up.





