Homelab
Fully automated homelab from empty disk to running services with a single command.
Install / Use
/learn @khuedoan/HomelabREADME
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
- [x] Common applications: Gitea, Jellyfin, Paperless...
- [x] Automated bare metal provisioning with PXE boot
- [x] Automated Kubernetes installation and management
- [x] Installing and managing applications using GitOps
- [x] Automatic rolling upgrade for OS and Kubernetes
- [x] Automatically update apps (with approval)
- [x] Modular architecture, easy to add or remove features/components
- [x] Automated certificate management
- [x] Automatically update DNS records for exposed services
- [x] VPN (Tailscale or Wireguard)
- [x] Expose services to the internet securely with Cloudflare Tunnel
- [x] CI/CD platform
- [x] Private container registry
- [x] Distributed storage
- [x] Support multiple environments (dev, prod)
- [x] Monitoring and alerting
- [x] Automated backup and restore
- [x] Single sign-on
- [x] 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) |
