homelab is a free, open source cloud infrastructure management project written in Python and released under GPL-3.0. It has 9,608 GitHub stars, 884 forks and 14 open issues, and was last pushed 10 days ago. On this registry it ranks #22 of 70 tracked projects in Cloud Infrastructure Management, with 5 head-to-head comparisons available.

What is homelab?

homelab is an Infrastructure as Code and GitOps framework written in Python and released under GPL-3.0 that takes a homelab from an empty disk to running self-hosted services with a single command, built for self-hosters, home-operations practitioners, and anyone who wants to run their own services on Kubernetes.

What it is

homelab is a fully automated framework that provisions, operates, and updates self-hosted services using Infrastructure as Code and GitOps. It installs and manages Kubernetes on bare metal, then deploys and reconciles applications declaratively from Git, so the state of the lab is described in configuration files rather than maintained by hand. The project describes itself as a highly customizable framework that anyone can use to build their own homelab, rather than a fixed product with a single supported shape.

The concrete problem it solves is the manual, fragmented work of standing up a self-hosted environment: installing an operating system, bootstrapping nodes, installing Kubernetes, wiring certificates, DNS records, VPN access, storage, backups, monitoring, and single sign-on. homelab replaces that collection of one-off scripts and manual steps with a single automated pipeline that runs from an empty disk to serving applications. It lives in the Kubernetes and home-operations ecosystem, with the underlying tooling drawn from Ansible, Argo CD, Helm, Docker, and k3s, and it replaces ad-hoc provisioning and hand-managed cluster configuration for self-hosted service stacks.

Key capabilities

  • Automated bare metal provisioning with PXE boot, so nodes are imaged without manual installation media.
  • Automated Kubernetes installation and management, with automatic rolling upgrades for both the operating system and Kubernetes.
  • Application installation and lifecycle managed through GitOps, with automatic application updates that require approval.
  • Common self-hosted applications included out of the box, such as Gitea, Jellyfin, and Paperless.
  • Automated certificate management and automatic DNS record updates for exposed services.
  • Remote access through VPN with Tailscale or Wireguard, plus secure public exposure via Cloudflare Tunnel.
  • Supporting infrastructure including a CI/CD platform, a private container registry, distributed storage, multiple environments such as dev and prod, monitoring and alerting, automated backup and restore, single sign-on, and infrastructure testing.
  • Network observability with Hubble, built on Cilium and eBPF, alongside monitoring dashboards in Grafana.

Who uses it and how

  • Self-hosters running small bare metal fleets; the reference deployment uses four NEC SFF PC-MK26ECZDR machines, the Japanese version of the ThinkCentre M700, each with an Intel Core i5-6600T at 2.70GHz, 16GB of RAM, and a 128GB SSD, connected through a TP-Link TL-SG108 eight-port 1000Mbps switch.
  • Operators who want a lab for experimenting with new technologies and for practicing for certifications, which the project names as a core reason homelabs exist.
  • Members of the Home Operations Discord community, formerly known as k8s-at-home, where homelab concepts and the wider ecosystem are discussed.
  • Users splitting workloads across dev and prod environments on the same automated stack, with GitOps reconciliation carrying changes from configuration files to running services.
  • Anyone who wants a reproducible pattern for adding or removing components, since the architecture is modular by design.

Getting started

Deployment is done with a single command after updating the configuration files, with PXE boot handling the initial bare metal provisioning step. Full documentation is published at https://homelab.khuedoan.com.

How it compares

No paid products that this project replaces are listed in the available facts, and no directly comparable tools are named either, so on the evidence here it stands alone in this registry as a complete homelab automation framework. Its nearest neighbours are the underlying components it assembles, such as Ansible, Argo CD, Helm, and k3s, but those are building blocks rather than substitutes for the end-to-end pipeline.

When to use it — and when not to

This project is explicitly in ALPHA and experimental: the author states that nothing critical runs on it, that breaking changes may require a complete redeployment, and that a proper upgrade path is only planned for the stable release. A self-hoster adopting it should expect to operate the full stack themselves, including Kubernetes, storage, networking, certificate management, DNS, VPN or Cloudflare Tunnel ingress, CI/CD, the private container registry, and backup and restore. Anyone who needs stability guarantees, a supported upgrade path, or a place to run critical services should wait for the stable release; the 14 open issues and the most recent push in September 2026 suggest an actively maintained but still evolving project.

project readme (upstream, from github) — read inline

Khue's Homelab

FeaturesGet StartedDocumentation

tag document license stars

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

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

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
readme truncated — read the full docs on github

Frequently asked questions

Is 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.