Hey guys, so I have been searching for the different ways to self-host a music-server and don’t really know whats the best/most elegant way to go.
I know that there is navidrome and many also use jellyfin for it. Now I have a few questions:
- Are there any good apps for android for navidrome/jellyfin respectively?
- how easy can I add songs to them/do they pull metadata from somewhere (like jellyfin does for movies)
- how do they (or any other options) compare in terms of ease of setup/maintainability?
- do you have any overall recommendations?
Thanks a lot for any tips/recommendations and your help :D
do you have any overall recommendations?
Go to a Hifi shop and buy a separate amp and speakers. It’ll do more for your enjoyment of the music than anything else.
On the client side, tempus is the best Android app I’ve found for interacting with a navidrome server.
Music on my server via Soulseek downloads and shares. I share it via SMB share and Jellyfin with tailscale to all my devices.
People often recommend Navidrome but its lack of care for folders irks me.
I have a lot of music in folders, could you elaborate a bit on that? I’m kinda interested in doing something like this sometime instead of copying music all the time lol but if it ignores folders I’ll check another solution
Navidrome exposes the folder structure via the subsonic api, and any compatible app can then display folders if they want. Both symfonium (mobile) and feishin (desktop) have folder support.
I’ve tried using collections in Jellyfin to mimic my folders, but it’s not great. Collections are very slow when you get a lot of content in them, plus they only take albums, not songs. Took a weekend to script the stuff in using the API, but wasn’t worth it.
I’ll try navidrome soon.
I see, thank you, I’ve always just used my tree structure as my playlist, as I typically listen to whole albums at once, so I’ve used simple audio players like 1by1 on Windows or Deadbeef on Linux where I can just browse my file system and play music. It seems most things nowadays use playlists
i have a computer in the bedroom that has my ‘local copy’ of music
i download with nicotine on that computer, tag with picard, then sync with rclone to my proxmox server/navidrome lxc that runs on docker.
i have an old music player device that i flashed Debian on, and installed two snapcast servers/clients simultaneously on that machine, one with mopid-subidy extension (but a fork that allows for server scrobbling) and another tied into home assistant for announcements.
the player can play directly through mopidy, or DLNA
or snapcast can swap to any of my linux computer’s with pipewire snapcast discover, and i can listen with feishin (or anything else in the entire world) and sling to snapcast from there.
away from home, tempus on android
As for me, I just use Syncthing between my devices so I have the same music files in my laptop and my phone. It works well as I don’t often change out the music I listen to, and plus it’s local files so no network required (good on an aeroplane, for example). I personally use an MPD client on my (Linux) laptop, while on Android I use Auxio (Lotus and Chocola are excellent too)
If that doesn’t work for you, there is Jellyfin as well: Finamp for specifically music playback, Findroid for general Jellyfin use. Am not hosting Jellyfin currently so I don’t have anything to add besides that, but do check out the docs if you need help setting up / maintaining it!
I personally use Navidrome to host the music, and there are multiple android clients; personally I use Symfonium, but there is also Tempus and Tempo.
Jellyfin can also do Music.
The Music I put on Navidrome already has correct metadata, so I haven’t worried about that aspect.
Its easy to maintain because I run it with docker.
Fyi, it’s best not to recommend Tempo these days as it’s no longer maintained. Tempus is the fork of Tempo that’s still receiving regular updates (at a really good pace!)
Good to know! Thanks for sharing. Tempus seems quite nice. Though Android Auto didnt work for me last I checked even with the update.
I think since Android Auto compatibility requires proprietary Google binaries embedded in the apk, the degoogled version distributed on f-droid (as per f-droid’s terms) isn’t compatible. There’s a “full version” distributed in the github releases if you’re okay with those being included.
You can keep apps from github updated using Obtainium if you like.
Thats where I got mine, GitHub, ubdating with Obtainium!
You might still want to double check its the right version as the degoogled version is also distributed in the github releases alongside the “full” version.
If the package name is `com.eddyizm.degoogled.tempus" it’s the wrong one and won’t be compatible with android auto
- Navidrome on the server
- Feishin around the house
- Substreamer on the mobile
Tempus is phenomenal. I switched to navidrome on my server to use it. Chora is also good, and I use it on my TV (works well on any screen). If you don’t mind closed-source, Symphonum is excellent.
If you are using Jellyfin, it works well on PC, with Fintunes on mobile.
You can find a number of good apps for navidrome here. I quite like Strawberry, which is cross-platform. I use it locally for library management.
I connect everything with Tailscale, which is dead simple.
Thanks for the Chora recommendation, I recently pushed the Tempus apk to my tv as the dev has been working on better landscape screen support, but navigating it on tv still requires a mouse unfortunately.
I’ll definitely give Chora a try when I get home
Are you me? Cause I have exactly the same setup. Navidrome, tailscale, the whole thing. I also use strawberry. It’s OK but a bit basic. I recently tried Nocturne for desktop, looks promising, but still somewhat buggy.
I personally use Navidrome, so everything I suggest will be based around you using that as well, however Jellyfin is probably a good option too.
Navidrome has been incredibly simple, and there are numerous great options on android for player apps. Metadata can come with the music as you get it, or you can use tools like beets or musicbrainz Picard to tag them in bulk. Navidrome has been set-and-forget for me, as I’ve set the download folder for slskd (self hosted version of soulseek) to be the library folder for Navidrome.
I don’t touch or maintain anything, my setup is completely automated.
I run navidrome as my music server. I use transmission, through a namespace with a VPN attached and port forwarded, all managed through systemd and I just turn it on and off as needed. I dump all music in any condition in my music folder and torrent dump music there once completed. Beets manages and fixes my music folder meta tags automatically.
For a navidrome Android client, I use Symfonium, but it’s a paid Play Store exclusive. If you want FOSS, I’ve tried Tempus and it seems fine, the only reason I don’t use it is because I already paid for Symfonium
I use slskd (docker container for soulseek) to download music and Lidarr to automatically move it to an organized folder structure. Lidarr doesn’t natively connect to slskd, so you have to use an extension (which I forget the name of atm) to get them to work together. No part of this assumes that music has any metadata or that you want it, but Lidarr can be setup to automatically retag imported downloads with metadata from musicbrainz. I don’t do this, I prefer manually retagging with Picard
I don’t know what your experience with self hosting is, but I will say that I don’t think setting up a navidrome server is any more difficult than setting up a jellyfin server for shows and movies. Maintainability is pretty easy, just make sure that everything is updated every once in a while and you should be fine
plexamp is great and super full featured (but pricey if you don’t get premium life-time on sale)
If they ever decide to revoke my lifetime subscription I got basically a decade ago for cheap I’ll probably switch providers.I really like jellyfin with finamp on android but I don’t have any really specific requirements. It just acts like an old media player and works really well
Navidrome server with music-assistant front end.
For using navidrome on android I use the tempus client. Which is a fork of the now dead tempo client.








