I’ve been messing around with a small home lab setup recently, running a few different things in VMs and containers just to see how they behave.
Initially it’s pretty simple, but once you start stacking multiple services, things slowly shift. It’s not just about getting stuff running anymore, you start thinking more about how everything fits together, how services interact, and how to keep things from becoming messy.
I’ve also noticed that even small business-type applications start feeling very different when they’re running in a virtualized setup instead of just a single machine. It kind of forces you to think in a more structured way.
I’ve seen a few setups where people try to simulate small internal business environments in their labs just to test how different workflows behave under different conditions. Things like HR flows, reporting, and basic automation usually come up in that kind of setup.
I came across Vertex-HCM in that context as well, more like an example of something that fits into that kind of workflow-based system rather than a standalone app.
I’m just curious how others are handling this. Do you usually keep things separated in different VMs, or do you just group services together and manage isolation another way?
What’s been more stable in your experience?
Glad to have you on the forums. I think you have hit on something that all of us encounter on our journeys in our home lab environments. They start out just beginning the process of running a few self-hosted apps not really thinking about the design so much. But as our labs mature and we start thinking more critically about our designs, that is a pivot point. I know I experienced that as well.
I know for me, I think of the various technologies as different tools and try to use the best one for the job. Usually, for me in my current rendition of my home lab, I try to run as many apps and services in containerized environments. Containers are super lightweight, fast to spin up, and easy to provide HA in a Swarm or Kubernetes setup. However, not all business-type applications are supported in a containerized setup. Larger monolithic apps usually work best in a dedicated VM with enough resources for running the app, underlying services, etc. If running containerized services though, you can definitely group things together easily as "services" in something like Swarm or namespaces with Kubernetes that helps with management and design. VMs can also be logically grouped together. You can of course create "stacks" of VMs with technologies that Proxmox and other hypervisors offer with resources, startup and shutdown ordering, tags, and other things like a common network.
Also, network connectivity and segmentation come into play with this as well. I do try to think more in terms of Web > App > Database 3 tier type application architectures with any number of microservices living at various levels of that application blueprint. Hopefully, some of these ideas help out with some of the things you are considering. Let me know what you have been leaning towards with your design. Definitely curious on that front.
Brandon
