I'm using Squeezebox (which eventually became Logitech Media Server, and then was dropped by Logitech and is now free / OS) to serve music around the house. Squeezebox, when it started, was centered around hardware playback devices (which were very, very good) but there are all sorts of software playback apps out there (Win/Lin/Mac/Droid/iOS/RasPi).
The server is relatively server OS agnostic, but I use windows, which makes it easy to also install Music IP (a plugin into the server - if you like what's currently playing, you can have it make a playlist of similar tunes.
The music files reside on a NAS (Synology Diskstation) server runs on a micro W10 SBC)
Synology has a built-in version of the server, but no MusicIP. It also has OwnCloud, which I'm starting to migrate to.
Photos all get synced from my PC to the NAS. Android devices get synced using Android app Folder Sync. That's primarily my wife’s phone as I use a DSLR for photos.
Everything on the NAS is available to me wherever I go via OpenVPN and dynamic DNS — including music streaming (pretty nice at work but now it doesn’t matter).
Synology has a nice photo-book app called PhotoStation. I use it when I want to share a shoot. There's also a version of Plex, but I mostly don't bother storing movies or time-shifting - and Squeezebox is superior for music.
Finally, even though I have multiple copies of all photos (PC, RAID based NAS, NAS backups, PC backups) I am using Amazon Photos (free so long as I stay with Prime) as an in-cloud backup. Their layout/organization/filtering is pretty terrible, but I'm just using it as a free/unlimited repository.
Whew! If you're still with me, congratulations! I did NOT set out to write this much.