Hey everyone! I'm working on setting up K3s at home mostly for educational purposes but also to host some client websites, mainly WordPress, personal projects like Laravel, and useful tools such as Plex. I'm hoping to get a sanity check on my setup to see if I'm overcomplicating things and if there are areas I should approach differently.
My entire setup is provisioned using Ansible, and all servers are interconnected via a WireGuard mesh network. My main incoming IP is a Virtual IP from Hetzner pointing to one of two servers that run HAProxy as a load balancer. I have redundancy set up with Keepalived, and eventually, I plan to switch from HAProxy to Caddy.
The load balancers direct traffic to three K3s worker nodes in different data centers (Hetzner, OVH, DigitalOcean, Oracle) to ensure they aren't all in the same place. Next, I'm planning to implement MetalLB to expose Traefik in High Availability on those ingress workers, which will manage accessibility to my applications.
My main goal is to build a High Availability setup out of curiosity, and I want to ensure it can be scaled down to save costs if necessary, while still being able to scale back up with Ansible if needed. Thanks for any insights you can share!
1 Answer
This setup looks like an ambitious homelab project! However, I think you might be overcomplicating it a tad, especially for WordPress. Generally, it's more practical to host it on a single server within a data center, ensuring you have proper PHP sandboxing. It seems like you're doing this mostly as a learning exercise, which is cool, but just be mindful of the complexities of your approach!
I get what you're saying, the sites are for friends and family, not for profit. I see it as a fun project too; I just want to learn about this tech!