I’ve tried a few options over the years, including SMB and NFS, XBMC as well as HTML with javascript I found online.

I don’t have a large collection of music (fewer than 100 albums), so hand coding things was actually one of the quicker options to setup. That’s despite then hassle of hand coding the URL to each FLAC file as well as the album art. But sometimes the javascript doesn’t handle large collections of FLAC and each implementation I tried had different quirks so I’ve sunk a lot of time into that in other ways without a satisfactory result.

I’ve heard of Emby, Jellyfin, Plex, Roon and Servio. I just need something that’s simple to set up and access. I don’t need fancy features beyond the ability to play the music with a pleasant UI that can be accessed from the web (HTTP, not HTTPS). I’d be running this from a Raspberry Pi 3B which already has the lighttpd server running.

I’m also considering just getting a portable, 128GB FLAC player with a minijack connection and moving on with my life without getting involved in networking at all.

Any recommendations for an uncomplicated way to approach to doing this?

Edit: Thanks so much for the helpful and enthusiastic comments! I tried Navidrome and had it up and running in ten minutes thanks to this tutorial video: https://invidious.nerdvpn.de/watch?v=7V5UUJlSknY

I had to install docker-compose on the RPi. Then I got an error which turned out to be because I also needed a separate docker daemon which I installed following these instructions: https://www.simplilearn.com/tutorials/docker-tutorial/raspberry-pi-docker

In just 10+ minutes I had my music collection accessible from all my devices - thanks again!

Currently I use Jellyfin and found it simple enough to setup. My personal setup is https on the public internet using Caddy as a reverse proxy to handle the https part, but you can set it up for local network access only using http.

Jellyfin itself is not the greatest music player ever, (UI is more setup for movies and tv) but there are music-centric apps that use it as a backend that are really good, for most platforms. On my phone and tablet, I really like Finamp, and on the desktop I use Sonixd.

I’m also considering just getting a portable, 128GB FLAC player with a minijack connection and moving on with my life without getting involved in networking at all.

I used this setup for the better part of 20 years. Nothing wrong with it, my music collection simply expanded to the point where it simply wasn’t feasible to store all of it on my iPod anymore and from day to day I never really know what I’m going to be in the mood to listen to. Setting up a streaming service made more sense for me.

Dark Arc
link
fedilink
English
25d

Plex is moving in the app direction… So Plex is probably moving away from what you want despite being one of the easiest options.

It would probably be helpful to know what you’re trying to accomplish beyond “what”. Like, why do you want to host your music and play it via a web browser.

LifeBandit666
link
fedilink
English
25d

Plex was easy enough to set up. I use plexamp on my phone but can access the Plex server via a browser, which includes my music

rhys
link
fedilink
English
255d

I use Jellyfin in a way that sounds like what you want. You run a Jellyfin server wherever your FLACs are, access it via the web, and play things through your browser — or through Finamp on Android, in my case.

@Kelo@lemmy.world
link
fedilink
English
65d

I can vouch for Jellyfin - Nothing harder than setting up docker and connecting via Finamp. Been a very “set it and forget it” experience for me.

@freeman@feddit.org
link
fedilink
English
33d

Jellyfin + Symphonium as a client on android 💯

johny|five
link
fedilink
English
05d

Do NOT use funkwhale!

bizarroland
link
fedilink
75d

You got to give us some context my dude. Why is funk whale not recommended by you?

@kurcatovium@lemm.ee
link
fedilink
English
55d

What’s wrong with it?

@thisfro@slrpnk.net
link
fedilink
English
25d

Jellyfin or funkwhale

@9point6@lemmy.world
link
fedilink
English
145d

Plex is probably the easiest and most convenient, I think jellyfin is viable too, but I don’t use it.

If you’ve got the money, Roon or Audirvana are the gold standard of self hosted music

If you want something similar, but free, look into things like volumio or subsonic based solutions.

@dmention7@lemm.ee
link
fedilink
English
85d

Seconding Plex / Plexamp if the use case involves streaming remotely. Probably the easiest to get up and running for remote access.

I’m not sure about the capabilities of hosting on a Pi, but it should be straightforward to run a couple different apps in parallel to test and compare features (I’m currently doing exactly that with Plex and Jellyfin)

If you already have a NAS, (since SMB was mentioned, I’m assuming there’s some sort of NAS setup going) then you may even be able to host Plex directly on the NAS. It likely won’t be powerful enough for things like video transcoding, but just audio should be fine.

Blxter
link
fedilink
English
45d

I use Plex (Plexamp) and I can not complain. I don’t really access via the web browser however, I use the app for dedicated music playback.

@gregordinary@lemmy.ml
link
fedilink
English
24d

Looks like you may have made a decision already, but wanted to give Polaris a mention. Been using that on my home server, has a nice Web-UI and a mobile app on F-Droid as well.

https://github.com/agersant/polaris

zoey
link
fedilink
English
35d

I’m using Jellyfin, but navidrome worked just as well when I tried it

@rsolva@lemmy.world
link
fedilink
English
345d

I use Navidrome, it’s a single binary and gives you your own Spotify, kinda. It can be use with many other apps, in addition to the web interface, as it supports the subsonic protocol.

bizarroland
link
fedilink
-15d

I tried navidrome but the issue I ran into is that it would not play individual songs or sort through them, it would just play my albums in alphabetical order.

And I don’t know as far as jelly fin goes, I like it as a video platform but for music I couldn’t get it to just randomly display the songs and let me shuffle through them.

I’m looking for a music server that can see all of my songs and music and shuffle them and play them. Does anything like that exist?

I’m not sure when you were using it, but Navidrome definitely let’s you play individual songs and shuffle.

Navidrome does that. I think you just used a bad frontend. Try Tempo if you’re using Android. Or Feishin on desktop.

FarraigePlaisteach
creator
link
fedilink
English
125d

I got Navidrome working on the local network quickly with docker compose thanks to this video: https://invidious.nerdvpn.de/watch?v=7V5UUJlSknY

Once I forwarded the right port on my router I was also able to access the music from the web. Thanks for the recommendation, I’m very happy!

I saw in your update you mentioned installing docker-compose. Modern docker has “compose” as a verb, and should work as docker compose. I haven’t tested this on raspberry pi though.

FarraigePlaisteach
creator
link
fedilink
English
45d

You’re right. It’s just that the package to installed is called docker-compose (if I remember right. I’m on mobile now). So the command to install was: apt install docker-compose, and the command was: docker compose. Thanks man.

@friend_of_satan@lemmy.world
link
fedilink
English
8
edit-2
5d

No, thats not how it works now. You used to have to install docker-compose and run docker-compose, but now you don’t. Docker comes with compose, but you call it as docker compose rather than the old Python module based way docker-compose

https://www.docker.com/blog/new-docker-compose-v2-and-v1-deprecation/

FarraigePlaisteach
creator
link
fedilink
English
95d

Thanks for clarifying. I might be sent to uninstall that other package in that case. It’s all working nicely anyway. Appreciate it, thanks again for your help!

@tux7350@lemmy.world
link
fedilink
English
74d

Another tip, please be very careful when exposing ports to the public. With docker you’re already mitigating your attack surfaces but an open port allows anyone to make a connection and there are lots of bots out there looking for open ports and vulnerabilities. A good alternative would be to setup wireguard and instead then connect through that or if you like simplicity check out Tailscale.

@undefined@links.hackliberty.org
link
fedilink
English
2
edit-2
4d

Especially with music, if any of this is plain HTTP (or any other plaintext, non-encrypted protocol) and you live in a lawsuit happy jurisdiction you might end up with piracy letters in the mail.

FarraigePlaisteach
creator
link
fedilink
English
33d

It is plain HTTP. There’s a username and password needed to log in and access the music, though if that helps?

Plain HTTP means anyone between you and the server can see those credentials and gain access.

It it using HTTP Basic Auth by chance? It would be so easy to put nginx (or some other reverse proxy with TLS) in front and just pass the authentication headers.

FarraigePlaisteach
creator
link
fedilink
English
1
edit-2
3d

I don’t know what kind of authentication it uses, but it dots appear to be susceptible to brute force https://github.com/navidrome/navidrome/issues/242

But if I add a reverse proxy I would need it to just affect that one service/port. I’m running a publicly facing static (amateur/hobby) website - and other services - from there too and I’d prefer it to remain public.

All of my public facing sites are behind a reverse proxy. I use Nginx Proxy Manager it runs from docker and has an easy webgui. It takes care of things like https certificates and stuff to.

FarraigePlaisteach
creator
link
fedilink
English
33d

Thanks for that. I’ll look into tail scale (since you mentioned the magic word, ‘simplicity’). My domain doesn’t have any links to the pages on my server, and Navidrome is username and password protected. Would that be safe enough? I am using unencrypted http, though.

@tux7350@lemmy.world
link
fedilink
English
43d

Unencrypted HTTP can mean that anyone can see your traffic as it passes through their network. Your ISP will see that traffic. If you’re streaming pirated music and you’re in a country that cares about those things, might not go very well. From a security stand point though, you still wouldn’t want to trust the authentication on the open port. A vulnerability may exist that you don’t know about. It’s always better to keep them closed and add another layer or two between your home computer and the public.

Tailscale let’s you tunnel into your home network without opening any ports, and it encrypts the traffic. Much safer way of doing it.

FarraigePlaisteach
creator
link
fedilink
English
23d

Thanks. I really appreciate the insight. I’ll start learning about tailscale as a priority.

@tux7350@lemmy.world
link
fedilink
English
13d

Here you go friend, enjoy! 😁

https://tailscale.com/blog/how-tailscale-works

FarraigePlaisteach
creator
link
fedilink
English
13d

Thanks again! Do I understand right that once I:

  1. Run tail scale on each machine
  2. Register those with my account

The machines will be able to see each other, but the machines can not be seen outside of the network of those machines?

Also, my Raspberry Pi is hosting some other publicly exposed services that need to remain that way. Will tail scale take over those too?

I found a nice overview video here for anyone who might want it: https://invidious.nerdvpn.de/watch?v=Kzyolu9yn0E

@NathanUp@lemmy.ml
link
fedilink
English
105d

Seconding Navidrome. I stream from my Navidrome server to my phone, and then via DLNA from my phone to my HiFiBerry / stereo system. It’s very nice.

I’m also considering just getting a portable, 128GB FLAC player with a minijack connection and moving on with my life without getting involved in networking at all.

Yeah, I’d say that this is definitely the way to go. My .mp3 player only has something like 8 gigs of storage, but it takes a MicroSD card. With a 1 tb card, I can carry all the music I want (and realistically, given that your collection is pretty small, you could get away with a whole lot less than that).

Streaming my own music was the reason I got into self-hosting in the first place and I’ve been satisfied with Navidrome for over a year now. My preference is to stream via an app on my phone but I’ve made accounts for a couple friends and they stream happily on multiple devices using the browser interface.

Brickfrog
link
fedilink
English
35d

Jellyfin should work fine for what you’re looking for. I haven’t run it on a Pi but it should work on that. You’ll be able to play music using the web ui as well as mobile apps if that’s your thing. It can also transcode on the fly so if your current browser/device/whatever can’t play .flac directly it’ll automatically transcode the playback to .mp3 or whatever it needs to be.

There are some other self hosted music/streaming projects you could take a look at that are much more built out for music playback specifically. Look into Airsonic-Advanced or Navidrome for example - I’ve been meaning to check them out myself but haven’t gotten around to it yet.

recursive_recursion [they/them]
link
fedilink
English
1
edit-2
5d

I recently learned that Strawberry has native built-in streaming capabilities

Repo

not sure if this is what you’re looking for but it’s an option that might be useful for you🤗

Create a post

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!

  • 1 user online
  • 279 users / day
  • 589 users / week
  • 1.34K users / month
  • 4.55K users / 6 months
  • 1 subscriber
  • 3.5K Posts
  • 70K Comments
  • Modlog