The first thing you need when going down the rabbit hole of setting a smart home with all the bells and whistles is a server to safely hold all of your data and a way to share that data. A server can be any computer that can serve up one or more applications, it could be a Raspberry PI to run Home Assistant or and enterprise server with lots of processing power, memory, storage and connectivity. If you are only running one application then the Raspberry PI would do but if like me you want to run many resource hungry applications like Plex and Zoneminder with facial and object recognition then a server in the traditional sense is needed.
There are may things to consider when deciding what type of server to use, do I build one or buy a used enterprise server, what type of processor and how many memory slots does the mother board have, how easy is it to upgrade the processor if I need more cores down the road, how much power does it use and how noisy is it. There seems to be endless things to consider and that’s because there is, and one thing I’ve learnt is that there is no one perfect server that will tick every box so it’s all about compromise.