Khue's Homelab
Features • Get Started • Documentation
This project utilizes Infrastructure as Code and GitOps to automate provisioning, operating, and updating self-hosted services in my homelab. It can be used as a highly customizable framework to build your own homelab.
What is a homelab?
Homelab is a laboratory at home where you can self-host, experiment with new technologies, practice for certifications, and so on. For more information, please see the r/homelab introduction and the Home Operations Discord community (formerly known as k8s-at-home).
If you encounter an issue, please create a bug report (avoid asking for support about issues specific to this project in other communication channels).
Overview
Project status: ALPHA
This project is still in the experimental stage, and I don't use anything critical on it. Expect breaking changes that may require a complete redeployment. A proper upgrade path is planned for the stable release. More information can be found in the roadmap below.
Hardware
- 4 × NEC SFF
PC-MK26ECZDR(Japanese version of the ThinkCentre M700):- CPU:
Intel Core i5-6600T @ 2.70GHz - RAM:
16GB - SSD:
128GB
- CPU:
- TP-Link
TL-SG108switch:- Ports:
8 - Speed:
1000Mbps
- Ports:
Features
- Common applications: Gitea, Jellyfin, Paperless...
- Automated bare metal provisioning with PXE boot
- Automated Kubernetes installation and management
- Installing and managing applications using GitOps
- Automatic rolling upgrade for OS and Kubernetes
- Automatically update apps (with approval)
- Modular architecture, easy to add or remove features/components
- Automated certificate management
- Automatically update DNS records for exposed services
- VPN (Tailscale or Wireguard)
- Expose services to the internet securely with Cloudflare Tunnel
- CI/CD platform
- Private container registry
- Distributed storage
- Support multiple environments (dev, prod)
- Monitoring and alerting
- Automated backup and restore
- Single sign-on
- Infrastructure testing
Some demo videos and screenshots are shown here. They can't capture all the project's features, but they are sufficient to get a concept of it.
| Demo |
|---|
| Deploy with a single command (after updating the configuration files) |
![]() |
| PXE boot |
| Observe network traffic with Hubble, built on top of Cilium and eBPF |
| Homepage powered by... Homepage |
| Monitoring dashboard powered by Grafana |
| Git server powered by Gitea |
![]() |
| Matrix chat server |
| Continuous integration with Woodpecker CI |
| Continuous deployment with ArgoCD |
| ntfy displaying received alerts |
| Self-hosted AI powered by Ollama (experimental, not very fast because I don't have a GPU) |
Tech stack
| Logo | Name | Description |
|---|---|---|
| Ansible | Automate bare metal provisioning and configuration | |
| ArgoCD | GitOps tool built to deploy applications to Kubernetes | |
| cert-manager | Cloud native certificate management | |
| Cilium | eBPF-based Networking, Observability and Security (CNI, LB, Network Policy, etc.) | |
| Cloudflare | DNS and Tunnel | |
| Docker | Ephemeral PXE server | |
Frequently asked questionsIs homelab free to use?homelab is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead. What does homelab do?Fully automated homelab from empty disk to running services with a single command. What is homelab written in?homelab is primarily written in Python. Its source is publicly available at https://github.com/khuedoan/homelab, and it has 9,608 GitHub stars. |

