Aurral is a self-hosted music discovery app for Lidarr users. It helps you find new artists, request albums, track queue progress, build scheduled discovery flows, import playlists, and keep all of that organized without dumping generated files into your main music library.
It is built for people who love discovering music and want that discovery loop to feel intentional, visual, and connected to the library they already maintain.
- Docker image
- Flows and Playlists guide
- Spotify import helper
- Discord community
- Contributing guide
- Development notes
- Discovers artists from your library, listening history, tags, trends, and related artists.
- Searches artists and albums, then adds them to Lidarr with sane defaults.
- Shows request, download, queue, import, and failure status from Lidarr.
- Gives every user their own discovery account and preferences.
- Builds scheduled flows: dynamic playlists that refresh on your schedule.
- Imports static playlists from Aurral JSON, simple track lists, and Spotify-style exports.
- Downloads flow and playlist tracks into a dedicated Aurral folder.
- Reuses existing files by hardlink or copy when configured.
- Publishes generated flow libraries and smart playlists to Navidrome.
- Supports local users, permissions, optional local-network auto-login, and reverse-proxy auth.
- Sends Gotify notifications or custom webhooks when discovery or flows finish.
Aurral only needs Lidarr to get started, but it shines with a fuller music stack:
| App or service | What it unlocks |
|---|---|
| Lidarr | Library management, artist and album adds, queue/history status, monitoring, and imports. |
| Last.fm | Personalized recommendations, artist similarity, tags, genre search, and richer flows. |
| ListenBrainz | Optional listening-history source for users. |
| Soulseek | Downloads for flows and imported playlists. |
| Navidrome | Streaming and a separate Aurral flow library. |
| Ticketmaster | Local shows from artists Aurral thinks you may care about. |
Last.fm is recommended, not required. Without it, Aurral still has fallback discovery, but personalized recommendations and tag exploration are much stronger with a Last.fm API key.
Create a docker-compose.yml:
services:
aurral:
image: ghcr.io/lklynet/aurral:latest
restart: unless-stopped
ports:
- "3001:3001"
environment:
- DOWNLOAD_FOLDER=${DL_FOLDER:-./data/downloads}
volumes:
- ${DL_FOLDER:-./data/downloads}:/app/downloads
- ${STORAGE:-./data}:/app/backend/dataStart Aurral:
docker compose up -dOpen:
http://localhost:3001
Then follow the onboarding flow.
You can keep your paths in a .env file next to docker-compose.yml:
DL_FOLDER=./data/downloads
STORAGE=./dataSTORAGE keeps Aurral's database and settings. DL_FOLDER keeps generated flow and playlist files.
Onboarding asks for:
- An admin account
- Lidarr URL and API key
- Optional Navidrome connection
- Optional Last.fm username and API key
After onboarding, use Settings to finish anything you skipped.
The most important first settings are:
Integrations -> Lidarr: confirm quality profile, tag, monitoring, and search-on-add defaults.Integrations -> Last.fm: add an API key for better recommendations.Integrations -> Subsonic / Navidrome: connect Navidrome if you want flow playback there.Account: set your own Last.fm or ListenBrainz username.Discover: choose how often recommendations refresh and how adventurous they should be.
Discover is Aurral's home screen. It brings together personalized recommendations, global trends, tags, recent releases, recently added artists, and local shows when Ticketmaster is configured.
Discovery is library-aware: Aurral tries to recommend artists you do not already have. You can block artists or tags, give feedback on recommendations, and reorder or hide Discover sections per user.
Discovery modes:
| Mode | Best for |
|---|---|
| Safer | Familiar, high-confidence recommendations. |
| Balanced | A mix of familiar picks and exploration. |
| Deeper | More adventurous recommendations. |
Search helps you find artists and albums, then add them to Lidarr. Artist pages show library status, release groups, tags, similar artists, previews, and album actions.
When adding artists or albums, Aurral uses your Lidarr defaults unless you customize the add action.
Library is a fast visual browser for artists already in Lidarr. You can search, sort, open artist pages, and see which artists are monitored.
Requests turns Lidarr queue and history into a friendlier status view. It helps you see what is processing, what failed, and what became available.
When Ticketmaster is configured, Aurral can show nearby concerts for recommended, trending, and library-adjacent artists. You can use automatic location lookup or enter a ZIP/postal code.
Blocklist keeps unwanted artists and tags out of discovery. Use it when recommendations keep drifting into music you know you do not want.
Flows are dynamic playlists that refresh on a schedule. Imported playlists are static tracklists that keep retrying the same tracks.
Both download into Aurral's own folder:
/app/downloads/aurral-weekly-flow
They do not write directly into your main music library.
Each flow can control:
- Track count
- Update days and hour
- Source mix
- Deep Dive
- Focus tags
- Focus related artists
- Enabled or draft state
Flow sources:
| Source | What it uses |
|---|---|
| Discover | Aurral recommendations, excluding library artists. |
| Library | Artists already in your library. |
| Trending | Broader trending pools, excluding library artists. |
| Focus | Tags and related artists you choose. |
Aurral accepts exported Aurral playlists, simple JSON track lists, playlist bundles, and Spotify-style JSON converted from playlist exports.
Minimum track shape:
{
"artistName": "Burial",
"trackName": "Archangel"
}For a deeper guide, including accepted JSON formats and flow source behavior, read flows-and-playlists.md.
If you want generated flows to appear in Navidrome:
- Mount the same host download folder into Aurral at
/app/downloads. - Set
DOWNLOAD_FOLDERto that host path. - Configure Navidrome in
Settings -> Integrations -> Subsonic / Navidrome. - Let Aurral create/update the
Aurral Weekly Flowlibrary and smart playlists.
Recommended Navidrome setting:
ND_SCANNER_PURGEMISSING=alwaysThat helps Navidrome clean up old flow entries after rotations.
Aurral can avoid redownloading tracks it already has or tracks Lidarr already has.
Worker setting:
| Mode | Meaning |
|---|---|
| Download | Always download a fresh copy into the Aurral flow library. |
| Hardlink | Reuse a matching Aurral or Lidarr file with a hardlink, falling back to copy. |
| Copy | Copy a matching Aurral or Lidarr file into the playlist folder. |
To reuse Lidarr files, Aurral must see Lidarr's root directory the same way Lidarr sees it. In Lidarr, find this at Settings -> Media Management -> Root Folders -> Path. If your Lidarr root folder is /data, mount that same host library path into Aurral as /data:
services:
aurral:
volumes:
- /srv/aurral/downloads:/app/downloads
- /srv/music:/data:roAurral creates a local admin account during onboarding. Admins can add users and choose permissions:
- Access flows and playlists
- Add artists
- Add albums
- Change monitoring
- Delete artists
- Delete albums
Aurral also supports:
- Optional local-network auto-login for single-admin home setups
- Reverse-proxy authentication for SSO setups
- Admin password reset from the command line
Reset an admin password:
npm run auth:reset-admin-password -- --password "new-password"Generate a random admin password:
npm run auth:reset-admin-password -- --generateMost setup happens in the web UI. These are the deployment variables regular users are most likely to need:
| Variable | Why you might set it |
|---|---|
DOWNLOAD_FOLDER |
Host path Navidrome should use for the Aurral flow library. |
PUID / PGID |
Run the container as the same user/group that owns your mounted folders. |
TRUST_PROXY |
Set when Aurral is behind a reverse proxy and needs correct client IPs. |
AUTH_PROXY_* |
Use only if your reverse proxy handles login for Aurral. |
SOULSEEK_USERNAME / SOULSEEK_PASSWORD |
Optional fixed Soulseek credentials instead of generated/rotated ones. |
AURRAL_VERBOSE_LOGS |
Turn on fuller server logs while troubleshooting. |
Example:
environment:
- PUID=1000
- PGID=1000
- DOWNLOAD_FOLDER=/srv/aurral/downloadsBack up:
/app/backend/data- Your
/app/downloadshost folder if you want generated playlists to survive rebuilds - Your compose file and
.env
Aurral stores its database, settings, encrypted integration secrets, users, sessions, cache state, and flow jobs under /app/backend/data.
Main library safety:
- Aurral does not directly write into your root music library.
- Artist and album changes go through Lidarr.
- Flows and imported playlists stay in Aurral's generated-download area.
Troubleshooting
- Use the URL Aurral can reach, not necessarily the URL your browser uses.
- In Docker, that is often
http://lidarr:8686if both containers share a network. - Confirm the API key in Lidarr.
- Make sure Lidarr is connected and has artists.
- Add a Last.fm API key for better discovery.
- Set your listening-history username in
Settings -> Account. - Run a manual refresh from
Settings -> Discover. - Check whether your blocklist is too broad.
- Check the Flow worker settings.
- Rotate or set Soulseek credentials.
- Try disabling strict format matching.
- Try MP3 if FLAC matches are scarce.
- Check the job states shown on the Flow page.
- Confirm
/app/downloadsis mounted to a real host folder. - Confirm
DOWNLOAD_FOLDERpoints to that host folder. - Confirm Navidrome can read the same folder.
- Enable missing-track purging in Navidrome.
- Make sure your mounted folders are writable by the container user.
- Set
PUIDandPGIDto match your host folder owner.
Set AURRAL_VERBOSE_LOGS=true, restart Aurral, then check container logs.
Special thanks to the BrainzMash team for the metadata work that helps make Aurral's artist and album discovery feel rich. Their open-source work is available at statichum/brainzmash-hearring-aid.
- Community and questions: Discord
- Bugs and feature requests: GitHub Issues
- Contributor workflow: CONTRIBUTING.md
- Local development: DEVELOPMENT.md
Aurral is released under the MIT License.



