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!

  • rsolva@lemmy.world
    link
    fedilink
    English
    arrow-up
    18
    ·
    3 months ago

    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.

      • friend_of_satan@lemmy.world
        link
        fedilink
        English
        arrow-up
        4
        ·
        3 months ago

        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@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          3 months ago

          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.

      • tux7350@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        3 months ago

        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.

        • FarraigePlaisteach@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          3
          ·
          3 months ago

          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
            arrow-up
            4
            ·
            3 months ago

            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.

    • NathanUp@lemmy.ml
      link
      fedilink
      English
      arrow-up
      6
      ·
      3 months ago

      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.

  • 9point6@lemmy.world
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    1
    ·
    3 months ago

    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
      arrow-up
      6
      ·
      3 months ago

      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)

  • 🍄🌵Psychonaut1969🌵🍄 @lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    3 months ago

    I prefer Airsonic-Advanced over Navidrome when using the web interface. Airsonic-Advanced and the Substreamer android app are a nice combo. You can run both severs side by side if you are setting up docker containers.

    • FarraigePlaisteach@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 months ago

      Thanks. I’m happy enough with Navidrome but if I can try ASA in parallel I might give it a try sometime.

      I really like the turntable effect in the Navidrome web app, though :)

  • Brickfrog@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 months ago

    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.

  • ChillPill@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 months ago

    I’m using a Jellyfin server with Symonium on android. It’s almost as good as plexamp, but sadly not available on other platforms. Symfonium will work with any media player that uses subsonic. My current jellyfin implementation is http with a VPN for external use.

  • DirkMcCallahan@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 months ago

    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).