Selfhosting fun

How I set up self-hosted music streaming, found a TUI player, and forked it with Claude Code

After setting up this blog, I finally got the energy to tackle another long-shelved idea — self-hosting my .flac music library and streaming it to all my devices (phone, laptop, work laptop).

Armed with Claude Code, I did some research and landed on Navidrome. It’s focused purely on music and speaks a protocol with a huge ecosystem of clients.

The best find for my desktops was a slick TUI player — ferrosonic.

ferrosonic fork

ferrosonic fork

Everything was working great, but I quickly noticed the player was missing a few things I really wanted:

  • Volume control
  • Album art display
  • Shareable track links for other streaming services
  • Discord integration (just for fun)

My Rust is nowhere near good enough to tackle this alone, so I kept the Claude fun going — forked the repo, and within a couple of days everything on the list was in. I use it daily now. Love it.

I also have a vague idea of adding some kind of feed for new releases from artists in my library, but we’ll see when I get around to it.

Other things I’d like to self-host at some point:

  • Immich for photos
  • ntfy.sh
  • Jellyfin