Hello World
Why
Ever since my first purchased music cassette back in 1998, I’ve loved collecting music. At first it was cassettes and CDs, and later, with the arrival of faster internet, the first P2P clients appeared (DC++ if anyone remembers it).
Because of that, I’ve always had a large music collection, mostly music that was free or something I bought at the time. Much later the first streaming services appeared, such as Spotify. I have to admit that in the beginning it was a very tempting solution — suddenly “all” music was available, streaming worked great, and everything seemed just right.
But was it really?
More and more often I wanted to listen to music that I couldn’t find on Spotify. I also noticed that I was listening to music less and less in the way I used to. More and more often it became just background noise rather than something I actually listened to and tried to understand what the artist wanted to say.
That’s when I started looking for an alternative solution, and at that time I had no idea what kind of rabbit hole I was about to fall into.
Setup
First I got a mini PC. Specifically, I chose an HP ProDesk 400 G4. The only thing I really cared about was that it had a bit more RAM. I found a version with 16GB on KupujemProdajem, which I think is still more than enough for me.
I also had an external 1TB hard drive which I paired with the HP. Along with a small network switch, that’s basically the entire hardware setup.
Costs
As for one-time costs, I had the purchase of the mini PC, which was around 130€, and the network switch which was about 20€.
When it comes to recurring costs, I only have electricity consumption which is extremely small — less than 1€ per month. I calculated that only based on the device’s power usage. I haven’t noticed any real increase on my electricity bill.
Software
Proxmox
The first thing I installed on the mini PC was proxmox 8.1.
After the installation and creating the first virtual machine I ran into the first problem — VMs were randomly rebooting. After a bit of research I found a solution.
The problem was relatively quickly solved by adding parameters to the boot kernel.
iommu=ptparameter related to IOMMU (Input-Output Memory Management Unit) in pass-through modeintel_iommu=onwhich explicitly enables Intel IOMMU functionality
nano /etc/default/grub
Adding parameters
GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt intel_iommu=on"
After that update grub and reboot the machine
update-grub
reboot
Plex server
For music streaming I decided to use Plex. The installation is quite simple and there is also a mobile app for streaming.
I haven’t tried other solutions yet and currently I don’t have much desire to experiment, but it’s possible that in the future I might try something else like Navidrome.
VPN
For accessing the network from outside I used tailscale. It works great as well, with a fast and simple setup.
Domain
I registered the domain with Cloudflare. I chose them because it’s easy to create a secure tunnel and I practically don’t need a static IP address in order to share some applications or this blog.
So this blog is also hosted on the mini PC that sits in my home office.
Overall Architecture
The setup is actually quite simple and consists of only a few components.
The internet comes into the home router, from there it goes to a small network switch, and then to the mini PC where Proxmox is installed. On Proxmox I run the virtual machines and services that I use.
One of those machines hosts the Plex server for music, while Tailscale enables secure access to the network from outside. I use Cloudflare for the domain and for the tunnel which allows me to expose some services to the internet without needing a static IP address.
In its simplest form it looks like this:
Internet
│
Router
│
Network Switch
│
Mini PC (HP ProDesk 400 G4)
│
Proxmox
├── Plex Server (music)
├── Tailscale (VPN access)
└── Blog / other services
The entire infrastructure is physically located in my home office and practically runs 24/7 without requiring any special maintenance.
What started as a search for a better way to listen to my music eventually turned into a small self-hosting project.
The biggest surprise for me was how little hardware and money is actually needed to build a fully functional home server. One used mini PC, an external disk, and a bit of time for configuration were more than enough.
The biggest advantage of this kind of setup is that I have complete control over my music collection and how I access it. There are no albums disappearing from streaming services, no ads, and no dependency on someone else’s platforms.
As a bonus, the whole process pulled me deeper into the world of self-hosting — which is probably just the beginning of the rabbit hole I’ve fallen into.
*Translated from Serbian via AI.