khuedoan /homelab

Fully automated homelab from empty disk to running services with a single command.

★ 9,711⑂ 890👁 90⑃ 76● 124▤ 2
GoCreated 2020-06-21homelab.khuedoan.com
9,711
stars
+0+2+41
890
forks
90
watchers
76
prs
124
issues
2
releases
–
discussions

README

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?

 A 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: BETA

I've been using it to self-host personal apps for a few years now,
but it's not stable yet. Expect breaking changes during upgrades.
More information can be found in the roadmap below.

 Hardware

!Hardware

- 4 × NEC SFF PC-MK26ECZDR (Japanese version of the ThinkCentre M700):
    - CPU: Intel Core i5-6600T @ 2.70GHz
    - RAM: 16GB
    - SSD: 128GB
- TP-Link TL-SG108 switch:
    - Ports: 8
    - Speed: 1000Mbps

And yes, I'm still using these 10-year-old mini PCs in 2026.
You don't need much to self-host :)



 Features

- [x] Common applications: Forgejo, Immich, OpenCloud, Matrix...
- [x] Automated bare metal provisioning with PXE boot
- [x] Automated Kubernetes installation and management
- [x] Installing and managing applications using GitOps
- [x] Automatic OS rolling upgrade
- [x] Automated version update (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 (staging, production)
- [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-demo]](https://asciinema.org/a/xkBRkwC6e9RAzVuMDXH3nGHp7) |
| Deploy with a single command (after updating the configuration files) |
| [![][pxe-demo]](https://www.youtube.com/watch?v=y-d7btNNAT8) |
| PXE boot |
| [![][kiali-demo]][kiali-demo] |
| Observe network traffic with Kiali |
| [![][glance-demo]][glance-demo] |
| Home dashboard powered by Glance |
| [![][grafana-demo]][grafana-demo] |
| Monitoring dashboard powered by Grafana |
| [![][forgejo-demo]][forgejo-demo] |
| Git server powered by Forgejo |
| [![][matrix-demo]][matrix-demo] |
| Matrix chat (FluffyChat UI) |
| [![][immich-demo]][immich-demo] |
| Photo library powered by Immich |
| [![][opencloud-demo]][opencloud-demo] |

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON