this post was submitted on 04 Jan 2026
469 points (99.2% liked)

Selfhosted

54413 readers
970 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

  7. No low-effort posts. This is subjective and will largely be determined by the community member reports.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

Hey everyone,

I'm new here! I wanted to share a music search and discovery tool for Lidarr. It plugs into Spotify, TIDAL, Deezer, Last.fm, MusicBrainz, Plex/Tautulli, Jellyfin, and even some AI recommendations.

GitHub: https://github.com/aquantumofdonuts/mixarr/releases/tag/latest

Website: https://aquantumofdonuts.github.io/mixarr/

What it does:

  • Connects to Lidarr and analyzes your existing artists
  • Hooks into Spotify, TIDAL, Deezer, Last.fm, MusicBrainz, Plex/Tautulli, and AI services
  • Finds related/similar artists, new releases, charts, labels, playlists, etc.
  • Gives you a review queue to approve or dismiss discovered artists
  • Automatically adds approved artists to Lidarr with the profile you choose
  • Has a universal search and discovery interface across all services
  • Runs as a web app (Next.js frontend + Express backend) and plays nice with Docker

Why I built it:

I wanted one tool that I could point at my Lidarr library and get a steady stream of relevant artist recommendations.

Basically, make music discovery feel as automated and “infrastructure-y” as the rest of the *arr ecosystem.

Current status:

  • Working with Lidarr + Spotify/TIDAL/Deezer/Last.fm/MusicBrainz + Plex/Tautulli
  • Has subscriptions for different discovery sources (charts, playlists, related & followed artists, etc.)
  • Docker-compose setup available, plus local dev if you prefer
  • Early but usable; I’m actively using it myself and iterating

If you try it, I’d love to hear any feedback! Thanks!

top 50 comments
sorted by: hot top controversial new old
[–] helvetpuli@sopuli.xyz 2 points 1 day ago (1 children)

How hard do you suppose it would be to add integration with Qobuz?

[–] aquantumofdonuts@lemmy.world 2 points 12 hours ago (1 children)

I could look into it. Open an issue on Github if you like, and I'll see what I can do. Thanks!

[–] Noggog@programming.dev 2 points 2 days ago

Awesome!! I had been wanting to make something like this, but never got around to it. Excited to try it out tomorrow

[–] Fmstrat@lemmy.world 29 points 6 days ago (1 children)

Nice. Couple of things:

  • The link in your post is broken 😉
  • Consider doing with Jellyfin anything you've done with Plex. Plex is on it's way out, especially with Fediverse users.
[–] aquantumofdonuts@lemmy.world 21 points 6 days ago* (last edited 6 days ago) (3 children)

I think the link is fixed now?

I will definitely take the Jellyfin suggestion to heart. Mixarr is Plex-centric because that's what I use, but I see that Jellyfin has a large share as well. Thanks for the suggestion!

Edit: Added Jellyfin support. Four new subscription types in the "My Library" subscription preset group. You can pull and rebuild docker (or pull the latest image) to get the changes.

[–] Oddbin@sh.itjust.works 3 points 5 days ago* (last edited 5 days ago)

Bloody hell. From request to implementation in less than 10 hours?! Amazing.

[–] OR3X@lemmy.world 6 points 6 days ago

Might also consider looking into Navidrome support. Not sure if it's even possible but in my experience Jellyfin's music experience is kinda crappy.

[–] Fmstrat@lemmy.world 4 points 6 days ago

Yup, link is golden now.

[–] irmadlad@lemmy.world 7 points 5 days ago* (last edited 5 days ago) (2 children)

Connects to Lidarr

So, I don't run the 'arr stack', and am not interested in downloading, but I would like recommendations on new music. I am running Navidrome which scrobbles to Listenbrainz. How would Mixarr fit into this scenario?

[–] aquantumofdonuts@lemmy.world 4 points 5 days ago* (last edited 5 days ago) (1 children)

I pushed an update that adds a "review only" mode, with Lidarr no longer being a required connection.

https://github.com/aquantumofdonuts/mixarr/releases/tag/v1.1.1

Add any Subscription and set the result handling to "add to review queue". Then, just look in the Review Queue tab for your recommendations.

[–] irmadlad@lemmy.world 2 points 5 days ago (1 children)

Oh snap! Man, you didn't have to do all that just for one dipshit who didn't understand what Mixarr was. I should have done a bit more reading. I feel embarrassed. I will spin this up in an hour or two when I get my chores done. Thank you so much!

[–] aquantumofdonuts@lemmy.world 3 points 5 days ago

Haha no worries! It's a useful feature. No reason to lock the subscription engine behind a Lidarr connection.

But I think I will rest for a while now lol.

[–] curled@lemmy.dbzer0.com 5 points 5 days ago* (last edited 5 days ago) (1 children)

Why would you need this for your scenario? If you're not downloading you can simply check the listenbrainz recommendations in the playlists that it creates for you

[–] irmadlad@lemmy.world 1 points 5 days ago (1 children)

Because I'm a dumbass who didn't really understand what was going on. Kindly disregard the doddering old man.

[–] curled@lemmy.dbzer0.com 2 points 5 days ago

Oh lol I see, it happens

[–] Unrefined@anarchist.nexus 6 points 6 days ago (1 children)

Been playing around with it over the last few days and I love it. I don't use Spotify, but it does a great job at looking at my Plex library and recommending similar artists.

Great job, and thanks!!

[–] aquantumofdonuts@lemmy.world 2 points 5 days ago

Thank you so much! Glad you are enjoying it.

[–] SeventySeven@sh.itjust.works 4 points 6 days ago (1 children)

This is such good news to see this on my frontpage today, I'll definitelybe giving this one a try later. Mad respect and appreciation for the amount of time this must have taken for you to make this. Thank you so much!

[–] aquantumofdonuts@lemmy.world 3 points 5 days ago

I appreciate the positive feedback, hope you find it useful

[–] arthor@lemmy.world 1 points 5 days ago

really liking this.. i've been using SoulSync, but its very buggy, and its mainly a soulseek driven downloader.. lidarr is the way to go,

which trackers are good for music? should i just try and get a red invite?

[–] NarrativeBear@lemmy.world 1 points 5 days ago* (last edited 5 days ago) (1 children)

I am trying to put this behind Haproxy but not having much luck, I keep getting "client sent an HTTP request to an HTTPS server".

Anyone have a clue how to resolve this?

I understand this image has its own caddy reverse proxy, not sure how to bypass that at the moment.

[–] aquantumofdonuts@lemmy.world 2 points 5 days ago (1 children)

Hi, I think you can resolve this by forwarding your reverse proxy to http://mixarr-ip:3010/. That bypasses Caddy altogether. Give that a try, and let me know how it goes.

[–] NarrativeBear@lemmy.world 1 points 5 days ago (1 children)

I am running in docker, I got 443 pointed at 3443.

I saw the 3010 setting in the docs, i just can't figure out if 3010 is pointed at 80?

[–] aquantumofdonuts@lemmy.world 2 points 5 days ago (1 children)

3010 is the web port, on the web container itself (direct connection the the web ui). 3443->443 and 3080->80 are the Caddy ports, which also point to the web ui (just proxied through Caddy). Hopefully that's not too confusing.

[–] NarrativeBear@lemmy.world 1 points 5 days ago* (last edited 5 days ago) (1 children)

Understood, though it's still kicking my butt TBH.

Exposing port 3010:3010 seems to get me a connection refused. But I can still connect to port 3443:443. Both ports are set to TCP.

Guess I'm just exhausted, will play around with it more tomorrow. Thanks for your help.

[–] aquantumofdonuts@lemmy.world 1 points 5 days ago (1 children)

Sure thing. Can you share your docker-compose.yml or docker cli string? Maybe I can help.

[–] Statick@lemmy.world 1 points 5 days ago* (last edited 5 days ago)

First, thank you for making this. Seems very useful.. That being said I'm having the same issue, even after mapping port 80, it redirects to https/443 no matter what I do.

services:
  mixarr:
      container_name: mixarr
      image: ghcr.io/aquantumofdonuts/mixarr:v1.1.0
      ports:
        - 3010:80 # Edit: change 80 to 3000 in order to bypass caddy in the container
        - 3443:443
      volumes:
        - ~/mixarr-data:/data
      environment:
        - SESSION_SECRET=$(openssl rand -hex 32)
        - FRONTEND_URL=https://my-domain:3443/
        - BASE_URL=http://my-domain:3010/
      restart: unless-stopped

Edit: Just realized you have it using caddy, always, and it is set to redirect to 443. You should give people the option to run without caddy in the container. I have my own instance of caddy running, I don't need it built in.

That being said, changing it from pointing to port 80 and instead to port 3000 allows me to access it over http but ends up having authenticaton issues when trying to change settings.

Edit 2: Oh there is a much more robust docker-compose file. I was just going based on the readme. Will give it a try a bit later.

[–] Buck@jlai.lu 1 points 6 days ago

I haven’t figured out how to use the we hook feature to connect to Pushover… maybe it can’t?

[–] immobile7801@piefed.social 1 points 6 days ago (2 children)

Just spun it a up earlier today, looks great! I'm wondering if maybe I'm misunderstanding how listenbrainz subs work. The explore subscription doesn't pull in my users "weekly exploration" playlist, it's totally unrelated songs it's pulling. Although it does appear to pull in accurate listenbrainz artist recommendations

[–] aquantumofdonuts@lemmy.world 1 points 6 days ago (1 children)

Sorry, which subscription specifically were you using? I'll try to reproduce the behavior you're seeing. Might be an easy fix.

[–] immobile7801@piefed.social 1 points 6 days ago* (last edited 6 days ago) (1 children)

Listenbrainz Explore
image
I just noticed there is an explore tab on listenbrainz, is that what this is supposed to pull from? I was thinking it was supposed to pull from the weekly exploration playlist listenbrainz creates.

[–] aquantumofdonuts@lemmy.world 2 points 6 days ago* (last edited 6 days ago) (1 children)

Ok, got it. Yes, this was a funky UI bug. There is now a ListenBrainz preset for Weekly Exploration, which pulls from the user's playlist, and the "type" dropdown is disabled once you select a preset.

Please give it a try, let me know if that fixes the issue you were having. I updated the repo, you can pull and rebuild containers to get the changes.

Thanks!

[–] immobile7801@piefed.social 1 points 6 days ago (1 children)

working as expected now. Thanks! would you prefer feature requests on the github repo or here?

[–] aquantumofdonuts@lemmy.world 2 points 6 days ago

Great to hear! Feel free to post feature requests in either location, but github will tend to be preferred. Thank you!

[–] aquantumofdonuts@lemmy.world 1 points 6 days ago

Interesting, that could be a bug. I'll check it out. Thanks!

[–] Thrashin_Victim@lemmy.world 1 points 6 days ago (1 children)

How does this compare to lidify

[–] aquantumofdonuts@lemmy.world 3 points 6 days ago

The Discover feature is pretty much identical to what Lidify does. The distinguishing feature is the Subscriptions though. Like automated Lidify.

load more comments
view more: next ›