Rebuilding My Homelab with Compose, Ruby, IPv6, and No Kubernetes
a day ago
- #homelab
- #IPv6
- #docker-compose
- The author's homelab had issues with a machine called 'nibbler' that was unreliable and likely defective, purchased as refurbished.
- Kubernetes was abandoned due to complexity and maintenance difficulties; the author reverted to using Docker Compose as a simpler solution.
- Current homelab setup includes: 'lrrr' (Proxmox host), 'morbo' (TrueNAS SCALE for storage), 'nibbler' (revamped as the main non-critical service machine), and an external VM 'ord-router' for public ingress.
- The deployment system uses Docker Compose stacks enhanced with Ruby libraries, Rake, and YAML for features like cron jobs, secrets management, ingress via Caddy, IPv6 networking, and cross-stack dependencies.
- Networking relies on deterministic IPv6 addressing with ULAs for isolation and security, and Caddy handles ingress with optional public exposure and authentication.
- Tailscale is used for secure backhaul traffic between hosts and for external access, though it causes battery drain on mobile devices.
- The architecture emphasizes failure domain separation: critical services on 'lrrr' and non-critical on 'nibbler' to minimize impact of failures.
- Full control over the system allows custom implementations (e.g., static sites via ingress, IPv6 setup) without relying on outdated external solutions.
- The author acknowledges that this setup may not suit everyone and validates alternatives like Kubernetes or other Docker Compose managers.