this post was submitted on 24 Aug 2025
107 points (100.0% liked)

Selfhosted

51033 readers
1870 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.

Resources:

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

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

I was hoping to go all in with Jellyfin, but it's been absolutely maddening to try to get it to play nice with my curated library. It just makes too many dumb assumptions about artist metadata.

Any other suggestions?

EDIT: I installed Navidrome, then poured over the documentation for the config file and micromanaged every setting. This has allowed me to get damn near close to the exact unobtrusive behavior I had hoped for.

EDIT 2: AFA mobile client goes, I'd absolutely consider paying for Symphonium, if it didn't seem to require my having a Google Play account (fuck that). So instead I'm trying Tempo.

top 50 comments
sorted by: hot top controversial new old
[–] nfreak@lemmy.ml 10 points 6 days ago* (last edited 6 days ago) (1 children)

I'm in the middle of writing up a novel about my music stack since I've just about gotten it exactly where I want it. There's no one-size-fits-all answer here and it's difficult to really replicate the behavior of major streaming services.

The short version of what I have set up:

  • Backend: Navidrome

  • Frontends: Feishin (both desktop and hosted) and Symfonium

  • Remote access: Pangolin (this does involve keeping a Navidrome rest endpoint totally exposed so Tailscale/Netbird/Wireguard are fine too, but I wanted to be sure my wife can access it from her work PC in the office)

  • Library and metadata management: Lidarr, beets, and metadata-remote. Lidarr does the bulk (one instance per user/library), beets handles manual imports, and MDRM is for fine-tuning and really obscure stuff

  • Searching/Downloading: Lidarr + Tubifarry + slskd. Also support smaller artists as much as possible, bandcamp purchases and merch and whatever go a long way.

  • Discovery: Explo

I'll have a full beginning to end writeup pretty soon hopefully. It's still not perfect, and juggling multiple users adds a huge layer of complexity, but I'm happy with where it's at.

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

Could you explain how you use explo?

[–] nfreak@lemmy.ml 2 points 6 days ago* (last edited 6 days ago)

This is gonna get a bit into my particular setup but sure

Explo's a super early in development "discover weekly" generator, relies on Listenbrainz scrobbling and runs on a cron job to download the playlist from your connected source (in my case slskd), put it in a folder, and create a Navidrome playlist out of it. I use the SLSKD_MIGRATE option (my feedback is actually the reason the dev even added it), so my files are downloaded to my slskd dir and explo moves them to a separate library.

I'm very particular about my library though so I don't want it just throwing everything into the same folder as the rest of my music, and I have 2 users, so my directories are like:

  • /music/me
  • /music/wife
  • /discover/me
  • /discover/wife

Keeping the discover folders for Explo completely outside the main library, but mounted in Navidrome as additional libraries, helps keep things very separate. Explo's also smart enough to check with Navidrome before searching for a track - if it already exists in the library, then it won't redownload it.

I run 2 Explo instances, 2 hours apart, and in between those runs I have another cron job that wipes out my slskd downloads directory for a clean slate.

One small catch I ran into: Explo needs a Navidrome admin account to kick off the library scan, but my users aren't admins (since an admin automatically has access to every single library). So each week when it runs I need to log in as an admin and re-assign each playlist accordingly. Not a big deal, and the dev already has some ideas in mind to address this in the future. This also becomes a small bit of an issue with the whole "don't download existing tracks" thing - Explo's looking at the admin's library which is everything, not the individual users' libraries. So if one user's playlist has a track that's in the other user's library, it won't be properly added. Not the end of the world, but a mild annoyance.

I will say (and this isn't a fault of Explo), I'm not a big fan of Listenbrainz's weekly playlist algorithm. About 2/3 of the playlist tends to be artists that I already listen to, so it feels like a bit of a waste. I hope down the road we can plug in last.fm or something which tends to be a bit better for that.

[–] Jason2357@lemmy.ca 5 points 6 days ago

Lots of interesting discussion, but I’ll add I’ve been plying with https://www.music-assistant.io/

Integrates all sorts of backends, including everything mentioned here, with streaming to just about any device. Reminds me of MPD back in the day, or at least the promise of it.

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

I just use my local music player musicolet. Never going to switch unless another player alñow resuming last songs of any playlist

[–] Freakazoid@lemmings.world 2 points 6 days ago

It is possible to buy Symphonium by the developer instead of Google Play

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

One last comment on your edit: Tempo is great, and I used that as well, plus it's open source. The symfonium dev is actually pretty cool about helping you work around Google if you want to buy it another way, but it has to be activated manually by the dev on each device. I just didn't want the hassle.

I'd probably go with Tempo if I were still using navidrome since it's open source.

[–] Makazzz@lemmy.dbzer0.com 1 points 6 days ago* (last edited 6 days ago)

@wesker@lemmy.sdf.org just so you know there is a fork newly updated of Tempo at https://github.com/eddyizm/tempo

[–] mik@sh.itjust.works 1 points 6 days ago

@wesker@lemmy.sdf.org if it helps, the Symfonium dev is open to de-googled licensing via Ko-Fi donations. See the forum post here: https://support.symfonium.app/t/how-can-i-pay-for-symfonium-without-google-play

Per Tolriq's responses there, you can get the APK safely from the Aurora Store.

[–] curbstickle@lemmy.dbzer0.com 60 points 1 week ago (5 children)
[–] roofuskit@lemmy.world 12 points 1 week ago (1 children)

There really isn't any decent alternative. I can run 4 Navidrome servers along side each other using less resources than a single copy of the alternatives. It just works and does almost everything you could want.

[–] nfreak@lemmy.ml 2 points 6 days ago (1 children)

Navidrome even supports multiple libraries now. I was using 2 instances for a bit for my wife and I, but now it's all in one.

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

I didn't realize they had updated. That's great! I knew it was on the timeline but it works so well even with multiple instances I hadn't been watching for it.

[–] nfreak@lemmy.ml 3 points 6 days ago* (last edited 6 days ago) (1 children)

Yep! They released it like a week after I just set up a second instance lmao

The only catch I noticed is that the default "/music" library can't be changed, so I set up my directories in the container like:

  • /user1/music
  • /user1/discover
  • /user2/music
  • /user2/discover
  • /shared

All 5 are set up as separate libraries, and I keep "/music/ in the container mounted to an empty directory. The discover folders are populated when Explo runs each week, that's a whole project of its own.

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

Thanks, I already have it up and running. Works great!

[–] ctry21@sh.itjust.works 11 points 1 week ago

+1 for Navidrome. As simple as pasting the album into the directory and it sorts the rest. I use subtune on my phone to access it and it works great.

[–] tenebrisnox@feddit.uk 9 points 1 week ago

Agree with Navidrome. Works great in browser and the Substreamer ios app.

[–] jhdeval@lemmy.world 5 points 1 week ago (2 children)

Another vote for navidrome. I tried substreamer on android ibdid not like the search. I use symfonium easy interface let's me randomize in many ways.

On a side question anybody have suggestions for automatically creating genre based m3u files? I would like to setup "radio" like stations but adding my music to a playlist.

load more comments (2 replies)
[–] wesker@lemmy.sdf.org 5 points 1 week ago

I tried their demo, and I really dig the minimalist approach. Might give it a shot.

[–] Nexyte@lemmy.world 16 points 1 week ago
[–] Kolanaki@pawb.social 14 points 1 week ago* (last edited 1 week ago) (2 children)

I still use Samba to do everything related to filesharing (including music streaming). I haven't needed to touch my media server in years. It just continues to work. 🤷‍♂️

Since it's just normal network filesharing, pretty much any music player that has samba support works. On a PC, I like Winamp. On my phone, VLC.

load more comments (2 replies)
[–] verstra@programming.dev 13 points 1 week ago (2 children)

Jellyfin, and yes it thinks its very cleaver with mumbling metadata.

[–] wesker@lemmy.sdf.org 24 points 1 week ago* (last edited 1 week ago) (1 children)

> be Jellyfin

> see a track in an album with a "... feat. ..." artist tag

"This must be a completely different artist than the album artist!"

> create somehow fucking immutable new metadata

[–] gccalvin@lemmy.world 7 points 1 week ago (1 children)

I also use Jellyfin. Before being able to set custom tag delimiters, you had to ensure your music artists and album artists ID3 tags were correct. I believe it used a ';' to separate multiple artists. Now with custom delimiters you can set your own. You may be able to try and fix things by setting 'feat.' as a custom tag.

Ultimately, I would recommend just using mp3tag and spending a few minutes setting up an action that replaces 'feat.' with a delimiter, such as a '|'. Run it through your current library and you should be good.

[–] wesker@lemmy.sdf.org 10 points 1 week ago (3 children)

Thank you for the info. I might try this, however I'm already having a 10x better experience now that I've set up Navidrome, and then tried the Symphonium client.

load more comments (3 replies)
[–] pHr34kY@lemmy.world 4 points 1 week ago

Oh, you have 10 random singles in the same directory? That must be an album all from the same artist!

[–] Freakazoid@lemmings.world 11 points 1 week ago (1 children)

Navidrome with Symfonium for Android and the Web interface or my new favorite Feishin for Desktop Linux

load more comments (1 replies)
[–] Nico_198X@europe.pub 10 points 1 week ago* (last edited 1 week ago) (16 children)

SD Card on my phone. i don't stream it anymore. storage is so cheap now i can easily hold all of my flac files, no problem.

edit don't look for solutions to problems you don't have. most ppl don't NEED to stream everything over the internet.

go back to local.

[–] HiTekRedNek@lemmy.world 4 points 1 week ago (10 children)

I have over 3 TB of music. SD cards aren't quite that big yet.

load more comments (10 replies)
load more comments (15 replies)
[–] kerobaros@lemmy.world 9 points 1 week ago (2 children)

beets for library organization, gonic for serving, Tempo for consuming

[–] quantenzitrone@lemmings.world 5 points 1 week ago (1 children)

did you know, that the gonic developer sentriz is developing a beets alternative in go https://github.com/sentriz/wrtag

it works quite well, but lacks a lot of the features of beets

load more comments (1 replies)
load more comments (1 replies)
[–] ryannathans@aussie.zone 9 points 1 week ago (2 children)

Use some service like lidarr or beets to tag the music before it goes into jellyfin

[–] wesker@lemmy.sdf.org 5 points 1 week ago (2 children)

I meticulously use Picard to curate my collection. I'm 99% certain it's not me or my library, it's the assumptions Jellyfin makes about specific artist related tags, and the inability to override said assumptions.

[–] WalnutLum@lemmy.ml 5 points 1 week ago (1 children)

As a musicbrainz editor, don't depend entirely on Picard and musicbrainz for correct tagging either cause shit isn't as well curated as you think.

[–] wesker@lemmy.sdf.org 4 points 1 week ago (1 children)

I'm in the habit of manually cross-referencing Discogs for every album I run through Picard, often making alterations if need be. I've also spent a lot of time configuring and scripting the shit out of the tool to get a pretty immaculate collection.

[–] WalnutLum@lemmy.ml 14 points 1 week ago

If you're putting in that much work, please submit those edits to musicbrainz! We need all the help we can get 😭

load more comments (1 replies)
load more comments (1 replies)
[–] spacemanspiffy@lemmy.world 8 points 1 week ago

1TB SD card on my phone.

[–] drkt@scribe.disroot.org 8 points 1 week ago* (last edited 1 week ago) (11 children)

Gonic for server, Ultrasonic for client (android)

I would use Navidrome if it supported browsing by folder structure, but they refuse to implement it. My metadata is so scrambled it might as well not exist and it would take months to fix it. I pretend it doesn't exist, because I don't use it.

[–] curbstickle@lemmy.dbzer0.com 4 points 1 week ago (1 children)

Just curious, why folder structure? Are your directories not artist/album?

[–] drkt@scribe.disroot.org 6 points 1 week ago (6 children)

It's .../music/artist/album/song.flac

This does not work with Navidrome if the metadata is weird. I have a lot of songs that Navidrome refuses to even list because their metadata is bad.

I browse my music by folder structure, not metadata. Folder structure is universal and does not care about inconsistent metadata.

load more comments (6 replies)
load more comments (10 replies)
[–] domi@lemmy.secnd.me 7 points 1 week ago

I use Jellyfin but I download all my songs from Tidal, Qobuz or Deezer and tag them automatically right then and there in a clean format so Jellyfin does not have to guess at all.

I also have some automatic checks in place to convert incorrect metadata to a proper format. Like moving artists from the title (feat. Somebody else) to the artists tag Somebody; Somebody else and a bunch more.

Together with Finamp on desktop and mobile everything is pretty much working as expected.

load more comments
view more: next ›