Apologies if this has been asked before however after some searching I’ve found several posts / articles here in Lemmy (plus generally around via web searches). Some of the posts are dated however so want to see what the most ‘up to date’ suggestions are.

I have spare hardware so this is more a software query.

I want to run my own private radio station where I can listen to my music while on the move and at work. Nothing special and it doesnt need bells and whistles however at minimum :

  1. able to listen via web browser (android app would be a bonus but not required)
  2. able to lock it down so only people with the password can listen (me and other half in UK and brother in Australia)
  3. ) a generic login so people without the password do not know what it is or what its for
  4. option to set playlists and / or random via genre over specific time periods

Thanks in advance.

  • neidu4@piefed.social
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    2 hours ago

    Sounds like something shoutcast can do.

    Remember the time before apple acted as if they invented audio streaming and built a walled garden of podcasts? We had shoutcasts long before podcasts.

    • BCsven@lemmy.ca
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 hour ago

      Yeah when people say they can’t get a podcast because its not on the apple served list. umm RSS exists and did before apple brainwashed people.

  • uKale@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 hours ago

    I used to just run icecast and mpd. Not sure how you could password protect that, though.

  • gedaliyah@lemmy.world
    link
    fedilink
    English
    arrow-up
    13
    arrow-down
    1
    ·
    7 hours ago

    I use navidrome. You could set it up with individual accounts and use any Subsonic compatible player. I’m not sure what you mean by specific time periods, so I’m not sure about that.

    It has a very serviceable web app, and lots of front end clients. I like Tempus on Android, and Strawberry on PC.

    I’ve found that navidrome is just more stable and usable than other server apps. Yes, you could do it through Home Assistant or Jellyfin or NextCloud, but those apps are not purpose-built for music. Just my 2 cents.

  • Shimitar@downonthestreet.eu
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    2
    ·
    4 hours ago

    Try subwave. You can have AI djs choose music from your navidrone library based on shows you create by defining prompts, moods and styles.

    Pretty neat…

    Fast developing and pretty solid already.

  • Luffy@lemmy.ml
    link
    fedilink
    English
    arrow-up
    8
    ·
    8 hours ago

    where I can listen to my music while on the move and at work.

    You copy the files on your mp3 player and hit shuffle. Vlc has this feature for android.

    The reason radio exists is so you can hear curated music without buying it first. With a self hosted solution you get none of the pros with all of the responsibilities you get.

    • Technoworcester@feddit.ukOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      7 hours ago

      Valid answer and I can see where you are coming from however this does not cover item two in my list (other family members)

    • i_stole_ur_taco@lemmy.ca
      link
      fedilink
      English
      arrow-up
      2
      ·
      4 hours ago

      I set this up before but ended up walking away. It works well but it always eats CPU generating the stream, which is a bummer if I’m the only user and not necessarily even going to use it once a day.

  • rastacalavera@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    8 hours ago

    Azuracast on its head is over kill but will work and give you a nice webgui. If you run behind a vpn like Tailscale, nebula,etc just add the other person to it and no password is needed because your stream and service isn’t publicly available. Get your radio stream url and put it in VLC on mobile or use the web.

      • cideyav138@lemmy.ml
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        54 minutes ago

        Just a heads up, their example Docker compose comes with a support for 50 radio stations (with 50+ ports mapped), and it isn’t meant to sit behind a reverse proxy. Below is a simplified Docker compose that I made to run a single radio station.

        services:
          azuracast:
            image: ghcr.io/azuracast/azuracast:latest
            container_name: azuracast
            restart: unless-stopped
            environment:
              AZURACAST_VERSION: latest
              AZURACAST_HTTP_PORT: "80"
              AZURACAST_SFTP_PORT: "2022"
              AZURACAST_STATION_PORTS: "8000,8005,8006"
              AUTO_ASSIGN_PORT_MIN: "8000"
              AUTO_ASSIGN_PORT_MAX: "8006"
              MYSQL_RANDOM_ROOT_PASSWORD: 1
            ports:
              - "4580:80"
              - "4522:2022"
            volumes:
              - /dir-for-db:/var/lib/mysql
              - /dir-for-stations:/var/azuracast/stations
              - /dir-for-storage:/var/azuracast/storage
              - /dir-for-music:/var/azuracast/music
            ulimits:
              nofile:
                soft: 65536
                hard: 65536
            logging:
              driver: json-file
              options:
                max-size: 1m
                max-file: "5"
        

        My nginx routes traffic to port 4580 using the subdomain I assigned for my station, and LetsEncrypt handles SSL. I use SWAG to manage all of that.

        I can’t remember why, but AZURACAST_STATION_PORTS: "8000,8005,8006" is in fact required for a single station. The Azuracast admin portal has an option to consolidate the public player and admin portal behind a single domain, so radio.example.com hits the public player and radio.example.com/login hits the admin login.

        It’s nowhere near the level of pain you have to go through to run Matrix with chat bridges on Docker, but getting all of that right and simplified was more work than I wanted it to be. Hope this helps!

        EDIT: Got carried away sharing my setup and ignored the login requirement for the player. SWAG supports adding an auth layer like Authentik. Or, as the previous commenter mentioned, you could just forego exposing to the outside web entirely and use Tailscale. Or Wireguard.