Homelab Server
My personal homelab running on a compact Lenovo ThinkCentre M series tiny desktop. This server handles all my development work through VSCode remote sessions and hosts various containerized services and websites.
Description
- Development Environment: Primary coding and development server I use, accessed via VSCode remote
- Container Orchestration: Full Kubernetes cluster managed with Rancher
- Service Hosting: I used to pay a fortune for digital ocean / aws VPS’s. Now I can run multiple websites and applications as containerized services for free.
- Low Power and Compact: Takes up barely any space and uses very little power.
- Always-On Infrastructure: As long as my home fibre doesn’t go down, the server is always on.
Tech
- Hardware: Lenovo ThinkCentre M series tiny desktop
- Container Platform: Kubernetes for container orchestration and management
- Management UI: Rancher for simplified Kubernetes cluster management
- Package Manager: Helm for deploying and managing Kubernetes applications
- Development: VSCode Remote for seamless remote development experience
- Network Security: Cloudflare with cloudflared tunnels for secure endpoint access
- Access Control: Cloudflare Zero Trust for identity-based security
- Architecture: Everything containerized for consistency and easy deployment
Features
- Remote Development: Full VSCode development environment accessible from anywhere
- Container-First: All services and applications run as containers for isolation and portability
- Kubernetes Native: Production-grade orchestration for personal projects and services
- Rancher Management: Web-based UI for easy cluster management and monitoring
- Helm Deployments: Standardized application deployments with version control
- Multi-Service Hosting: Running various websites and applications simultaneously
- Secure Access: Cloudflare tunnels eliminate need for port forwarding while protecting all endpoints
- Zero Trust Security: Identity-based access control ensuring only authorized users can reach services
Outcome and Future Improvements
The homelab has become an essential part of my development workflow, providing a central, consistent and powerful environment for all my projects that I can access from anywhere in the world. The containerized approach makes it easy to experiment with new technologies and deploy services reliably.
Future improvements could include:
- Move more stuff to IaC
- I tend to be lazy and just manually deploy stuff via the rancher UI, then update via github actions.
- Backups
- 🙈 Most stuff is backed up on git, but I should probably have a proper backup solution.