I am interested in tech and would say I have more knowledge about networking than the average person, but there’s still a lot that’s way above my head. I’ve played around with Pis a little and have set up things like home assistant and foundry VTT before.
I got my hands on an old machine from work and want to upgrade it with some of my spare hardware, and ideally have it set up as my single home server. I would like to host plex, a few foundry servers, home assistant, and use it as a NAS. Basically combine everything I have right now into one more powerful machine.
Thing is… It feels really overwhelming to try and start. I’m not sure really sure how to go about the whole endeavor. What OS do I use? Do I use VMs, docker containers, is there pro or cons one way or the other? How can I make sure they’re all accessible from the web securely?
Is there anything you guys can tell me to get me started? Some resources to walk me along setting a multipurpose home server?
Proxmox might be what you’re looking for, it’s very popular among homelab users and allows you to run VMs and Containers natively so you have the best of both worlds.
As to which you should use (Docker or VMs), neither is a silver bullet. I’m going to oversimplify it a bit, but in a nutshell:
Containers lend very well to microservices like web apps and processes you want to run isolated but don’t need a whole VM for. I can go into this in more depth if it helps you.
VMs are better suited when you have a disproportionately more resource hungry service (like database servers). They also allow easier deployment of things alongside the application, for example if you have monitoring agents. The downside is VMs add a maintenance overhead for the underlying OS (this is true of containers too but less so as you’ll often run many containers on one host).
In my environment I use VMware ESX for the hypervisors, manage it with vCenter and run mostly Linux machines with a mix of traditionally installed services and Docker standalone. There are some highly resource intensive services that even get their own physical host, like my NVR (for CCTV cameras) and backup server.
Hope I’ve answered more questions than I’ve created!